Posta sunucusunu kurmaya çalışırken bağlantı noktaları (25, 587) çalışamıyor


9

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.


3
Değiştirmek Could iptableso ile yukarıda çıkışı iptables -L -n -vtüm ve unredacted? Ayrıca, verilen tcpdupmptest 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.
MadHatter

Cevabınız için teşekkürler. Tabii, yazımı düzenledim. Hmm, limanları engellemenin hiç bitmediğini hiç düşünmemiştim, bu iyi bir fikir. Bunu test etmeye çalışacağım.
reachergilt

1
@MadHatter, benim tarafımdaki engellenen bağlantı noktalarında tamamen haklıydın. Şirketimin VPN yöneticisinin 25 ve 578 bunlardan biri olduğunu, ancak başkalarını değil, belirli portları engellemeye başladığı (birçok çağrıdan sonra) ortaya çıktı. Bu neden daha önce hiç bu kadar sorun yaşamadığımı ve bunun hakkında hiç düşünmediğimi açıklıyor. Aklımı kaybettim sunucum muhtemelen zaten son birkaç gün iyi çalışıyordu. İsterseniz, gerçek bir cevap olarak yayınlayabilirsiniz, ben de kabul edeceğim. Ayrıca, lütfen bana PayPal (veya benzer) bilgilerinizi PM, gerçekten büyük bir soğuk olanı hak ediyorsunuz, tanrı ne zaman anlayacağımı biliyor.
reachergilt

Yazdım, böylece cevabı kabul edebilirsiniz - aksi takdirde soru sonsuza kadar yüzer ve bu kötüdür. Ayrıca, bu gelecekte başkaları için de yararlı olabilir. Ben sizin (! Size daha fazla güç) zaten soruşturma işlerin çoğunu başarmış ancak onur bağlı bana göndermek düşünüyorsanız hakkında benim cevap söylediklerimde ciddiydim biri vasıtasıyla, bira, benim kişisel web sitesinde yer alan iletişim bilgilerini bulabilirsiniz benim profilim.
MadHatter

Yardımınız için tekrar teşekkürler ve teşekkür ederim, boşa harcanan gün olmasa da muhtemelen saatlerimi kurtardınız. Yarın sizinle iletişime geçeceğim, web sitenizi zaten kontrol ettim.
reachergilt

Yanıtlar:


4

Reachergilt, SF'ye hoş geldiniz ve mükemmel bir ilk soru için teşekkürler. Sizi kurtardığımızı hissedebilirsiniz, ama dürüst olmak gerekirse, tüm ağır kaldırmayı zaten yapmış ve çok sistematik olarak sunmuş olabilirsiniz. Bunun gibi adli bir zihniyetle, umarım bu parçaların etrafında bir süre kalırsınız.

tcpdumpÇıkış özellikle ezici olan. Bağlanma girişimlerinizin sunucunuza ulaşmadığını, sunucunun güvenlik duvarını, postfixbağlarını ve sunucu tarafındaki diğer her şeyi aklatan makul şüphenin ötesinde olduğunu kanıtlıyor .

Bu işaretçi ile donanmış , dışarı çıkmış ve giden bağlantılarınızın engellendiğini onayladınız , böylece testleriniz asla sunucunuza kadar ulaşmadı. Spam gönderen botnet'ler bunları kullandığından, 25 (ve daha az ölçüde 587) modern ağlardan gidenlerin engellenmesi oldukça (iç karartıcı) normaldir.

Her halükarda, artık yeni posta sunucunuzun reklamı yapılan şekilde çalışmasından memnunsunuz ve bu iyi.


3
Evet, görevim benzer sorunları olan herkes için güzel bir kontrol listesi yapıyor. Komik olan, sunucumda bir sorun olduğunu düşündüğüm için, A'dan Z'ye her şeyi dört kez kontrol ettim, burada her şeyi belgelememe izin verdim.
reachergilt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.