Mencoba men-setup server email, tidak dapat membuat port (25, 587) berfungsi

9

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.

ditata kembali
sumber
3
Bisakah Anda mengganti iptablesoutput di atas dengan yang iptables -L -n -v, seluruh dan tidak dikerjakan? Juga, mengingat tcpdupmppengujian 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.
MadHatter
Terima kasih telah membalas. Tentu, saya sudah mengedit posting saya. Hmm, saya tidak pernah berpikir tentang port yang diblokir pada saya, itu ide yang bagus. Saya akan mencoba dan menguji ini.
Reachergilt
1
@ MadHatter, Anda benar pada port yang diblokir di sisi saya. Ternyata (setelah banyak panggilan) bahwa admin VPN perusahaan saya memutuskan untuk mulai memblokir port tertentu, 25 dan 578 menjadi salah satunya, tetapi tidak yang lain. Ini menjelaskan mengapa saya tidak pernah memiliki masalah seperti itu sebelumnya dan bahkan tidak memikirkannya. Server saya mungkin sudah berfungsi dengan baik selama beberapa hari terakhir sementara saya kehilangan akal untuk itu. Jika mau, Anda dapat memposting sebagai jawaban nyata dan saya akan menerimanya. Juga, tolong PM saya info PayPal Anda (atau serupa), Anda benar-benar layak mendapatkan yang dingin, Tuhan tahu kapan saya akan mengetahuinya.
Reachergilt
Saya telah menuliskannya, sehingga Anda dapat menerima jawabannya - karena jika tidak, pertanyaannya akan selalu ada selamanya, dan itu buruk. Juga, ini mungkin berguna bagi orang lain di masa depan. Saya maksudkan apa yang saya katakan dalam jawaban saya tentang Anda telah melakukan sebagian besar pekerjaan investigasi (lebih banyak kekuatan untuk Anda!) Tetapi jika Anda merasa terhormat mengirimi saya satu bir, Anda dapat menemukan rincian kontak saya di situs web pribadi saya, melalui Profil saya.
MadHatter
Selesai dan terima kasih lagi atas bantuan Anda, Anda mungkin menyelamatkan saya berjam-jam jika tidak berhari-hari menghabiskan waktu. Saya akan menghubungi Anda besok, sudah memeriksa situs web Anda.
Reachergilt

Jawaban:

4

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 tcpdumpoutput terutama memberatkan. Ini membuktikan tanpa keraguan bahwa usaha Anda untuk terhubung bahkan tidak mencapai server Anda, yang membebaskan firewall server, postfixbinding, 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.

MadHatter
sumber
3
Ya, posting saya membuat daftar periksa yang bagus untuk siapa pun yang memiliki masalah serupa. Cukup lucu, karena saya pikir ada yang salah dengan server saya, saya lipat empat memeriksa semuanya dari A hingga Z, memungkinkan saya untuk mendokumentasikan semuanya di sini.
Reachergilt