Arbeitspapier zum Einstieg in paedML 6/Ubuntu-Server/IPFire
Stand 14.01.2012
IPFire
- Aktuelles Core55-ISO von http://www.ipfire.org/downloads herunterladen.
- Installation nach Anleitung: http://www.ipfire.org/support
- Adress-Einstellungen bei der Installation analog zu paedML-IPCop-Installation.
- Auf Webinterface einloggen: https://10.16.1.254:444.
- Zeitserver/Uhrzeit einstellen:
- dienste | Zeitserver:
- Schaltfläche: Stelle jetzt die Uhrzeit betätigen.
- dienste | Zeitserver:
- SSH-Zugriff aktivieren:
- system | SSH-Zugriff: Häkchen setzen bei
- SSH-Zugriff
- Passwortbasierte Authentifizierung zulassen
- Authentifizierung auf Basis öffentlicher Schlüssel zulassen
- system | SSH-Zugriff: Häkchen setzen bei
- Transparenter Proxy:
- netzwerk | Webproxy anklicken:
- Aktiviert auf Green
- Transparent auf Green
- netzwerk | Webproxy anklicken:
- paedML-IPFire-Addon:
- Skripte für Internetsperre etc. auf IPFire direkt ablegen und vom Server aus aufrufen. Spart einmal Dateidownload.
Ubuntu Server
- 64Bit-Version verwenden.
- Die Server-Variante gibt es nur mit klassischem textbasiertem Installer (Alternate Installation).
- Netzwerk-Adresse für internes Interface paedML konform einrichten, damit Internetverbindung über IPFire möglich.
- Als DNS (vorläufig) & Gateway Firewall-IP verwenden
- Partitionierungsvorschlag (42GB VDI)
- root 5GB ext4
- swap 2GB
- home 5GB ext4 usrquota,grpquota
- var 30GB ext4 usrquota,grpquota
- paedML-Quellendatei /etc/apt/sources.list.d/paedml60.list mit folgendem Inhalt erstellen:
deb http://pkg.lml.support-netz.de/paedml60-testing ./ deb-src http://pkg.lml.support-netz.de/paedml60-testing ./
- paedML-Releasekey installieren:
# wget http://pkg.lml.support-netz.de/paedml-release.asc -O - | apt-key add -
- Quellenlisten aktualisieren und linuxmuster-base installieren:
# aptitude update # aptitude install linuxmuster-base
- paedML einrichten:
# linuxmuster-setup --first
- SSH-Link zu IPFire einrichten:
# ssh -p 222 10.16.1.254 # mkdir .ssh # exit # scp -P 222 ~/.ssh/id_dsa.pub 10.16.1.254:/root/.ssh/authorized_key
- Stand:
- sophomorix, nagios und sind nicht installiert.
- Adminbenutzer adminstrator, pgmadmin, wwwadmin und linbo werden angelegt.
- Zusätzliche Benutzer können mit smbldap-tools angelegt werden.
- Schulkonsole zeigt "Internal Server Error".
- DHCP-, DNS, LINBO, Apache, Postgresql, Mysql, LDAP laufen.
- import_workstations geht wg. fehlendem sophomorix noch nicht.
Upstart (1)
Prinzip
- Ersetzt künftig den auf Runleveln basierten SysVinit-Bootprozess.
- Reine Ubuntu-Entwicklung (andere Distris ersetzen SysVinit durch systemd).
- Vollständig abwärtskompatibel zu SysVinit.
- Im Moment Mischbetrieb, da noch nicht alle Dienste (z.B. postfix) umgestellt sind.
- Neuer Ansatz: Dienste werden ereignisorientiert und nicht mehr nacheinander gestartet.
- Dienste, die nicht von einander abhängig sind, können parallel gestartet werden.
- Dadurch kann der Bootprozess beschleunigt werden.
- Upstart soll in der Zukunft nicht nur den Bootprozess steuern sondern zum zentralen Verwaltungsinstrument von allen Systemereignissen werden.
Start-/Stop-Mechanismen
- Die Datei /etc/inittab entfällt.
- Zur Steuerung von Diensten werden sog. Init-Jobs definiert, deren Skripte unter /etc/init mit der Erweiterung .conf abgelegt werden.
- Die Skripte werden beim Bootprozess automatisch alle abgearbeitet.
- Im Skript werden die Bedingungen für den Start eines bestimmten Dienstes festgelegt.
- Zentrales Werkzeug zur Steuerung von Diensten ist initcl.
- Der Befehl
# initctl list
gibt eine Liste aller Init-Jobs und ihres Status aus. (2) - Das Starten und Beenden von Diensten (Init-Jobs) kann ebenfalls über initctl erfolgen:
# initctl [start|stop] <init-job>
Alternativ kann auch# [start|stop] <init-job>
oder# service <init-job> [start|stop]
verwendet werden. - Die Runlevel, in denen ein bestimmter Dienst gestartet werden soll, definiert man in der Zeile
start on runlevel [2345]
der jeweiligen conf-Datei. - In welchen Runleveln der Dienst gestoppt werden soll, wird in der Zeile
stop on runlevel [!2345]
festgelegt. Das Ausrufungszeichen in obigem Beispiel negiert die folgenden Argumente, d.h. der Dienst wird in allen Runleveln außer 2345 beendet. - Beim Beenden eines Init-Jobs sendet Upstart ihm das Terminate-Signal (SIGTERM) und erwartet, dass er sich selbst beendet. Geschieht das nicht, wird er nach einigen Sekunden per Kill-Signal (SIGKILL) auf die harte Tour entsorgt.
Konfiguration
- Beispiel: Die Datei /etc/init/smbd.conf steuert das Start-/Stop-Verhalten des Samba-Dienstes:
description "SMB/CIFS File Server" author "Steve Langasek <steve.langasek@ubuntu.com>" start on (local-filesystems and net-device-up) stop on runlevel [!2345] respawn pre-start script RUN_MODE="daemons" [ -r /etc/default/samba ] && . /etc/default/samba [ "$RUN_MODE" = inetd ] && { stop; exit 0; } install -o root -g root -m 755 -d /var/run/samba end script exec smbd -F - Das Schlüsselwort start on legt die Ereignisse fest, die für den Start des Init-Jobs vorausgesetzt werden. Im Beispiel müssen also für den Start des Samba-Dienstes die lokalen Dateisysteme und das Netzwerk zur Verfügung stehen.
- stop on definiert, wann der Dienst heruntergefahren wird (s.o.).
- Das Schlüsselwort respawn veranlasst Upstart den Prozess immer wieder neu zu starten, wenn er sich beendet.
- Zwischen pre-start script und end script kann man ein Shellskript einfügen, das abgearbeitet wird bevor der eigentliche Dienst gestartet wird.
- Analog dazu gibt es die Möglichkeit mit post-start script ein Shellskript zu definieren, das parallel zum Start des Dienstes ausgeführt wird.
- Schließlich sorgt die Anweisung exec für den - von Upstart überwachten - Start des Dienstes.
- Geänderte Konfigurationsdateien werden erst bei einem Neustart von Upstart eingelesen. Mit dem Befehl
# initctl reload-configuration
kann das Neueinlesen im laufenden System veranlasst werden.
Zu klären/ToDo
- Künftig Zeit, DNS & DHCP der Firewall verwenden?
- Default-Firewalleinstellungen: Was ist erlaubt von GRÜN nach ROT?
- Internetsperre über CLE?
- Sicherheitsaktualisierungen automatisch installieren?
- sophomporix:
- Abhängigkeit von perl-suid ist obsolet.
- wird odbc-postgresql noch benötigt?
(1) Links zu Upstart
- http://wiki.ubuntuusers.de/upstart
- http://www.heise.de/open/artikel/Schneller-booten-mit-Upstart-844394.html
- http://www.galileocomputing.de/artikel/gp/artikelID-343
(2) Ausgabe von initcl list auf minimalem Ubuntu-Server-System:
root@server:~# initctl list mountall-net stop/waiting rc stop/waiting rsyslog start/running, process 534 screen-cleanup stop/waiting tty4 start/running, process 618 udev start/running, process 260 upstart-udev-bridge start/running, process 252 ureadahead-other stop/waiting nmbd start/running, process 2475 apport stop/waiting console-setup stop/waiting hwclock-save stop/waiting irqbalance stop/waiting plymouth-log stop/waiting tty5 start/running, process 623 smbd start/running, process 2448 failsafe stop/waiting atd start/running, process 639 dbus start/running, process 545 mounted-var stop/waiting plymouth stop/waiting ssh start/running, process 515 udev-fallback-graphics stop/waiting control-alt-delete stop/waiting hwclock stop/waiting mounted-proc stop/waiting module-init-tools stop/waiting setvtrgb stop/waiting cron start/running, process 640 mountall stop/waiting mounted-debugfs stop/waiting mounted-run stop/waiting plymouth-stop stop/waiting rcS stop/waiting ufw start/running wait-for-state stop/waiting friendly-recovery stop/waiting rc-sysinit stop/waiting upstart-socket-bridge start/running, process 421 tty2 start/running, process 630 udevtrigger stop/waiting mounted-dev stop/waiting tty3 start/running, process 631 udev-finish stop/waiting hostname stop/waiting mountall-reboot stop/waiting mountall-shell stop/waiting mounted-tmp stop/waiting network-interface (lo) start/running network-interface (eth0) start/running plymouth-splash stop/waiting plymouth-upstart-bridge stop/waiting tty1 start/running, process 757 udevmonitor stop/waiting dmesg stop/waiting network-interface-security (network-interface/eth0) start/running network-interface-security (network-interface/lo) start/running network-interface-security (networking) start/running networking stop/waiting procps stop/waiting tty6 start/running, process 634 ureadahead stop/waiting
