Я хотел бы знать, что мой локальный постфикс сообщает smtpd Amazon SES после STARTTLS. Обычным текстом, чтобы я мог это понять. Amazon SES требует TLS, поэтому я не могу его временно отключить.
В настоящее время я регистрирую обе стороны трафика с помощью этого трюка:
mkfifo proxypipe
cat proxypipe | nc -l 11111 | tee -a inflow | nc email-smtp.us-east-1.amazonaws.com smtp | tee -a outflow 1>proxypipe
а затем у меня есть постфиксный разговор с localhost: 11111 вместо email-smtp.us-east-1.amazonaws.com:25. Это дает хорошую расшифровку, если они говорят открытым текстом. Как только появляется STARTTLS, все, конечно же, становится тарабарщиной.
Есть ли какой-то трюк, который я могу направить через openssl или пост-процесс с помощью openssl или чего-то в этом роде, чтобы выяснить, что именно они сказали друг другу? Поиск в Google не дал никакого ответа.
Не пытайтесь обнюхать сетевое соединение; как объяснил @ voretaq7, вы не можете. Вместо, иметь postfix журнал подключения добавив IP-адрес удаленного SMTP-сервера в debug_peer_list
.
И если это не дает вам достаточно подробностей, чтобы понять, что происходит, вы можете установить smtp_tls_loglevel 4
получить полный дамп всего, что шло по проводам.
Как только вы закончите, обязательно верните свою конфигурацию обратно. Вы не хотите оставлять отладку включенной дольше, чем это абсолютно необходимо.
Разрешите перефразировать ваш вопрос:
Я хочу вставить что-то в середину зашифрованного TLS-соединения, которое показывает мне отправляемый открытый текст.
. . . Что ж, сейчас это было бы не очень безопасно, не так ли? Я имею в виду, что весь смысл TLS в том, чтобы предотвратить именно то, что вы пытаетесь сделать! - Так что нет, то, о чем вы просите, НЕ возможно, и это далеко не уровень ведения журнала, который хотел бы любой здравомыслящий администратор.
Все, что вам нужно знать, это то, к кому вы подключились (удаленная система), что вы им сказали (письмо от A до B) и что они сказали (OK, Deferred, Rejected).
Если вы действительно хотите подслушивать соединение TLS, вам нужно обманом заставить свой сервер подключиться к прокси, который представляет поддельный сертификат SSL (для которого у вас есть ключ), прокси может затем расшифровать данные (и зарегистрировать их) и затем повторно зашифруйте его для пересылки на реальные серверы Amazon.
Вы могли бы создать такого зверя с помощью OpenSSL s_client
и s_server
подсистем, но реализация такого зверя оставляется читателю в качестве упражнения.