SSH to protokół sieciowy działający w konsoli. Najczęściej używanym klientem SSH jest PuTTy. Poniższy obraz przedstawia ustanowioną sesję SSH. Jest łatwy w użyciu i szybki. Większość informatyków zarządza całą siecią wyłącznie przez SSH ze względu na bezpieczeństwo oraz szybki / łatwy dostęp do wykonywania zadań administracyjnych i zarządzania na serwerze. Cała sesja w SSH jest szyfrowana - główne protokoły SSH to SSH1 / SSH-1 i SSH2 / SSH-2. SSH-2 jest tym drugim, bezpieczniejszym niż SSH-1. System operacyjny Linux ma wbudowane narzędzie o nazwie Terminal, aby uzyskać dostęp do konsoli, a komputer z systemem Windows wymaga klienta SSH (np. PuTTy).
Dostęp do zdalnego hosta przy użyciu protokołu SSH
Aby uzyskać dostęp do zdalnego hosta / maszyny za pomocą SSH, będziesz potrzebować:
do) PuTTy (darmowy klient SSH)
b) Nazwa użytkownika serwera SSH
c) Hasło serwera SSH
d) Port SSH który zwykle wynosi 22, ale ponieważ 22 jest domyślny, należy go zmienić na inny port, aby uniknąć ataków na ten port.
Na komputerze z systemem Linux nazwa użytkownika root jest domyślnie administratorem i zawiera wszystkie uprawnienia administracyjne.
W Terminalu następujące polecenie zainicjuje połączenie z serwerem.
ssh root@192.168.1.1
gdzie root to nazwa użytkownika, a 192.168.1.1 to adres hosta
Tak wygląda terminal:
Twoje polecenia zostaną wpisane po symbol $ . Aby uzyskać pomoc dotyczącą dowolnego polecenia w terminalu / putty, użyj składni:
man ssh
polecenie człowieka
man, po którym następuje dowolne polecenie, zwróci wskazówki dotyczące poleceń na ekranie
Więc to, co teraz zrobię, to SSH używając PuTTy do mojego Debiana OS działającego na VMWare.
Ale zanim to zrobię, muszę włączyć SSH, logując się do mojej maszyny wirtualnej Debian - jeśli właśnie kupiłeś serwer od firmy hostingowej, możesz poprosić ją o włączenie SSH dla Ciebie.
Aby włączyć ssh, użyj
sudo /etc/init.d/ssh restart
Ponieważ używam Ubuntu, a ssh nie został zainstalowany, więc
Aby zainstalować ssh, użyj tych poleceń
sudo apt-get install openssh-client
sudo apt-get install openssh-server
Oto, co mam, zalogowany do SSH przez PuTTy:
Oto, czego potrzeba, aby skonfigurować SSH i ustanowić sesję za pośrednictwem PuTTy - poniżej omówię kilka podstawowych zaawansowanych funkcji, które powoli zaczną zapewniać lepszy wgląd w cały scenariusz.
Domyślny plik konfiguracyjny ssh znajduje się pod adresem: / etc / ssh / sshd_config
Aby wyświetlić plik konfiguracyjny, użyj: cat / etc / ssh / sshd_config
Aby edytować plik konfiguracyjny użyj: vi / etc / ssh / sshd_config lub nano / etc / ssh / sshd_config
Po edycji dowolnego pliku użyj CTRL + X i naciśnij klawisz Y, aby zapisać i wyjść (edytor nano)
Port SSH można zmienić z pliku konfiguracyjnego, domyślny port to 22. Podstawowe polecenia, cat, vi i nano będą działać również w przypadku innych rzeczy. Aby dowiedzieć się więcej o poleceniach, użyj wyszukiwarki Google.
Jeśli wprowadzisz jakiekolwiek zmiany w dowolnym pliku konfiguracyjnym, ponowne uruchomienie jest wymagane dla tej usługi. Idąc dalej, załóżmy, że chcemy teraz zmienić nasz port, więc zamierzamy edytować plik sshd_config i użyłbym
nano / etc / ssh / sshd_config
Musisz być zalogowany jako administrator lub użyć sudo nano / etc / ssh / sshd_config aby edytować plik. Po edycji uruchom ponownie usługę ssh, sudo /etc/init.d/ssh restart
Jeśli zmieniasz port, upewnij się, że zezwalasz na to w swoich IPTABLES, jeśli używasz domyślnej zapory.
iptables -I INPUT -p tcp –dport 5000 -j AKCEPTUJ/etc/rc.d/init.d/iptables save
Zapytaj iptables, aby potwierdzić, czy port jest otwarty
iptables -nL | grep 5000
W pliku konfiguracyjnym znajduje się kilka dyrektyw, jak omówiono wcześniej, istnieją dwa protokoły dla SSH (1 i 2). Jeśli jest ustawiony na 1, zmień go na 2.
Poniżej znajduje się fragment mojego pliku konfiguracyjnego:
# Plik konfiguracyjny wygenerowany przez pakiet
# Zobacz stronę podręcznika sshd_config (5) po szczegóły
# Jakich portów, adresów IP i protokołów nasłuchujemy
Port 5000 zastąpiono numer 22 portem
# Użyj tych opcji, aby ograniczyć interfejsy / protokoły, z którymi będzie się łączyć sshd
#ListenAddress ::
#ListenAddress 0.0.0.0
Protokół 2 zamienił protokół 1 na 2
nie zapomnij ponownie uruchomić usługi po wprowadzeniu zmian
Root jest administratorem i zaleca się, aby był wyłączony, w przeciwnym razie, jeśli jesteś otwarty na połączenia zdalne, możesz stać się przedmiotem ataku brute force lub innych luk w zabezpieczeniach ssh - serwery Linux są ulubionymi urządzeniami hakerów, dyrektywy LoginGraceTime , ustawia limit czasu dla użytkownika na logowanie i uwierzytelnianie, jeśli użytkownik tego nie robi, połączenie zostaje zamknięte - pozostaw to domyślne.
# Uwierzytelnianie:
Zaloguj sięGraceTime 120
PermitRootLogin no
StrictModes tak
Super fajną funkcją jest Uwierzytelnianie klucza (PubkeyAuthentication) - Ta funkcja umożliwia skonfigurowanie tylko uwierzytelniania opartego na kluczach, tak jak w przypadku serwerów Amazon EC3. Możesz uzyskać dostęp do serwera tylko za pomocą klucza prywatnego, jest on bardzo bezpieczny. Aby to zadziałało, musisz wygenerować parę kluczy i dodać ten klucz prywatny do komputera zdalnego, a następnie dodać klucz publiczny do serwera, aby można było uzyskać do niego dostęp za pomocą tego klucza.
PubkeyAuthentication tak
AuthorizedKeysFile .ssh / authorized_keys
RSAAuthentication tak
Hasło Nr uwierzytelnienia
Spowoduje to odrzucenie dowolnego hasła i pozwoli użytkownikom na dostęp tylko za pomocą klucza.
W profesjonalnej sieci zwykle informowałbyś użytkowników, co wolno im robić, a czego nie, oraz wszelkie inne niezbędne informacje
Plik konfiguracyjny do edycji dla banerów to: / etc / motd
Aby otworzyć plik w edytorze, wpisz: nano / etc / motd lub sudo / etc / motd
Edytuj plik tak samo, jak w notatniku.
Możesz również umieścić baner w pliku i odwołać się do niego w / etc / motd
na przykład: nano banner.txt utworzy plik banner.txt i natychmiast otworzy edytor.
Edytuj baner i ctrl + x / y, aby go zapisać. Następnie odwołaj się do niego w pliku motd, używając
Banner /home/users/appualscom/banner.txt LUB cokolwiek, ścieżka pliku to.
Podobnie jak baner, możesz również dodać wiadomość przed monitem logowania, plik do edycji to / etc / issue
Tunelowanie SSH
Tunelowanie SSH umożliwia tunelowanie ruchu z komputera lokalnego do komputera zdalnego. Jest tworzony za pomocą protokołów SSH i jest szyfrowany. Przeczytaj artykuł na Tunelowanie SSH
Sesja graficzna w tunelu SSH
Włącz sesję graficzną / GUI, odkomentowując następujący wierszX11Forwarding tak
Po stronie klienta polecenie wyglądałoby tak:
ssh -X root@10.10.10.111
Możesz uruchomić program taki jak firefox itp., Używając prostych poleceń:
firefox
Jeśli pojawi się błąd wyświetlania, ustaw adres:
export DISPLAY = IPaddressofmachine: 0.0
Opakowania TCP
Jeśli chcesz zezwolić wybranym hostom, a niektórym odmówić, to są to pliki, które musisz edytować
1. /etc/hosts.allow
2. /etc/hosts.deny
Aby pozwolić kilku hostom
sshd: 10.10.10.111
Aby zablokować wszystkim dostęp do serwera przez ssh, dodaj następujący wiersz w /etc/hosts.deny
sshd: ALL
SCP - Secure Copy
SCP - bezpieczna kopia to narzędzie do przesyłania plików. Będziesz musiał użyć następującego polecenia, aby skopiować / przesłać pliki przez ssh.
poniższe polecenie skopiuje mój plik do / home / user2 10.10.10.111
scp / home / user / myfile root@10.10.10.111: / home / user2
składnia miejsca docelowego źródła scp
Aby skopiować folder
scp –r / home / user / myfolder roor@10.10.10.111: / home / user2
Wyszukiwanie plików na zdalnym komputerze
Wyszukiwanie plików na zdalnym komputerze i przeglądanie wyników w systemie jest bardzo łatwe. Wyszukiwanie plików na zdalnym komputerze
ssh root@10.10.10.111 „find / home / user –name„ * .jpg ””Polecenie przeszuka katalog / home / user dla wszystkich plików * .jpg, możesz z nim grać. find / -name przeszuka cały katalog / root.
Dodatkowe zabezpieczenia SSH
iptables umożliwia ustawienie ograniczeń czasowych. Poniższe polecenia zablokują użytkownika na 120 sekund, jeśli uwierzytelnienie się nie powiedzie. Możesz użyć parametru / sekunda / godzina / minuta lub / dzień w poleceniu, aby określić okres.
Limity czasoweiptables -A INPUT -p tcp -m stan –syn –stan NOWOŚĆ –dport 22 -m limit –limit 120 / sekundę –limit-burst 1 -j AKCEPTUJ
iptables -A WEJŚCIE -p tcp -m stan –syn –stan NOWOŚĆ –dport 5000 -j DROP
5000 to port, zmień go zgodnie z ustawieniami .
Zezwalanie na uwierzytelnianie z określonego adresu IP
iptables -A INPUT -p tcp -m stan –stan NOWY –źródło 10.10.10.111 –dport 22 -j AKCEPTUJ
Inne przydatne polecenia
Dołącz ekran przez SSH
ssh -t root@10.10.10.111 screen –r
Kontrola szybkości transferu SSH
tak | pv | ssh $root@10.10.10.111 „cat> / dev / null”