Я настроил Stunnel как SSL Wrapper для googlemmil из Redhat Enterprise Linux 7.2.

Stunnel.conf:

output = /var/log/stunnel.log
cert = /etc/pki/tls/certs/2019stunnel.pem
client = yes
sslVersion = TLSv1
;fips=no
[ssmtp]
accept = 1925
connect=smtp.googlemail.com:587

позвольте мне начать ошеломлен хорошо.

Я создал файл 2019stunnel.pem, следуя инструкциям на Redhat:

сделать 2019stunnel.pem в правильном каталоге (сертификаты)

сейчас я попытался телнет localhost 1925; Я подключаюсь, но не более того. telnet smtp.googlemail 587 работает очень хорошо, я подключаюсь, поэтому я предполагаю, что это не проблема брандмауэра.

Я проверил sslVersion = TLSv1 и sslVersion = all, что привело к различным ошибкам в stunned.log:

Service [ssmtp] accepted connection from 127.0.0.1:49723
2019.01.04 14:45:01 LOG3[4500:140416608397056]: connect_blocking: connect 2a00:1450:400c:c0c::10:587: Network is unreachable (101)
2019.01.04 14:45:01 LOG5[4500:140416608397056]: connect_blocking: connected 74.125.140.16:587
2019.01.04 14:45:01 LOG5[4500:140416608397056]: Service [ssmtp] connected remote server from 192.168.178.57:44246
2019.01.04 14:45:01 LOG3[4500:140416608397056]: SSL_connect: 140770FC: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
2019.01.04 14:45:01 LOG5[4500:140416608397056]: Connection reset: 0 byte(s) sent to SSL, 0 byte(s) sent to socket
2019.01.04 14:54:24 LOG5[4500:140416608249920]: Terminated

или же

Service [ssmtp] accepted connection from 192.168.178.57:57612
2019.01.04 14:54:36 LOG5[7437:139957105055488]: connect_blocking: connected 173.194.76.16:587
2019.01.04 14:54:36 LOG5[7437:139957105055488]: Service [ssmtp] connected remote server from 192.168.178.57:52192
2019.01.04 14:54:36 LOG3[7437:139957105055488]: SSL_connect: 1408F10B: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
2019.01.04 14:54:36 LOG5[7437:139957105055488]: Connection reset: 0 byte(s) sent to SSL, 0 byte(s) sent to socket

Теперь откройте SSL:

Openssl вывод:

openssl s_client -connect localhost:1925
CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 289 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    Start Time: 1546610402
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)

Что мне здесь не хватает; что работает не так?

1 ответ1

0

stunnel создает TCP-соединение с данным сервером, а затем сразу же пытается выполнить обновление до TLS. Но порт 587 не ожидает немедленного TLS: вместо этого он ожидает запуска с SMTP по обычному TCP-соединению и только после того, как команда STARTTLS и ее успешный ответ сокет обновятся до TLS. Вот почему простой openssl s_client не будет работать против smtp.googlemail.com:587 же, как он не будет работать против вашего stunnel.

Если вы хотите немедленный TLS, используйте порт 465 (smtps), а не 587 (отправка). Если вы хотите остаться с портом 587, вам нужно указать protocol smtp в вашей конфигурации Stunnel, чтобы Stunnel знал, что TLS запускается только после STARTTLS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .