UUGRN:Jails/einrichten
Dieser Artikel beschreibt, was der Inhaber eines UUGRN:Jails nach dem ersten erfolgreichen Login zu tun hat.
Vorbereitungen
Jedes aktive Vereinsmitglied kann auf Wunsch ein eigenes Jail bekommen. Voraussetzung hierfür ist ein User-Account auf shell.uugrn.org und dort außerdem ein ssh-Schlüsselpaar, welches generiert werden sollte:
$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/user/.ssh/id_dsa): <return> Created directory '/home/user/.ssh'. Enter passphrase (empty for no passphrase): *hier eine passphrase eingeben und gut merken* Enter same passphrase again: *nochmal wiederholen* Your identification has been saved in /home/user/.ssh/id_dsa. Your public key has been saved in /home/user/.ssh/id_dsa.pub. The key fingerprint is: 6d:28:7e:fc:d8:ed:46:37:6d:c7:56:da:96:7b:47:11 user@shell.uugrn.org
Im Anschluss gibt es die beiden Dateien
$ ls -la .ssh/ total 8 drwx------ 2 user users 512 May 14 00:18 . drwxr-xr-x 3 user users 512 May 14 00:18 .. -rw------- 1 user users 672 May 14 00:18 id_dsa -rw-r--r-- 1 user users 616 May 14 00:18 id_dsa.pub
Die Passphrase schützt den Schlüssel vor Missbrauch. Ein SSH-Key ohne Passphrase darf man nur auf einem System verwenden, welches man unmittelbar unter seiner eigenen Kontrolle hat. Das ist bei shell.uugrn.org definitiv nicht gegeben.
Der soeben generierte Schlüssel wird für den root-Account im eigenen Jail verwendet. Ein UUGRN-Admin muss den Public-Key entsprechend in das Jail übertragen.
einloggen als root
Ein Mitgliedsjail hat initial keinen Hauptbenutzer, dieser wird im Verlauf erst noch selbst erstellt. Der erste Login durch den Jailinhaber erfolgt daher als root von shell.uugrn.org aus, der erforderliche SSH-Key sollte vorher bereits angelegt sein. Idealerweise findet diese Übergabe im Dialog (z.B. UUGRN:FIXME Treffen oder UUGRN:IRC) statt, denn aufgrund der Passphrase des SSH-Keys kann der UUGRN-Admin selbst nicht testen, ob der Login in das eigene Jail funktioniert.
Hauptbenutzer einrichten
Es sollte für alle weiteren Aufgaben ein Hauptbenutzer eingerichtet werden. Dieser kann sich dann auch per ssh direkt in das Jail einloggen. Neue Benutzer anlegen geht hier der Einfachheit halber direkt mit dem Kommando adduser(8), wie beispielsweise die folgende Terminalsitzung zeigt (Benutzereingaben sind fett formatiert):
root@meinjail:~# adduser Username: username Full name: Vorname Nachname Uid (Leave empty for default): <return> Login group [username]: staff Login group is staff. Invite username into other groups? []: wheel Login class [default]: <return> Shell (sh csh tcsh bash rbash nologin) [sh]: bash Home directory [/home/username]: <return> Use password-based authentication? [yes]: <return> Use an empty password? (yes/no) [no]: <return> Use a random password? (yes/no) [no]: <return> Enter password: *geheimes passwort* Enter password again: *geheimes passwort* Lock out the account after creation? [no]: <return> Username : username Password : ***** Full Name : Vorname Nachname Uid : 1004 Class : Groups : staff wheel Home : /home/username Shell : /usr/local/bin/bash Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (username) to the user database. Add another user? (yes/no): no Goodbye!
Mit dem soeben angelegten Benutzername kann man sich nun per SSH von irgendwoher einloggen. Um root werden zu können, wird standardmäßig su(1) verwendet. Hierfür ist es erforderlich, dass der Benutzer in der Gruppe wheel eingetragen ist, das kann man einfach prüfen:
root@meinjail:~# id username uid=1004(username) gid=20(staff) groups=20(staff),0(wheel)
Damit ein Benutzer per su - root werden kann, muss root ein Passwort haben. Initial ist das Passwort zufällig bzw. invalid. Mit der noch offenen root-Shell kann man das root-Passwort leicht setzen:
root@t@meinjail:~# passwd Changing local password for root New Password: *supergeheimespasswort* Retype New Password: *supergeheimespasswort*
Alternativ kann sudo(8) auch verwendet werden, sofern es entsprechend konfiguriert ist. Hierfür wird dann das Passwort des aufrufenden Benutzers abgefragt, nicht das root-Passwort.
Softwarepakete
Je nach gewünschtem Jail-Setup gibt es mehr oder weniger umfangreich vorinstallierte Software.
Den Umfang der installierten Software kann man mit pkg_info(8) nachsehen. Vorkompilierte Software-Pakete lassen sich einfach mit pkg_add(8) installieren:
# pkg_add -v pdksh [...]
Empfohlen wird jedoch der Einsatz der Ports mit dem Tool portinstall(8). Der Einsatz von einem gemeinsamen, nur-lese Portsbaum unter /usr/ports/ ist in den Jails entsprechend vorkonfiguriert: alle Schreibzugriffe auf die Ports im Jail werden nach /data/ports/ umgeleitet.
Es existieren zahlreiche vorkompilierte Pakete für die aktuellen Jails. Diese liegen read-only unter /usr/ports/packages/All/.
Standard Befehle
- portsdb(1) -Fu
- Lädt den aktuellen Port-INDEX und speichert in nach /data/ports. Kann täglich, gerne mehrmals ausgeführt werden, wird aber nur täglich upgedatet.
- portversion(1) -vL "="
- Alle veralteten Ports auflisten
- portupgrade(1) -a
- Alle veralteten Ports updaten
- portupgrade(1) -r "portname*"
- Alle Ports, die auf portname* matchen, werden upgedatet, außerdem alle ggf. erforderlichen Abhängigkeiten.
- pkgdb(1) -F
- manchmal ist es erforderlich, die Abhängigkeiten zu korrigieren. Wenn es komplizierter wird, am besten im UUGRN:IRC nachfragen
- portinstall(1) category/port
- Den Port aus dem Verezeichnis /usr/ports/category/port installieren
- portinstall(1) "portname*"
- Alle Ports, die auf "portname*" matchen, installieren.
- portinstall(1) -p category/port
- Port installieren, dabei ein Package erzeugen. Das landet nach der Installation in /data/ports/packages/
- portinstall(1) -P category/port
- Port installieren, falls möglich ein vorkompiliertes Paket einspielen, anderenfalls selbst kompilieren
- portinstall(1) -PP category/port
- Nur vorkompilierte Pakete verwenden (kann, wenn das Release weit zurück liegt fehlschlagen, dann einfach nur -P verwenden)
Es gibt noch sehr viel mehr Tools, die man kennen sollte. Die Manpages der vorgestellten Befehle verweisen auf diese. Lesen!
eigene Domains verwalten
Das Mitgliedsjail kann durch einen UUGRN-Admin für die Verwaltung eigener Domains vorbereitet werden. Sofern nicht explizit anders gewünscht, wird ein Hidden-Primary Setup angeboten, neue Domains können für einen kleinen Betrag direkt über Benutzer:Jpru bestellt werden. Ein UUGRN-Admin ist hier Ansprechpartner und wird das koordinieren. Bestehende Domains können per KK-Antrag umgezogen werden. Für andere Lösungen bitte zuerst mit einem UUGRN-Admin abstimmen.
- siehe dazu
- UUGRN:DNS-Konzept
E-Mail Setup
FreeBSD verwendet standardmäßig sendmail(8) als MTA. Beim Anlegen der Jails werden diese im DNS entpsrechend mit MX-Records versorgt, sodass ein Mailtransport in das Jail erfolgen kann. Nicht nur Mails an user@meinjail.uugrn.org können zugestellt werden, sondern natürlich auch an bestehende, eigene Domains. Damit dies funktioniert, müssen diese Domains bei den UUGRN-Mailservern mail.uugrn.org und up.uugrn.org eingetragen werden. Dies erledigt ein UUGRN-Admin.
- siehe dazu
- UUGRN:Mailkonzept
Webserver einrichten
Im Standardumfang UUGRN:Jails/Templates/large wird Apache 2.2 mit PHP5 vorinstalliert. Die Konfigurationsdateien befinden sich unter /usr/local/etc/apache22/* und /usr/local/etc/php*. Das Root-Verzeichnis von Apache liegt bei FreeBSD unter /usr/local/www/, kann aber z.B. analog zu shell.uugrn.org/WWW auch in /data/www/ konfiuriert werden.
- Tipp
- die Apache-Konfiguration von shell.uugrn.org kann eingesehen oder kopiert werden.
Wichtig ist, dass alle Dienste, die im Jail gestartet werden sollen, ein eintrag in /etc/rc.conf erfolgen muss, z.B.
apache22_enable="YES"
Dienste und Aktivitäten dokumentieren
Die Benutzungsbedingunen für Jails erfordern Transparenz durch Dokumentation. Bitte analog zu den bestehenden Dokumentationen unter UUGRN:Jails#Mitglieder-Jails entsprechend ergänzen.
Dieser Artikel ist leider sehr kurz. Also: Sei mutig und mache aus ihm bitte einen guten Artikel, wenn du mehr zum Thema „Jails/einrichten” weißt.