SFTP chroot w CentOS dodany przez admin 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.