Jak mogę chroot połączeń ssh?


20

Chciałbym skonfigurować więzienie chroot dla większości (nie wszystkich) użytkowników logujących się przez SSH. Słyszałem, że jest to możliwe dzięki najnowszym wersjom openssh, ale nie byłem w stanie dowiedzieć się, jak to zrobić. Poradniki mówią o łataniu starej wersji, a łatka nie jest już dostępna.

Prowadzę debian etch.

Odpowiedzi:


13

Używam rssh do tego celu.

Masz rację, istnieje nowy sposób na zrobienie tego i jest to wbudowana funkcja najnowszych wersji ssh.

Oto artykuł na temat Nieumarłych .


6

Musiałem tylko skonfigurować jednego użytkownika, który będzie mógł zalogować się za pośrednictwem ssh i ssh na inny serwer (który nie jest bezpośrednio połączony ze światem zewnętrznym). Powiązania cstamas i ericmayo były dobrym początkiem.

Zasadniczo dodałem następujące pliki do / etc / ssh / sshd_config:

Dopasuj mój użytkownik
  ChrootDirectory / chroot / myuser

Odtąd musiałem po prostu stworzyć środowisko chroot poniżej / chroot / myuser. Skopiowałem / bin / bash i / usr / bin / ssh i potrzebne biblioteki współdzielone (ldd je wyświetli). W przypadku większego środowiska prawdopodobnie sensowne byłoby skompilowanie statycznie połączonych wersji potrzebnych plików wykonywalnych.

Bash działał od razu, aby ssh działał, musiałem również utworzyć katalog .ssh, skopiować / etc / passwd, /etc/nsswitch.conf i / lib / libnss_ * i utworzyć / dev / null, / dev / tty i / dev / urandom przez mknod.


2
mkdir /chroot
mkdir -p /chroot/home/<user_name>

mkdir /chroot/home/<user-name>/bin  
cp -pr /bin/bash /chroot/home/<user_name>/bin/.  
cp -pr /bin/ls /chroot/home/<user_name>/bin/.  
cp -pr /lib64 /chroot/home/<user_name>/.

Musisz edytować plik / etc / sshd_config i dodać

ChrootDirectory /chroot/%h

I zrestartuj demona sshd.

Podsumowując, uważam, że sftp jest lepszą opcją.

Znalazłem też ten adres URL, jeśli jest pomocny.

http://www.techrepublic.com/blog/opensource/chroot-users-with-openssh-an-easier-way-to-confine-users-to-their-home-directories/229


1

Jeśli używasz uwierzytelniania za pomocą klucza publicznego, możesz użyć opcji „polecenie” w autoryzowanych kluczach, aby skonfigurować więzienie chroot.

~ / .ssh / Author_keys:

command="/path/to/the/chroot/script" ssh-dss keydata.....keydata... user@host

Nie używam uwierzytelniania za pomocą klucza publicznego, uwierzytelnianie odbywa się za pomocą hasła i nazwy użytkownika
Malfist

0

O ile wiem, nowe wersje OpenSSH zezwalają tylko na chroot dla połączeń SFTP. Próbowałem i to działa. Ale dla SSH rozwiązaniem jest łatka chrootssh. Przeglądam stronę SourceForge i nie ma żadnych plików, więc myślę, że nie jest już dostępna.

W przypadku Debian Etch jest tu kilka plików: http://debian.home-dn.net/etch/ssh/

Istnieją inne rozwiązania tutaj: http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html , w tym chrootssh.


-1 Niestety, Twoja odpowiedź była poprawna lata temu, kiedy ją napisałeś, ale już nie jest.
Chris S
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.