Zamierzam wdrożyć maszynę z systemem Linux jako rodzaj terminalu publicznego w zdalnej lokalizacji. Chciałbym mieć do niego dostęp zdalny przez SSH w celu konserwacji, ale nie chcę, aby port był otwarty na zdalnej zaporze ogniowej w rzadkich przypadkach, gdy potrzebuję uzyskać dostęp do tego komputera. Myślałem o prostym skrypcie, aby utworzyć odwrotny tunel SSH do maszyny na zewnątrz, ale wolałbym, aby użytkownik nie musiał nic robić, gdy potrzebuję uzyskać do niego dostęp. Jakieś pomysły?
Aktualizacja: Postanowiłem pójść z moim oryginalnym planem skryptu, aby utworzyć tunel odwrotnego ssh. Podczas gdy inne sugerowane rozwiązania, takie jak pukanie portów, byłyby bardziej zgodne z tym, co naprawdę chcę zrobić, w tym przypadku nie mam dostępu do konfiguracji routera oprócz prowadzenia użytkownika przez konfigurację. dreszcz
źródło
Odpowiedzi:
Jeśli zmiana routera jest całkowicie wykluczona, być może trzeba spojrzeć na rozwiązanie P2P lub VPN, takie jak Hamachi . Jeśli skonfigurujesz system tak, aby automatycznie nawiązywał połączenie VPN podczas uruchamiania, powinieneś być w stanie połączyć się w dowolnym momencie. Hamachi przeprowadza dla ciebie wszystkie negocjacje dotyczące zapory ogniowej. Jedyną wadą jest to, że musisz polegać na tym, że serwery Hamachi są sprawne i funkcjonalne, kiedy potrzebujesz się połączyć.
Jeśli masz serwer, który jest zawsze włączony , możesz ustawić autossh, aby zdalny system zawsze pozostawiał tunel otwarty i podłączony do twojego serwera. Jedyną wadą jest to, że zdalny system jest zagrożony - atakujący otrzyma klucze, które zostały użyte do ustanowienia sesji ssh. Bardzo ważne jest, aby system, który akceptuje połączenie ssh, był naprawdę zablokowany.
Poniżej moja oryginalna odpowiedź, założyłem, że aktualizacja routera jest opcją.
Jednym z rozwiązań, które możesz chcieć sprawdzić, jeśli zapora sieciowa je obsługuje, jest pukanie portów . W przypadku niektórych zapór ogniowych powinno być możliwe wysłanie specjalnego zestawu pakietów, które zapora ogniowa zauważy, a następnie tymczasowo otworzy dziurę przez zaporę ogniową.
Istnieje wiele wdrożeń, niektóre lepsze niż inne. Niektórzy używają silnej kryptografii, aby prawie niemożliwe było, aby osoba bez odpowiednich kluczy nie wysłała prawidłowego pukania.
źródło
Nie martwiłbym się tym, że port 22 byłby dostępny dla Internetu, ale podjąłem pewne kroki, aby go zabezpieczyć.
Po pierwsze, wyłącz interaktywne uwierzytelnianie za pomocą klawiatury i przejdź do klawiszy ssh.
Po drugie, zainstaluj coś takiego jak fail2ban na zdalnym serwerze, aby zablokować adresy IP, które wielokrotnie sondują twój komputer. Ponieważ masz skonfigurowane klucze ssh, autoryzowani użytkownicy nie powinni zgłaszać awarii uwierzytelnienia.
Ewentualnie, jeśli możesz, skorzystaj z porady WerkkreWs i skonfiguruj zaporę przed maszyną, aby zakończyć połączenie VPN, a następnie zezwól tylko demonowi ssh na zdalnym serwerze, aby akceptował połączenia przychodzące przez tę VPN.
Alternatywnie, jeśli zapora sieciowa nie może przerwać połączenia VPN, prawdopodobnie możesz przesłać pakiety GRE lub IPSEC do komputera z systemem Linux i tam je zakończyć.
źródło
Wygląda na to, że szukasz knockd
Możesz zainstalować to na samym serwerze linux, za pomocą iptables, tak aby przypominało zaporę drugiego poziomu. Nawet jeśli port 22 jest otwarty na zaporze frontendowej, nie byłby otwarty na serwerze, więc skany portów nie widziały żadnych otwartych portów. Następnie, gdy wyślesz „sekretne pukanie”, nagle masz otwartą ścieżkę do portu 22.
Czy to ma sens?
źródło
Podsumowując wszystkie odpowiedzi:
użyj ssh, ale uczyń go bardziej niejasnym i bezpiecznym.
Dla ochrony:
W przypadku niejasności:
źródło
Zaplanowane zadanie skryptu dla tunelu odwrotnego ssh lub otwórz port zapory.
Jeśli martwisz się o to, że SSH jest otwarty na świat, możesz zaplanować zadanie podczas okresu konserwacji za pomocą skryptów iptables i mieć wtedy dostępny tylko port.
źródło
Sprawdź pukanie portów, aby otworzyć tunel SSH.
Ponadto uruchom denyhosts, aby zablokować ludzi po zbyt wielu złych żądaniach.
Oba pakiety są dostępne w standardowych repozytoriach Ubuntu, Fedora i RHEL.
źródło
Śmiało i otwórz port, po prostu ustaw go poza normalnym zasięgiem. Zrobiłbym z tego losowy port ponad 1024. W ten sposób hakerzy prawdopodobnie nawet go nie szukają.
źródło
Nie ma powodu, aby nie dziurać zapory w zaporze, jeśli potrzebujesz dostępu do urządzenia zdalnie, jednak rzadko.
Jeśli jednak nadal nie chcesz (lub nie możesz) otworzyć portu, prosty skrypt powłoki może monitorować zasoby internetowe dostępne do kontrolowania i nasłuchiwać polecenia uruchomienia tunelu zwrotnego. Konta e-mail, kanały IRC i strony internetowe od razu przychodzą na myśl jako urządzenia uruchamiające.
Oczywiście jest to o wiele bardziej kruche i mniej bezpieczne niż samo otwarcie portu. Ale jestem pewien, że masz swoje powody.
źródło