BSD-Wiki

Mitschrift einer FreeBSD-Installation

Benutzer-Werkzeuge

Webseiten-Werkzeuge


jail_erstellen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
jail_erstellen [2014/09/03 22:16]
rakor Anfang Umstellung auf Jail.conf
jail_erstellen [2017/10/02 13:40] (aktuell)
Zeile 105: Zeile 105:
  
 ====== Anpassen des Hostsystems ====== ====== Anpassen des Hostsystems ======
 +Spätestens seit FreeBSD 10 werden Jails in einer eigenen Konfigurationsdatei des Hostsystems,​ der ///​etc/​jail.conf//,​ verwaltet.
 +
 ===== jail.conf ===== ===== jail.conf =====
 +Die //​jail.conf//​ besteht aus einem allgemeinen Teil, der grundlegende Einstellungen für alle Jails enthält, und einem Teil der die speziellen Einstellungen jeder einzelnen Jail definiert.
 +
 <​code>​ <​code>​
 ##########################################​ ##########################################​
Zeile 111: Zeile 115:
  
 # Jailstart # Jailstart
-exec.start="​sleep 1"; +exec.start="/​bin/​sh /​etc/​rc";​
-exec.start+="/​bin/​sh /​etc/​rc";​+
  
 # Jailstop # Jailstop
Zeile 122: Zeile 125:
 # Devfs mounten # Devfs mounten
 mount.devfs;​ mount.devfs;​
- 
-# Standard ruleset fuer Jails 
-#​devfs_ruleset=4;​ 
  
 # Netzwerkkarte # Netzwerkkarte
Zeile 139: Zeile 139:
 </​code>​ </​code>​
  
 +Für jede weitere Jail wird ein neuer Abschnitt in den unteren Teil eingefügt.
 ===== Jail im RC-System eintragen ===== ===== Jail im RC-System eintragen =====
 Um die Jail dem System bekannt zu machen und auf einfache Weise über das RC-System starten zu können wird die Datei ///​etc/​rc.conf//​ noch angepasst. Um die Jail dem System bekannt zu machen und auf einfache Weise über das RC-System starten zu können wird die Datei ///​etc/​rc.conf//​ noch angepasst.
Zeile 150: Zeile 151:
 Der Eintrag **jail_enable** definiert ob Jails prinzipiell gestartet werden oder nicht. Unter **jail_list** wird eine durch Leerzeichen getrennte Liste von Jailnamen erwartet welche beim Systemstart automatisch gestartet werden sollen. Der Eintrag **jail_enable** definiert ob Jails prinzipiell gestartet werden oder nicht. Unter **jail_list** wird eine durch Leerzeichen getrennte Liste von Jailnamen erwartet welche beim Systemstart automatisch gestartet werden sollen.
  
-Die folgenden Zeilen sind für jede Jail angepasst zu erzeugen und sollten selbsterklärend sein. Ohne ein devfs in der Jail sind einige DInge wie z.B. ssh-Zugriffe nicht möglich. 
-Das procfs wird von einigen Diensten benötigt. Es ist jedoch für den reinen Betrieb der Jail nicht notwendig. 
- 
-===== IP-Adresse festlegen ===== 
-Da die Jail eine eigene IP-Adresse haben kann muss diese zunächst im Hostsystem als alias auf eine bestehende Netzwerkkarte festgelegt werden. 
- 
-Der folgende Eintrag in der ///​etc/​rc.conf//​ legt fest, dass das Netzwerkdevice **em0** als Alias die Adresse **192.168.2.100** erhält. Die letzte Ziffer (in diesem Fall die 0) beim **alias**-Teil des Aufrufs ist eine fortlaufende Nummer. 
- 
-Sollte die Netzmaske die Standardmaske //​255.255.255.0//​ sein kann die folgende, vereinfachte Anweisung verwendt werden. 
-<​code>​ 
-ifconfig_em0_alias0="​192.168.1.100"​ 
-</​code>​ 
- 
-Weicht die Netzmaske von der oben genannten ab kann diese der Anweisung mitgegeben werden. Der allgemeinere Ansatz (welcher in diesem Beispiel die Netzmaske 0xffffffe0 nutzt) ist daher: 
-<​code>​ 
-ifconfig_em0_alias0="​inet 192.168.1.100 netmask 0xffffffe0"​ 
-</​code>​ 
-Die Netzmaske kann in dezimaler oder in hexadezimaler Form angegeben werden. 
  
 ===== Lauschende Ports auf Host-IP beschränken ===== ===== Lauschende Ports auf Host-IP beschränken =====
Zeile 180: Zeile 163:
  
 ====== Jail starten und anhalten ====== ====== Jail starten und anhalten ======
