กำลังพยายามติดตั้งเซิร์ฟเวอร์อีเมลไม่สามารถรับพอร์ต (25, 587) ให้ทำงานได้


9

ฉันค้นหาทุกที่และฉันต้องดิ้นรนกับสิ่งนี้จริงๆ ฉันคิดว่าฉันได้ลองทุกอย่างแล้ว

ข้อมูลความเป็นมา

  • VPS พร้อม CentOS 6.7
  • Postfix 2.6.6
  • นกพิราบ, amavis, mysql, fail2ban
  • ฉันตรวจสอบกับผู้ให้บริการ VPS แล้วว่าไม่ได้บล็อกพอร์ตใด ๆ

สิ่งที่ฉันทำ

  • นำสต็อก sendmail ออก
  • ฉันได้ติดตั้ง postfix, dovecot, mysql และอื่น ๆ สำหรับการแก้ปัญหาจดหมายที่สมบูรณ์
  • ฉันอนุญาตเฉพาะ imap, smtp ด้วย STARTTLS (พอร์ต 143 และ 587)
  • การเข้าสู่ระบบ SSH ถูกปิดการใช้งานโดยมีกุญแจเท่านั้น
  • ฉันสามารถรับอีเมล (ผ่านพอร์ต 143)
  • ฉันสามารถ telnet จาก localhost ไปยังพอร์ตทั้งสอง (587, 25) และฉันได้รับคำทักทาย postfix
  • พยายามที่จะเชื่อมต่อกับ 587 หรือ 25 (ไคลเอนต์อีเมลหรือ telnet) ทำให้ฉันได้รับการตอบสนองเป็นศูนย์เช่นหมดเวลาการเชื่อมต่อ

สิ่งที่ฉันได้ลอง

1) พอร์ตเปิดหรือไม่ ใช่ 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 หรือไม่ ใช่. มันฟังบน localhost เท่านั้นหรือไม่ ไม่โฮสต์ใด ๆ

นี่คือ 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

และนี่คือ postfix / main.cf เช่นกันในกรณี:

# Enable both IPv4 and/or IPv6: ipv4, ipv6, all.
inet_protocols = ipv4

# Enable all network interfaces.
inet_interfaces = all

3) คุณบังคับให้เชื่อมต่อที่ปลอดภัยหรือไม่? เพื่อความรู้ที่ดีที่สุดของฉันใช่นี่คือ 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 คืออะไร ดูเหมือนว่าตกลง:

# 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 ทำงานได้ดีใช่ไหม

ใช่การเข้าสู่เซิร์ฟเวอร์และการส่งเมลทดสอบจากงานคอนโซลและอีเมลจะได้รับที่ส่วนอื่น ๆ เช่น:

echo "Test mail from postfix" | mail -s "Test Postfix" user@something.com

6) จะเกิดอะไรขึ้นเมื่อเชื่อมต่อที่พอร์ต 587

เห็นได้ชัดว่าไม่มีอะไรเลย ถ้าฉันพยายามที่จะเทลเน็ตไปที่พอร์ตสุ่มใด ๆ ฉันก็จะได้ของอย่างน้อย ตัวอย่างเช่นการพยายามที่จะ telnet ไปยังพอร์ต 666 (ซึ่งไม่ได้เปิด) จะไม่ตอบกลับลูกค้า แต่อย่างน้อยฉันก็มีบางอย่างใน 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

เมื่อ tcpdumping พอร์ต 587 ไม่มีอะไรเกิดขึ้นเมื่อพยายาม telnet

ฉันยังขาดอะไร

ทุกสิ่งข้างต้นทำให้หมดความรู้ในสิ่งที่ฉันยังสามารถลอง ฉันจัดการเพื่อตอกตะปูลงที่พอร์ตของฉัน 587 ถูกบล็อกโดยบางสิ่งบางอย่าง อย่างที่ฉันได้กล่าวไปแล้วผู้ให้บริการ VPS ของฉันยืนยันว่าพวกเขาไม่ได้บล็อกพอร์ตใด ๆ เลย ฉันได้ลองพอร์ต 25 แล้วและมันก็เป็นเรื่องเดียวกัน

สิ่งเดียวที่ฉันเห็นก็คือฉันได้ปิดกั้นพอร์ตเหล่านั้นเมื่อตั้งค่าเซิร์ฟเวอร์ของฉัน แต่ฉันจำไม่ได้ว่าเป็นกรณีนั้นหรือไม่และฉันไม่รู้วิธีทดสอบสำหรับสิ่งนั้น

ฉันขอขอบคุณความช่วยเหลือใด ๆ ที่คุณสามารถให้ฉันได้ ที่จริงแล้วฉันซื้อเบียร์สำหรับใครก็ตามที่ช่วยฉันแก้ปัญหานี้ฉันเสียเวลาไปสองวันแล้วและมันเริ่มจะน่ารำคาญจริงๆ


3
คุณสามารถแทนที่iptablesผลลัพธ์ข้างต้นด้วยของiptables -L -n -vทั้งหมดและไม่ทำปฏิกิริยา? นอกจากนี้ยังให้คุณtcpdupmpทดสอบและการประกันให้บริการของคุณที่ฉันไม่ได้บล็อก 25 และ 587 ขาเข้าก็ยังเป็นไปได้ว่าสถานที่ที่คุณกำลังทดสอบจากบล็อก 25 และ 587 ขาออก หากคุณโพสต์ที่อยู่ IP จะเป็นการง่ายกว่ามากในการยืนยันหรือปฏิเสธสมมติฐานนั้น
MadHatter

