Twój przewodnik dotyczący korzystania z SSH



Wypróbuj Nasz Instrument Do Eliminowania Problemów

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).



kit



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:

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:

ssh

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

port-ssh

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 wiersz
X11Forwarding 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 czasowe
iptables -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”

Tagi ssh Tunelowanie SSH 4 minuty czytania