Dieses Dokument beschreibt, wie Jailkit in Debian 9 (Stretch) Server installiert und konfiguriert wird. Jailkit ist eine Reihe von Dienstprogrammen, um Benutzerkonten mithilfe von chroot() und/oder bestimmten Befehlen auf bestimmte Dateien zu beschränken. Das Einrichten einer Chroot-Shell, einer Shell, die auf einen bestimmten Befehl beschränkt ist, oder eines Daemons in einem Chroot-Gefängnis ist viel einfacher und kann mit diesen Dienstprogrammen automatisiert werden.
Jailkit wird bekanntermaßen in Netzwerksicherheitsgeräten mehrerer führender IT-Sicherheitsfirmen, Internetservern mehrerer großer Unternehmensorganisationen, Internetservern von Internetdienstanbietern sowie vielen kleineren Unternehmen und Privatanwendern verwendet, die CVS, SFTP und Shell sichern müssen oder Daemon-Prozesse.
1 Vorbemerkung
Diese Anleitung basiert auf dem Debian 9-Server, daher sollten Sie eine grundlegende Debian-Serverinstallation einrichten, bevor Sie mit dieser Anleitung fortfahren. Das System sollte eine statische IP-Adresse haben. Ich verwende in diesem Tutorial 192.168.0.100 als IP-Adresse und server1.example.com als Hostnamen.
2 Jailkit installieren
Wir werden zuerst das Jailkit herunterladen und installieren. Zum Zeitpunkt der Erstellung dieses Handbuchs ist die neueste verfügbare Version von Jailkit 2.20. Ich werde es herunterladen und wie folgt installieren:
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz
tar xvfz jailkit-2.20.tar.gz
cd jailkit-2.20
Jailkit benötigt einige Pakete vor seiner Installation, wir werden sie wie folgt installieren:
apt-get install build-essential autoconf automake1.11 libtool flex bison debhelper binutils-gold python
Jetzt ist unser System bereit, das Jailkit zu installieren, installieren Sie es wie folgt:
echo 5 > debian/compat
./debian/rules binary
cd ..
dpkg -i jailkit_2.20-1_amd64.deb
Es wird das Jailkit in Debian Server installieren, wir können die zusätzlichen Pakete aus /tmp:
entfernenrm -rf /tmp/jailkit*
3 Jailing eines Benutzers
Jetzt erstellen wir einen Benutzer, der mit Jailkit inhaftiert wird als:
adduser srijan
[email protected]:~#adduser srijan
Benutzer `srijan' wird hinzugefügt ...
Neue Gruppe `srijan' wird hinzugefügt (1001) ...
Neuer Benutzer `srijan wird hinzugefügt ' (1001) mit Gruppe `srijan' ...
Heimverzeichnis erstellen `/home/srijan' ...
Dateien aus `/etc/skel' kopieren ...
Neu eingeben UNIX-Passwort:<--password
Neues UNIX-Passwort erneut eingeben:<--password
passwd:Passwort erfolgreich aktualisiert
Benutzerinformationen für srijan ändern
Geben Sie den neuen Wert ein oder drücken Sie die EINGABETASTE für die Standardeinstellung
Vollständiger Name []:<--ENTER
Zimmernummer []:<--ENTER
Telefon geschäftlich []:<--ENTER
Privattelefon []:<--ENTER
Andere []:<--ENTER
Sind die Informationen korrekt? [J/n] <--J
[E-Mail geschützt]:~#
In meinem Fall erstelle ich den Benutzer srijan, Sie können einen beliebigen Namen verwenden.
Als nächstes prüfen wir die Informationen über den Benutzer srijan in /etc/passwd als:
egrep srijan /etc/passwd[E-Mail-geschützt]:/tmp# egrep srijan /etc/passwd
srijan:x:1001:1001:,,,:/home/srijan:/bin/bash
[E-Mail-geschützt]:/tmp #
Als nächstes werden wir den erstellten Benutzer einsperren. Erstellen Sie ein Verzeichnis /jail für die Jail-Umgebung:
mkdir /jail
Jetzt werden wir das Jail mit einigen der standardmäßigen Programmumgebungen wie folgt ausstatten:
jk_init -v /jail netutils basicshell jk_lsh openvpn ssh sftp
Wir können auch andere Werte angeben, die vollständige Liste der Jail-Umgebung kann in der Datei eingesehen werden
nano /etc/jailkit/jk_init.ini
Jetzt ist Jail bereit, fügen Sie einfach den Benutzer in der Umgebung hinzu:
jk_jailuser -m -j /jail/ srijan
Überprüfen Sie erneut die Werte in /etc/passwd für den Benutzer srijan:
egrep srijan /etc/passwd[email protected]:/tmp# egrep srijan /etc/passwd
srijan:x:1001:1001:,,,:/jail/./home/srijan:/usr/sbin/jk_chrootsh
[ E-Mail-geschützt]:/tmp#
Jetzt wurde unser Benutzer in der Jailed-Umgebung hinzugefügt. Ich werde den Debian-Server mit dem Bash-Terminal mit seiner IP 192.168.0.100 verbinden:
ssh [email protected][email protected]:~$ ssh [email protected]
Die Authentizität von Host „192.168.0.100 (192.168.0.100)“ kann nicht festgestellt werden.
ECDSA-Schlüsselfingerabdruck ist 3d:ca:91:67:96:39:15:b4:0f:6e:c8:2c:92:ef:25:d7.
Sind Sie sicher, dass Sie die Verbindung fortsetzen möchten (ja/nein)? yes
Passwort von [email protected]:
Linux server1 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64
Die enthaltenen Programme mit das Debian GNU/Linux-System sind freie Software;
die genauen Distributionsbedingungen für jedes Programm sind in den
einzelnen Dateien in /usr/share/doc/*/copyright beschrieben.
Debian GNU/Linux kommt mit ABSOLUT KEINER GARANTIE, soweit
nach geltendem Recht zulässig.
Verbindung zu 192.168.0.100 geschlossen.
[email protected]:~$
Die Verbindung wird geschlossen, da der Benutzer keine Logging-Shell hat, fügen wir sie in der Konfigurationsdatei für Jail hinzu:
nano /jail/etc/passwd
root:x:0:0:root:/root:/bin/bash nobody:x:65534:65534:nobody:/nonexistent:/bin/sh #srijan:x:1001:1001:,,,:/home/srijan:/usr/sbin/jk_lsh srijan:x:1001:1001:,,,:/home/srijan:/bin/bash
Es fügt die Bash-Eingabeaufforderung für den inhaftierten Benutzer srijan hinzu. Versuchen Sie jetzt erneut, sich über ssh mit dem Benutzer srijan anzumelden, und Sie können sich anmelden:
ssh [email protected]
Überprüfen Sie nun den Inhalt des Root-Verzeichnisses, Sie werden feststellen, dass es folgende Inhalte hat:
ls /[email protected]:~$ ls /
bin dev etc home lib lib64 usr
[email protected]:~$
4 Ausführen von Diensten und Befehlen in einer Jailed-Umgebung
Jail kann verwendet werden, um Dienste in einer Jailed-Umgebung auszuführen. Angenommen, wir wollen einen beliebigen Dienst in der Jailed-Umgebung ausführen, dann verwenden wir dafür den Befehl jk_chrootlaunch:
jk_chrootlaunch -j /jail -u srijan -x 'service apache2 start'
Hier starte ich den Dienst von Apache. Ebenso können Sie jeden Dienst oder Daemon damit in einer Jail-Umgebung ausführen.
Angenommen, wir möchten einen bestimmten Befehl in einer Jail-Umgebung ausführen, dann verwenden wir jk_cp. Testen wir es in der Jailed-Umgebung, wenn wir cal ausführen, dann wird es wie folgt angezeigt:
cal[email protected]:~$ cal
bash:cal:command not found
[email protected]:~$
Es bedeutet, dass die Jail-Umgebung den cal-Befehl nicht kennt, jetzt werde ich ihn wie folgt in Debian Server hinzufügen:
jk_cp -v -j /jail/ /usr/bin/cal[email protected]:~# jk_cp -v -j /jail/ /usr/bin/cal
Symlink /jail/usr/bin/cal zu ncal erstellen
/usr/bin/ncal nach / kopieren jail/usr/bin/ncal
Symlink /jail/lib/x86_64-linux-gnu/libncurses.so.5 zu libncurses.so.5.9 erstellen
Kopieren von /lib/x86_64-linux-gnu/libncurses .so.5.9 bis /jail/lib/x86_64-linux-gnu/libncurses.so.5.9
/jail/lib/x86_64-linux-gnu/libtinfo.so.5 existiert bereits, wird es nicht anrühren
/jail/lib/x86_64-linux-gnu/libc.so.6 existiert bereits, wird nicht angerührt
/jail/lib/x86_64-linux-gnu/libdl.so.2 existiert bereits, wird nicht berühren Sie es
/jail/lib64/ld-linux-x86-64.so.2 existiert bereits, wird es nicht berühren
/jail/lib/x86_64-linux-gnu/libtinfo.so.5 bereits existiert, wird nicht angerührt
/jail/lib/x86_64-linux-gnu/libc.so.6 existiert bereits, wird nicht angerührt
/jail/lib/x86_64-linux-gnu/libdl. so.2 existiert bereits, wird nicht angerührt
/jail/lib64/ld-linux-x86-64.so.2 existiert bereits, wird nicht angerührt
Führen Sie erneut den cal-Befehl in der Jailed-Umgebung aus:
cal[email protected]:~$ cal
April 2019
So Mo Di Mi Do Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
[email protected]:~$
Also haben wir den Befehl für die Jailed-Umgebung hinzugefügt. Herzliche Glückwünsche! Jetzt haben wir die Jail-Umgebung in Debian 9 erfolgreich konfiguriert :)
5 Links
- Debian:https://www.debian.org/
- Jailkit: https://olivier.sessink.nl/jailkit/