Jailkit: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“
 
(33 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
''Jailkit'' ist ein Set von Dienstprogrammen zur Einrichtung und Automatisierung von Chroot-Shells (Jails)
'''Jailkit''' ist ein Set von Dienstprogrammen zur Einrichtung und Automatisierung von Chroot-Shells (Jails)


== Beschreibung ==
== Beschreibung ==
Jailkit ist eine Reihe von Dienstprogrammen, mit denen Benutzerkonten mithilfe von chroot () und / oder bestimmten Befehlen auf bestimmte Dateien beschränkt werden können. Das Einrichten einer Chroot-Shell, einer auf einen bestimmten Befehl beschränkten Shell oder eines Daemons in einem Chroot-Gefängnis ist viel einfacher und kann mit diesen Dienstprogrammen automatisiert werden.
* Jailkit ist eine Reihe von Dienstprogrammen, mit denen Benutzerkonten mithilfe von chroot () und / oder bestimmten Befehlen auf bestimmte Dateien beschränkt werden können. Das Einrichten einer Chroot-Shell, einer auf einen bestimmten Befehl beschränkten Shell oder eines Daemons in einem Chroot-Gefängnis ist viel einfacher und kann mit diesen Dienstprogrammen automatisiert werden.
 
* Jailkit ist ein spezialisiertes Tool, das mit Schwerpunkt auf Sicherheit entwickelt wurde. Es wird auf sichere Weise abgebrochen, wenn die Konfiguration, das System-Setup oder die Umgebung nicht 100% sicher sind, und es werden nützliche Protokollmeldungen gesendet, die erklären, was mit Syslog nicht stimmt.
Jailkit ist ein spezialisiertes Tool, das mit Schwerpunkt auf Sicherheit entwickelt wurde. Es wird auf sichere Weise abgebrochen, wenn die Konfiguration, das System-Setup oder die Umgebung nicht 100% sicher sind, und es werden nützliche Protokollmeldungen gesendet, die erklären, was mit Syslog nicht stimmt.
* Es ist bekannt, dass Jailkit in Netzwerksicherheits-Appliances mehrerer führender IT-Sicherheitsfirmen, Internet-Servern mehrerer großer Unternehmensorganisationen, Internet-Servern von Internetdienstanbietern sowie vielen kleineren Unternehmen und privaten Benutzern verwendet wird, die Lebensläufe, SFTP und Shell sichern müssen oder Daemon-Prozesse.
 
* Benutzerkonten auf einen bestimmten Verzeichnisbaum und bestimmte Befehle zu beschränkt.
Es ist bekannt, dass Jailkit in Netzwerksicherheits-Appliances mehrerer führender IT-Sicherheitsfirmen, Internet-Servern mehrerer großer Unternehmensorganisationen, Internet-Servern von Internetdienstanbietern sowie vielen kleineren Unternehmen und privaten Benutzern verwendet wird, die Lebensläufe, SFTP und Shell sichern müssen oder Daemon-Prozesse.
 
Benutzerkonten auf einen bestimmten Verzeichnisbaum und bestimmte Befehle zu beschränkt.  
** Shell, die auf einen bestimmten Befehl beschränkt ist
** Shell, die auf einen bestimmten Befehl beschränkt ist
** Eines Daemons innerhalb eines Chroot-Gefängnisses
** Eines Daemons innerhalb eines Chroot-Gefängnisses
 
* Ein Gefängnis ist ein Verzeichnisbaum, den Sie in Ihrem Dateisystem erstellen.
Ein Gefängnis ist ein Verzeichnisbaum, den Sie in Ihrem Dateisystem erstellen.  
* Der Benutzer kann keine Verzeichnisse oder Dateien sehen, die sich außerhalb des Gefängnisverzeichnisses befinden.
 
* Der Benutzer ist in diesem Verzeichnis und seinen Unterverzeichnissen eingesperrt.
Der Benutzer kann keine Verzeichnisse oder Dateien sehen, die sich außerhalb des Gefängnisverzeichnisses befinden.  
* Der Systemaufruf chroot (2) wird vom Jailkit verwendet, um den Benutzer in das Gefängnis zu bringen.
 
* Wenn Sie möchten, dass der Benutzer nur eines tun kann, können Sie das Gefängnis so einrichten, dass der Benutzer genau und nur das eine tun kann.
Der Benutzer ist in diesem Verzeichnis und seinen Unterverzeichnissen eingesperrt.  
* Wenn Sie beispielsweise möchten, dass der Benutzer scp ausführen kann, installieren Sie eine Kopie von scp im Gefängnis zusammen mit gerade genug Unterstützung, um es auszuführen (z. B. unter Verwendung einer eingeschränkten Shell).
 
* Wie Sie verstehen können, muss ein Hacker umso mehr Arbeit aufwenden, je weniger ausführbare Dateien sich in einem Gefängnis befinden (und je eingeschränkter ihre Funktionen sind, z. B. die Verwendung strenger Konfigurationen).
Der Systemaufruf chroot (2) wird vom Jailkit verwendet, um den Benutzer in das Gefängnis zu bringen.
* Es ist wichtig zu beachten, dass ein Chroot-Gefängnis leicht entkommen kann, wenn der Benutzer in der Lage ist, sich auf die Stammebene zu erheben.
 
* Daher ist es sehr wichtig, den Benutzer daran zu hindern.
Wenn Sie möchten, dass der Benutzer nur eines tun kann, können Sie das Gefängnis so einrichten, dass der Benutzer genau und nur das eine tun kann.  
* In dieser Zusammenfassung wird das Verzeichnis der obersten Ebene des Gefängnisses als JAIL bezeichnet.
 
* Sie können das JAIL so konfigurieren, dass es ein beliebiges geeignetes Verzeichnis ist (z. B. kann Ihr JAIL / usr / local / chrootjail oder / home / chroot sein).
Wenn Sie beispielsweise möchten, dass der Benutzer scp ausführen kann, installieren Sie eine Kopie von scp im Gefängnis zusammen mit gerade genug Unterstützung, um es auszuführen (z.B. unter Verwendung einer eingeschränkten Shell).  
* Das JAIL-Verzeichnis sollte offensichtlich so gewählt werden, dass es nicht mit anderen Standardverzeichnissen kollidiert oder diese stört (z. B. ist es wahrscheinlich eine schlechte Idee, / home / chroot als JAIL zu verwenden und auch einen Benutzer mit dem Namen "chroot" zu erstellen).
 
* Ein Verweis auf JAIL / etc bedeutet "das Unterverzeichnis etc / in Ihrem Gefängnisverzeichnis der obersten Ebene".
Wie Sie verstehen können, muss ein Hacker umso mehr Arbeit aufwenden, je weniger ausführbare Dateien sich in einem Gefängnis befinden (und je eingeschränkter ihre Funktionen sind, z.B.die Verwendung strenger Konfigurationen).  
* Aus Sicht des inhaftierten Benutzers lautet das Gefängnisverzeichnis der obersten Ebene "/".
 
Es ist wichtig zu beachten, dass ein Chroot-Gefängnis leicht entkommen kann, wenn der Benutzer in der Lage ist, sich auf die Stammebene zu erheben.  
 
Daher ist es sehr wichtig, den Benutzer daran zu hindern.
 
In dieser Zusammenfassung wird das Verzeichnis der obersten Ebene des Gefängnisses als JAIL bezeichnet.  
 
Sie können das JAIL so konfigurieren, dass es ein beliebiges geeignetes Verzeichnis ist (z.B. kann Ihr JAIL / usr / local / chrootjail oder / home / chroot sein).  
 
Das JAIL-Verzeichnis sollte offensichtlich so gewählt werden, dass es nicht mit anderen Standardverzeichnissen kollidiert oder diese stört (z.B. ist es wahrscheinlich eine schlechte Idee, / home / chroot als JAIL zu verwenden und auch einen Benutzer mit dem Namen "chroot" zu erstellen).  
 
Ein Verweis auf JAIL / etc bedeutet "das Unterverzeichnis etc / in Ihrem Gefängnisverzeichnis der obersten Ebene".  
 
Aus Sicht des inhaftierten Benutzers lautet das Gefängnisverzeichnis der obersten Ebene "/".


== Installation ==
== Installation ==
  # apt install build-essential autoconf automake libtool flex bison debhelper binutils
  # '''apt install build-essential autoconf automake libtool flex bison debhelper binutils'''
  # cd /tmp
  # cd /tmp
  # wget http://olivier.sessink.nl/jailkit/jailkit-2.21.tar.gz
  # wget http://olivier.sessink.nl/jailkit/jailkit-2.21.tar.gz
  # tar xvfz jailkit-2.20.tar.gz
  # tar xvfz jailkit-2.21.tar.gz
  # cd jailkit-2.20
  # cd jailkit-2.21
  # echo 5 > debian/compat
  # echo 5 > debian/compat
  # ./debian/rules binary
  # ./debian/rules binary
Zeile 51: Zeile 34:
You can now install the Jailkit .deb package as follows:
You can now install the Jailkit .deb package as follows:
  # cd ..
  # cd ..
  # dpkg -i jailkit_2.20-1_*.deb
  # dpkg -i jailkit_2.21-1_*.deb
  # rm -rf jailkit-2.20*
  # rm -rf jailkit-2.21*
  # rm -rf /tmp/jailkit*
  # rm -rf /tmp/jailkit*


==Einen Benutzer inhaftieren==
== Aufruf ==
Jetzt werden wir einen Benutzer erstellen, der mit Jailkit as inhaftiert wird:
=== Optionen ===
adduser srijan
=== Parameter ===
  #adduser srijan
=== Umgebung ===
  Hinzufügen von Benutzer `srijan' .....
=== Rückgabewert ===
  Neue Gruppe `srijan' (1001) hinzufügen .....
== Anwendung ==
  Hinzufügen eines neuen Benutzers `srijan' (1001) mit der Gruppe `srijan' .....
=== Benutzer einsperren ===
  Home-Verzeichnis erstellen `/home/srijan' .....
==== Benutzer erstellen ====
  # '''adduser jailuser'''
  Hinzufügen von Benutzer `jailuser' .....
  Neue Gruppe `jailuser' (1001) hinzufügen .....
  Hinzufügen eines neuen Benutzers `jailuser' (1001) mit der Gruppe `jailuser' .....
  Home-Verzeichnis erstellen `/home/jailuser' .....
  Kopieren von Dateien aus `/etc/skel'....
  Kopieren von Dateien aus `/etc/skel'....
  Geben Sie ein neues UNIX-Passwort ein: <--Passwort
  Geben Sie ein neues UNIX-Passwort ein: '''Passwort'''
  Geben Sie das neue UNIX-Passwort erneut ein:<--Passwort
  Geben Sie das neue UNIX-Passwort erneut ein: '''Passwort'''
  passwd: password updated successfully
  passwd: password updated successfully
  Änderung der Benutzerinformationen für srijan
  Änderung der Benutzerinformationen für jailuser
  Geben Sie den neuen Wert ein, oder drücken Sie ENTER für den Standardvollnamen
  Geben Sie den neuen Wert ein, oder drücken Sie ENTER für den Standardvollnamen
  []: <--ENTER
  []: '''ENTER'''
  Raumnummer []:<--ENTER
  Raumnummer []: '''ENTER'''
  Arbeitstelefon []:<--ENTER
  Arbeitstelefon []: '''ENTER'''
  Telefon zu Hause []:<--ENTER
  Telefon zu Hause []: '''ENTER'''
  Andere []:<--ENTER
  Andere []: '''ENTER'''
  Sind die Informationen korrekt? [J/n] <--Y
  Sind die Informationen korrekt? [J/n] '''ENTER'''


In meinem Fall erstelle ich den Benutzer srijan, du kannst jeden beliebigen Namen verwenden.
In meinem Fall erstelle ich den Benutzer jailuser, du kannst jeden beliebigen Namen verwenden.


Als nächstes werden wir die Informationen über den Benutzer srijan in /etc/passwd as überprüfen:
===== Prüfen der Einstellungen =====
  egrep srijan /etc/passwd
  egrep jailuser /etc/passwd
  # egrep srijan /etc/passwd
  # egrep jailuser /etc/passwd
  srijan:x:1001:1001:,,,:/home/srijan:/bin/bash
  jailuser:x:1001:1001:,,,:/home/jailuser:/bin/bash


Als nächstes werden wir den erstellten Benutzer inhaftieren. Erstelle ein Verzeichnis /jail für die Jail-Umgebung:
==== Benutzer einsperren ====
Erstelle ein Verzeichnis /jail für die Jail-Umgebung:
  mkdir /jail
  mkdir /jail


Nun werden wir dem Jail einige der Standardprogramme zur Verfügung stellen:
==== Standardprogramme zur Verfügung stellen ====
  jk_init -v /jail netutils basicshell jk_lsh openvpn ssh sftp
  jk_init -v /jail netutils basicshell jk_lsh openvpn ssh sftp


Wir können auch andere Werte angeben, die komplette Liste der Jail-Umgebung kann in der Datei
Wir können auch andere Werte angeben, die komplette Liste der Jail-Umgebung kann in der Datei
  nano /etc/jailkit/jk_init.ini
  nano /etc/jailkit/jk_init.ini
Jetzt ist Jail bereit


Jetzt ist Jail bereit, fügen Sie einfach den Benutzer innerhalb der Umgebung hinzu:
==== Benutzer hinzufügen ====
  jk_jailuser -m -j /jail/ srijan
  jk_jailuser -m -j /jail/ jailuser


Überprüfen Sie erneut die Werte in /etc/passwd für den Benutzer srijan:
==== Einstellungen prüfen ====
  egrep srijan /etc/passwd
Überprüfen Sie erneut die Werte in /etc/passwd für den Benutzer jailuser:
  # egrep srijan /etc/passwd
  egrep jailuser /etc/passwd
  srijan:x:1001:1001:,,,:/jail/./home/srijan:/usr/sbin/jk_chrootsh
  # egrep jailuser /etc/passwd
  jailuser:x:1001:1001:,,,:/jail/./home/jailuser:/usr/sbin/jk_chrootsh


Jetzt wurde unser Benutzer in der Jailed-Umgebung hinzugefügt. Ich werde den Debian-Server mit Bashterminal mit der IP 192.168.0.100 verbinden:
Jetzt wurde unser Benutzer in der Jailed-Umgebung hinzugefügt.
  ssh srijan@192.168.0.100
 
  $ ssh srijan@192.168.0.100 Die Authentizität des Hosts'192.168.0.100 (192.168.0.100)' kann nicht festgestellt werden.
==== Verbindung testen ====
  $ '''ssh jailuser@192.168.0.100'''
  Die Authentizität des Hosts'192.168.0.100 (192.168.0.100)' kann nicht festgestellt werden.
  Der ECDSA-Schlüssel-Fingerabdruck ist 3d:ca:91:67:96:39:15:b4:0f:6e:c8:2c:92:ef:25:d7.
  Der ECDSA-Schlüssel-Fingerabdruck 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)? Ja
  Sind Sie sicher, dass Sie die Verbindung fortsetzen möchten (ja/nein)? '''Ja'''
  das Passwort von srijan@192.168.0.100  
  das Passwort von jailuser@192.168.0.100
  Linux-Server1 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64
  Linux-Server1 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64
  Verbindung zu 192.168.0.100 geschlossen.
  Verbindung zu 192.168.0.100 geschlossen.
Zeile 114: Zeile 107:
  root:x:0:0:root:/root:/bin/bash
  root:x:0:0:root:/root:/bin/bash
  nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
  nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
  #srijan:x:1001:1001:,,,:/home/srijan:/usr/sbin/jk_lsh
  #jailuser:x:1001:1001:,,,:/home/jailuser:/usr/sbin/jk_lsh
  srijan:x:1001:1001:,,,:/home/srijan:/bin/bash
  jailuser:x:1001:1001:,,,:/home/jailuser:/bin/bash


Es wird der Bash-Prompt für den im Gefängnis befindlichen Benutzer srijan hinzugefügt, nun probiere erneut den ssh-Login mit srijan-Benutzer aus und du kannst dich anmelden:
Es wird der Bash-Prompt für den im Gefängnis befindlichen Benutzer jailuser hinzugefügt, nun probiere erneut den ssh-Login mit jailuser-Benutzer aus und du kannst dich anmelden:
  ssh srijan@192.168.0.100
  ssh jailuser@192.168.0.100


Überprüfen Sie nun den Inhalt des Stammverzeichnisses, Sie werden feststellen, dass es einen solchen Inhalt hat:
Überprüfen Sie nun den Inhalt des Stammverzeichnisses, Sie werden feststellen, dass es einen solchen Inhalt hat:
Zeile 125: Zeile 118:
  bin dev etc home lib lib64 usr
  bin dev etc home lib lib64 usr


==Ausführen von Diensten und Befehlen in einer Jail-Umgebung==
===Ausführen von Diensten und Befehlen in einer Jail-Umgebung===
Jail kann verwendet werden, um Dienste in einer Jail-Umgebung auszuführen. Angenommen, wir wollen einen beliebigen Dienst in der Jailed-Umgebung ausführen, dann verwenden wir dafür den Befehl jk_chrootlaunch:
Jail kann verwendet werden, um Dienste in einer Jail-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'
  jk_chrootlaunch -j /jail -u srijan -x 'service apache2 start'
Hier starte ich den Dienst von Apache. Ebenso können Sie damit jeden beliebigen Dienst oder Daemon in einer Jailed-Umgebung ausführen.
Hier starte ich den Dienst von Apache. Ebenso können Sie damit jeden beliebigen Dienst oder Daemon in einer Jailed-Umgebung ausführen.


* Angenommen, wir wollen einen bestimmten Befehl in der Jail-Umgebung ausführen, dann werden wir jk_cp verwenden.  
* Angenommen, wir wollen einen bestimmten Befehl in der Jail-Umgebung ausführen, dann werden wir jk_cp verwenden.
* Lassen Sie uns es in der Jailed-Umgebung testen, wenn wir cal ausführen werden, dann zeigt es wie folgt:
* Lassen Sie uns es in der Jailed-Umgebung testen, wenn wir cal ausführen werden, dann zeigt es wie folgt:
  cal
  cal
Zeile 136: Zeile 129:
  bash: cal: Befehl nicht gefunden
  bash: cal: Befehl nicht gefunden
Es bedeutet, dass die Jail-Umgebung den Befehl cal nicht kennt, jetzt werde ich ihn wie folgt in Debian Server hinzufügen:
Es bedeutet, dass die Jail-Umgebung den Befehl cal nicht kennt, jetzt werde ich ihn wie folgt in Debian Server hinzufügen:
  jk_cp -v -j /jail/ /usr/bin/cal
  jk_cp -v -j /jail/ /usr/bin/cal
  # jk_cp -v -j /jail/ /usr/bin/cal  
  # jk_cp -v -j /jail/ /usr/bin/cal
  Erstellen von symlink /jail/usr/bin/cal nach ncal Kopieren
  Erstellen von symlink /jail/usr/bin/cal nach ncal Kopieren
  von /usr/bin/ncal nach /jail/usr/bin/ncal
  von /usr/bin/ncal nach /jail/usr/bin/ncal
Zeile 162: Zeile 155:
  30
  30


Deshalb haben wir den Befehl für die Jailed-Umgebung hinzugefügt.
=== Problembehebung ===
== Konfiguration ==
=== Dateien ===
== Siehe auch ==


== Quellen ==
{{Special:PrefixIndex/Jailkit}}
 
=== Sicherheit ===
=== Dokumentation ===
==== RFC ====
==== Man-Page ====
==== Info-Pages ====
=== Links ===
==== Projekt ====
==== Weblinks ====
# https://olivier.sessink.nl/jailkit/
# https://olivier.sessink.nl/jailkit/
# https://www.howtoforge.com/debian-9-jail-jailkit/
# https://www.howtoforge.com/debian-9-jail-jailkit/


[[Category:Linux:Server]]
 
[[Category:Linux:Sicherheit]]
[[Kategorie:Linux/Server]]
[[Kategorie:Linux/Sicherheit]]

Aktuelle Version vom 12. November 2024, 18:44 Uhr

Jailkit ist ein Set von Dienstprogrammen zur Einrichtung und Automatisierung von Chroot-Shells (Jails)

Beschreibung

  • Jailkit ist eine Reihe von Dienstprogrammen, mit denen Benutzerkonten mithilfe von chroot () und / oder bestimmten Befehlen auf bestimmte Dateien beschränkt werden können. Das Einrichten einer Chroot-Shell, einer auf einen bestimmten Befehl beschränkten Shell oder eines Daemons in einem Chroot-Gefängnis ist viel einfacher und kann mit diesen Dienstprogrammen automatisiert werden.
  • Jailkit ist ein spezialisiertes Tool, das mit Schwerpunkt auf Sicherheit entwickelt wurde. Es wird auf sichere Weise abgebrochen, wenn die Konfiguration, das System-Setup oder die Umgebung nicht 100% sicher sind, und es werden nützliche Protokollmeldungen gesendet, die erklären, was mit Syslog nicht stimmt.
  • Es ist bekannt, dass Jailkit in Netzwerksicherheits-Appliances mehrerer führender IT-Sicherheitsfirmen, Internet-Servern mehrerer großer Unternehmensorganisationen, Internet-Servern von Internetdienstanbietern sowie vielen kleineren Unternehmen und privaten Benutzern verwendet wird, die Lebensläufe, SFTP und Shell sichern müssen oder Daemon-Prozesse.
  • Benutzerkonten auf einen bestimmten Verzeichnisbaum und bestimmte Befehle zu beschränkt.
    • Shell, die auf einen bestimmten Befehl beschränkt ist
    • Eines Daemons innerhalb eines Chroot-Gefängnisses
  • Ein Gefängnis ist ein Verzeichnisbaum, den Sie in Ihrem Dateisystem erstellen.
  • Der Benutzer kann keine Verzeichnisse oder Dateien sehen, die sich außerhalb des Gefängnisverzeichnisses befinden.
  • Der Benutzer ist in diesem Verzeichnis und seinen Unterverzeichnissen eingesperrt.
  • Der Systemaufruf chroot (2) wird vom Jailkit verwendet, um den Benutzer in das Gefängnis zu bringen.
  • Wenn Sie möchten, dass der Benutzer nur eines tun kann, können Sie das Gefängnis so einrichten, dass der Benutzer genau und nur das eine tun kann.
  • Wenn Sie beispielsweise möchten, dass der Benutzer scp ausführen kann, installieren Sie eine Kopie von scp im Gefängnis zusammen mit gerade genug Unterstützung, um es auszuführen (z. B. unter Verwendung einer eingeschränkten Shell).
  • Wie Sie verstehen können, muss ein Hacker umso mehr Arbeit aufwenden, je weniger ausführbare Dateien sich in einem Gefängnis befinden (und je eingeschränkter ihre Funktionen sind, z. B. die Verwendung strenger Konfigurationen).
  • Es ist wichtig zu beachten, dass ein Chroot-Gefängnis leicht entkommen kann, wenn der Benutzer in der Lage ist, sich auf die Stammebene zu erheben.
  • Daher ist es sehr wichtig, den Benutzer daran zu hindern.
  • In dieser Zusammenfassung wird das Verzeichnis der obersten Ebene des Gefängnisses als JAIL bezeichnet.
  • Sie können das JAIL so konfigurieren, dass es ein beliebiges geeignetes Verzeichnis ist (z. B. kann Ihr JAIL / usr / local / chrootjail oder / home / chroot sein).
  • Das JAIL-Verzeichnis sollte offensichtlich so gewählt werden, dass es nicht mit anderen Standardverzeichnissen kollidiert oder diese stört (z. B. ist es wahrscheinlich eine schlechte Idee, / home / chroot als JAIL zu verwenden und auch einen Benutzer mit dem Namen "chroot" zu erstellen).
  • Ein Verweis auf JAIL / etc bedeutet "das Unterverzeichnis etc / in Ihrem Gefängnisverzeichnis der obersten Ebene".
  • Aus Sicht des inhaftierten Benutzers lautet das Gefängnisverzeichnis der obersten Ebene "/".

Installation

# apt install build-essential autoconf automake libtool flex bison debhelper binutils
# cd /tmp
# wget http://olivier.sessink.nl/jailkit/jailkit-2.21.tar.gz
# tar xvfz jailkit-2.21.tar.gz
# cd jailkit-2.21
# echo 5 > debian/compat
# ./debian/rules binary

You can now install the Jailkit .deb package as follows:

# cd ..
# dpkg -i jailkit_2.21-1_*.deb
# rm -rf jailkit-2.21*
# rm -rf /tmp/jailkit*

Aufruf

Optionen

Parameter

Umgebung

Rückgabewert

Anwendung

Benutzer einsperren

Benutzer erstellen

# adduser jailuser
Hinzufügen von Benutzer `jailuser' .....
Neue Gruppe `jailuser' (1001) hinzufügen .....
Hinzufügen eines neuen Benutzers `jailuser' (1001) mit der Gruppe `jailuser' .....
Home-Verzeichnis erstellen `/home/jailuser' .....
Kopieren von Dateien aus `/etc/skel'....
Geben Sie ein neues UNIX-Passwort ein: Passwort
Geben Sie das neue UNIX-Passwort erneut ein: Passwort
passwd: password updated successfully
Änderung der Benutzerinformationen für jailuser
Geben Sie den neuen Wert ein, oder drücken Sie ENTER für den Standardvollnamen
[]: ENTER
Raumnummer []: ENTER
Arbeitstelefon []: ENTER
Telefon zu Hause []: ENTER
Andere []: ENTER
Sind die Informationen korrekt? [J/n] ENTER

In meinem Fall erstelle ich den Benutzer jailuser, du kannst jeden beliebigen Namen verwenden.

Prüfen der Einstellungen
egrep jailuser /etc/passwd
# egrep jailuser /etc/passwd
jailuser:x:1001:1001:,,,:/home/jailuser:/bin/bash

Benutzer einsperren

Erstelle ein Verzeichnis /jail für die Jail-Umgebung:

mkdir /jail

Standardprogramme zur Verfügung stellen

jk_init -v /jail netutils basicshell jk_lsh openvpn ssh sftp

Wir können auch andere Werte angeben, die komplette Liste der Jail-Umgebung kann in der Datei

nano /etc/jailkit/jk_init.ini

Jetzt ist Jail bereit

Benutzer hinzufügen

jk_jailuser -m -j /jail/ jailuser

Einstellungen prüfen

Überprüfen Sie erneut die Werte in /etc/passwd für den Benutzer jailuser:

egrep jailuser /etc/passwd
# egrep jailuser /etc/passwd
jailuser:x:1001:1001:,,,:/jail/./home/jailuser:/usr/sbin/jk_chrootsh

Jetzt wurde unser Benutzer in der Jailed-Umgebung hinzugefügt.

Verbindung testen

$ ssh jailuser@192.168.0.100
Die Authentizität des Hosts'192.168.0.100 (192.168.0.100)' kann nicht festgestellt werden.
Der ECDSA-Schlüssel-Fingerabdruck 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)? Ja
das Passwort von jailuser@192.168.0.100
Linux-Server1 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64
Verbindung zu 192.168.0.100 geschlossen.
$