ขอบคุณที่ตอบกลับ แน่นอนว่าฉันได้แก้ไขโพสต์ของฉัน อืมฉันไม่เคยคิดเลยว่าพอร์ตจะถูกบล็อกในตอนท้ายของฉันนั่นเป็นความคิดที่ดี ฉันจะลองและทดสอบสิ่งนี้
reachergilt

1
@ MadHatter คุณพูดถูกเกี่ยวกับพอร์ตที่ถูกบล็อกอยู่ข้างๆฉัน มันกลับกลายเป็นว่า (หลังจากการโทรจำนวนมาก) ที่ผู้ดูแลระบบของ VPN ของ บริษัท ของฉันตัดสินใจที่จะเริ่มบล็อกพอร์ตบางพอร์ต 25 และ 578 เป็นหนึ่งในนั้น แต่ไม่ใช่พอร์ตอื่น สิ่งนี้อธิบายว่าทำไมฉันไม่เคยมีปัญหาดังกล่าวมาก่อนและไม่เคยคิดถึงเรื่องนี้เลย เซิร์ฟเวอร์ของฉันอาจทำงานได้ดีในช่วงสองสามวันที่ผ่านมาในขณะที่ฉันกำลังคิดถึงมันอยู่ หากคุณต้องการคุณสามารถโพสต์เป็นคำตอบที่แท้จริงและฉันจะยอมรับมัน นอกจากนี้โปรดส่งข้อมูล PayPal (หรือคล้ายกัน) ของฉันให้ฉันคุณสมควรได้รับหวัดอันยิ่งใหญ่จริงๆพระเจ้ารู้เมื่อฉันจะเข้าใจ
reachergilt

ฉันเขียนมันขึ้นมาเพื่อที่คุณจะสามารถยอมรับคำตอบได้ - เพราะอย่างอื่นคำถามจะลอยไปเรื่อย ๆ และนั่นก็ไม่ดี นอกจากนี้สิ่งนี้อาจเป็นประโยชน์ต่อผู้อื่นในอนาคต ฉันหมายถึงสิ่งที่ฉันพูดในคำตอบของฉันเกี่ยวกับการทำงานสืบสวนส่วนใหญ่ของคุณเรียบร้อยแล้ว (มีอำนาจมากขึ้นสำหรับคุณ!) แต่ถ้าคุณรู้สึกมีเกียรติที่จะส่งเบียร์หนึ่งขวดให้ฉันคุณสามารถหารายละเอียดการติดต่อของฉันได้จากเว็บไซต์ส่วนตัว ประวัติของฉัน.
MadHatter

ทำและขอขอบคุณอีกครั้งสำหรับความช่วยเหลือของคุณคุณอาจช่วยฉันชั่วโมงถ้าไม่เสียเวลาวัน ฉันจะติดต่อคุณพรุ่งนี้ตรวจสอบเว็บไซต์ของคุณแล้ว
reachergilt

คำตอบ:


4

Reachergilt ยินดีต้อนรับสู่ SF และขอบคุณสำหรับคำถามแรกที่ยอดเยี่ยม คุณอาจรู้สึกว่าเราได้ช่วยคุณ แต่จริง ๆ แล้วคุณได้ทำการยกที่หนักและนำเสนออย่างเป็นระบบแล้ว ด้วยความคิดทางนิติวิทยาศาสตร์เช่นนั้นฉันหวังว่าคุณจะอยู่แถว ๆ นี้สักพัก

tcpdumpการส่งออกโดยเฉพาะอย่างยิ่งสาปแช่ง มันพิสูจน์ได้โดยปราศจากข้อสงสัยอย่างสมเหตุสมผลว่าความพยายามในการเชื่อมต่อของคุณไม่ได้ไปถึงเซิร์ฟเวอร์ของคุณซึ่งทำให้ไฟร์วอลล์ของเซิร์ฟเวอร์postfixรวมถึงการเชื่อมโยงและทุกอย่างอื่น ๆ

ด้วยตัวชี้นั้นคุณได้ออกไปแล้วและยืนยันว่าการเชื่อมต่อขาออกของคุณถูกบล็อกดังนั้นการทดสอบของคุณจึงไม่เคยไกลเท่าเซิร์ฟเวอร์ของคุณ เป็นเรื่องปกติที่จะถูกบล็อก (ขาออก) เป็นเวลา 25 (และในระดับที่น้อยกว่า 587) ที่จะถูกบล็อกขาออกจากเครือข่ายที่ทันสมัยเนื่องจากบอตเน็ตส่งสแปมใช้พวกเขา

อย่างไรก็ตามคุณมีความสุขที่เซิร์ฟเวอร์อีเมลใหม่ของคุณทำงานได้ดีเหมือนโฆษณา


3
ใช่โพสต์ของฉันทำรายการตรวจสอบที่ดีสำหรับทุกคนที่มีปัญหาคล้ายกัน ตลกพอเพราะฉันคิดว่ามีบางอย่างผิดปกติกับเซิร์ฟเวอร์ของฉันฉันตรวจสอบทุกสิ่งตั้งแต่ A ถึง Z ทำให้ฉันบันทึกเอกสารทุกอย่างที่นี่
reachergilt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.