Android

Jak skonfigurować więzienie chroot sftp

What Is an SFTP Server?

What Is an SFTP Server?

Spisu treści:

Anonim

W tym samouczku wyjaśnimy, jak skonfigurować środowisko Jail Chroot Jail, które ograniczy użytkowników do ich katalogów domowych. Użytkownicy będą mieli tylko dostęp SFTP, dostęp SSH zostanie wyłączony. Te instrukcje powinny działać dla każdej nowoczesnej dystrybucji Linuksa, w tym Ubuntu, CentOS, Debian i Fedora.

Tworzenie grupy SFTP

Zamiast konfigurować serwer OpenSSH dla każdego użytkownika indywidualnie, utworzymy nową grupę i dodamy do niej wszystkich naszych chrootowanych użytkowników.

Uruchom następującą komendę groupadd aby utworzyć grupę użytkowników sftponly :

sudo groupadd sftponly Możesz nazwać grupę, jak chcesz.

Dodawanie użytkowników do grupy SFTP

Następnym krokiem jest dodanie użytkowników, których chcesz ograniczyć, do grupy sftponly .

Jeśli jest to nowa konfiguracja, a użytkownik nie istnieje, możesz utworzyć nowe konto użytkownika, wpisując:

sudo useradd -g sftponly -s /bin/false -m -d /home/username username

  • Opcja -g sftponly doda użytkownika do grupy sftponly. Opcja -s /bin/false ustawia powłokę logowania użytkownika. Ustawiając powłokę logowania na /bin/false użytkownik nie będzie mógł zalogować się do serwera przez SSH. -M -m -d /home/username informuje -m -d /home/username aby utworzył katalog osobisty użytkownika.

Ustaw silne hasło dla nowo utworzonego użytkownika:

sudo passwd username

W przeciwnym razie, jeśli użytkownik, którego chcesz ograniczyć, już istnieje, dodaj go do grupy sftponly i zmień jego powłokę:

sudo usermod -G sftponly -s /bin/false username2

Katalog domowy użytkownika musi być własnością root i mieć 755 uprawnień:

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

Ponieważ katalogi domowe użytkowników są własnością użytkownika root, użytkownicy ci nie będą mogli tworzyć plików i katalogów w swoich katalogach domowych. Jeśli w domu użytkownika nie ma żadnych katalogów, musisz utworzyć nowe katalogi, do których użytkownik będzie miał pełny dostęp. Na przykład możesz utworzyć następujące katalogi:

sudo mkdir /home/username/{public_html, uploads} sudo chmod 755 /home/username/{public_html, uploads} sudo chown username:sftponly /home/username/{public_html, uploads}

Jeśli aplikacja internetowa używa public_html użytkownika jako katalogu głównego dokumentu, zmiany te mogą prowadzić do problemów z uprawnieniami. Na przykład, jeśli korzystasz z WordPress, będziesz musiał utworzyć pulę PHP, która będzie działać jako użytkownik będący właścicielem plików i dodać sftponly grupy sftponly .

Konfigurowanie SSH

SFTP jest podsystemem SSH i obsługuje wszystkie mechanizmy uwierzytelniania SSH.

Otwórz plik konfiguracyjny SSH /etc/ssh/sshd_config w edytorze tekstu:

sudo nano /etc/ssh/sshd_config

Wyszukaj wiersz zaczynający się od Subsystem sftp , zwykle na końcu pliku. Jeśli linia zaczyna się od skrótu # usuń skrót # i zmodyfikuj go, aby wyglądał następująco:

/ etc / ssh / sshd_config

Subsystem sftp internal-sftp

Pod koniec pliku następujący blok ustawień:

/ etc / ssh / sshd_config

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

Dyrektywa ChrootDirectory określa ścieżkę do katalogu chroot. %h oznacza katalog domowy użytkownika. Ten katalog musi być własnością użytkownika root i nie może być zapisywany przez żadnego innego użytkownika lub grupę.

Zachowaj szczególną ostrożność podczas modyfikowania pliku konfiguracyjnego SSH. Niepoprawna konfiguracja może spowodować, że usługa SSH nie powiedzie się.

Po zakończeniu zapisz plik i uruchom ponownie usługę SSH, aby zastosować zmiany:

sudo systemctl restart ssh

W CentOS i Fedorze usługa ssh nazywa się sshd :

sudo systemctl restart sshd

Testowanie konfiguracji

Po skonfigurowaniu chroota SFTP możesz spróbować zalogować się do zdalnego komputera za pośrednictwem SFTP przy użyciu poświadczeń chrootowanego użytkownika. W większości przypadków użyjesz stacjonarnego klienta SFTP, takiego jak FileZilla, ale w tym przykładzie użyjemy polecenia sftp.

Otwórz połączenie SFTP za pomocą polecenia sftp, a następnie nazwy użytkownika zdalnego serwera oraz adresu IP lub nazwy domeny serwera:

sftp [email protected]

Zostaniesz poproszony o podanie hasła użytkownika. Po połączeniu serwer zdalny wyświetli komunikat potwierdzający i monit sftp> :

[email protected]'s password: sftp>

Uruchom polecenie pwd , jak pokazano poniżej, a jeśli wszystko działa zgodnie z oczekiwaniami, polecenie powinno zwrócić / .

sftp> pwd Remote working directory: /

Możesz także wyświetlić listę zdalnych plików i katalogów za pomocą polecenia ls Powinieneś zobaczyć katalogi, które wcześniej utworzyliśmy:

sftp> ls public_html uploads

Wniosek

W tym samouczku nauczyłeś się konfigurować środowisko Jail Chroot Jail na serwerze Linux i ograniczać dostęp użytkowników do ich katalogu domowego.

Domyślnie SSH nasłuchuje na porcie 22. Zmiana domyślnego portu SSH dodaje dodatkową warstwę bezpieczeństwa do twojego serwera, zmniejszając ryzyko automatycznych ataków. Możesz także skonfigurować uwierzytelnianie oparte na kluczu SSH i połączyć się z serwerem bez podawania hasła.

bezpieczeństwo ssh sftp