Die Verbindung wird geschlossen, da der Benutzer keine Protokollierungs-Shell hat, fügen wir sie in die Konfigurationsdatei für Jail ein:

nano /jail/etc/passwd
root:x:0:0:root:/root:/bin/bash
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
#jailuser:x:1001:1001:,,,:/home/jailuser:/usr/sbin/jk_lsh
jailuser:x:1001:1001:,,,:/home/jailuser:/bin/bash

Es wird der Bash-Prompt für den im Gefängnis befindlichen Benutzer jailuser hinzugefügt, nun probiere erneut den ssh-Login mit jailuser-Benutzer aus und du kannst dich anmelden:

ssh jailuser@192.168.0.100

Überprüfen Sie nun den Inhalt des Stammverzeichnisses, Sie werden feststellen, dass es einen solchen Inhalt hat:

ls /
$ ls /
bin dev etc home lib lib64 usr

Ausführen von Diensten und Befehlen in einer Jail-Umgebung

Jail kann verwendet werden, um Dienste in einer Jail-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 damit jeden beliebigen Dienst oder Daemon in einer Jailed-Umgebung ausführen.

  • Angenommen, wir wollen einen bestimmten Befehl in der Jail-Umgebung ausführen, dann werden wir jk_cp verwenden.
  • Lassen Sie uns es in der Jailed-Umgebung testen, wenn wir cal ausführen werden, dann zeigt es wie folgt:
