Najlepszym zasobem, który pomoże Ci rozpocząć konfigurację usługi ssh na maszynie hosta za pomocą Ubuntu, jest serwer OpenSSH . Umożliwi to korzystanie z protokołu przesyłania plików SSH (również bezpiecznego protokołu przesyłania plików lub SFTP) w celu uzyskiwania dostępu, przesyłania i zarządzania plikami przez SSH z komputera klienta.
Przegląd rozwiązania
- W systemie Ubuntu można skonfigurować
OpenSSH server
komputer hosta, a użytkownik może następnie użyć ssh
do połączenia klienta z serwerem hosta za pomocą tylko nazwy użytkownika i hasła. Należy jednak pamiętać, że zalecane jest uwierzytelnianie za pomocą klucza publicznego,
„ Przed zainstalowaniem serwera SSH upewnij się, że masz silne hasło (możesz całkowicie wyłączyć hasła )”
- Konta użytkowników administracyjnych utworzone na hoście będą miały uprawnienia sudo, standardowe konta użytkowników utworzone na hoście nie będą.
Zainstaluj i skonfiguruj serwer OpenSSH na hoście
Aby zainstalować serwer OpenSSH na hoście:
sudo apt-get install openssh-server
Nadaj hostowi statyczny adres IP, abyś mógł się z nim niezawodnie połączyć:
nm-connection-editor
Aby skonfigurować serwer OpenSSH , „najpierw wykonaj kopię zapasową pliku sshd_config, kopiując go do katalogu domowego lub wykonując kopię tylko do odczytu w / etc / ssh, wykonując:”
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
sudo chmod a-w /etc/ssh/sshd_config.factory-defaults
„Po utworzeniu kopii zapasowej sshd_config
pliku możesz wprowadzić zmiany w dowolnym edytorze tekstu, na przykład:”
sudo -H gedit /etc/ssh/sshd_config
Musisz ponownie uruchomić usługę ssh na hoście, aby zmiany zostały wprowadzone
sudo service ssh restart
Rozważ następujące środki bezpieczeństwa
- Nie włączaj przekierowywania portów na routerze: gdy outsider poprosi router o połączenie outsider z portem 22 itp., Router nie spełnia wymagań, chyba że włączyłeś przekierowanie portów
- Wyłącz logowanie do roota: skomentuj
PermitRootLogin without-password
; dodaj PermitRootLogin no
do hosta/etc/ssh/sshd_config
- Wybierz niestandardowy port SSH: Skomentuj
Port 22
; dodaj Port <new-port-number>
do hosta/etc/ssh/sshd_config
- Zezwalaj tylko na połączenia lokalne: Dodaj
ListenAddress 192.168.0.10
- Zezwalaj określonym użytkownikom na określonych portach: Dodaj
AllowUsers <username>@<IP_address_1> <username>@<IP_address_2>
lub AllowUsers <username>@111.222.333.*
do hosta/etc/ssh/sshd_config
- Zezwalaj tylko na połączenia z kluczem RSA (bez hasła): dołącz zawartość
~/.ssh/id_rsa.pub
każdego klienta jako nowy wiersz hosta ~/.ssh/authorized_keys
. Następnie dodaj PasswordAuthentication no
do Hosta/etc/ssh/sshd_config
- Powolne próby włamań atakujących: Użyj ufw (nieskomplikowana zapora ogniowa) na hoście, aby ograniczyć liczbę połączeń przychodzących do 10 / minutę:
sudo apt-get install ufw && sudo ufw limit OpenSSH
- Aby uzyskać więcej pomysłów, zobacz Zabezpieczanie dostępu SSH
Jeśli uważasz, że musisz, Włącz PasswordAuthentication
w swoim sshd_config
pliku
Znajdź wiersz ze zwrotem PasswordAuthentication
i spraw, aby brzmiał:
PasswordAuthentication yes
Zapisz nowy sshd_config
plik, a następnie ponownie uruchom ssh
usługę hosta :
sudo service ssh restart
Jeśli potrzebujesz dostępu z dowolnego miejsca przez Internet, skonfiguruj przekierowanie portów na lokalnym routerze, aby skierować ruch do serwera OpenSSH
Zwróć uwagę, że ssh
usługa hosta portu nasłuchuje w sshd_config
pliku i skonfiguruj router, aby przekazywał ruch TCP / UDP skierowany do tego portu na adres IP serwera OpenSSH.
Połącz się z Hostem i zaloguj za pomocą wiersza polecenia lub terminala
Aby otworzyć terminal powłoki SFTP jak <username>
na hoście, otwórz terminal na kliencie i wprowadź następującą komendę, zastępując 123.123.1.23
adres IP hosta:
sftp <username>@123.123.1.23
Jeśli zmieniłeś numer portu, na którym nasłuchuje serwer OpenSSH hosta, wykonaj:
sftp -P <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
Aby otworzyć terminal powłoki SSH jak <username>
na hoście, otwórz terminal na kliencie i wprowadź następującą komendę, zastępując 123.123.1.23
adres IP hosta:
ssh <username>@123.123.1.23
Jeśli zmieniłeś numer portu, na którym nasłuchuje serwer OpenSSH hosta, wykonaj:
ssh -p <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
Połącz się z Hostem i zaloguj się za pomocą menedżera plików GUI (np. Nautilus), aby uzyskać bardziej wizualny dostęp do SFTP, aby umożliwić przesyłanie plików
- Otwórz Nautilus na kliencie
- Wybierz Plik> Połącz z serwerem
- Rodzaj:
SSH
- Serwer: wprowadź adres IP hosta
- Port: numer portu określony w
sshd_config
pliku hosta
- Nazwa użytkownika: nazwa użytkownika
- Hasło: hasło
W 14.04:
- Otwórz Nautilus na kliencie
- Połączyć się z serwerem
- Wpisz: `ssh @ 123.123.1.23:
Utwórz standardowe konta użytkowników na hoście z ograniczonymi uprawnieniami do plików poza ich folderem domowym
Odpowiednie uprawnienia do plików na hoście gwarantują, że każdy standardowy użytkownik (bez uprawnień sudo) utworzony na hoście będzie właścicielem swojego /home/new_user
katalogu, ale będzie miał ograniczone uprawnienia do reszty struktury katalogu.
- Ograniczone uprawnienia niekoniecznie oznaczają, że nie są w stanie wyświetlić nazw plików i struktury katalogów.
Mam nadzieję, że to jest pomocne!
Krok 1: Zainstaluj pakiet OpenSSH, jeśli nie jest zainstalowany
Krok 2: Utwórz osobną grupę dla użytkowników SFTP.
Krok 3: Edytuj
/etc/ssh/sshd_config
plik i wprowadź zmiany jak poniżej. Znajdź i skomentuj poniżej linii.i dodaj te linie na końcu pliku.
Krok 4: Uruchom ponownie usługę sshd.
Krok 5: Dodaj użytkownika z grupą ftpaccess i utwórz hasło.
Krok 6: Zmodyfikuj uprawnienia do katalogu domowego.
Krok 7: Utwórz katalog w domu do przesyłania i zmodyfikuj uprawnienia w grupie.
Otóż to .
Patrz: Konfiguracja SFTP na ubuntu
źródło
sudo chmod 711
w folderze domowym i pozwoliło mi to tylko na ftp do folderu www. Na razie wydaje się dobry, ale może inni mogą dzwonić w ...Denyhosts to kolejne narzędzie oprócz tych wymienionych przez „jtd”, na które warto spojrzeć. Może automatycznie blokować powtarzające się próby połączenia z serwerem SSH. Można go zainstalować w repozytoriach Ubuntu.
źródło
Ogranicz dostęp do użytkownika
Tutaj pozwolimy tylko użytkownikowi na przesyłanie plików i wyłączymy dostęp do terminala.
W tym celu dodaj następujące kody na dole pliku konfiguracyjnego.
Teraz plik otworzy się i wklei kod.
Zastąp
filemg
swoją nazwą użytkownika. Następnie zapisz i zamknij plik.Otóż to.
Odniesienia: Jak korzystać z SFTP w Ubuntu 16.04
źródło