GNU/Linux >> Znalost Linux >  >> Debian

Jak vytvořit uvězněného uživatele SSH s Jailkit na Debian 9 (Stretch)

Tento dokument popisuje, jak nainstalovat a nakonfigurovat Jailkit na serveru Debian 9 (Stretch). Jailkit je sada nástrojů pro omezení uživatelských účtů na konkrétní soubory pomocí chroot() a/nebo specifických příkazů. Nastavení chroot shellu, shellu omezeného na nějaký konkrétní příkaz nebo démona uvnitř chroot jailu je mnohem snazší a lze ho pomocí těchto utilit zautomatizovat.

Je známo, že Jailkit se používá v zařízeních pro zabezpečení sítí od několika předních firem v oblasti IT, internetových serverů od několika velkých podnikových organizací, internetových serverů od poskytovatelů internetových služeb a také mnoha menších společností a soukromých uživatelů, kteří potřebují zabezpečit cvs, sftp, shell nebo procesy démona.

1 předběžná poznámka

Tento výukový program je založen na serveru Debian 9, takže před pokračováním v tomto výukovém programu byste měli nastavit základní instalaci serveru Debian. Systém by měl mít statickou IP adresu. V tomto návodu používám jako svou IP adresu 192.168.0.100 a jako název hostitele server1.example.com.

2 Instalace Jailkit

Nejprve si stáhneme a nainstalujeme Jailkit. V době psaní této příručky je nejnovější dostupná verze Jailkitu 2.20. Stáhnu si ho a nainstaluji následovně:

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 vyžaduje před instalací nějaké balíčky, nainstalujeme je následovně:

apt-get install build-essential autoconf automake1.11 libtool flex bison debhelper binutils-gold python

Nyní je náš systém připraven k instalaci Jailkitu, nainstalujte jej následovně:

echo 5 > debian/compat
./debian/rules binary
cd ..
dpkg -i jailkit_2.20-1_amd64.deb

Nainstaluje Jailkit na Debian Server, můžeme odstranit další balíčky z /tmp:

rm -rf /tmp/jailkit*

3 Uvěznění uživatele

Nyní vytvoříme  uživatele, který bude uvězněn pomocí Jailkit jako:

adduser srijan

[e-mail chráněný]:~#adduser srijan
Přidávání uživatele `srijan' ...
Přidávání nové skupiny `srijan' (1001) ...
Přidávání nového uživatele `srijan ' (1001) se skupinou `srijan' ...
Vytváření domovského adresáře `/home/srijan' ...
Kopírování souborů z `/etc/skel' ...
Zadejte nový Heslo pro UNIX:<--password
Znovu zadejte nové heslo UNIX:<--password
passwd:heslo bylo úspěšně aktualizováno
Změna informací o uživateli pro srijan
Zadejte novou hodnotu nebo stiskněte ENTER pro výchozí
        Celé jméno []:<--ENTER
        Číslo pokoje []:<--ENTER
        Telefon do zaměstnání []:<--ENTER
        Telefon domů []:<--ENTER
        Jiné []:<--ENTER
Jsou informace správné? [A/n] <--Y
[e-mail chráněný]:~#

V mém případě vytvářím uživatele srijan, můžete použít jakékoli jméno.

Dále zkontrolujeme informace o uživateli srijan v /etc/passwd jako:

egrep srijan /etc/passwd
[e-mail chráněný]:/tmp# egrep srijan /etc/passwd
srijan:x:1001:1001:,,,:/home/srijan:/bin/bash
[e-mail chráněný]:/tmp #

Dále uvězníme vytvořeného uživatele. Vytvořte adresář /jail pro prostředí Jail:

mkdir /jail

Nyní poskytneme věznici některé z výchozích programových prostředí jako:

jk_init -v /jail netutils basicshell jk_lsh openvpn ssh sftp

Můžeme zadat i jiné hodnoty, kompletní seznam prostředí Jail lze zkontrolovat v souboru

nano /etc/jailkit/jk_init.ini

Nyní je vězení připraveno, stačí přidat uživatele do prostředí:

jk_jailuser -m -j /jail/ srijan

Znovu zkontrolujte hodnoty v /etc/passwd pro uživatele srijan:

egrep srijan /etc/passwd
[e-mail chráněný]:/tmp# egrep srijan /etc/passwd
srijan:x:1001:1001:,,,:/jail/./home/srijan:/usr/sbin/jk_chrootsh
[ email chráněný]:/tmp#

Nyní byl náš uživatel přidán do prostředí Jailed. Propojím server Debian s bash terminálem s jeho IP 192.168.0.100:

