= Bereitstellung eines Mini-Linux (Kiosk)
Porteus ist ein auf Slackware basierendes Linux, welches von DVD, USB-Stick, HDD aber eben auch über PXE/TFTP/HTTP bootet und einen Browser, SSHD, VNCD bereitstellt.
== PXE
Der DHCP (densmasq) stellt neben der IP auch PXE-Bootmenu zur Verfügung. Mit dem TAG
{{{
pxe-service=x86PC,Porteus Kiosk,/kiosk/pxelinux,10.16.112.2
}}}
bootet jeder mit kiosk getaggte Client vom TFTPD auf 10.16.112.2
{{{
00:00:00:00:00:00,set:kiosk,kiosk01,12h
}}}
== TFTPD
TFTP-HPA stellt das TFTP-Root unter /srv/tftp bereit, im Unterordner kiosk müssen liegen:
{{{
pxelinux.0
pxelinux.cfg (Ordner)
|
+- default (Bootmenüeinträge für unbekannte Clients)
+- kiosk32 (Porteus 32)
+- kiosk64 (Porteus 64)
+- 01-MAC-Adresse (für spezielle clients - oder)
+- HEX (IP-Adresse in HEX, z.B. 0A107001 = 10.16.112.1)
}}}
Die Client-Dateien per SymLink auf kiosk32 oder kiosk64 legen:
{{{
#kiosk64
label porteus
menu label Porteus Kiosk 64bit
kernel porteus/vmlinuz
append initrd=porteus/initrd.xz,porteus/initrdpxe.xz quiet http_server=10.16.112.2/porteus/
#kiosk32
label porteus_i586
menu label Porteus Kiosk 32bit
kernel porteus_i586/vmlinuz
append initrd=porteus_i586/initrd.xz,porteus_i586/initrdpxe.xz quiet http_server=10.16.112.2/porteus_i586/
}}}
Unter /srv/tftpd/kiosk/porteus bzw. /srv/tftpd/kiosk/porteus_i586 liegen die Porteus-Dateien:
{{{
http (Ordner)
|
+- docs (Ordner)
|
+- default.jpg GNU_GPL kiosk.jpg kiosk.sgn License.txt version
+- xzm (Ordner)
|
+- 000-kernel.xzm 001-core.xzm 002-firefox.xzm 003-settings.xzm 004-wifi.xzm 08-ssh.xzm 09-x11vnc.xzm
initrdpxe.xz
initrd.xz
vmlinuz
}}}
== HTTPD
Der Apache2 stellt die Dateien unter /srv/tftp/kiosk/porteus/http als /porteus bzw. /srv/tftp/kiosk/porteus_i586/http als /porteus_i586 für den Boot bereit, /etc/apache2/sites-enabled/000-default:
{{{
Alias "/porteus" "/srv/tftpd/kiosk/porteus/http"
Options Indexes
Require all granted
Alias "/porteus_i586" "/srv/tftpd/kiosk/porteus_i586/http"
Options Indexes
Require all granted
}}}
== Porteus-Config
Porteus Kiosk legt in der Datei docs/kiosk.sgn eine verschlüsselte Konfiguration ab. In unserem Fall ist dort hinterlegt, dass beim Booten die eigentliche Konfiguration vom paedml.kg-fds.de geholt werden soll:
{{{
kiosk_config=http://paedml.kg-fds.de/kiosk/config.php
}}}
Auf dem paedml kann damit über die übergebene PCID (Porteus) oder die IP des Clients für jeden Client eine eigene Config übermittelt werden.
== Porteus-Boot
PXE-Boot (DHCP 10.16.112.2) zum TFTP (10.16.112.2), vor dort kommen vmlinuz, initrd.xz und initrdpxe.xz, die vom HTTP (10.16.112.2 - ist als APPEND-Parameter angehängt) die .xzm-Module nachladen. Ein C-Programm (/sbin/init) aus dem Modul 03-settings.xzm entschlüsselt die kiosk.sgn, lädt die Config vom paedml.kg-fds.de nach und startet den Client (X11, Firefox, VNCD und SSHD). Die zu ladende Webseite wird in der Config angegeben.