Tôi đã tìm kiếm khắp nơi và tôi thực sự vật lộn với cái này. Tôi nghĩ rằng tôi đã thử mọi thứ.
Thông tin cơ bản
- VPS với CentOS 6.7
- Hậu tố 2.6.6
- dovecot, amavis, mysql, fail2ban
- Tôi đã xác minh với nhà cung cấp VPS của mình rằng họ không chặn bất kỳ cổng nào.
Những việc tôi đã làm
- Đã gửi sendmail chứng khoán
- Tôi đã cài đặt postfix, dovecot, mysql, vv cho một giải pháp thư hoàn chỉnh
- Tôi chỉ cho phép imap, smtp với STARTTLS (cổng 143 và 587)
- Đăng nhập SSH bị vô hiệu hóa, chỉ với các khóa
- Tôi có thể nhận thư (qua cổng 143)
- Tôi có thể telnet từ localhost đến cả hai cổng (587, 25) và tôi nhận được lời chào hậu tố
- Cố gắng kết nối với 587 hoặc 25 (ứng dụng thư khách hoặc telnet) sẽ khiến tôi không phản hồi, tức là hết thời gian kết nối
Những điều tôi đã thử
1) Các cổng có mở không? Vâng, iptables:
Chain INPUT (policy DROP 11 packets, 1375 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
25 2579 f2b-dovecot tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 110,995,143,993,587,465,4190
68 7788 f2b-postfix tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 25,465,587
0 0 f2b-sshd tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22
25 2579 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:143
7 600 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
23464 2662K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
49 2940 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3915
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:143
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
5 300 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 23235 packets, 2494K bytes)
pkts bytes target prot opt in out source destination
Chain f2b-dovecot (1 references)
pkts bytes target prot opt in out source destination
25 2579 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain f2b-postfix (1 references)
pkts bytes target prot opt in out source destination
68 7788 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain f2b-sshd (1 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
2) Nghe postfix trên cổng 587? Đúng. Có phải nó chỉ nghe trên localhost? Không, bất kỳ máy chủ lưu trữ.
Đây là netstat:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 7173/master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 917/httpd
tcp 0 0 127.0.0.1:4190 0.0.0.0:* LISTEN 749/dovecot
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 7173/master
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 749/dovecot
tcp 0 0 127.0.0.1:24 0.0.0.0:* LISTEN 749/dovecot
Và đây cũng là postfix / main.cf, chỉ trong trường hợp:
# Enable both IPv4 and/or IPv6: ipv4, ipv6, all.
inet_protocols = ipv4
# Enable all network interfaces.
inet_interfaces = all
3) Bạn có buộc các kết nối an toàn chính xác không? Theo hiểu biết tốt nhất của tôi, vâng, đây là postfix / master.cf:
# Submission, port 587, force TLS connection.
submission inet n - n - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o content_filter=smtp-amavis:[127.0.0.1]:10026
4) Điều gì về những hạn chế smtpd? Có vẻ ổn:
# HELO restriction
smtpd_helo_required = yes
smtpd_helo_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_non_fqdn_helo_hostname
reject_invalid_helo_hostname
check_helo_access pcre:/etc/postfix/helo_access.pcre
5) Postfix thậm chí có hoạt động đúng không?
Có, đăng nhập vào máy chủ và gửi thư kiểm tra từ bảng điều khiển hoạt động và e-mail được nhận ở đầu bên kia, tức là:
echo "Test mail from postfix" | mail -s "Test Postfix" user@something.com
6) Điều gì xảy ra khi kết nối trên cổng 587?
Rõ ràng, không có gì cả. Nếu tôi cố gắng telnet đến bất kỳ cổng ngẫu nhiên nào, ít nhất tôi cũng nhận được một cái gì đó. Ví dụ: cố gắng telnet đến cổng 666 (không mở) sẽ không trả lời cho khách hàng, nhưng ít nhất tôi nhận được một cái gì đó trong tcpdump:
15:22:20.305697 IP xxx > xxx.com.mdqs: Flags [S], seq 3195304468, win 8192, options [mss 1352,nop,wscale 8,nop,nop,sackOK], length 0
Khi cổng tcpdumping 587, hoàn toàn không có gì xảy ra khi cố gắng telnet đến nó.
Tôi vẫn còn thiếu gì?
Tất cả mọi thứ ở trên làm cạn kiệt kiến thức của tôi về những điều tôi vẫn có thể thử. Tôi đã cố gắng đóng nó xuống cổng 587 của tôi bị chặn hoàn toàn bởi một cái gì đó. Như tôi đã nói, nhà cung cấp VPS của tôi xác nhận rằng họ hoàn toàn không chặn bất kỳ cổng nào. Tôi đã thử cổng 25 và đó là câu chuyện tương tự.
Điều khác duy nhất tôi có thể thấy là bằng cách nào đó tôi đã chặn các cổng đó khi thiết lập máy chủ của mình, nhưng tôi không thể nhớ lại nếu đó là trường hợp và tôi không biết cách kiểm tra điều đó.
Tôi thực sự đánh giá cao bất kỳ sự giúp đỡ nào bạn có thể cung cấp cho tôi. Trên thực tế, tôi đang mua bia cho bất cứ ai giúp tôi giải quyết vấn đề này , tôi đã lãng phí hai ngày cho nó và nó bắt đầu trở nên thực sự khó chịu.
iptables
đầu ra ở trên bằngiptables -L -n -v
, toàn bộ và chưa được xác minh? Ngoài ra, vớitcpdupmp
thử nghiệm của bạn và đảm bảo của nhà cung cấp rằng tôi không chặn 25 và 587 trong nước , cũng có thể là nơi bạn đang thử nghiệm từ các khối 25 và 587 bên ngoài . Nếu bạn đăng địa chỉ IP, việc xác nhận hoặc từ chối giả thuyết đó sẽ dễ dàng hơn rất nhiều .