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 21:56]
rakor Seit jail.conf ist eine fstab nicht mehr nötig und bsdinstall erzeugt bereits eine resolv.conf
jail_erstellen [2017/10/02 13:40] (aktuell)
Zeile 76: Zeile 76:
  
 ====== Jail einrichten ====== ====== Jail einrichten ======
-Wurde die Jail **nicht** per //​bsdinstall//​ installiert muss noch der Nameserver in der ///​etc/​resolv.conf//​ definiert werden. Hierzu wird die Namensauflösung des Hostsystems übernommen.+Wurde die Jail **nicht** per //​bsdinstall//​ installiert muss noch der Nameserver in der //​etc/​resolv.conf// ​der Jail definiert werden. Hierzu wird die Namensauflösung des Hostsystems übernommen.
 <​code>​ <​code>​
 cp /​etc/​resolv.conf /​usr/​local/​jails/​testjail/​etc/​resolv.conf cp /​etc/​resolv.conf /​usr/​local/​jails/​testjail/​etc/​resolv.conf
Zeile 100: Zeile 100:
 syslogd_flags="​-ss"​ syslogd_flags="​-ss"​
 </​code>​ </​code>​
-===== 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.+===== Hostnamen setzen ===== 
 +Der Hostname muss noch festgelegt werden. Hierzu wird die Datei **/usr/local/jails/testjail/etc/hosts** entsprechend [[Installation#​Hostnamen_in_/​etc/​hosts_setzen|angepasst]].
  
-Sollte die Netzmaske die Standardmaske ​//255.255.255.0// sein kann die folgendevereinfachte Anweisung verwendt werden+====== Anpassen des Hostsystems ====== 
-<​code>​ +Spätestens seit FreeBSD 10 werden Jails in einer eigenen Konfigurationsdatei des Hostsystems,​ der ///etc/jail.conf//, verwaltet
-ifconfig_em0_alias0="​192.168.1.100" + 
-</code>+===== 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.
  
-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>​ <​code>​
-ifconfig_em0_alias0="​inet 192.168.1.100 netmask 0xffffffe0"​ +##########################################​ 
-</​code>​ +###### Allgemeine Einstellungen ​    ######​
-Die Netzmaske kann in dezimaler oder in hexadezimaler Form angegeben werden.+
  
-===== Hostnamen setzen ===== +# Jailstart 
-Der Hostname muss noch festgelegt werdenHierzu wird die Datei **/usr/local/​jails/​testjail/etc/hosts** entsprechend [[Installation#​Hostnamen_in_/​etc/​hosts_setzen|angepasst]].+exec.start="​/bin/sh /etc/rc";
  
-====== Anpassen des Hostsystems ======+# Jailstop 
 +exec.stop="/​bin/​sh /​etc/​rc.shutdown";​ 
 + 
 +# Aufraeumen 
 +exec.clean;​ 
 + 
 +# Devfs mounten 
 +mount.devfs;​ 
 + 
 +# Netzwerkkarte 
 +interface="​em0";​ 
 + 
 +##########################################​ 
 +###### Per Jail Einstellungen ​      ######​ 
 + 
 +testjail { 
 +  host.hostname ​"​testjail.example.com";​ 
 +  path /​usr/​local/​jails/​testjail;​ 
 +  ip4.addr ​"​www.xxx.yyy.zzz";​ 
 +
 +</​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 127: Zeile 147:
 jail_enable="​YES"​ jail_enable="​YES"​
 jail_list="​testjail"​ jail_list="​testjail"​
- 
-jail_testjail_rootdir="/​usr/​local/​jails/​testjail"​ 
-jail_testjail_hostname="​testjail.rakors-welt"​ 
-jail_testjail_ip="​192.168.2.100"​ 
-jail_testjail_devfs_enable="​YES"​ 
-jail_testjail_procfs_enable="​YES"​ 
 </​code>​ </​code>​
  
 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. 
  
 ===== Lauschende Ports auf Host-IP beschränken ===== ===== Lauschende Ports auf Host-IP beschränken =====
Zeile 151: 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>​
-/etc/rc.d/jail start testjail +# jail -c testjail 
-/etc/rc.d/jail stop testjail+# jail -r testjail
 </​code>​ </​code>​
  
-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 205: 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.
Zeile 218: Zeile 235:
 ====== Jail aktualisieren ====== ====== Jail aktualisieren ======
 Die Vorgehensweise um eine Jail zu aktualisieren wird im Artikel [[Jail aktualisieren]] beschrieben. Die Vorgehensweise um eine Jail zu aktualisieren wird im Artikel [[Jail aktualisieren]] beschrieben.
- 
jail_erstellen.1409774189.txt.gz · Zuletzt geändert: 2017/10/02 13:38 (Externe Bearbeitung)

Impressum