나는 모든 곳을 수색했고 나는 이것으로 정말로 고투하고있다. 나는 거의 모든 것을 시도했다고 생각합니다.
배경 정보
- 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를 시도했지만 같은 이야기입니다.
내가 볼 수있는 유일한 다른 것은 서버를 설정할 때 어떻게 든 해당 포트를 차단했지만 그 경우인지 기억할 수 없으며 테스트 방법을 모릅니다.
당신이 나에게 줄 수있는 도움에 정말 감사합니다. 사실, 나는이 문제를 해결하는 데 도움이되는 사람을 위해 맥주를 구입하고 있습니다 . 나는 이미 이틀을 낭비했으며 실제로 성가시기 시작했습니다.
iptables
위 의 출력을iptables -L -n -v
전체 및 수정되지 않은 출력으로 바꿀 수 있습니까? 또한tcpdupmp
테스트 및 25 및 587 인바운드를 차단하지 않는다는 공급자의 보증을 감안할 때 25 및 587 블록 에서 테스트하는 장소가 아웃 바운드 될 수도 있습니다. IP 주소를 게시 한 경우 해당 가설을 확인하거나 거부하기가 훨씬 쉽습니다.