W wielu przypadkach musimy przesyłać wiele informacji między urządzeniami, a najczęstszym sposobem na to, który ma miejsce od ponad 20 lat, jest korzystanie z protokołu FTP (File Transfer Protocol) i FTP, który umożliwia przesyłanie między połączonymi komputerami. TCP na zasadzie klient/serwer.
W przypadku FTP używamy portów 20 i 21. Teraz mamy nowy predefiniowany protokół o nazwie SFTP, który jest włączony na wszystkich serwerach obsługujących SSH.
SFTP (SSH File Transfer Protocol) różni się od typu FTP, chociaż obsługuje wszystkich obecnych klientów FTP. Chociaż SFTP został zaimplementowany w celu dodania warstwy bezpieczeństwa, przedstawia lukę na poziomie dostępu, ponieważ jako standard zapewnia pełny dostęp użytkownikom systemu do przesyłania plików i korzystania z powłoki.
Dzisiaj Solvetic nauczy, jak skonfigurować CentOS 7, aby uniemożliwić określonemu użytkownikowi dostęp SSH z możliwością manipulowania systemem za pośrednictwem protokołu SFTP0.
1. Tworzenie użytkownika
Najpierw utworzymy użytkownika, który będzie miał dostęp ograniczony przez SSH, w tym przypadku nazwiemy go dostępem, wykonujemy co następuje:
sudo adduser dostępNastępnie przypisujemy hasło nowemu użytkownikowi, wykonując następujące czynności:
dostęp do hasła sudo
2. Tworzenie katalogu do transferu plików
Po utworzeniu naszego użytkownika następnym krokiem jest utworzenie katalogu, w którym będzie działał SFTP, uniemożliwiając dostęp i należy go skonfigurować z określonymi parametrami.
Stworzymy katalog o nazwie /var/sftp/uploads, w którym częścią /var/sftp będzie użytkownik root i żaden inny użytkownik nie będzie miał aktywnych uprawnień, a w podkatalogu /var/sftp/uploads będzie właścicielem dostęp nowego użytkownika . Katalog tworzymy za pomocą następującej linii:
sudo mkdir -p / var / sftp / przesyłanieNastępnie ustanawiamy użytkownika root jako właściciela we wskazanym katalogu:
sudo chown root: root / var / sftpNadajemy uprawnienia do zapisu użytkownikowi root i odczytu innym użytkownikom we wskazanej ścieżce:
sudo chmod 755 / var / sftp
Teraz modyfikujemy właściciela przesłanych plików tak, aby był to dostęp użytkownika, wykonujemy następujące czynności:
dostęp do sudo chown: dostęp / var / sftp / przesyłanie
3. Ograniczanie dostępu do katalogu
W tym kroku zobaczymy, jak ograniczyć dostęp przez terminal do dostępu użytkownika, ale czy będzie możliwe przesyłanie plików. W tym celu musimy edytować serwer SSH za pomocą preferowanego edytora, vima lub nano, w następującej ścieżce:
sudo nano / etc / ssh / sshd_configZobaczymy:
W końcowej części pliku dodajemy:
Dopasuj dostęp użytkownika ForceCommand internal-sftp PasswordAuthentication tak ChrootDirectory / var / sftp PermitTunnel nie AllowAgentForwarding nie AllowTcpForwarding nie X11Forwarding nie
Zapisujemy zmiany za pomocą kombinacji klawiszy Ctrl + O i wychodzimy z edytora za pomocą klawiszy Ctrl + X. Użyta składnia sugeruje, co następuje:
Dopasuj użytkownikaPowiedz serwerowi SSH, aby zastosował zmiany do wskazanego tam użytkownika.
ForceCommand wewnętrzny sftpWymusza na serwerze SSH uruchomienie SFTP, aby uniemożliwić dostęp do powłoki.
Uwierzytelnianie hasłem takWłącz uwierzytelnianie hasłem
Katalog Chroot / var / sftp /Odnosi się do faktu, że wskazany użytkownik nie będzie miał dostępu poza ścieżką /var/sftp.
AllowAgentForwarding nie, AllowTcpForwarding nie. a X11Forwarding nie jestTe opcje wyłączają przekazywanie portów, tunelowanie i przekazywanie protokołu X11 dla określonego użytkownika.
Po zapisaniu pliku wykonamy następujące polecenie, aby zastosować zmiany w SSH:
sudo systemctl restart sshd
4. Weryfikacja połączenia SSH
Krok 1
Po skonfigurowaniu nadejdzie czas, aby zweryfikować dostęp przez SSH i sprawdzić, czy możliwe będzie tylko przesyłanie plików. W tym celu przechodzimy do połączenia przez SSH, które w tym przypadku będzie.
ssh [email protected]Po wprowadzeniu danych dostępowych zobaczymy następujący komunikat:
Krok 2
Dzięki temu sprawdziliśmy, że połączenie zostanie zamknięte przez SSH. Teraz wypróbujemy połączenie za pomocą protokołu sftp:
dostęp [email protected]Wpisując hasło zobaczymy, że połączenie się powiodło i będziemy mogli przesyłać pliki:
Krok 3
Tam możemy użyć polecenia ls, aby wyświetlić listę dostępnych katalogów i zobaczymy utworzony przez nas folder przesyłania:
Krok 4
Tam możemy przenieść informacje, ale jeśli spróbujemy wrócić do powyższego katalogu za pomocą cd … nie otrzymamy błędu, ale widzimy, że nie można wyświetlić żadnego katalogu:
To takie proste, że możemy ograniczyć dostęp dzięki sftp.