-
SFTP chroot w CentOS
Mając nawet niewielki prywatny serwer, przychodzi moment, gdy chcemy udostępnić część swojej przestrzeni znajomemu. Zapewne dla wielu naturalną drogą wgrywania plików na zdalną maszynę, jest FTP, ale w obecnych czasach jest to nie zalecane. Dlaczego tak jest? Zawsze się wgrywało i było ok. Co się zmieniło? Największe firmy hostingowe dają tylko taką metodę przesyłania plików. Te i wiele innych odpowiedzi pada z ust osób, którym proponujemy odejście od klasycznego FTP i skorzystanie z SFTP. Na korzyść tego drugiego rozwiązania przemawia szyfrowana transmisja, co w znaczący sposób poprawia bezpieczeństwo przesyłanego hasła, co w obecnych czasach jest niezwykle istotne. Standardowo SFTP daje dostęp do całej struktury katalogowej do której nasz użytkownik ma jakiekolwiek prawa. Można to jednak zmienić. Najprostszym sposobem jest zrobienie chroota dla SFTP przy użycie wbudowanej ku temu funkcji w SSH. Niestety pakiet openssh-server obecny w CentOS-ie jest w zbyt starej wersji i nie posiada tejże możliwości. Musimy więc pobrać źródła ze strony projektu i skompilować je lub skorzystać z innego niż standardowe repo. Osobiście używam CentALT. Po zaktualizowaniu wspomnianego pakietu przystępujemy do konfiguracji, edytując pli „/etc/ssh/sshd_config”.
Subsystem sftp /usr/libexec/openssh/sftp-server
Zakomentowujemy powyższą linijkę.
Subsystem sftp internal-sftp
Dodajemy powyższą.
Match User nazwa_użytkownika
ChrootDirectory /ścieżka_do _folderu_chroot
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
service sshd restart
Na koniec oczywiście restartujemy wspomnianą usługę.
Zamiast „Match User nazwa_użytkownika” można użyć „Match User nazwa_grupy”. Właścicielem folderu środowiska „chroot” powinien być „root”. Nie trzeba zmieniać katalogu domowego, ani domyślnego shella w pliku „/etc/passwd”. Powyższa konfiguracja zapewnia blokadę ssh i dostęp tylko poprzez sftp.
pytanie: jak zalogowac sie do systemu (poza chroot jail), wszyscy uzytkownicy loguja sie do chroot jaila, jest mozliwosc zdalnego logowanie sie systemu w celu administracyjnym…??
Prawdopodobnie logując się jako root ominiesz jaila. Jeśli danemu userowi przypisany jest chroot, to tego nie ominiesz.