Zaawansowana bezpieczna powłoka: 6 rzeczy, które możesz zrobić dzięki SSH
Opublikowany: 2021-10-02SSH to najpopularniejsze narzędzie do zdalnego dostępu do Twoich serwerów. Jest to również jedno z najbardziej niezrozumianych narzędzi w sysadmin. Chociaż ma kilka bardzo konkretnych przypadków użycia, istnieje wiele innych, o których ludzie nie wiedzą. W tym poście omówimy sześć rzeczy, które możesz zrobić za pomocą SSH, aby ułatwić życie i rozwiązać więcej problemów, niż możesz sobie wyobrazić!
Powiązane: 10 najlepszych skanerów bezpieczeństwa kodu PHP.
Zaawansowana bezpieczna powłoka: 6 rzeczy, które możesz zrobić dzięki SSH
1) SFTP
SFTP to skrót od SSH File Transfer Protocol. Umożliwia bezpieczne kopiowanie plików przez sieć przy użyciu preferowanej metody przenoszenia danych (FTP, SCP, Rsync). Używa również kluczy, a nie haseł, w celu poprawy bezpieczeństwa i uwierzytelniania.
Świetnie nadaje się do przesyłania plików w miejscach, w których FTP lub SCP są zablokowane, ale SFTP nie! Możesz go również użyć, jeśli chcesz połączyć się między dwiema maszynami, które nie mają bezpośredniego dostępu, ale gdzie SSH ma.
Korzystanie z FileZilla jest preferowanym sposobem, który polega na wprowadzeniu nazwy użytkownika, portu i adresu SSH. Następnie nadszedł czas, aby użyć SFTP, wpisując po prostu „sftp [ochrona poczty e-mail]”. Umożliwi to interakcję z terminalem w celu pobierania/przesyłania plików, przeglądania katalogów i nie tylko.
2) Utrzymuj połączenie przy życiu
Zatrzymanie połączenia przed śmiercią jest zawsze ważne. Na szczęście możesz zapobiec przedwczesnemu zakończeniu sesji SSH za pomocą trzech dyrektyw.
Argument TCPKeepAlive określa, czy połączenie ma być otwarte. Gdy ta opcja jest włączona, klient będzie stale wysyłać pakiety danych w celu utrzymania połączenia sieciowego z serwerem, z którym jest połączony.
ClientAliveInterval określa, jak często system ma wysyłać ruch przez sieć. ClientAliveCountMax określa, po ilu komunikatach bez odpowiedzi powinno nastąpić zakończenie tej sesji, aby mogła nastąpić kolejna próba.
ServerAliveInterval jest tym samym co ClientAliveInterval, ale jest ustawiony na drugim końcu. Określa, jak długo klient będzie czekał przed wysłaniem danych, aby sprawdzić, czy nadal jest połączony.
Używając tych trzech razem, możesz zapobiec przekroczeniu limitu czasu sesji SSH, jednocześnie pozwalając na zatrzymanie ruchu do czasu ustanowienia kolejnej sesji. Możesz także poinstruować serwer lub klienta, ile razy powinny zawieść, zanim rozważysz wyłączenie łącza sieciowego!
3) Agent SSH
SSH Agent to program, który pomaga zarządzać kluczami SSH. Zapewnia łatwy sposób ładowania klucza prywatnego do pamięci, dzięki czemu nie musisz za każdym razem wpisywać hasła!
Po uruchomieniu sesji z agentem wszystkie okna i aplikacje, które wymagają połączenia SSH, automatycznie otrzymają dostęp do Twojego klucza prywatnego. Zrobiłeś tylko jedno hasło dla tego procesu, aby szybko rozpocząć!
Agenci mogą być przekierowywani w celu używania tych samych poświadczeń z podłączonego hosta do innego. Jednak te dane uwierzytelniające są przechowywane przez agentów, co zwiększa ryzyko włamania. Dlatego nie polecam przekierowywania agenta do niczego innego niż zaufana maszyna.
4) Tunelowanie przez lokalne przekierowanie portów
Jednym z przypadków użycia SSH jest tunelowanie. Może to służyć do ochrony ruchu aplikacji wewnątrz zaszyfrowanego połączenia i zapewnienia, że niebezpieczne dane nie zostaną przesłane poza to połączenie.