ssh [email protected]
[email protected]:~$ ssh [email protected]
Autentičnost hostitele '192.168.0.100 (192.168.0.100)' nelze zjistit.
Otisk klíče ECDSA je 3d:ca:91:67:96:39:15:b4:0f:6e:c8:2c:92:ef:25:d7.
Opravdu chcete pokračovat v připojování (ano/ne)? ano
Heslo uživatele [chráněno e-mailem]:
Linuxový server1 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64

Programy zahrnuté v systém Debian GNU/Linux je svobodný software;
přesné podmínky distribuce pro každý program jsou popsány v
jednotlivých souborech v /usr/share/doc/*/copyright.

Debian GNU/Linux je poskytován NAPROSTO ŽÁDNÁ ZÁRUKA v rozsahu
povoleném platnými zákony.
Připojení k 192.168.0.100 uzavřeno.
[e-mail chráněn]:~$

Připojení se uzavírá, protože uživatel nemá logovací shell, přidejte jej do konfiguračního souboru pro Jail:

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

Přidá bash prompt pro uvězněného uživatele srijan. Nyní znovu zkuste přihlášení ssh s uživatelem srijan a budete se moci přihlásit:

ssh [email protected]

Nyní zkontrolujte obsah kořenového adresáře, všimnete si, že má obsah jako tento:

ls /
[chráněno e-mailem]:~$ ls /
bin  dev  atd  home  lib  lib64  usr
[chráněno e-mailem]:~$

4 Spouštění služeb a příkazů v uvězněném prostředí

Jail lze použít ke spouštění služeb v prostředí Jailed. Předpokládejme, že chceme spouštět jakoukoli službu v prostředí Jailed, pak k tomu použijeme příkaz jk_chrootlaunch:

jk_chrootlaunch -j /jail -u srijan -x 'service apache2 start'

Zde spouštím službu Apache. Podobně s ním můžete spouštět jakoukoli službu nebo démona v prostředí Jailed.

Předpokládejme, že chceme spustit konkrétní příkaz v prostředí Jail, pak použijeme jk_cp. Když spustíme cal, otestujeme to v prostředí Jailed, pak se ukáže následovně:

cal
[e-mail chráněný]:~$ cal
bash:cal:příkaz nenalezen
[e-mail chráněn]:~$

To znamená, že prostředí Jail nezná příkaz cal, nyní jej přidám na server Debian takto:

jk_cp  -v -j /jail/ /usr/bin/cal
[e-mail chráněný]:~# jk_cp  -v -j /jail/ /usr/bin/cal
Vytvoření symbolického odkazu /jail/usr/bin/cal do ncal
Kopírování /usr/bin/ncal do / jail/usr/bin/ncal
Vytvoření symbolického odkazu /jail/lib/x86_64-linux-gnu/libncurses.so.5 na libncurses.so.5.9
Kopírování /lib/x86_64-linux-gnu/libncurses .so.5.9 do /jail/lib/x86_64-linux-gnu/libncurses.so.5.9
/jail/lib/x86_64-linux-gnu/libtinfo.so.5 již existuje, nedotkne se ho
/jail/lib/x86_64-linux-gnu/libc.so.6 již existuje, nedotkne se ho
/jail/lib/x86_64-linux-gnu/libdl.so.2 již existuje, nebude dotknout se jej
/jail/lib64/ld-linux-x86-64.so.2 již existuje, nedotkne se jej
/jail/lib/x86_64-linux-gnu/libtinfo.so.5 již existuje, nedotkne se jej
/jail/lib/x86_64-linux-gnu/libc.so.6 již existuje, nedotkne se jej
/jail/lib/x86_64-linux-gnu/libdl. so.2 již existuje, nedotkne se ho
/jail/lib64/ld-linux-x86-64.so.2 již existuje, nedotkne se ho

Znovu spusťte příkaz cal v prostředí Jailed:

cal
[e-mail chráněno]:~$ cal
  duben 2019
Ne Po Út St Čt Pá So
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
                      
[chráněno e-mailem]:~$


Takže jsme přidali příkaz pro prostředí Jailed. Gratulujeme! Nyní jsme úspěšně nakonfigurovali prostředí Jail v Debianu 9 :)

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

Debian
  1. Jak upgradovat Debian 8 na Debian 9 Stretch

  2. Jak vytvořit uživatele Sudo v Debianu

  3. Jak vytvořit nového uživatele s přístupem Ssh?

  1. Jak šifrovat adresář pomocí EncFS na Debian 9 Stretch Linux

  2. Jak nakonfigurovat FTP server na Debian 9 Stretch Linux

  3. Jak vytvořit uživatele Sudo na CentOS, Ubuntu a Debianu

  1. Jak vytvořit uživatele Sudo v Debianu

  2. Jak vytvořit a smazat uživatele v Debianu 9

  3. Jak nastavit klíče SSH na Debianu