UUGRN:Jails/Konzept: Unterschied zwischen den Versionen

Aus UUGRN
K (→‎Firewall: IPv6 und VPN-Integration ist derzeit kein Thema.)
K (→‎Software: linkfix)
 
(25 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Administrative Hinweise|Das Jailkonzept wird noch erarbeitet. Viele der hier getroffenen Aussagen sind derzeit noch als Planung zu verstehen.<br />
[[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.
Näheres dazu auf der [[Diskussion:{{PAGENAME}}|Diskussionsseite]]. --[[Benutzer:Rabe|RaBe]] 20:30, 13. Jun 2006 (CEST)}}


[[top.uugrn.org]] wird im Wesenetlichen Infrastrukturdienste für das Hosting von [[Jail]]s anbieten.
== Vereinsangebot ==
Jails sind virtuelle Systeme, die auf einem gemeinsamen Kernel laufen, jedoch voneinander getrennte Userlands haben, inkl. eigene Benutzerrechte.
[[UUGRN:Verein|UUGRN e.V.]] bietet seinen [[UUGRN:Mitgliedschaft|Mitgliedern]] eigene virtuelle Root-Server auf Jail-Basis an.  
[[UUGRN]] bietet seinen Mitgliedern auf Wunsch ein solches virtuelles System an. Dieser Artikel soll aufzeigen, welche Mechanismen wirken und welche Voraussetzungen es gibt.  
Diese Jails werden derzeit überwiegend auf [[UUGRN:Server/top|top.uugrn.org]] gehostet.


== Jail-Typen ==
Darüber hinaus werden Jails für teils gemeinsam genutzt Infrastrukturdienste wie etwa [[UUGRN:Jails/mail|Mailserver]], Webserver, [[UUGRN:Shell|Shellserver]] etc. eingesetzt.  
=== 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) ===
== Nutzung ==
Mitglieder-Jails werden mit einer Grundkonfiguration initialisiert, die einen gewissen Standardumfang enthält.
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:
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.
=== Verbindliche Policy ===
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.  
; siehe dazu: [[UUGRN:Jails/Nutzungsbedingungen]]


=== Partner-Jails (P) ===
== Einrichtung ==
Kooperationspartner von UUGRN bekommen für eigene Projekte (und ggf auch User) ein Jail zur Verfügung gestellt.  
=== Übergabe / Root ===
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.  


Hier gelten abweichend von der normalen Policy ggf. individuelle Zugriffsrechte und Befugnisse.
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.


== Einrichtung ==
;siehe dazu: [[UUGRN:Jails/einrichten]]
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 ===
=== Basis-Ausstattung ===
; FreeBSD Basissystem des jeweils aktuellen Releases:
{{UUGRN:Jails/Templates/Navigation}}
:* Standardumfang des Basissystems
; siehe auch: [[UUGRN:Jails/Templates]]
; 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:
== Systempflege und Betrieb ==
:* PERL 5.8
=== Basis-System ===
:** Standardausstattung p5-Module
Die Jail-Basissysteme werden zunächst auf [[UUGRN:Jails/sandbox]] getestet.
:* Python


