sự cố stunnel SSL3_GET_ERROR / SSL23_GET_SERVER_HELLO


0

Tôi đã thiết lập Stunnel dưới dạng SSL Wrapper cho googlemmil từ Redhat Enterprise Linux 7.2.

Các 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

hãy để tôi bắt đầu choáng váng

Tôi đã tạo tệp 2019stunnel.pem theo Hướng dẫn về Redhat:

thực hiện 2019stunnel.pem trong thư mục chính xác (certs)

bây giờ tôi đã cố gắng để telnet localhost 1925; Tôi nhận được một kết nối, nhưng không có gì hơn. telnet smtp.googlemail 587 chạy rất tốt, tôi được kết nối, vì vậy tôi cho rằng đó không phải là vấn đề tường lửa.

Tôi đã kiểm tra sslVersion = TLSv1 và sslVersion = tất cả dẫn đến các lỗi khác nhau trong 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

hoặc là

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

Bây giờ hãy mở SSL:

Đầu ra 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)

Tôi nhớ gì ở đây; Điều gì đang chạy sai?

Câu trả lời:


0

stunnel tạo kết nối TCP đến máy chủ đã cho và sau đó ngay lập tức thử nâng cấp lên TLS. Nhưng cổng 587 không mong đợi TLS ngay lập tức: thay vào đó, nó sẽ bắt đầu với SMTP trên kết nối TCP đơn giản và chỉ sau lệnh STARTTLS và trả lời thành công, ổ cắm được nâng cấp lên TLS. Đó là lý do tại sao một đơn giản openssl s_clientsẽ không hoạt động smtp.googlemail.com:587theo cùng một cách nó sẽ không hoạt động chống lại stunnel của bạn.

Nếu bạn muốn TLS ngay lập tức sử dụng cổng 465 (smtps) chứ không phải 587 (gửi). Nếu bạn muốn ở lại với cổng 587, bạn phải chỉ định protocol smtptrong cấu hình stunnel của mình để stunnel biết rằng TLS chỉ bắt đầu sau STARTTLS.


Cảm ơn sự giúp đỡ, giao thức tham số smtp là giải pháp!
Klaus Klöser
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.