Jak ograniczyć dostęp użytkownika SSH do określonego katalogu za pomocą więzienia chrooted

Jak ograniczyć dostęp użytkownika SSH do określonego katalogu za pomocą więzienia chrooted

Istnieje kilka powodów, aby ograniczyć sesję użytkownika SSH do konkretnego katalogu, szczególnie na serwerach internetowych, ale oczywistym jest bezpieczeństwo systemowe. Aby zablokować użytkowników SSH w określonym katalogu, możemy użyć Chroot mechanizm.

Zmień root (Chroot) w systemach podobnych do Unix, takich jak Linux, jest sposobem oddzielenia określonych operacji użytkownika od reszty systemu Linux; zmienia pozorny katalog główny dla aktualnie uruchomionego procesu użytkownika i jego dzieci (nadrzędnego) z nowym katalogiem głównym o nazwie A Chrooted więzienie.

W tym samouczku pokażemy, jak ograniczyć dostęp użytkownika SSH do danego katalogu w Linux. Zauważ, że uruchomimy wszystkie polecenia jako root, użyj polecenia sudo, jeśli jesteś zalogowany na serwerze jako normalny użytkownik.

Spis treści

1
  • Krok 1: Utwórz więzienie SSH chroot
  • Krok 2: Konfiguracja interaktywnej powłoki do więzienia SSH Chroot
  • Krok 3: Utwórz i skonfiguruj użytkownika SSH
  • Krok 4: Skonfiguruj SSH, aby użyć więzienia Chroot
  • Krok 5: Testowanie SSH z więzieniem Chroot
  • Krok 6. Utwórz katalog domowy użytkownika SSH i dodaj polecenia Linux
  • Krok 7. Testowanie SFTP z więzieniem Chroot

Krok 1: Utwórz więzienie SSH chroot

1. Zacznij od utworzenia więzienia Chroot za pomocą polecenia MKDIR poniżej:

# mkdir -p /dom /test 

2. Następnie Zidentyfikuj wymagane pliki, zgodnie z sshd_config Strona Man, The Chrootdirectory Opcja określa nazwę ścieżki katalogu do chroot do uwierzytelnienia. Katalog musi zawierać niezbędne pliki i katalogi, aby obsługiwać sesję użytkownika.

W przypadku sesji interaktywnej wymaga to co najmniej powłoki cii, i podstawowe /Dev Węzły takie jak NULL, ZERO, STDIN, STDOUT, STDERR i TTY Urządzenia:

# ls -l /dev /null, zero, stdin, stdout, stdderr, losowo, tty 
Wymagane pliki

3. Teraz stwórz /Dev pliki w następujący sposób za pomocą polecenie mknod. W poniższym poleceniu, -M Flaga służy do określenia bitów uprawnień do pliku, C oznacza plik znaku, a dwie liczby są głównymi i drobnymi liczbami, na które wskazują pliki.

# mkdir -p/home/test/dev/ # cd/home/test/dev/ # mknod -m 666 null c 1 3 # mknod -m 666 tty c 5 0 # mknod -m 666 zero c 1 5 # mknod - M 666 losowe C 1 8 
Utwórz /dewel i wymagane pliki

4. Następnie ustaw odpowiednią zgodę w więzieniu Chroot. Zauważ, że więzienie Chroot oraz jego podwodniki i podwodniki muszą być własnością źródło Użytkownik, a nie zapisujący żaden normalny użytkownik lub grupa:

# chown root: root /home /test # chmod 0755 /home /test # ls -ld /home /test 
Ustaw uprawnienia do katalogu

Krok 2: Konfiguracja interaktywnej powłoki do więzienia SSH Chroot

5. Najpierw stwórz kosz katalog, a następnie skopiuj /bin/bash pliki do kosz katalog używa polecenia CP w następujący sposób:

# mkdir -p/home/test/bin # cp -v/bin/bash/home/test/bin/ 
Skopiuj pliki do katalogu bin

6. Teraz zidentyfikuj bash wymagany do udostępniania libs, jak poniżej i skopiuj je do Lib informator:

# ldd/bin/bash # mkdir -p/home/test/lib64 # cp -v/lib64/libtinfo.Więc.5, Libdl.Więc.2, Libc.Więc.6, LD-Linux-X86-64.Więc.2/home/test/lib64/ 
Skopiuj udostępnione pliki biblioteki

Krok 3: Utwórz i skonfiguruj użytkownika SSH

7. Teraz utwórz użytkownika SSH za pomocą polecenia UserADD i ustaw bezpieczne hasło dla użytkownika:

# useradd Tecmint # Passwd Tecmint 

8. Utwórz katalog konfiguracji Chroot Jail Ogólne, /dom/test/itd i skopiuj zaktualizowane pliki konta (/etc/passwd I /etc/grupa) w tym katalogu w następujący sposób:

