UUGRN:Jails/Konzept
Das Jailkonzept wird noch erarbeitet. Viele der hier getroffenen Aussagen sind derzeit noch als Planung zu verstehen.
Näheres dazu auf der Diskussionsseite. --RaBe 20:30, 13. Jun 2006 (CEST)
top.uugrn.org wird im Wesenetlichen Infrastrukturdienste für das Hosting von Jails anbieten.
Jails sind virtuelle Systeme, die auf einem gemeinsamen Kernel laufen, jedoch voneinander getrennte Userlands haben, inkl. eigene Benutzerrechte.
UUGRN bietet seinen Mitgliedern auf Wunsch ein solches virtuelles System an. Dieser Artikel soll aufzeigen, welche Mechanismen wirken und welche Voraussetzungen es gibt.
Jail-Typen
Infrastruktur-Jails (I)
Infrastruktur-Jails erfüllen eine zentrale Aufgabe für den Betrieb als solchen. Sie haben eine auf den Zweck zugeschittene Grundkonfiguration und auch spezielle Zugriffsrechte und Firewall-Regeln. Root-Rechte liegen bei der Administration des Vereins. Ein Userbetrieb findet hier NICHT statt.
Mitglieder-Jails (M)
Mitglieder-Jails werden mit einer Grundkonfiguration initialisiert, die einen gewissen Standardumfang enthält. Das jeweilige Mitglied hat root-Rechte am eigenen Jail.
Ein spezielles Sammeljail shell.uugrn.org beitet für alle Mitglieder Zugriff auf eine gemeinsame Umgebung.
Partner-Jails (P)
Kooperationspartner von UUGRN bekommen für eigene Projekte (und ggf auch User) ein Jail zur Verfügung gestellt. Hier gelten abweichend von der normalen Policy individuelle Zugriffsrechte und Befugnisse.
Einrichtung
Die Einrichtung eines Jails erfolgt zentral. Es wird normalerweise ein schlüsselfertiges Jail angeboten, welches einen Standardumfang an vorkonfigurierter Software enthält. Auf Wunsch kann ein Minimal-System (ohne Zusatzpackages) angeboten werden.
Basis-Ausstattung
- FreeBSD Basissystem des jeweils aktuellen Releases
-
- Standardumfang des Basissystems
- Shells
-
- bash
- zsh
- ksh
- Standard-Tools
-
- coreutils (The Free Software Foundation's core utilities)
- findutils (The GNU find utilities)
- ImageMagick
- rsync
- sudo
- Console-Standardsoftware
-
- Midnight Commander
- mutt
- lynx
- Editoren
-
- vim 6
- nano
- Devel
-
- PERL 5.8
- Standardausstattung p5-Module
- Python
- PERL 5.8
- Web-Paket
-
- Apache 1.3.x mit mod_ssl
- div. Zusatzmodule
- PHP5 plus zahlreiche Module
- smarty
- mod_perl
- Apache 1.3.x mit mod_ssl
Systempflege
Basis-System
Die Jail-Basissysteme werden zunächst auf testjail.uugrn.org getestet. Wir werden auf den jeweiligen RELEASE-Ständen fahren. Wir prüfen derzeit, wie sich Jails zentral updaten lassen, da es nicht erwünscht ist (jedoch möglich sein wird), innerhalb vom Jail eigene Systeme zu kompilieren.
Software (ports)
Es wird ein zentrales Package Verzeichnis geben, welches in den Jails r/o gemountet sein wird. Darüberhinaus können Packages aus dem Internet installiert werden. Es wird weiterhin zentral gepflegte Ports geben (/usr/ports), welche in den Jails r/o verfügbar sein werden. Durch Konfiguration wird es dennoch ermöglicht, selbst Ports zu bauen. Siehe dazu FreeBSD Ports/readonly.
Backup
Es wird ein Backup-Konzept auf Jail-Ebene eingerichtet. Ein Backup findet regelmäßig in Form von Vollsicherungen der jeweiligen Jail-Verzeichnisse statt. Restore-Wünsche sind mit der Administration zu klären.
Firewall
Die aktuelle Firewall-Policy für Mitglieder-Jails ist folgende:
- Ein- und ausgehende Verbindungen für TCP und UDP sind frei ausgenommen:
- Port 25/tcp wird über zentrales MX angeboten (Spamschleudern etc), siehe UUGRN:Mailkonzept
- Port 53/udp wird über zentralen DNS gehostet. Einrichtung und Pflege eigener Domains ist möglich (über hidden Primary).
- ICMP (ping) ist aus den Jails heraus nicht möglich, top selbst ist allerdings in der Lage, auf allen IPs ICMP zu empfangen und zu senden.
- Zugriff auf den raw-Socket sind nicht möglich (z.B. tcpdump)
Diese Policy kann sich jederzeit ändern oder erweitert werden. Auf speziellen Wunsch hin können wir weitere deny-Regeln anbieten.
IPv6
Die aktuelle Implementierung von FreeBSD Jails erlaubt keine Verwendung von IPv6. Es wird allerdings aktuell daran gearbeitet, die notwendigen Teile im Kernel zu virtualisieren und somit auch IPv6 zu ermöglichen. Sobald dieses sinnvoll funktioniert und angeboten werden kann, wird UUGRN ein IPv6-Prefix einrichten und pro Jail ein /64 anbieten (sofern möglich).
VPN-Integration
Wir prüfen die Möglichkeit, Mitglieder-Jails in VPN-Netze zu integrieren. Dieses könnte angeboten werden.
Nutzung
Das jail-Konzept gewährt dem einzelnen Mitglied weitreichende Eigenverantwortung. Damit es jedoch nicht zu Betriebsbeeinträchtigungen kommt, müssen jewisse Standardregeln definiert und befolgt werden ("policy").
Verbindliche Policy
Vor der "Übergabe" eines Mitglieder-Jails muss die (noch zu erstellende) Jail-Policy anerkannt und unterschrieben werden. Diese wird insbesondere definieren, was "fair use" darstellt. Die Grundpolicy wird enthalten: Erlaubt ist alles, was einem "fair use" entspricht. Diese weitreichende Freiheit wird allerdings definierte Grenzen haben, die überprüft und durchgesetzt werden, um Mißbrauch vorzubeugen. Im Zweifel sind Aktionen vorher mit der Vereinsführung oder Administration abzustimmen. Sonderregelungen werden öffentlich dokumentiert.
Einrichtung und Übergabe / Root
Die Mitglieder-Jails werden ohne Benutzeraccounts angelegt. Voraussetzung für die Schlüsselübergabe für den root-Zugriff ist ein Mitglieder-Account auf shell.uugrn.org. Zunächst muss dort ein mit Passphrase gesicherter SSH-Key erzeugt werden:
[mitglied@shell ~]$ ssh-keygen -t dsa
Standardmäßig werden hierbei die beiden Dateien ~/.ssh/id_dsa und ~/.ssh/id_dsa.pub erzeugt. Vom Einrichter des Mitglieder-Jails wird mitglied@shell:~/.ssh/id_dsa.pub an root@mitgliedsjail:.ssh/authorized_keys angehängt, wodurch das Mitglied sein Jail initial als root einloggen kann:
[mitglied@shell ~]$ ssh root@meinjail.uugrn.org
Nach dem initialen root-Login sollte das root-Passwort unbedingt gesetzt werden:
[root@meinjail ~]# passwd
und normale Benutzeraccounts eingerichtet werden:
[root@meinjail ~]# adduser
Der SSH-Rootzugriff von mitglied@shell.uugrn.org aus kann entweder bestehen bleiben, oder aber gelöscht werden. Hierzu ist es erforderlich, die Datei authorized_keys entsprechend zu bearbeiten:
[root@meinjail ~]# vi ~/.ssh/authorized_keys
Regeln bei Verstoß
Kommerzielle Nutzung oder illegale Aktivitäten werden als schwerer Verstoß behandelt, was zu einer unverzüglichen Deaktivierung des Jails bis zur Klärung des Sachverhalts führt. Bei (wiederholtem) Mißbrauch der Jails wird die Administration bzw. Vereinsführung je nach Schwere oder Dringlichkeit handeln, um Schaden abzuwenden. Entsprechende Szenarien werden detailliert in der Jail-Policy enthalten sein. Derartige Aktionen durch die Vereinsführung werden öffentlich dokumentiert.
Beendigung
- Ein Jail wird auf eigenen Wunsch des Mitglieds hin entweder zweitweise deaktiviert oder gelöscht, z.B. wenn keine weitere aktive Nutzung (und Pflege) mehr gewünscht ist bzw. stattfindet.
- Ein Jail wird im Notfall durch die Systemadministration deaktiviert und dokumentiert (z.B. bei Mißbrauch // Abwenden weiterer Schäden)
- Ein Jail wird auf eigenen Wunsch oder bei Vorliegen entsprechender Gründe gelöscht.
- Auf Wunsch kann das Jail in Form einer Datensicherung (Gnu-tar) zur Verfügung gestellt werden.
Was tun im Nofall?
Jedes Mitglied kann sein eigenes Jail von innen heraus selbst stoppen:
als root einfach # kill -9 -1
ausführen beendet alle Prozesse im Jail-Kontext, das Jail wird somit gestoppt.
Ein Neustart kann durch die Administration veranlasst werden.
Jail-Liste
Jails sind an IP-Adressen gekoppelt. Die folgende Liste gibt einen ersten Entwurf der vergebenen Jails wieder. Ein eigenes Jail bekommt jeder, der Mitglied im Verein ist auf Nachfrage, sobald die Maschine einsatzbereit ist.
IP | Name | Typ | Beschreibung |
---|---|---|---|
195.49.138.98 | intern.uugrn.org | I | Interne Infrastrukturdienste, zB MySQL |
195.49.138.99 | verein.uugrn.org | I | Externe Infrastrukturdienste, z.B. Webseite und Mailingliste |
195.49.138.100 | shell.uugrn.org | M | User-Jail für (alle) Mitglieder von UUGRN |
195.49.138.101 | mile.uugrn.org | M | Benutzer-Jail |
195.49.138.102 | rabe.uugrn.org | M | Benutzer-Jail |
195.49.138.103 | trickster.uugrn.org | M | Benutzer-Jail |
195.49.138.104 | .uugrn.org | M | |
195.49.138.105 | che.uugrn.org | M | Benutzer-Jail |
195.49.138.106 | klotz.uugrn.org | M | Benutzer-Jail |
195.49.138.107 | unger.uugrn.org | M | Benutzer-Jail |
195.49.138.108 | hgw.uugrn.org | M | Benutzer-Jail |
195.49.138.109 | mh.uugrn.org | M | Benutzer-Jail |
195.49.138.110 | bert.uugrn.org | M | Benutzer-Jail |
195.49.138.111 | |||
195.49.138.112 | |||
195.49.138.113 | |||
195.49.138.114 | |||
195.49.138.115 | |||
195.49.138.116 | |||
195.49.138.117 | |||
195.49.138.118 | |||
195.49.138.119 | |||
195.49.138.120 | |||
195.49.138.121 | |||
195.49.138.122 | |||
195.49.138.123 | mail.uugrn.org | I | UUGRN Mail-Exchange |
195.49.138.124 | sandbox.uugrn.org | I | Jail zum Basteln und Ausprobieren |
195.49.138.125 | (reserviert für Hardware) |