
Postfix가 릴레이 호스트로 이메일 전송을 거부하고 있습니다. 계속해서 다음과 같이 말합니다.
mydomain.com[xxx.xx.xxx.xxx]에 연결:25: 연결이 거부되었습니다.
그러나 포트 25는 열려 있습니다.
sudo netstat -ntlp
tcp 0 0 127.0.0.1:33060 0.0.0.0:* LISTEN 39162/mysqld
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 57910/proftpd: (acc
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 614/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 762/sshd: /usr/sbin
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 70265/master
tcp6 0 0 :::3306 :::* LISTEN 39162/mysqld
tcp6 0 0 :::80 :::* LISTEN 61217/apache2
tcp6 0 0 :::22 :::* LISTEN 762/sshd: /usr/sbin
tcp6 0 0 ::1:25 :::* LISTEN 70265/master
tcp6 0 0 :::443 :::* LISTEN 61217/apache2
이 문제가 어디서 발생하는지 전혀 모르겠습니다.
누군가 나를 도와줄 수 있나요?
답변1
릴레이 호스트에는 인증이 필요합니다. 즉, 이 릴레이 호스트를 통해 메일을 보낼 수 있다는 것을 증명해야 합니다. 일반적으로 Relayhost 운영자는 Relayhost와 통신할 때 사용할 Postfix에서 구성하는 자격 증명(일부 로그인 및 비밀번호)을 제공합니다.
Postfix가 SMTP 서버인 릴레이 호스트와 통신할 때 사용되는 SMTP 클라이언트 인증 구성은 다음 항목에 설명되어 있습니다.접미사 SASL Howto. 방법은 다음과 같습니다.
접미사에서 main.cf
:
relayhost = [relay.host.name]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
첫 번째 줄은 릴레이 호스트를 설정하고, 두 번째 줄은 인증을 활성화하며, 세 번째 줄은 각 릴레이 호스트에 대한 자격 증명이 저장되는 파일, 즉 을 지정합니다 /etc/postfix/sasl_passwd
. 해당 파일에 다음을 넣습니다.
[relay.host.name] username:password
항상 postmap /etc/postfix/sasl_passwd
이 파일을 변경한 후와 postfix reload
편집한 후에 실행하십시오 main.cf
. 또한 이 파일에는 민감한 정보가 포함되어 있으므로 이 파일에 대한 액세스를 제한하세요.
chmod 0600 /etc/postfix/sasl_passwd
chown root:root /etc/postfix/sasl_passwd
smtp submission
릴레이 호스트가 다른 포트에서 제출을 기대하는 경우(예를 들어 릴레이 호스트를 설정해야 할 때 포트 에서 수행함 ) 파일의 in 및 동일 tcp/587
에서 이를 지정해야 합니다 .relayhost = [relay.host.name]:submission
main.cf
sasl_passwd
tcp/465
Postfix SMTP 클라이언트는 "직접 SMTPS"("래퍼 모드"라고 함)를 지원하지 않습니다. 여기서 SMTP-over-SSL 서버는 Google이 수행하는 것과 같이 포트에서 직접 SSL 핸드셰이크를 기대합니다 . STARTTLS 명령으로 시작하려면 포트 25 또는 587을 통한 TLS만 지원합니다.
답변2
Connection refused
주어진 인터페이스의 주어진 포트에서 아무것도 수신 대기하고 있지 않음을 의미합니다. 그리고 netstat 출력에는 포트 25가 127.0.0.1
루프백 인터페이스에서만 수신 대기하고 있음이 표시됩니다.
다른 컴퓨터에서 액세스하려고 하면 연결할 수 없습니다.
Postfix가 모든 인터페이스를 수신하도록 하려면 변경해야 합니다.inet_interfaces
:
inet_interfaces = all
여러 인터페이스가 있고 모든 인터페이스를 수신하지 않으려는 경우 수신해야 하는 IP 주소의 쉼표로 구분된 목록을 제공할 수도 있습니다.