# mkdir/home/test/etc # cp -vf/etc/passwd, grupa/home/test/etc// 
Skopiuj pliki hasła Notatka: Za każdym razem, gdy dodajesz więcej użytkowników SSH do systemu, musisz skopiować zaktualizowane pliki konta do /dom/test/itd informator.

Krok 4: Skonfiguruj SSH, aby użyć więzienia Chroot

9. Teraz otwórz sshd_config plik.

# vi/etc/ssh/sshd_config 

i dodaj/zmodyfikuj poniższe wiersze w pliku.

#określić nazwę użytkownika, aby zastosować więzienie chroot Dopasuj użytkownika #Specify Chroot Jail Chrootdirectory /dom /test 
Skonfiguruj więzienie ssh chroot

Zapisz plik i wyjście i uruchom ponownie usługi SSHD:

# Systemctl restart SSHD lub # Service SSHD restart 

Krok 5: Testowanie SSH z więzieniem Chroot

10. W tym momencie sprawdź, czy konfiguracja więzienia Chroot działa zgodnie z oczekiwaniami:

# ssh [chroniony e -mail] -Bash-4.1 $ ls -bash -4.1 $ data -Bash -4.1 $ niezamalnie 
Testowanie więzienia użytkownika SSH CHROOT

Z powyższego zrzutu ekranu widzimy, że użytkownik SSH jest zablokowany w więzieniu chrootowanym i nie może uruchamiać żadnych poleceń zewnętrznych (LS, data, niezmieniona itp.).

Użytkownik może wykonywać tylko Bash i jego wbudowane polecenia, takie jak (PWD, History, Echo itp.) Jak pokazano poniżej:

# ssh [chroniony e -mail] -Bash-4.1 $ PWD -Bash -4.1 $ echo „TecMint -najszybciej rozwijająca się strona Linux” -Bash -4.1 $ HISTORIA 
SSH wbudowane polecenia

Krok 6. Utwórz katalog domowy użytkownika SSH i dodaj polecenia Linux

11. Z poprzedniego kroku możemy zauważyć, że użytkownik jest zablokowany w katalogu głównym, możemy utworzyć katalog domowy dla użytkownika SSH tak (zrób to dla wszystkich przyszłych użytkowników):

# mkdir -p/home/test/home/tecmint # chown -r Tecmint: Tecmint/home/test/home/tecmint # chmod -r 0700/home/test/home/tecmint 
Utwórz katalog domu użytkownika SSH

12. Następnie zainstaluj kilka poleceń użytkownika, takich jak LS, Data i Mkdir w kosz informator:

# cp -v/bin/ls/home/test/bin/ # cp -v/bin/date/home/test/bin/ # cp -v/bin/mkdir/home/test/bin/bin/ 
Dodaj polecenia do użytkownika SSH

13. Następnie sprawdź wspólne biblioteki dla powyższych poleceń i przenieś je do katalogu bibliotek więziennych:

# ldd /bin /ls # cp -v /lib64 /libselinux.Więc.1, libcap.Więc.2, Libacl.Więc.1, Libc.Więc.6, libpcre.Więc.1, Libdl.Więc.2, LD-Linux-X86-64.Więc.2, Libattr.Więc.1, libpthread.Więc.0/home/test/lib64/ 
Kopiuj udostępnione biblioteki

Krok 7. Testowanie SFTP z więzieniem Chroot

14. Wykonaj ostateczny test przy użyciu SFTP; Sprawdź, czy polecenia, które właśnie zainstalowałeś, działają.

Dodaj linię poniżej w /etc/ssh/sshd_config plik:

#Enable SFTP do chrooted więzienie forceCommand Internal-SFTP 

Zapisz plik i wyjdź. Następnie uruchom ponownie usługi SSHD:

# Systemctl restart SSHD lub # Service SSHD restart 

15. Teraz przetestuj za pomocą SSH, a otrzymasz następujący błąd:

# ssh [chroniony e -mail] 
Test ssh chroot więzienie

Spróbuj użyć SFTP w następujący sposób:

# sftP [chroniony e -mail] 
Testowanie użytkownika SFTP SSH

Może ci się spodobać również:

  • Jak ograniczyć użytkowników SFTP do katalogów domowych za pomocą więzienia Chroot
  • Podstawowe użycie i konfiguracja poleceń SSH w Linux
  • 5 najlepszych praktyk zapobiegających atakom logowania Brute Force SSH w Linux
  • 5 najlepszych praktyk bezpieczeństwa serwera OpenSSH

To wszystko na razie! W tym artykule pokazaliśmy, jak ograniczyć użytkownika SSH w danym katalogu (więzienie chrooted) w Linux. Skorzystaj z poniższej sekcji komentarzy, aby zaoferować nam swoje przemyślenia na temat tego przewodnika.