Table of Contents

This page was created due to lack of sufficient documentation about the PXE Boot process on the official Porteus Kiosk web site. Porteus-Kiosk maintainers: please feel free to use my work to improve the official documentation.

It is possible to run Porteus-Kiosk on machines with no local storage, booting via PXE. Config is retrieved from the pxe server over http during bootup. This is NOT possible using the official remote management feature, as detailed below.

Porteus customisation and boot methods primer

How porteus kiosk official remote management operation works

This requires local storage (a hard disk in the client machine)

For this reason the remote management feature in porteus kiosk wont work on PXE - there's no way for the client to “reburn” it's configuration once it checks for remote management, as it has no local storage.

How porteus-kiosk works from PXE

Porteus-Kiosk settings are stored in the docs/kiosk.sgn file which is encrypted with an unknown private key. This was briefly investigated but the developers appear to have made the questionable decision to obscure this method. A head start to further investigations would be a string search for “first_run”, “/opt/scripts/extras” and the /opt/scripts directory in general. @fanthom: please document this method in the open on the porteus kiosk web site documentation, so it can be properly audited. Security through obscurity is not security at all.

Porteus-Kiosk encrypted config file kiosk.sgn details

This file is generated by the kiosk wizard that runs when the original ISO is booted. This welcome wizard then generates an ISO file with the kiosk.sgn burnt in, which can optionally be “installed” on local storage or saved for transfer to the PXE server. To extract the kiosk.sgn file after “installing” porteus, simply boot up an alternate live distro, mount the second partition, and take a copy of /docs/kiosk.sgn This should then be copying into the http structure of the PXE server.

Creating a porteus kiosk config

Implementation notes

KERNEL /porteus-kiosk-4.5.0/vmlinuz
APPEND initrd=/porteus-kiosk-4.5.0/initrd.xz,/porteus-kiosk-4.5.0/initrdpxe.xz http_server=10.2.100.32:8088