Tags Posts tagged with "sftp jail"

sftp jail

przez -
8 2453
Sieć, LAN

SFTP – czyli SSH File Transfer Protocol – to protokół komunikacyjny, który umożliwia przesyłanie plików za pomocą SSH. Jego zaletą jest szyfrowanie transmisji za pomocą klucza szyfrującego jak i możliwość uwierzytelniania za pomocą certyfikatów.

SFTP jest dostępny w OpenSSH ale przy domyślnej konfiguracji ma kilka niepożądanych cech. Użytkownicy mając dostęp do SSH – mogą się zdalnie zalogować w systemie i surfować po całym drzewie katalogów. Wystarczy kilka drobnych zmian w ustawieniach sshd, aby uwięzić użytkownika w jego domowym katalogu i zabronić mu dostępu przez ssh – jednocześnie pozwalając na bezproblemowe korzystanie z SFTP i zalogowanie lokalnie w systemie.

*Wszystkie polecenia są wykonane w systemie Ubuntu 12.04.1.

Logujemy się do systemu i instalujemy OpenSSH-Server następującym poleceniem (jeśli ktoś nie ma):

sudo apt-get install openssh-server

Dodajemy teraz grupę, która będzie miała dostęp tylko do SFTP, ale nie będzie mogła się logować poprzez SSH w systemie:

sudo groupadd sftponly

Dodajemy też testowego użytkownika, nadajemy mu hasło i dodajemy go do grupy sftponly

sudo useradd -m sftptest
sudo passwd sftptest
sudo usermod -aG sftponly sftptest

W tym momencie można się bez problemu zalogować przez SSH oraz korzystać z SFTP. Teraz zmodyfikujemy ustawienia demona SSH. Za pomocą swojego ulubionego edytora tekstu otwieramy plik konfiguracyjny poleceniem:

sudo vi /etc/ssh/sshd_config

Odnajdujemy linię :

"Subsystem sftp /usr/lib/openssh/sftp-server"

i zmieniamy na:

"Subsystem sftp internal-sftp"

Na końcu pliku dopisujemy:

Match group sftponly
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

Zapisujemy plik i restartujemy demona ssh poleceniem:

sudo service ssh restart

Musimy jeszcze zmienić ustawienia katalogu domowego użytkownika – robimy to poleceniami:

sudo chown root:root /home/sftptest
sudo chmod 755 /home/sftptest

Ostatnim krokiem jest dodanie kilku przykładowych katalogów i nadanie im uprawnień dla użytkownika sftptest.

cd /home/sftptest
sudo mkdir Dokumenty public_html
sudo chown sftptest:sftptest *

Gotowe! Od tej pory użytkownik może korzystać z SFTP ale nie ma dostępu do SSH. W tutorialu SFTP więzi użytkownika w jego katalogu domowym, ale nic nie stoi na przeszkodzie, aby udostępnić inny katalog np /var/www – wystarczy tylko pamiętać o odpowiednich uprawnieniach, czyli – katalog, w którym ma być uwięziony użytkownik, musi mieć koniecznie właściciela i grupę root.

Polecane

Jesień Linuksowa

1 1174
Polska Grupa Użytkowników Linuksa ma zaszczyt zaprosić na konferencję Jesień Linuksowa 2017, która odbędzie się w dniach 22 – 24 września 2017 roku. Jako...