GNU/Linux >> Znalost Linux >  >> Debian

Jak vytvořit uvězněného uživatele ssh s Jailkit na Debian/Ubuntu

Dobrý den, dnes vytvoříme uvězněného ssh uživatele s Jailkit na Debian Wheezy boxu. 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. Instalace JailKit

Nejprve si stáhneme a nainstalujeme Jailkit.

$ cd /tmp
$ wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
$ tar xvfz jailkit-2.17.tar.gz
$ cd jailkit-2.17

Poznámka:Nahraďte prosím jailkit-2.17 verzí jailkitu, kterou chcete nainstalovat.

Protože Jailkit vyžaduje před instalací nějaké balíčky, nainstalujeme je následovně:

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

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

$ ./debian/rules binary
$ cd ..
$ dpkg -i jailkit_2.17-1_i386.deb

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

$ rm -rf /tmp/jailkit*

2. Konfigurace prostředí věznice

Musí existovat adresář, kde bude nastaveno celé prostředí věznice. Udělejme to v /opt/jail. To může být cokoliv.

$ sudo mkdir /opt/jail

Root by měl vlastnit tento adresář. Tak to vykašlete.

$ sudo chown root:root /opt/jail

3. Povolení, aby byly programy dostupné ve vězení

Všechny programy, které musí být k dispozici ve vězení, je třeba do něj zkopírovat pomocí příkazu jk_init.
Příklad

$ sudo jk_init -v /opt/jail netutils basicshell jk_lsh openvpn ssh sftp

Názvy jako basicshell , editory , netutils jsou skupiny, které obsahují více programů. Každá skupina je sada spustitelných souborů, knihoven atd., které se mají zkopírovat do shellu. Například sekce basicshell poskytuje ve vězení mnoho programů jako bash, ls, cat, chmod, mkdir, cp, cpio, date, dd, echo, egrep atd.

Úplný seznam sekcí, které lze nastavit, naleznete v /etc/jailkit/jk_init.ini.

4. Vytvořte uživatele, který bude uvězněn

Potřebuji uživatele, který se dostane do vězení. Pojďme si jeden vytvořit

$ sudo adduser arun

Všimněte si, že se jedná o normálního uživatele, který je vytvořen ve skutečném souborovém systému a nikoli ve vězení.
V dalším kroku bude tento uživatel uvězněn ve vězení.

V tomto okamžiku, když se podíváte na /etc/passwd, uvidíte na konci záznam, který vypadá takto

arun:x:1006:1005:,,,:/home/arun:/bin/bash

Toto je náš nový uživatel a poslední část /bin/bash označuje, že uživatel má normální shellový přístup k systému, pokud se přihlásí.

5. Uvěznit uživatele

Nyní je čas dostat uživatele do vězení.

$ sudo jk_jailuser -m -j /opt/jail/ arun

Tímto způsobem byl uživatel arun nyní uvězněn.
Nyní, když se podíváte na /etc/passwd, poslední záznam bude vypadat takto

arun:x:1006:1005:,,,:/opt/jail/./home/arun:/usr/sbin/jk_chrootsh
Všimněte si, že se změnily poslední 2 části, které označují domácího uživatele a typ shellu. Domovský adresář uživatele je nyní v prostředí věznice /opt/jail. Shell uživatele je nyní speciální program nazvaný jk_chrootsh, který poskytne uvězněný shell.

Je to tento konkrétní shell s názvem jk_chrootsh, který zavede uživatele do vězení pokaždé, když se přihlásí do systému.

Nastavení věznice je nyní téměř hotové. Ale pokud se pokusíte připojit k id z ssh, selže to takto:

$ ssh arun@localhost

Spojení se uzavře. K tomu dochází, protože uživatel má ve skutečnosti omezený shell.

6. Dejte bash shell uživateli ve vězení

Nyní je důležitá věc, kterou musíme udělat, je poskytnout uživateli správný bash shell, ale uvnitř vězení.
Otevřete následující soubor

$ sudo nano /opt/jail/etc/passwd

Je to soubor s hesly ve vězení. Vypadalo by to nějak takto

root:x:0:0:root:/root:/bin/bash
arunp:x:1006:1001:arun pyasi,001,,:/home/arunp:/usr/sbin/jk_lsh

Změňte /usr/sbin/jk_lsh na /bin/bash

root:x:0:0:root:/root:/bin/bash
arun:x:1006:1005:,,,:/home/arun:/bin/bash

Uložte soubor a ukončete.

7. Přihlaste se do vězení

Nyní je tedy čas znovu se přihlásit do vězení

$ ssh arun@localhost

Nyní máme plně funkční bash shell, ale uvnitř vězení. Nyní zkontrolujte prostředí pohybem. Kořen / uvězněného prostředí je /opt/jail skutečného souborového systému. Ale to víme jen my, ne uvězněný uživatel.

Také v tomto vězení budou dostupné pouze příkazy, které byly zkopírovány prostřednictvím sekcí jk_cp . Pokud se přihlášení nezdaří, zkontrolujte /var/log/auth.log, zda neobsahuje chybové zprávy.

Nyní zkuste spustit nějaký síťový příkaz jako wget nebo něco podobného.

$ wget http://www.google.com/

Pokud se zobrazí tato chyba:

$ wget http://www.google.com/
--2012-06-23 12:56:43-- http://www.google.com/
 Resolving www.google.com (www.google.com)... failed: Name or service not known.
 wget: unable to resolve host address `www.google.com'

Opravte to spuštěním následujících 2 příkazů:

$ sudo jk_cp -v -j /opt/jail /lib/x86_64-linux-gnu/libnss_files.so.2
$ sudo jk_cp -v -j /opt/jail /lib/x86_64-linux-gnu/libnss_dns.so.2

Přesné umístění souborů libnss_files.so a libnss_dns.so se může lišit, proto zkontrolujte.

8. Spouštění programů nebo služeb ve vězení

Nyní je nastavení dokončeno. Věznice jsou užitečné pro spouštění programů nebo služeb v omezených/zabezpečených prostředích. Ke spuštění programu nebo démona uvnitř vězení použijte příkaz jk_chrootlaunch.

$ sudo jk_chrootlaunch -j /opt/jail -u arun -x /some/command/in/jail

Obslužný program jk_chrootlaunch lze použít ke spuštění konkrétního procesu v prostředí věznice s oprávněními určeného uživatele. Pokud se démon nespustí, zkontrolujte /var/log/syslog, zda neobsahuje chybové zprávy.

Chcete-li spustit program ve vězení, program musí být nejprve plně zkopírován uvnitř vězení pomocí příkazu jk_cp.

jk_cp – nástroj pro kopírování souborů včetně oprávnění a knihoven do vězení

Závěr

Nakonec jsme vytvořili funkční uvězněné ssh s pomocí Jailkit na našem serveru Debian/Ubuntu. Omezuje se na nějaký konkrétní příkaz nebo démona v chrootovém vězení s automatickými nástroji. Další informace o různých příkazech jailkit najdete v dokumentaci na webu olivier. Máte-li jakékoli dotazy nebo dotazy, prosím komentujte.


Debian
  1. Jak vytvořit uvězněného uživatele SSH s Jailkit 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 vytvořit uživatele Sudo na CentOS, Ubuntu a Debianu

  2. Nastavte uvězněný shell s jailkit na ubuntu

  3. Jak nainstalovat SSH server na Ubuntu / Debian s OpenSSH

  1. Jak vytvořit a odstranit uživatele na Ubuntu 16.04

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

  3. Jak nastavit klíče SSH na Debianu