메일 서버를 설정하려고하는데 포트 (25, 587)가 작동하지 않습니다


9

나는 모든 곳을 수색했고 나는 이것으로 정말로 고투하고있다. 나는 거의 모든 것을 시도했다고 생각합니다.

배경 정보

  • CentOS 6.7이 포함 된 VPS
  • 접미사 2.6.6
  • 비둘기장, 아마 비스, MySQL, fail2ban
  • VPS 공급자에게 포트를 차단하지 않는지 확인했습니다.

내가 한 것들

  • 재고 발송 메일 제거
  • 완전한 메일 솔루션을 위해 postfix, dovecot, mysql 등을 설치했습니다.
  • STARTTLS (포트 143 및 587)와 함께 imap, smtp 만 허용합니다.
  • 키만 사용하여 SSH 로그인 비활성화
  • 메일을받을 수 있습니다 (포트 143을 통해)
  • localhost에서 두 포트 (587, 25)로 텔넷 할 수 있고 접미사 인사말을받습니다
  • 587 또는 25 (메일 클라이언트 또는 텔넷)에 연결하려고하면 응답이 없습니다 (예 : 연결 시간 초과)

내가 시도한 것

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에서 연결하면 어떻게됩니까?

분명히 아무 것도 아닙니다. 임의의 포트에 텔넷을 시도하면 적어도 무언가를 얻습니다. 예를 들어, 열려 있지 않은 포트 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

포트 587을 tcpdumping 할 때 텔넷을 시도 할 때 전혀 아무 일도 일어나지 않습니다.

내가 아직도 무엇을 놓치고 있습니까?

위의 모든 것은 여전히 ​​시도 할 수있는 것들에 대한 지식을 소진합니다. 포트 587에 고정시켜 무언가에 의해 완전히 차단되었습니다. 내가 말했듯이 내 VPS 공급자는 포트를 전혀 차단하지 않는다고 확인했습니다. 나는 포트 25를 시도했지만 같은 이야기입니다.

내가 볼 수있는 유일한 다른 것은 서버를 설정할 때 어떻게 든 해당 포트를 차단했지만 그 경우인지 기억할 수 없으며 테스트 방법을 모릅니다.

당신이 나에게 줄 수있는 도움에 정말 감사합니다. 사실, 나는이 문제를 해결하는 데 도움이되는 사람을 위해 맥주를 구입하고 있습니다 . 나는 이미 이틀을 낭비했으며 실제로 성가시기 시작했습니다.


3
iptables위 의 출력을 iptables -L -n -v전체 및 수정되지 않은 출력으로 바꿀 수 있습니까? 또한 tcpdupmp테스트 및 25 및 587 인바운드를 차단하지 않는다는 공급자의 보증을 감안할 때 25 및 587 블록 에서 테스트하는 장소가 아웃 바운드 될 수도 있습니다. IP 주소를 게시 한 경우 해당 가설을 확인하거나 거부하기가 훨씬 쉽습니다.
MadHatter

답장을 보내 주셔서 감사합니다. 물론, 내 게시물을 편집했습니다. 흠, 나는 포트가 막히는 것을 결코 생각하지 않았다. 그것은 좋은 생각이다. 나는 이것을 시도하고 테스트 할 것이다.
reachergilt

1
@ MadHatter, 당신은 내 측면에서 차단 된 포트에 완전히 맞았습니다. 회사의 VPN 관리자가 특정 포트를 차단하기로 결정한 것으로 나타났습니다 (25 및 578은 포트 중 하나임). 이것은 내가 왜 그런 문제를 겪지 않았으며 그것에 대해 생각조차하지 않은 이유를 설명합니다. 지난 며칠 동안 내 서버가 이미 제대로 작동하고 있었을 것입니다. 원하는 경우 실제 답변으로 게시 할 수 있으며 수락하겠습니다. 또한 PayPal (또는 유사한) 정보를 PM으로 보내주십시오. 대단히 차가운 정보를받을 자격이 있습니다.
reachergilt

나는 그것을 작성 했으므로 대답을 받아 들일 수 있습니다. 그렇지 않으면 질문이 영원히 떠 다니기 때문에 나쁜 것입니다. 또한 이것은 앞으로 다른 사람들에게도 유용 할 것입니다. 나는 당신이 이미 대부분의 조사 작업을 수행했다는 것에 대해 내 대답에서 말한 것을 의미했지만 (당신에게 더 많은 힘을주었습니다!) 맥주 잔 을 보내기에 영광 스러우면 내 개인 웹 사이트에서 내 연락처 세부 정보를 찾을 수 있습니다. 내 프로필.
MadHatter

도움을 주셔서 다시 한 번 감사드립니다. 시간을 낭비하지 않으면 시간을 절약 할 수 있습니다. 내일 연락 드리겠습니다. 이미 웹 사이트를 확인했습니다.
reachergilt

답변:


4

Reachergilt, SF에 오신 것을 환영합니다. 훌륭한 첫 질문에 감사드립니다. 당신은 우리가 당신을 구했다고 생각할 수도 있지만, 정직하게-당신은 이미 모든 무거운 짐을지고 매우 체계적으로 제시했습니다. 그런 포렌식 사고 방식으로, 여러분이이 부분들을 잠시 동안 머물기를 바랍니다.

tcpdump출력 특히 욕된다. 연결하려는 시도가 서버에 도달하지 않아서 서버의 방화벽, postfix바인딩 및 서버 측의 모든 것을 능가한다는 것은 의심의 여지가 없습니다 .

해당 포인터로 무장하고 아웃 바운드 연결이 차단 되었음을 확인 했으므로 테스트가 서버에 도달하지 못했습니다. 스팸 전송 봇넷이이를 사용하기 때문에 최신 네트워크에서 아웃 바운드를 차단하는 것은 25 (그리고 587 이하)가 상당히 (우울하게) 정상입니다.

여하튼, 당신은 이제 새로운 메일 서버가 광고 된대로 작동하고 있다는 것을 기쁘게 생각합니다.


3
예, 내 게시물은 비슷한 문제가있는 사람을 위해 좋은 점검표를 만듭니다. 재미있게도, 서버에 문제가 있다고 생각했기 때문에 A에서 Z까지 모든 것을 4 배 검사하여 여기에 모든 것을 문서화 할 수있었습니다.
reachergilt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.