Chciałbym przetestować połączenia klienckie z IMAP przez SSL, HTTPS i inne bezpieczne tekstowe protokoły internetowe przez SSL / TLS, w taki sam sposób, w jaki użyłbym telnet lub netcat, gdyby nie były tunelowane przez bezpieczny protokół. Czy istnieje sposób, aby telnet lub netcat przechodziły przez SSL / TLS, na przykład za pomocą potoku lub innego programu?
62
Odpowiedzi:
Nie ma klienta Telnet / Netcat - są to dwa osobne programy i istnieje co najmniej 10 różnych klientów Telnet i co najmniej 6 różnych wersji Netcat (oryginalny netcat, GNU netcat, OpenBSD netcat, nmap's ncat; zapomniałem reszty).
Preferowane narzędzia pochodzą z samych bibliotek TLS. Mogą być jednak nieco gadatliwi.
GnuTLS ma narzędzie klienta TLS w systemie Linux:
Użyj
-s
dla STARTTLS; musisz ręcznie wprowadzić niezbędne polecenia protokołu i nacisnąć, CtrlDgdy będzie gotowy.Obsługuje IPv6, domyślnie sprawdza poprawność certyfikatów serwera.
OpenSSL ma narzędzie klienta TLS:
Jest to dostępne dla wszystkich systemów operacyjnych. STARTTLS jest obsługiwany przez
-starttls imap
lub-starttls smtp
opcje, a program automatycznie go negocjuje. (Mimo to odrzuca początkową odpowiedź serwera po wykonaniu tej czynności, ale zwykle jest w porządku).Tylko wersja ≥ 1.1 obsługuje IPv6.
Tylko wersja ≥ 1.0.2 (IIRC) domyślnie sprawdza certyfikat serwera; starsze wersje wymagają ręcznej specyfikacji ścieżki -CApath.
(Chciałbym również mieć narzędzia do testowania NSS i SChannel, ale nie mogłem ich znaleźć.)
Programy również używają tych samych bibliotek, ale mogą mieć mniej pokręteł konfiguracyjnych. Niektórzy nawet domyślnie pomijają sprawdzanie certyfikatów równorzędnych ...
socat :
Dla wygody można użyć trybu readline :
STARTTLS nie jest obsługiwany.
ncat z nmap obsługuje TLS (ale nie STARTTLS):
Niektóre klienty Telnet, takie jak pakiet telnet-ssl w Debianie, również obsługują TLS:
STARTTLS można aktywować za pomocą
starttls
z Ctrl]menu ucieczki.źródło
s_client
ma obsługę IPv6 w wersji 1.1.s_client
ma „użyteczną” funkcję, w której linie zaczynające się od R lub Q są traktowane jak polecenia (patrz instrukcja ). Użyj,-ign_eof
aby to wyłączyć. Ponadtos_client
będzie kontynuowane, nawet jeśli weryfikacja się nie powiedzie; musisz sprawdzić, czy wyświetla się komunikat „Zweryfikuj kod powrotu: 0 (ok)” i mieć nadzieję, że serwer nie spróbuje sfałszować tej wiadomości. Lepiej używać,gnutls-cli
jeśli to możliwe.-verify_return_error
.Możesz spojrzeć na openssl s_client , np
źródło
Tak, jest program o nazwie stunnel
ma plik konfiguracyjny,
mówisz, do którego portu nasłuchiwać, do jakiego portu przekierować.
działa po stronie klienta, po stronie serwera lub obu.
dzięki czemu może zmienić serwer, który nie obsługuje SSL, w efektywny.
lub klienta, który nie obsługuje ssl, skutecznie w taki, który to robi.
lub upewnij się, że zarówno klient, jak i serwer mają połączenie ssl.
źródło
Istnieje również sclient ( git ), jeśli potrzebujesz pomocy na wielu platformach (np. Windows).
Utwórz serwer lokalny, który rozpakowuje tls na przykład.com
Złóż wniosek do example.com za pomocą usługi telnet
źródło