cal
$ cal
bash: cal: Befehl nicht gefunden

Es bedeutet, dass die Jail-Umgebung den Befehl cal nicht kennt, jetzt werde ich ihn wie folgt in Debian Server hinzufügen:

jk_cp -v -j /jail/ /usr/bin/cal
# jk_cp -v -j /jail/ /usr/bin/cal
Erstellen von symlink /jail/usr/bin/cal nach ncal Kopieren
von /usr/bin/ncal nach /jail/usr/bin/ncal
Erstellen von symlink /jail/lib/x86_64-linux-gnu/libncurses.so.5 nach libncurses.so.5.9
Kopieren von /lib/x86_64-linux-gnu/libncurses.so.5.9 nach /jail/lib/x86_64-linux-gnu/libncurses.so.5.9
/jail/lib/x86_64-linux-gnu/libtinfo.so.5 existiert bereits, wird es nicht berühren
/jail/lib/x86_64-linux-gnu/libc.so.6 existiert bereits, wird es nicht berühren
/jail/lib/x86_64-linux-gnu/libdl.so.2 existiert bereits, wird es nicht berühren
/jail/lib64/ld-linux-x86-64.so.2 existiert bereits, wird es nicht berühren
/jail/lib/x86_64-linux-gnu/libtinfo.so.5 existiert bereits, wird es nicht berühren
/jail/lib/x86_64-linux-gnu/libc.so.6 existiert bereits, wird es nicht berühren
/jail/lib/x86_64-linux-gnu/libdl.so.2 existiert bereits, wird es nicht berühren
/jail/lib64/ld-linux-x86-64.so.2 existiert bereits, wird es nicht berühren.

Führen Sie den Befehl cal in der Umgebung Jailed erneut aus:

cal
$ cal April
2019 Su Mo
Tu We Th 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

Problembehebung

Konfiguration

Dateien

Siehe auch

Sicherheit

Dokumentation

RFC

Man-Page

Info-Pages

Links

Projekt

Weblinks

  1. https://olivier.sessink.nl/jailkit/
  2. https://www.howtoforge.com/debian-9-jail-jailkit/