-Ist die Jail in ///​etc/​rc.conf//​ definiert ​kann sie recht einfach ​gestartet und gestoppt ​werden. ​Mit den folgenden Befehlen wird die Jail gestartet bzw angehalten:+Die Jail kann dann mit den folgenden Befehlen ​gestartet und wieder beendet ​werden. 
 <​code>​ <​code>​
 # jail -c testjail # jail -c testjail
 # jail -r testjail # jail -r testjail
 </​code>​ </​code>​
-Dabei steht **-c** für **create** und **-r** für **remove**. 
- 
-Sollte das Starten und Stoppen der Jail nicht direkt funktionieren wurde ggf. der Netzwerkalias noch nicht geladen. Hierzu entweder //​ifconfig//​ von Hand ausführen oder den Host neu starten. 
  
 +Dabei steht **-c** für **create** zum Starten der Jail und **-r** für **remove** zum Beenden der Jail.
 ====== Jails auflisten ====== ====== Jails auflisten ======
 Eine Liste aller laufender Jails findet sich mit dem Befehlt **jls**. Dieser zeigt auch gleich die zur Jail zugehörigen ID **JID** die benötigt wird um z.B. über **jexec** mit der Jail zu kommunizieren. Eine Liste aller laufender Jails findet sich mit dem Befehlt **jls**. Dieser zeigt auch gleich die zur Jail zugehörigen ID **JID** die benötigt wird um z.B. über **jexec** mit der Jail zu kommunizieren.
  
 ====== In der Jail arbeiten (Shell in der Jail) ====== ====== In der Jail arbeiten (Shell in der Jail) ======
-Um in der laufenden Jail eine Shell zu öffnen um hierin zu arbeiten wird der Befehl **jexec** verwendet. Hierzu muss die Jail laufen. ​Unter der Annahme, dass die **JID** der Jail **3** wäre lautet der Aufruf wie folgt (die JID wird im Allgemeinen abweichen und ist über **jls** heraus zu finden):+Um in der laufenden Jail eine Shell zu öffnen um hierin zu arbeiten wird der Befehl **jexec** verwendet. Hierzu muss die Jail laufen.
 <​code>​ <​code>​
-# jexec /bin/sh+# jexec testjail ​/bin/sh
 </​code>​ </​code>​
  
 +Alternativ kann eine Shell in der Jail mit dem folgenden Befehl gestartet werden:
 +<​code>​
 +# /​etc/​rc.d/​jail console testjail
 +</​code>​
 ====== Rootkennwort ändern und Benutzer anlegen ====== ====== Rootkennwort ändern und Benutzer anlegen ======
 +Wurde die Jail per //​bsdinstall//​ installiert wurde das root-Kennwort bereits gesetzt. Wurde die Installation jedoch aus den Systemquellen installiert muss noch das Kennwort des Benutzers root gesetzt werden.
 Nach dem Login in die Jail per **jexec** sollte das Kennwort des **root**-Benutzers mittels **passwd** geändert werden. ​ Nach dem Login in die Jail per **jexec** sollte das Kennwort des **root**-Benutzers mittels **passwd** geändert werden. ​
  
-Anschliessend ist es noch sinnvoll ​per **adduser** ​einen Useraccount anzulegen+Sollen ​noch normale Benutzer angelegt werden kann dies per **adduser** ​erfolgen.
 Dieser kann z.B. für einen SSH-Login verwendet werden wenn man root-Logins per ssh verbieten möchte. Dieser kann z.B. für einen SSH-Login verwendet werden wenn man root-Logins per ssh verbieten möchte.
  
Zeile 235: Zeile 222:
 Damit die Ports nun auch gebaut werden können muss dem Gastsystem noch ein alternatives Verzeichnis mit Schreibrechten zugeteilt werden. ​ Damit die Ports nun auch gebaut werden können muss dem Gastsystem noch ein alternatives Verzeichnis mit Schreibrechten zugeteilt werden. ​
 Die Datei **/​etc/​make.conf** hält diese Informationen. Um die gewünschte Änderung durchzuführen wird die Datei wie folgt ergänzt, oder nötigenfalls erzeugt: Die Datei **/​etc/​make.conf** hält diese Informationen. Um die gewünschte Änderung durchzuführen wird die Datei wie folgt ergänzt, oder nötigenfalls erzeugt:
-<code>+<file Bash>
 WRKDIRPREFIX=/​tmp WRKDIRPREFIX=/​tmp
 DISTDIR=/​tmp/​distfiles DISTDIR=/​tmp/​distfiles
 PACKAGES=/​tmp/​packages PACKAGES=/​tmp/​packages
-</code>+</file>
  
 Nun werden die Arbeitsdaten der Ports unter /tmp des Gastsystems abgelegt und der Ports-Tree wird nicht durch die Ports geändert. Nun werden die Arbeitsdaten der Ports unter /tmp des Gastsystems abgelegt und der Ports-Tree wird nicht durch die Ports geändert.
jail_erstellen.1409775388.txt.gz · Zuletzt geändert: 2017/10/02 13:38 (Externe Bearbeitung)

Impressum