SFTP Chroot – zamykanie użytkowników w katalogach domowych

Jeśli administrujemy serwerem i mamy użytkowników, którym musimy udostępnić ich katalogi domowe, możemy zamiast stawiania serwera FTP skorzystać z możliwości jakie daje nam OpenSSH i skonfigurować bezpieczny, szyfrowany dostęp za pomocą SFTP.
Użytkownicy ci nie będą mogli logować się na serwer za pomocą SSH, ale będą mogli zapisywać pliki w podkatalogach swojego katalogu domowego (lecz nie w samym katalogu domowym).
Taka konfiguracja jest wygodna np. gdy udostępniamy komuś na serwerze miejsce np. na strony www.

Jak to skonfigurować?

1. Tworzymy grupę sftponly – użytkownicy, których dodamy do tej grupy będą mogli łączyć się z serwerem tylko za pomocą SFTP.

groupadd sftponly

2. Dodajemy użytkownika do tej grupy (tu użytkownik = janek)

usermod -G sftponly janek

3. Modyfikujemy konfigurację daemona SSHD, czyli plik /etc/ssh/sshd_config w następujący sposób.

#następną linię musimy zakomentować
#Subsystem	sftp	/usr/libexec/openssh/sftp-server
#Dodajemy linię:
Subsystem sftp internal-sftp
#na końcu pliku dodajemy
Match Group sftponly
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /home/%u
  ForceCommand internal-sftp

4. Właścicielem katalogu użytkownika musi być root, a użytkownik nie może mieć prawa do zapisu w nim.

chown root /home/janek
chmod go-w /home/janek #odbieramy prawo zapisu dla grupy oraz innych

5. Restartujemy sshd

systemctl restart sshd

To tyle… mamy skonfigurowany bezpieczny dostęp SFTP – z szyfrowaniem i chrootowaniem użytkowników,
zamiast przestarzałego i niebezpiecznego FTP.
Użytkownicy systemowi np. root nadal mają pełny dostęp po SSH, a ci, których dodamy do grupy sftponly, mogą korzystać już tylko z SFTP i są zamknięci w swoich katalogach domowych.

Dodaj komentarz