Содержание

LFNet (LFN) - тонкий клиент RDP и PXE сервер

Например есть локальная сеть с большим количеством менеджеров и бухгалтеров, работающих в 1c, MS office и браузере

  1. Типовое решение : слабый файл-сервер с общей базой 1с + клиенты на windows
    • Клиенты для локального запуска этого софта должны быть мощными и соответственно дорогими
    • Клиентские компьютеры надо обслуживать (менять HDD, лечить вирусы и т.п.)
    • 1с с доступом к базе по сети сильно тормозит
  2. PXE : мощный Терминальный_сервер (TS) + Remote Desktop Protocol (RDP) слабые клиенты (TC)
    • TC - старые ПК (достаточно 1Гб RAM и любого CPU) без HDD или вообще твбоксы
    • ТС - не требуют особого обслуживания. Достаточно иметь запасные
    • TS - чем больше TC тем выгоднее будет PXE решение. Обслуживание TS можно отдать на удаленный аутсорсинг.
    • Т.к. обращение к базе 1с локальное - 1с работает быстрее чем по сети
    • Наличие TS позволяет работать удаленно (из дома)

Таким образом PXE будет дешевле, удобнее, проще и быстрее. Подойдет для :

Альтернативы LFN

Особенности RDP

Remote_Desktop_Protocol

Достоинства

Недостатки

Компоненты LFN01

LFN выпускается в виде гибридного iso (EFI+MBR) выбором загрузки клиента или сервера PXE.

  1. Сервер PXE : dnsmasq (DHCP+TFTP)
  2. TC : openbox + tint2 + xfreerdp 2.11.2 (перекомпилен с урезанием ненужных зависимостей. Т.е. без gtk, qt, что дало возможность уменьшить размер

TS не входит в состав LFN.

Развертывание LFN

  1. Достаточно иметь самый простой свич 100BASE-T или даже 10
  2. Для выхода в интернет потребуется роутер или компьютер (ПК) с двумя сетевыми интерфейсами, выполняющий его роль.
    • Таким ПК может служить TS или PXE сервер LFN (пока этот функционал не реализован)
    • На роутере необходимо сконфигурить LAN : 192.168.0.1/255.255.255.0 и NAT
  3. Необходимо выключить все DHCP в этой подсети. Например на роутере
  4. Запуск PXE сервера 192.168.0.2. Варианты:
    1. На одном из TC загрузить с флэшки (CD или любого носителя) LFN server.
      • Этот же TC может одновременно являться и клиентом (т.е. на нем может работать пользователь). В этом случае этот TC нельзя выключать и перезагружать. В этом случае загрузить пункт «сервер PXE + клиент»
    2. Запустить LFN server на виртуалке на любом ПК в LAN
    3. Если в сети есть ПК с Linux - запустить на нем dnsmasq с /etc/dnsmasq.conf из iso LFN, файл lfn*/initrd-lfn*s-*.xz
      • Распаковать lfn*/initrd-lfn*s-*.xz можно скриптом lfn*/initrd.sh
    4. Если в сети есть ПК с Windows (например TS) - настроить Tftpd64
  5. На всех TC включить в BIOS PXE-boot. Достаточно 1Гб RAM и любого CPU, без HDD
    • Звук пробрасывается с TS на TC.
    • Подключенные на TC флэшки и т.п. - пробрасываются на TS
    • Возможно использовать на TC несколько мониторов
  6. TS устанавливается самостоятельно. В LFN ему присвоен 192.168.0.3:3389
    • TS может находиться в этой LAN или в интернет (виртуалка на хостинге или в другом офисе). В этом случае нужно на роутере сделать портмэппинг 192.168.0.3:3389 на адрес в интернет
    • Принтеры должны быть подключены к TS

Свой конфиг dnsmasq для каждого MAC адреса

Для закрепления ip или запуска другой системы (с другими параметрами) нужно создать отдельный конфигурационный файл для каждого MAC-адреса в dnsmasq:

  1. Убедитесь, что в основном файле конфигурации dnsmasq (/etc/dnsmasq.conf) есть строка conf-dir=/etc/dnsmasq.d, которая указывает dnsmasq использовать все файлы конфигурации в указанном каталоге.
  2. Создайте каталог, в котором будут храниться ваши конфигурационные файлы. Например, /etc/dnsmasq.d/mac_configs/.
  3. В этом каталоге создайте файлы конфигурации для каждого MAC-адреса. Имена файлов должны быть в формате 01:23:45:67:89:ab, где 01:23:45:67:89:ab - это MAC-адрес устройства.
  4. В каждом файле конфигурации, укажите настройки, которые вы хотите применить для соответствующего MAC-адреса. Например, вы можете указать IP-адрес или имя хоста, которое должно быть связано с этим MAC-адресом.

Пример файла конфигурации для MAC-адреса 01:23:45:67:89:ab:

# /etc/dnsmasq.d/mac_configs/01:23:45:67:89:ab
dhcp-host=01:23:45:67:89:ab,192.168.1.100 #привязка ip
tftp-root=/opt/dnsmasq/01:23:45:67:89:ab #другая система 
dhcp-option-force=209,01:23:45:67:89:ab/syslinux.cfg #другие параметры загрузки

Если есть клиенты по wifi

Т.к. в LFN вырезано все для wifi - оптимально загружать с флэшки какой-либо линукс с поддержкой wifi и RDP клиентом (например remmina)

Если есть ARM клиенты (твбокс)

Тест LFN в Virtualbox

  1. Создать 2 виртуалки с 1 сетевой картой типа «Внутренняя сеть»
  2. На первой загрузить LFN сервер с iso.
  3. На второй нажать F12 + l

Горячие клавиши LFN

Внесение изменений в LFN

Может потребоваться для изменения ip , внешнего вида и т.п. Все изменения делаются под любым Linux на Linux файловой системе (на fat, ntfs нельзя)

  1. Пересборка initrd делается скриптом initrd.sh , который лежит рядом с ними
  2. Пересборка iso :
    • Разборка в директорию iso : sudo mkdir tmp iso && sudo mount lfn*.iso tmp && sudo cp -R tmp iso
    • Сборка скриптом iso-make-hybrid.sh в корне iso

Сервер initrd-lfn*s.xz

Клиент initrd-lfn*.zst

Сборка дополнительного софта

Делать можно в любом дистрибутиве с pfs-util (все LF*)

  1. Распаковать : lfn01/initrd.sh initrd-lfn01-2311.zst
  2. Скопировать в директорию lfn01 из репозитория LFD10 apt-d10-sf04.pfs
  3. sudo chroot2pfs -o soft –mlist initrd-lfn01-2311,apt-d10-sf04.pfs -command bash
  4. apt update && apt install нужный_вам_софт
  5. Полученную директорию soft копируем в lfn01/initrd-lfn01-2311
  6. Запаковать: lfn01/initrd.sh initrd-lfn01-2311 zst

Обсуждение

https://forum.puppyrus.org/index.php?topic=24165.msg187370#msg187370