Bearbeiten von „UUGRN:Jails/Konzept“

Aus UUGRN

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und speichere dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 1: Zeile 1:
[[Jails]] sind virtuelle Systeme in [[FreeBSD]], die auf einem gemeinsamen Kernel laufen, jedoch voneinander getrennte Userlands haben, inkl. eigene Benutzer- und root-Rechte. Dieser Artikel soll das Konzept der [[UUGRN:Jails]] aufzeigen.
+
{{Administrative Hinweise|Das Jailkonzept wird noch erarbeitet. Viele der hier getroffenen Aussagen sind derzeit noch als Planung zu verstehen.<br />
 +
Näheres dazu auf der [[Diskussion:{{PAGENAME}}|Diskussionsseite]]. --[[Benutzer:Rabe|RaBe]] 20:30, 13. Jun 2006 (CEST)}}
  
== Vereinsangebot ==
+
[[top.uugrn.org]] wird im Wesenetlichen Infrastrukturdienste für das Hosting von [[Jail]]s anbieten.
[[UUGRN:Verein|UUGRN e.V.]] bietet seinen [[UUGRN:Mitgliedschaft|Mitgliedern]] eigene virtuelle Root-Server auf Jail-Basis an.  
+
Jails sind virtuelle Systeme, die auf einem gemeinsamen Kernel laufen, jedoch voneinander getrennte Userlands haben, inkl. eigene Benutzerrechte.
Diese Jails werden derzeit überwiegend auf [[UUGRN:Server/top|top.uugrn.org]] gehostet.
+
[[UUGRN]] bietet seinen Mitgliedern auf Wunsch ein solches virtuelles System an. Dieser Artikel soll aufzeigen, welche Mechanismen wirken und welche Voraussetzungen es gibt.  
  
Darüber hinaus werden Jails für teils gemeinsam genutzt Infrastrukturdienste wie etwa [[UUGRN:Jails/mail|Mailserver]], Webserver, [[UUGRN:Shell|Shellserver]] etc. eingesetzt.  
+
== Jail-Typen ==
 +
=== Infrastruktur-Jails (I) ===
 +
Infrastruktur-Jails erfüllen eine zentrale Afugabe für den Betrieb als solchen.
 +
Die 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.
  
== Nutzung ==
+
=== Mitglieder-Jails (M) ===
Das Jail-Konzept gewährt dem [[UUGRN:Mitgliedschaft|einzelnen Mitglied]] weitreichende Eigenverantwortung. Damit es jedoch nicht zu Betriebsbeeinträchtigungen kommt, müssen jewisse Standardregeln definiert und befolgt werden:
+
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 "home" beitet für alle Mitglieder Zugriff auf eine gemeinsame Umgebung, der Name wird evtl noch in "members" umgetauft.
  
