포트 25(SMTP)에서 작동하는 Postfix 서버가 있습니다.
Thunderbird를 사용하여 이 Postfix 서버를 통해 메일을 보낼 수 있습니다.
나는 다음 문서를 따랐습니다.
- http://www.postfix.org/SASL_README.html#auxprop_sasldb
- https://wiki.debian.org/PostfixAndSASL#Using_auxprop_with_sasldb
구성은 쉽습니다.
$ sudo apt install libsasl2-modules sasl2-bin
$ sudo saslpasswd2 -c -u example.com yugiohjcj
$ sudo sasldblistusers2
$ sudo vim /etc/postfix/sasl/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
$ sudo vim /etc/postfix/main.cf
# SASL
cyrus_sasl_config_path = /etc/postfix/sasl
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
$ sudo bash /etc/init.d/postfix restart
Thunderbird를 구성하는 방법은 다음과 같습니다.
- 편집 > 계정 설정 > 보내는 서버(SMTP)
- 서버 이름: example.com
- 포트: 25
- 연결 보안: STARTTLS
- 인증방법 : 일반 비밀번호
- 사용자 이름:[이메일 보호됨]
그러나 대부분의 경우 ISP가 포트 25를 차단한다는 것을 알고 있으므로 메일을 보낼 때는 다른 포트를 사용하는 것이 좋습니다.
따라서 Postfix 서버에서 포트 587(커밋)을 활성화하고 싶습니다.
내가 한 일은 다음과 같습니다.
$ sudo vim /etc/postfix/master.cf
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=yes
$ sudo bash /etc/init.d/postfix restart
$ sudo iptables -A INPUT -p tcp --dport 587 -j ACCEPT
내 서버를 로컬에서 테스트하면 작동합니다.
$ telnet localhost 587
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 server.example.com ESMTP Postfix (Debian/GNU)
[...]
하지만 원격으로 서버를 테스트하면 작동하지 않습니다.
$ telnet example.com 587
Trying 1.2.3.4...
[...]
붙어 있어요.
내 Postfix 제출 서비스에 원격으로 액세스할 수 없는 이유는 무엇입니까?
감사해요.
감사합니다.
答え1
그것은 단지 순서의 문제일 뿐입니다 iptables
.
다음 명령을 입력했습니다.
$ sudo iptables -A INPUT -j DROP
$ sudo iptables -A INPUT -p tcp --dport 587 -j ACCEPT
모든 포트에서 패킷을 삭제한 다음 포트 587에서 패킷을 수락하기 때문에 이는 좋지 않습니다.
따라서 포트 587의 패킷은 여전히 삭제됩니다.
명령 순서를 변경했습니다.
$ sudo iptables -A INPUT -p tcp --dport 587 -j ACCEPT
$ sudo iptables -A INPUT -j DROP
이제 내 Postfix 제출 서비스는 명령을 사용하여 원격으로 액세스할 수 있습니다 telnet
.
STARTTLS를 사용하여 Thunderbird 포트 587을 통해 메일을 보낼 수 있습니다.
문제 해결됨.