Saya telah mencari di mana-mana dan saya benar-benar berjuang dengan yang ini. Saya pikir saya sudah mencoba hampir semuanya.
Info latar belakang
- VPS dengan CentOS 6.7
- Postfix 2.6.6
- dovecot, amavis, mysql, fail2ban
- Saya telah memverifikasi dengan penyedia VPS saya bahwa mereka tidak memblokir port apa pun.
Hal-hal yang telah saya lakukan
- Sendmail stok dihapus
- Saya telah menginstal postfix, dovecot, mysql dll untuk solusi surat lengkap
- Saya hanya mengizinkan imap, smtp dengan STARTTLS (port 143 dan 587)
- Info masuk SSH dinonaktifkan, hanya dengan kunci
- Saya dapat menerima email (melalui port 143)
- Saya bisa telnet dari localhost ke kedua port (587, 25) dan saya mendapatkan salam postfix
- Mencoba untuk terhubung ke 587 atau 25 (klien surat atau telnet) membuat saya tidak mendapat respons yaitu waktu koneksi habis
Hal yang sudah saya coba
1) Apakah port terbuka? Ya, 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) Apakah postfix mendengarkan pada port 587? Iya. Apakah hanya mendengarkan di localhost? Tidak, tuan rumah apa pun.
Inilah 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
Dan inilah postfix / main.cf juga, untuk jaga-jaga:
# Enable both IPv4 and/or IPv6: ipv4, ipv6, all.
inet_protocols = ipv4
# Enable all network interfaces.
inet_interfaces = all
3) Apakah Anda memaksa koneksi aman dengan benar? Sepengetahuan saya, ya, inilah 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) Bagaimana dengan pembatasan smtpd? Sepertinya ok:
# 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) Apakah postfix berfungsi dengan benar?
Ya, masuk ke server dan mengirim surat uji dari konsol berfungsi dan e-mail diterima di ujung lain, yaitu:
echo "Test mail from postfix" | mail -s "Test Postfix" [email protected]
6) Apa yang terjadi ketika menghubungkan pada port 587?
Ternyata, tidak ada sama sekali. Jika saya mencoba telnet ke sembarang port acak, saya paling tidak mendapatkan sesuatu. Misalnya, mencoba telnet ke port 666 (yang tidak terbuka) tidak menghasilkan balasan kepada klien, tetapi setidaknya saya mendapatkan sesuatu di 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
Ketika tcpdumping port 587, sama sekali tidak ada yang terjadi ketika mencoba melakukan telnet ke sana.
Apa yang masih saya lewatkan?
Segala sesuatu di atas menguras pengetahuan saya tentang hal-hal yang masih bisa saya coba. Saya sudah berhasil memakukannya ke port 587 saya sepenuhnya diblokir oleh sesuatu. Seperti yang saya katakan, penyedia VPS saya mengkonfirmasi bahwa mereka tidak memblokir port apa pun. Saya sudah mencoba port 25 dan cerita yang sama.
Satu-satunya hal lain yang dapat saya lihat adalah bahwa saya entah bagaimana telah memblokir port-port itu ketika mengatur server saya, tetapi saya tidak dapat mengingat apakah itu masalahnya dan saya tidak tahu bagaimana mengujinya.
Saya sangat menghargai bantuan yang bisa Anda berikan kepada saya. Sebenarnya, saya membeli bir untuk siapa pun yang membantu saya menyelesaikan ini , saya sudah membuang dua hari untuk itu dan itu mulai menjadi sangat menjengkelkan.
iptables
output di atas dengan yangiptables -L -n -v
, seluruh dan tidak dikerjakan? Juga, mengingattcpdupmp
pengujian Anda , dan jaminan penyedia Anda bahwa saya tidak memblokir 25 dan 587 masuk , juga mungkin tempat Anda menguji dari blok 25 dan 587 keluar . Jika Anda memposting alamat IP, akan jauh lebih mudah untuk mengkonfirmasi atau menolak hipotesis itu.Jawaban:
Reachergilt, selamat datang di SF, dan terima kasih untuk pertanyaan pertama yang bagus. Anda mungkin merasa bahwa kami telah menyelamatkan Anda, tetapi jujur - Anda telah melakukan semua pekerjaan berat, dan menyajikannya dengan sangat sistematis. Dengan pola pikir forensik seperti itu, saya harap Anda tinggal di sekitar bagian ini untuk beberapa waktu mendatang.
The
tcpdump
output terutama memberatkan. Ini membuktikan tanpa keraguan bahwa usaha Anda untuk terhubung bahkan tidak mencapai server Anda, yang membebaskan firewall server,postfix
binding, dan segala hal lain di sisi server.Dipersenjatai dengan pointer itu, Anda telah pergi dan mengonfirmasi bahwa koneksi keluar Anda sedang diblokir, jadi pengujian Anda tidak pernah mencapai server Anda. Adalah normal (menyedihkan) bagi 25 (dan pada tingkat lebih rendah, 587) diblokir keluar dari jaringan modern, karena bot pengirim yang mengirim spam menggunakannya.
Bagaimanapun, Anda sekarang senang bahwa server email baru Anda berfungsi seperti yang diiklankan, dan itu bagus.
sumber