Her yerde aradım ve bununla gerçekten mücadele ediyorum. Sanırım hemen hemen her şeyi denedim.
Arkaplan bilgisi
- CentOS 6.7 ile VPS
- Postfix 2.6.6
- güvercin, amavis, mysql, fail2ban
- VPS sağlayıcımla herhangi bir bağlantı noktasını engellemediklerini doğruladım.
Yaptığım şeyler
- Kaldırılan stok sendmail
- Eksiksiz bir posta çözümü için postfix, dovecot, mysql vb.
- STARTTLS ile yalnızca imap, smtp'ye izin veriyorum (143 ve 587 bağlantı noktaları)
- SSH oturum açma işlemleri devre dışı bırakıldı, yalnızca anahtarlarla
- Posta alabilirim (143 numaralı bağlantı noktası üzerinden)
- Localhost'tan her iki bağlantı noktasına (587, 25) telnet yapabilirim ve postfix karşılama mesajı alıyorum
- 587 veya 25'e (posta istemcisi veya telnet) bağlanmaya çalışmak bana sıfır yanıt veriyor, yani bağlantı zaman aşımı
Denediğim şeyler
1) Bağlantı noktaları açık mı? Evet, 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) Postfix 587 numaralı bağlantı noktasını dinliyor mu? Evet. Yalnızca localhost üzerinden mi dinleniyor? Hayır, herhangi bir sunucu.
İşte 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
Ve işte postfix / main.cf, her ihtimale karşı:
# Enable both IPv4 and/or IPv6: ipv4, ipv6, all.
inet_protocols = ipv4
# Enable all network interfaces.
inet_interfaces = all
3) Güvenli bağlantıları doğru şekilde zorluyor musunuz? Bildiğim kadarıyla, evet, işte 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) smtpd kısıtlamaları ne olacak? Iyi gorunuyor:
# 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 düzgün çalışıyor mu?
Evet, sunucuda oturum açmak ve konsol çalışmalarından test postası göndermek ve diğer uçta e-posta alınır, yani:
echo "Test mail from postfix" | mail -s "Test Postfix" user@something.com
6) 587 numaralı bağlantı noktasına bağlanırken ne olur?
Görünüşe göre, hiçbir şey. Herhangi bir rastgele bağlantı noktasına telnet yapmaya çalışırsam, en azından bir şey alırım. Örneğin, 666 numaralı bağlantı noktasına (bu açık değil) telnet yapmaya çalışmak istemciye yanıt vermez, ancak en azından tcpdump içinde bir şey alıyorum:
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
Tcpdumping port 587'de, telnet'e bağlanmaya çalışırken kesinlikle hiçbir şey olmaz.
Hala neyi özlüyorum?
Yukarıdaki her şey hala deneyebileceğim şeyler hakkındaki bilgilerimi tüketiyor. Tamamen bir şey tarafından bloke olmak benim liman 587 çivi başardı. Söylediğim gibi, VPS sağlayıcım hiçbir bağlantı noktasını engellemediklerini doğruladı. Bağlantı noktası 25'i denedim ve aynı hikaye.
Görebildiğim tek şey, sunucumu kurarken bir şekilde bu bağlantı noktalarını engellediğim, ancak durumun bu olup olmadığını hatırlayamıyorum ve bunun için nasıl test edileceğini bilmiyorum.
Bana verebileceğin herhangi bir yardımı gerçekten takdir ediyorum. Aslında, bunu çözmeme yardım eden biri için bir bira satın alıyorum , üzerinde iki gün harcadım ve gerçekten sinir bozucu olmaya başlıyor.
iptables
o ile yukarıda çıkışıiptables -L -n -v
tüm ve unredacted? Ayrıca, verilentcpdupmp
test ve ben 25 ve 587 engellememesi anlamına sağlayıcınızın güvence inbound , bu yer test ettiğiniz olması da mümkündür gelen bloklar 25 ve 587 giden . IP adresini gönderirseniz, bu hipotezi onaylamak veya reddetmek çok daha kolay olacaktır.