=== Verbindliche Policy ===
+
=== Partner-Jails (P) ===
Vor der "Übergabe" eines [[UUGRN:Jails#Mitglieder-Jails|Mitglieder-Jails]] muss die [[UUGRN:Jails/Nutzungsbedingungen|Jail-Policy]] anerkannt und unterschrieben werden. Diese definiert, was "fair use" darstellt.
+
Kooperationspartner von UUGRN bekommen für eigene Projekte (und ggf auch User) ein Jail zur Verfügung gestellt.
; siehe dazu: [[UUGRN:Jails/Nutzungsbedingungen]]
+
Hier gelten abweichend von der normalen Policy individuelle Zugriffsrechte und Befugnisse.
  
 
== Einrichtung ==
 
== Einrichtung ==
=== Übergabe / Root ===
+
Die Einrichtung eines Jails erfolgt zentral.
Voraussetzung für die Schlüsselübergabe für den root-Zugriff ist ein [[UUGRN:Shell|Mitglieder-Account]] auf [[UUGRN:Jails/shell|shell.uugrn.org]]. Im Homeverzeichnis von username@shell.uugrn.org:.ssh/keyname muss ein gesicherter SSH-Key generiert werden. Der Publickey (.ssh/keyname.pub) wird initial als root-Login in root@userjail.uugrn.org:/root/.ssh/authorized_keys eingetragen.  
+
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.  
  
Mit Hilfe dieses Root-Logins im Jail können dann weitere Benutzer angelegt werden, mit denen man sich ohne Umweg über [[UUGRN:Jails/shell|shell.uugrn.org]] einloggen kann.
+
=== 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
  
;siehe dazu: [[UUGRN:Jails/einrichten]]
+
; Devel:
 +
:* PERL 5.8
 +
:** Standardausstattung p5-Module
 +
:* Python
  
=== Basis-Ausstattung ===
+
; Web-Paket:
{{UUGRN:Jails/Templates/Navigation}}
+
:* Apache 1.3.x mit mod_ssl
; siehe auch: [[UUGRN:Jails/Templates]]
+
:** div. Zusatzmodule
 +
:* PHP5 plus zahlreiche Module
 +
:* [[smarty]]
 +
:* mod_perl
  
== Systempflege und Betrieb ==
+
== Systempflege ==
 
=== Basis-System ===
 
=== Basis-System ===
Die Jail-Basissysteme werden zunächst auf [[UUGRN:Jails/sandbox]] getestet.  
+
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.
  
Updates des Basis-Systems in ''/usr/src'' werden von der [[UUGRN:Server/top|Hauptmaschine]] aus durchgeführt, ebenso wie der idR erforderliche ''mergemaster''. Dabei wird darauf geachtet, dass mauelle Änderungen in /etc nicht überschrieben werden. Bitte wichtige Änderungen mit Kommentar versehen (Zeile obendrüber) und '''selbst für Sicherheitskopien außerhalb von /etc sorgen'''.
+
=== 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.
  
=== Software ===
+
== Backup ==
Es gibt darüber hinaus ein global verfügbares ''/usr/ports/'', das read-only in allen Jails verfügbar ist, siehe auch [[FreeBSD/Ports/readonly]].
+
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.
  
Alles unter /usr/ports/ wird außerhalb der Jails gepflegt, im Wesentlichen sind es das regelmäßige Update der Ports, das Herunterladen der aktuellen Distfiles aller Installierten Ports in allen Jails (/usr/ports/distfiles/) und das periodische zur Verfügung stellen von vorkompilierten Packages unter /usr/ports/packages/.
+
== Firewall ==
 +
Die aktuelle Firewall-Policy für Mitglieder-Jails ist folgende:
  
=== Backup ===
+
* Ein- und ausgehende Verbindungen für TCP und UDP sind frei ausgenommen:
Die [[UUGRN:Server/top|Jail-Maschine]] wird regelmäßig per [[rsync]] auf [[UUGRN:Server/charm]] kopiert.  
+
** Port 25/tcp wird über zentrales MX angeboten (Spamschleudern etc)
Derzeit findet dies 1x pro Tag morgens statt. Restore-Wünsche bitte sehr zeitnah kommunizieren.
+
** 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.uugrn.org|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)
  
Eine individuelle Sicherung mit Historie/Rollback findet derzeit nicht statt.
+
Diese Policy kann sich jederzeit ändern oder erweitert werden.
 +
Auf speziellen Wunsch hin können wir weitere deny-Regeln anbieten.
  
;siehe auch: [[UUGRN:Backup]] und [[UUGRN:Server/top/backup]]
+
=== 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).
  
=== Firewall ===
+
=== VPN-Integration ===
Die aktuelle '''Firewall-Policy''' für Mitglieder-Jails ist folgende:
+
Wir prüfen die Möglichkeit, Mitglieder-Jails in VPN-Netze zu integrieren.
 +
Dieses könnte angeboten werden.
  
; TCP und UDP:
+
== Nutzung ==
:* Ein- und ausgehende Verbindungen für TCP und UDP sind frei
+
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").
:;Ausnahmen:
 
::* 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''), siehe [[UUGRN:DNS-Konzept]].
 