; Web-Paket:
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'''.
:* Apache 1.3.x mit mod_ssl
:** div. Zusatzmodule
:* PHP5 plus zahlreiche Module
:* [[smarty]]
:* mod_perl


== Systempflege ==
=== Software ===
=== Basis-System ===
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]].
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) ===
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/.
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 ==
=== Backup ===
Die [[top.uugrn.org|Jail-Maschine]] wird regelmäßig per [[rsync]] auf [[bottom.uugrn.org|eine Ausweichmaschine]] kopiert.  
Die [[UUGRN:Server/top|Jail-Maschine]] wird regelmäßig per [[rsync]] auf [[UUGRN:Server/charm]] kopiert.  
Derzeit findet dies 1x pro Tag morgens statt. Restore-Wünsche bitte sehr zeitnah kommunizieren.
Derzeit findet dies 1x pro Tag morgens statt. Restore-Wünsche bitte sehr zeitnah kommunizieren.
Geplant ist der Betrieb eines Parallel-Servers.


Eine individuelle Sicherung mit Historie/Rollback findet derzeit nicht statt.
Eine individuelle Sicherung mit Historie/Rollback findet derzeit nicht statt.


== Firewall ==
;siehe auch: [[UUGRN:Backup]] und [[UUGRN:Server/top/backup]]
Die aktuelle Firewall-Policy für Mitglieder-Jails ist folgende:


* Ein- und ausgehende Verbindungen für TCP und UDP sind frei ausgenommen:
=== Firewall ===
** Port 25/tcp wird über zentrales MX angeboten (Spamschleudern etc), siehe [[UUGRN:Mailkonzept]]
Die aktuelle '''Firewall-Policy''' für Mitglieder-Jails ist folgende:
** 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)


Diese Policy kann sich jederzeit ändern oder erweitert werden.
; TCP und UDP:
Auf speziellen Wunsch hin können wir weitere deny-Regeln anbieten.
:* Ein- und ausgehende Verbindungen für TCP und UDP sind frei
:;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


== Nutzung ==
; Raw-Socket:
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").
:* Zugriff auf den raw-Socket sind nicht möglich (z.B. tcpdump)
:* 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.


=== Verbindliche Policy ===
'''Diese Policy kann sich jederzeit ändern oder erweitert werden.'''
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 ===
=== Was tun im Nofall? ===
Die Mitglieder-Jails werden ohne Benutzeraccounts angelegt.
Jedes Mitglied kann sein eigenes Jail von innen heraus selbst stoppen:  
Voraussetzung für die Schlüsselübergabe für den root-Zugriff ist ein Mitglieder-Account auf [[shell.uugrn.org]].
als root einfach <code># kill -9 -1</code> ausführen, beendet alle Prozesse im Jail-Kontext, das Jail wird somit gestoppt.
Zunächst muss dort ein mit Passphrase gesicherter SSH-Key erzeugt werden:
Ein Neustart kann durch die Administration veranlasst 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 ===
=== Beendigung ===
Zeile 134: Zeile 72:
* 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.
{| class="wikitable"
! IP
! Name
! Typ
! Beschreibung
|-
| 195.49.138.98
| [[intern.uugrn.org]]
| I
| Interne Infrastrukturdienste, zB [[intern.uugrn.org/MySQL|MySQL]]
|-
| 195.49.138.99
| [[verein.uugrn.org]]
| I
| Externe Infrastrukturdienste, z.B. Webseite und [[UUGRN:Mailingliste|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)
|-
|}


== Siehe auch ==
== Siehe auch ==
* [[top.uugrn.org]]
* [[UUGRN:Jails]]
* [[Jail|Hintergrundinformationen zu BSD Jails]]
:* [[UUGRN:Jails/Nutzungsbedingungen|Verbindliche Regeln für die Verwendung von UUGRN Jails]]
* [[Jail-Policy|Verbindliche Regeln für die Verwendung von UUGRN Jails]]
:* [[UUGRN:MySQL|MySQL Zugang auf dem zentralen MySQL Server]]
* [[intern.uugrn.org/MySQL|MySQL Zugang auf dem zentralen MySQL Server]]
* [[UUGRN:Server/top|top.uugrn.org]]
* [[UUGRN:Mailkonzept]]
* [[UUGRN:Mailkonzept]]
* [[UUGRN:Mitgliedschaft]]
* [[UUGRN:Mitgliedschaft]]


* [[Jail|Hintergrundinformationen zu BSD Jails]]
;Unterseiten:
<splist />




[[Kategorie:Verein]]
[[Kategorie:UUGRN:Jail|!]]
[[Kategorie:Jail]]

Aktuelle Version vom 22. April 2009, 10:57 Uhr

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.

Vereinsangebot[Bearbeiten]

UUGRN e.V. bietet seinen Mitgliedern eigene virtuelle Root-Server auf Jail-Basis an. Diese Jails werden derzeit überwiegend auf top.uugrn.org gehostet.

Darüber hinaus werden Jails für teils gemeinsam genutzt Infrastrukturdienste wie etwa Mailserver, Webserver, Shellserver etc. eingesetzt.

Nutzung[Bearbeiten]

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:

Verbindliche Policy[Bearbeiten]

Vor der "Übergabe" eines Mitglieder-Jails muss die Jail-Policy anerkannt und unterschrieben werden. Diese definiert, was "fair use" darstellt.

siehe dazu
UUGRN:Jails/Nutzungsbedingungen

Einrichtung[Bearbeiten]

Übergabe / Root[Bearbeiten]

Voraussetzung für die Schlüsselübergabe für den root-Zugriff ist ein Mitglieder-Account auf 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.

Mit Hilfe dieses Root-Logins im Jail können dann weitere Benutzer angelegt werden, mit denen man sich ohne Umweg über shell.uugrn.org einloggen kann.

siehe dazu
UUGRN:Jails/einrichten

Basis-Ausstattung[Bearbeiten]

siehe auch
UUGRN:Jails/Templates

Systempflege und Betrieb[Bearbeiten]

Basis-System[Bearbeiten]

Die Jail-Basissysteme werden zunächst auf UUGRN:Jails/sandbox getestet.

Updates des Basis-Systems in /usr/src werden von der 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[Bearbeiten]

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.

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/.

Backup[Bearbeiten]

Die Jail-Maschine wird regelmäßig per rsync auf UUGRN:Server/charm kopiert. Derzeit findet dies 1x pro Tag morgens statt. Restore-Wünsche bitte sehr zeitnah kommunizieren.

Eine individuelle Sicherung mit Historie/Rollback findet derzeit nicht statt.

siehe auch
UUGRN:Backup und UUGRN:Server/top/backup

Firewall[Bearbeiten]

Die aktuelle Firewall-Policy für Mitglieder-Jails ist folgende:

TCP und UDP
  • Ein- und ausgehende Verbindungen für TCP und UDP sind frei
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
  • Zugriff auf den raw-Socket sind nicht möglich (z.B. tcpdump)
  • 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.

Diese Policy kann sich jederzeit ändern oder erweitert werden.

Was tun im Nofall?[Bearbeiten]

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.

Beendigung[Bearbeiten]

  • 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.


Siehe auch[Bearbeiten]

Unterseiten
Jails/Konzept hat keine Unterseiten.