Mam urządzenie, nazwijmy je d1, uruchamiając lekki Linux. To urządzenie jest NATedowane przez moje urządzenie / router internetowy, dlatego nie jest dostępne z Internetu. To urządzenie uruchamia na nim demona Telnet i ma root tylko jako użytkownik (bez pwd). Jego adres IP to 192.168.0.126 w sieci prywatnej.
Z sieci prywatnej (powiedzmy 192.168.0.x) mogę:
telnet 192.168.0.126
Gdzie 192.168.0.126 to adres IP w sieci prywatnej. To działa poprawnie.
Aby jednak umożliwić administrację, musiałbym uzyskać dostęp do tego urządzenia spoza tej prywatnej sieci. Dlatego stworzyłem tunel SSH taki jak ten na d1:
ssh -R 4455:localhost:23 ussh@s1
s1 to serwer gdzieś w sieci prywatnej (ale służy to wyłącznie do celów testowych, skończy się gdzieś w Internecie), z uruchomioną standardową dystrybucją Linuksa i na której stworzyłem użytkownika o nazwie „ussh”. Adres IP s1 to 192.168.0.48.
Kiedy „telnet” brzmi następująco, powiedzmy od c1, 192.168.0.19:
telnet -l root s1 4455
Dostaję :
Trying 192.168.0.48...
Connected to 192.168.0.48.
Escape character is '^]'.
Connection closed by foreign host
.
Połączenie zostanie zamknięte po około 30 sekundach i nie zalogowałem się. Próbowałem bez przełącznika -l, bez powodzenia. Próbowałem „telnet” z adresami IP zamiast nazw, aby uniknąć problemów z odwrotnym DNS (chociaż dodałem do d1 / etc / hosts linię odnoszącą się do adresu IP s1, na wszelki wypadek), ale bez powodzenia. Próbowałem na innym porcie niż 4455, bez powodzenia.
Zebrałem dzienniki Wireshark z s1. Widze :
s1 wysyła dane SSH do c1, c1 ACK
s1 wykonuje żądanie AAAA DNS dla c1, pobiera tylko serwery nazw Authoritave.
s1 wykonuje żądanie A DNS, a następnie pobiera adres IP c1
s1 wysyła pakiet SYN do c1, c1 odpowiada RST / ACK
s1 wysyła SYN do c1, C1 RST / ACK (?)
Po 0,8 sekundy c1 wysyła SYN do s1, s1 SYN / ACK, a następnie c1 ACK
s1 wysyła zawartość SSH do d1, d1 wysyła ACK z powrotem do s1
s1 ponawia żądania AAAA i A DNS
Po 5 sekundach s1 ponawia próbę SYN do c1, ponownie jest to RST / ACKed przez c1. Jest to powtarzane jeszcze 3 razy.
Ostatnie pięć pakietów: d1 wysyła zawartość SSH do s1, s1 wysyła ACK i FIN / ACK do c1, c1 odpowiada FIN / ACK, s1 wysyła ACK do c1.
Połączenie wydaje się być zamykane przez demona telnet po 22 sekundach.
AFAIK, nie ma sposobu na zdekodowanie strumienia SSH, więc naprawdę utknąłem tutaj ...
Jakieś pomysły ?
Dziękuję Ci !
Odpowiedzi:
Rozpracowałem to!
W rzeczywistości interfejs sprzężenia zwrotnego nie działał na d1, dlatego tunel nie działał. Zauważyłem, że „ping localhost” nie działa, a także „telnet localhost”.
Utworzyłem plik / etc / network / interfaces z interfejsem „lo” i wykonałem ifup lo.
źródło