Brak monitu logowania do Telnet przy użyciu przez tunel SSH

1

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 !

SCO
źródło
Nie było jasne, czy udało Ci się zalogować „jako root”, robiąc to z sieci lokalnej. AFAIK, telnetd zwykle nie zezwala na logowanie jako root w Linuksie, ale może to być pam i być może skonfigurowałeś swoje, aby na to pozwolić. Ale jeśli możesz wyjaśnić, że to wykluczałoby ten problem.
deltaray

Odpowiedzi:

0

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.

SCO
źródło
Kiedy tak się stanie, powinien dać ci komunikat w sesji, która utworzyła tunel, że nie może nawiązać połączenia.
deltaray
W rzeczywistości tak się nie stało, dlatego zajęło mi trochę czasu, aby zrozumieć, co się dzieje!
SCO,