Auf speziellen Wunsch können weitere deny-Regeln eingerichtet werden
 
  
; Raw-Socket:
+
=== Verbindliche Policy ===
:* Zugriff auf den raw-Socket sind nicht möglich (z.B. tcpdump)
+
Vor der "Übergabe" eines Mitglieder-Jails muss die (noch zu erstellende) [[Jail-Policy]] anerkannt und unterschrieben werden.
:* ICMP (ping) ist aus den Jails heraus nicht möglich, [[UUGRN:Server/top|top]] selbst ist allerdings in der Lage, auf allen IPs ICMP zu empfangen und zu senden.
+
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.
  
'''Diese Policy kann sich jederzeit ändern oder erweitert werden.'''
+
=== Einrichtung und Übergabe / Root ===
 +
Initial wird ein Benutzer mit der UID 1000 angelegt, welcher der Gruppe ''staff'' und erweitert der Gruppe ''wheel'' angehört. Es existiert kein initiales Root-Passwort, ein root-Login ist zunächst nicht möglich. Unter der Kennung des Standardbenutzers kann sudo ausgeführt werden, mit dem man eine rootshell starten kann. Der Name des Standardbenutzers entspricht (initial) dem Jailnamen, kann nachträglich durch sudo/vipw geändert werden. Der Standardbenutzer erhält ebenso wie root zunächst kein Passwort, der erste Login muss daher über einen ssh-key erfolgen, der vorbereitend der Administration übergeben werden muss.
  
=== Was tun im Nofall? ===
+
=== Regeln bei Verstoß ===
Jedes Mitglied kann sein eigenes Jail von innen heraus selbst stoppen:
+
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.
als root einfach <code># kill -9 -1</code> ausführen, beendet alle Prozesse im Jail-Kontext, das Jail wird somit gestoppt.
+
Bei (wiederholtem) Mißbrauch der Jails wird die Administration bzw. Vereinsführung je nach Schwere oder Dringlichkeit handeln, um Schaden abzuwenden.
Ein Neustart kann durch die Administration veranlasst werden.
+
Entsprechende Szenarien werden detailliert in der [[Jail-Policy]] enthalten sein.
 +
Derartige Aktionen durch die Vereinsführung werden öffentlich dokumentiert.  
  
 
=== Beendigung ===
 
=== Beendigung ===
Zeile 72: Zeile 114:
 
* Auf Wunsch kann das Jail in Form einer Datensicherung (Gnu-tar) zur Verfügung gestellt werden.
 
* 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 <code># kill -9 -1</code> 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.
  