serwer
Plik konfiguracyjny sshd, znajdujący się w /etc/ssh/sshd_config, zawiera wszystkie zmiany po stronie serwera, które należy wprowadzić.
Aby wprowadzić zmiany, zacznij od komentowania oryginalnej linii z wiodącym #. W razie potrzeby możesz również powielać dowolne wiersze i edytować je, zamiast po prostu odkomentować je, aby łatwiej było zobaczyć, co należy zmienić, bez konieczności jednoczesnego robienia zbyt wielu rzeczy!
Aby przekierowanie portów działało poprawnie, musisz zezwolić na TCP, wpisując „AllowTcpForwarding yes”.
Jeśli dokonałeś zmian w pliku konfiguracyjnym serwera, przeładuj usługę ssh. Możesz to zrobić za pomocą „service ssh reload”.
Klient
Możesz używać tuneli SSH do wykonywania wielu fajnych akcji, na przykład gdy musisz wykonać zapytanie w jednej bazie danych, które można wykonać tylko na innym komputerze. Pozwala to na tunelowanie połączenia przez drugą maszynę.
5) Przekazywanie X11
Połączenie SSH może służyć do przekazywania pakietów X11, dzięki czemu środowisko pulpitu komputera zdalnego jest wyświetlane na komputerze lokalnym. Jest to świetne, aby zaoszczędzić czas podczas korzystania z GUI dla określonego programu.
Warunki wstępne
Instalacja xauth to pierwszy krok we wdrażaniu przekierowania X11 na twoim serwerze. Jeśli chcesz to przetestować, po prostu upewnij się, że xclock został również zainstalowany przed kontynuowaniem.
serwer
Pierwszym krokiem jest zezwolenie X11Forwarding na szukanie „X11Forwarding” w twoim /etc/ssh/sshd_config, a następnie ustawienie go na „yes”.
Klient
Przekazywanie X11 z serwera do komputera klienckiego zostało skonfigurowane i powinieneś być w stanie zobaczyć zegar na pulpicie po wpisaniu „xclock”.
6) ProxyJump
Wiele osób używa SSH do łączenia się z bastionami (pierwszym hostem skoku), a następnie przeskakuje do innych urządzeń. Bastion jest pierwszym gospodarzem skoku.
Aby ułatwić osobom, które nie są zaznajomione z technologią, ProxyJump może być idealnym rozwiązaniem. Ułatwia dostęp do serwera za pomocą hosta skokowego, a także może zapewnić dodatkową warstwę bezpieczeństwa na wypadek, gdyby ktoś próbował włamać się do serwera, którego nie chcesz ujawniać publicznie.
Załóżmy, że jesteś użytkownikiem domowym i masz dwa routery, po jednym z każdej strony sieci. Jednym z przypadków użycia tego byłoby posiadanie dodatkowej maszyny, która działa jako brama bastionowa – lub serwer VPN przed tymi urządzeniami, aby ludzie mogli uzyskać dostęp do innych komputerów bez dostępu przez adresy IP routerów.
Może się to przydać podczas zarządzania połączeniami prywatnymi, a jednocześnie w razie potrzeby umożliwiać uruchamianie różnych usług, takich jak klienci OpenVPN z naszego własnego domu!
Wniosek
Podsumowując, jest mnóstwo rzeczy, które możesz zrobić za pomocą SSH. Obejmuje to zapobieganie przekroczeniu limitu czasu sesji, tunelowanie danych przez serwer, przekazywanie pakietów X11 w celu wyświetlenia w GUI innej maszyny i wiele innych.
Jeśli chcesz poznać podstawy przeprowadzania audytu bezpieczeństwa własnego kodu, zapoznaj się z linkiem do naszego artykułu na blogu, aby dowiedzieć się, jak zabezpieczyć własny kod!
Powiązane: 25 wskazówek, jak poprawić bezpieczeństwo cPanel / WHM.
