it-swarm-eu.dev

Omezení uživatele SSH / SCP / SFTP na adresář

Existuje jednoduchý způsob, jak omezit uživatele SCP/SFTP na adresář? Všechny metody, se kterými jsem se setkal, vyžadují, abych si zkopíroval chroot vězení kopírováním binárních souborů, ale nemyslím si, že by to mělo být nutné.

37
user4518

SSH Podporuje nativní chrootování uživatele SFTP. Musíte pouze dodat

Adresář Chroot

V konfiguračním souboru sshd restartujte sshd.

Pokud děláte jen sftp, pak už nemusíte dělat nic víc. Bohužel to nefunguje pro scp. Pro interaktivní prostředí Shell budete muset zkopírovat binární soubory a/dev uzly do chrootu.

Příklad konfigurace, pouze pro jednoho uživatele, testuser:

Match User testuser
    ChrootDirectory /home/testuser
    ForceCommand internal-sftp

Několik věcí, které byste měli vědět, ze stránky sshd_config man:

 Všechny součásti názvu cesty musí být adresáře vlastněné kořenovým adresářem, které nelze zapisovat 
 Jiným uživatelem nebo skupinou. Po chroot sshd (8) změní pracovní adresář 
 Na domovský adresář uživatele. 

Hledejte ChrootDirectory v man sshd_config pro více informací.

30
gabe.

Chroot je poměrně jednoduchá metoda. Protože operační systém již tuto bezpečnostní funkci má, autoři démona se ji nepokoušejí znovu implementovat.

Rssh přichází s průvodcem nastavením chroot vězení. Je v souboru CHROOT ve zdrojové distribuci. Stručně řečeno, musíte mít:

  • Několik binárních souborů, zkopírovaných z kořenového adresáře: /usr/bin/scp, /usr/libexec/openssh/sftp-server, /usr/bin/rssh_chroot_helper
  • Knihovny ({/usr,}/lib/lib*.so.[0-9]), které používají, také kopírovány
  • A /etc/passwd (docela možná ne kopie, ale odvozená od předlohy)
  • Několik zařízení: /dev/null, /dev/tty a také /dev/log soket pro protokolování (a musíte démonovi syslogu sdělit, aby ho poslouchal)

Extra tip, který není v dokumentaci rssh: Pokud potřebujete, aby některé soubory byly přístupné v chroot vězení, můžete použít bindfs nebo Linux's mount --bind pro vytvoření dalších hierarchií adresářů mimo vězení. bindfs umožňuje remounted adresáři mít více omezující oprávnění, například jen pro čtení. (mount --bind není, pokud nepoužijete opravu jádra; Debian tuto opravu zahrnoval již od východu lenny, ale většina ostatních distribucí nebyla od roku 2011.)

Možná budete chtít podívat na scponly (nebo nověji, rssh ); je to v zásadě přihlašovací prostředí, které lze použít ke spuštění scp nebo subsystému sftpd. Ve variantě scponlyc provede chroot před aktivací daného subsystému.

7
Shadur