Я хотел бы протестировать клиентские соединения с IMAP по SSL, HTTPS и другим защищенным текстовым интернет-протоколам по SSL / TLS, так же, как я бы использовал telnet или netcat, если они не были туннелированы по безопасному протоколу. Есть ли способ заставить telnet или netcat проходить через SSL / TLS, например, с помощью pipe или альтернативной программы?
62
Ответы:
Клиент Telnet / Netcat отсутствует - это две отдельные программы, и существует как минимум 10 разных клиентов Telnet и как минимум 6 разных версий Netcat (оригинальная netcat, GNU netcat, OpenBSD netcat, nmap ncat; остальные забыли).
Предпочтительные инструменты приходят из самих библиотек TLS. Хотя они могут быть немного многословными.
GnuTLS имеет клиентский инструмент TLS в Linux:
Используйте
-s
для STARTTLS; вам нужно будет вручную ввести необходимые команды протокола и нажать, CtrlDкогда будете готовы.Поддерживает IPv6, проверяет сертификаты сервера по умолчанию.
OpenSSL имеет клиентский инструмент TLS:
Это доступно для всех операционных систем. STARTTLS поддерживается с помощью
-starttls imap
или-starttls smtp
параметров, и программа будет автоматически согласовывать его. (Хотя после этого он отбрасывает первоначальный ответ сервера, но обычно это нормально.)Только версия ≥ 1.1 поддерживает IPv6.
Только версия ≥ 1.0.2 (IIRC) проверяет сертификат сервера по умолчанию; более старые версии требуют ручной спецификации -Capath.
(Я хотел бы также иметь инструменты для тестирования NSS и SChannel, но не смог их найти.)
Программы также используют те же библиотеки, но могут иметь меньше ручек настройки. Некоторые даже пропускают проверки сертификатов сверстниками по умолчанию ...
Сокат :
Режим readline можно использовать для удобства:
STARTTLS не поддерживается.
ncat из nmap поддерживает TLS (но не STARTTLS):
Некоторые клиенты Telnet, такие как пакет telnet-ssl в Debian, также поддерживают TLS:
STARTTLS можно активировать
starttls
с помощью Ctrl]меню выхода.источник
s_client
имеет поддержку IPv6 в версии 1.1.s_client
имеет «полезную» функцию, где строки, начинающиеся с R или Q, рассматриваются как команды (см. Руководство ). Используйте,-ign_eof
чтобы отключить это. Кроме того,s_client
будет продолжаться, даже если проверка не удалась; Вы должны убедиться, что в нем написано «Verify return code: 0 (ok)», и надеяться, что сервер не попытается подделать это сообщение. Лучше использовать,gnutls-cli
если это возможно.-verify_return_error
для этого.Вы можете посмотреть на openssl s_client , например,
источник
Да, есть программа под названием Stunnel
у него есть файл конфигурации,
вы говорите ему, какой порт слушать, какой порт пересылать.
это работает на стороне клиента, или на стороне сервера, или на обоих.
таким образом, он может превратить сервер, который не поддерживает ssl, в эффективно работающий.
или клиент, который не поддерживает ssl, эффективно в тот, который делает.
или сделать так, чтобы и клиент, и сервер имели ssl-соединение.
источник
Также есть sclient ( git ), если вам нужна межплатформенная поддержка (например, Windows).
Создайте локальный сервер, который разворачивает tls для example.com
Сделайте запрос к example.com с помощью telnet
источник