== Siehe auch ==
+
{| border="1"
* [[UUGRN:Jails]]
+
! IP
:* [[UUGRN:Jails/Nutzungsbedingungen|Verbindliche Regeln für die Verwendung von UUGRN Jails]]
+
! Name
:* [[UUGRN:MySQL|MySQL Zugang auf dem zentralen MySQL Server]]
+
! Typ
* [[UUGRN:Server/top|top.uugrn.org]]
+
! Beschreibung
* [[UUGRN:Mailkonzept]]
+
|-
 +
| 195.49.138.98
 +
| intern.uugrn.org
 +
| I
 +
| Interne Infrastrukturdienste, zB [[MySQL]]
 +
|-
 +
| 195.49.138.99
 +
| verein.uugrn.org
 +
| I
 +
| Externe Infrastrukturdienste, z.B. [[Apache]], [[IRC]]
 +
|-
 +
| 195.49.138.100
 +
| [[shell.uugrn.org]]
 +
| M
 +
| User-Jail für (alle) Mitglieder von UUGRN
 +
|-
 +
| 195.49.138.101
 +
| mile.uugrn.org
 +
| M
 +
| Michael Lestinsky
 +
|-
 +
| 195.49.138.102
 +
| rabe.uugrn.org
 +
| M
 +
| Raphael Becker
 +
|-
 +
| 195.49.138.103
 +
| sky.uugrn.org
 +
| M
 +
| Michael Sommer
 +
|-
 +
| 195.49.138.104
 +
| lion.uugrn.org
 +
| M
 +
| Philipp Schafft
 +
|-
 +
| 195.49.138.105
 +
| che.uugrn.org
 +
| M
 +
| Hans Hermann Schafft
 +
|-
 +
| 195.49.138.106
 +
| klotz.uugrn.org
 +
| M
 +
| Alexander Klotz
 +
|-
 +
| 195.49.138.107
 +
| unger.uugrn.org
 +
| M
 +
| Jürgen Unger
 +
|-
 +
| 195.49.138.108
 +
| hgw.uugrn.org
 +
| M
 +
| Hans-Günther Weigand
 +
|-
 +
| 195.49.138.109
 +
| mh.uugrn.org
 +
| M
 +
| Markus Hochholdinger
 +
|-
 +
| 195.49.138.110
 +
| bert.uugrn.org
 +
| M
 +
| Bertold Roth
 +
|-
 +
| 195.49.138.111
 +
| .uugrn.org
 +
| M
 +
|
 +
|-
 +
| 195.49.138.112
 +
| .uugrn.org
 +
| M
 +
|
 +
|-
 +
| 195.49.138.113
 +
| .uugrn.org
 +
| M
 +
|
 +
|-
 +
| 195.49.138.114
 +
| .uugrn.org
 +
| M
 +
|
 +
|-
 +
| 195.49.138.115
 +
| .uugrn.org
 +
| M
 +
|
 +
|-
 +
| 195.49.138.116
 +
| .uugrn.org
 +
| M
 +
|
 +
|-
 +
| 195.49.138.117
 +
| .uugrn.org
 +
| M
 +
|
 +
|-
 +
| 195.49.138.118
 +
| .uugrn.org
 +
| M
 +
|
 +
|-
 +
| 195.49.138.119
 +
| .uugrn.org
 +
| M
 +
|
 +
|-
 +
| 195.49.138.120
 +
| .uugrn.org
 +
| M
 +
|
 +
|-
 +
| 195.49.138.121
 +
| .uugrn.org
 +
| M
 +
|
 +
|-
 +
| 195.49.138.122
 +
| .uugrn.org
 +
| M
 +
|
 +
|-
 +
| 195.49.138.123
 +
| noname.uugrn.org
 +
| P
 +
| Partnerjail [[NoName|NoName e.V.]] <!-- sofern es zustande kommt -->
 +
|-
 +
| 195.49.138.124
 +
| sandbox.uugrn.org
 +
| I
 +
| Jail zum Basteln und Ausprobieren
 +
|-
 +
| 195.49.138.125
 +
| testjail.uugrn.org
 +
| I
 +
| Jail zum Testen neuer "Produktions"-Jails (pre-rollout)
 +
|-
 +
|}
 +
 
 +
== siehe auch ==
 +
* [[top.uugrn.org]]
 +
* [[jails|Hintergrundinformationen zu BSD Jails]]
 +
* [[Jail-Policy|Verbindliche Regeln für die Verwendung von UUGRN Jails]]
 
* [[UUGRN:Mitgliedschaft]]
 
* [[UUGRN:Mitgliedschaft]]
  
* [[Jail|Hintergrundinformationen zu BSD Jails]]
 
 
;Unterseiten:
 
<splist />
 
  
  
[[Kategorie:UUGRN:Jail|!]]
+
[[Kategorie:Server]]
 +
[[Kategorie:Verein]]

Bitte kopiere keine Inhalte, die nicht Deine eigenen sind!

Du gibst uns hiermit Deine Zusage, dass
  • Du den Text nicht aus Wikipedia kopiert hast
  • Du den Text selbst verfasst hast
  • oder der Text entweder
    • Allgemeingut (public domain) ist
    • oder der Copyright-Inhaber seine Zustimmung gegeben hat.
Wichtig
  • Benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Copyright-Inhabers!
  • Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der 'Diskussion:'-Seite darauf hin.
  • Bitte beachte, dass alle UUGRN-Beiträge automatisch unter der der Creative Commons Lizenz stehen.
  • Falls Du nicht möchtest, dass Deine Arbeit hier von anderen verändert und verbreitet wird, dann drücke nicht auf "Artikel Speichern".

Bitte beantworte die folgende Frage, um diese Seite speichern zu können (weitere Informationen):

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)

Folgende Vorlagen werden auf dieser Seite verwendet: