GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So erstellen Sie einen inhaftierten SSH-Benutzer mit Jailkit unter Debian 9 (Stretch)

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:

entfernen
rm -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 :)

  • Debian:https://www.debian.org/
  • Jailkit: https://olivier.sessink.nl/jailkit/

Debian
  1. So verschlüsseln Sie das Verzeichnis mit EncFS unter Debian 9 Stretch Linux

  2. So konfigurieren Sie den FTP-Server unter Debian 9 Stretch Linux

  3. So aktualisieren Sie Debian 8 auf Debian 9 Stretch

  4. So erstellen Sie einen Sudo-Benutzer in Debian

  5. So erstellen und löschen Sie einen Benutzer unter Debian 9

So erstellen Sie einen inhaftierten ssh-Benutzer mit Jailkit unter Debian/Ubuntu

So installieren Sie Debian 9 Stretch – Schritt-für-Schritt-Anleitung mit Screenshots

So installieren Sie NextCloud auf Debian 9 Stretch mit LAMP

So erstellen Sie einen Nur-SFTP-Benutzer in Debian 11

So installieren Sie Go unter Debian 9 Stretch

So erstellen Sie einen Sudo-Benutzer unter Ubuntu und Debian