LXD 컨테이너에서 실행되는 iRedMail 메일 서버가 있습니다.
불행하게도 현재 모든 이메일은 내부 이메일로 간주되어 사실상 오픈 릴레이가 됩니다.
컨테이너 호스트
VPS에는 자체 공용 IP 주소가 있습니다
. 운영 체제:데비안 10
컨테이너:LXD
전체 도메인 이름:xxx.yyy
네트워크 구성:eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 155.xx.xx.xx netmask 255.255.255.255 broadcast 155.xx.xx.xx lxdbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.33.196.1 netmask 255.255.255.0 broadcast 0.0.0.0
컨테이너 내부에서 실행되는 메일 서버
운영 체제: Debian 10
메일 서버: iRedMail 1.1 LDAP
Postfix 버전: 3.4.10
FDQN: mail.xxx.yyy
네트워크 구성:eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.33.196.133 netmask 255.255.255.0 broadcast 10.33.196.255 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0
이는 외부 당사자가 자격 증명 없이 포트 25를 통해 이메일을 보내려고 할 때 발생합니다.
/var/log/mail.log: (개인정보 보호를 위해 수정했습니다)
May 14 17:18:35 mail postfix/postscreen[18271]: WHITELISTED [127.0.0.1]:57298
May 14 17:18:37 mail postfix/smtpd[18273]: connect from mail.xxx.yyy[127.0.0.1]
May 14 17:18:37 mail postfix/smtpd[18273]: Anonymous TLS connection established from mail.xxx.yyy[127.0.0.1]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
May 14 17:18:39 mail postfix/smtpd[18273]: 49NJCz4yZqzBl7wn: client=mail.xxx.yyy[127.0.0.1]
May 14 17:18:39 mail postfix/cleanup[18294]: 49NJCz4yZqzBl7wn: message-id=<[email protected]>
May 14 17:18:39 mail postfix/qmgr[1287]: 49NJCz4yZqzBl7wn: from=<[email protected]>, size=562, nrcpt=1 (queue active)
May 14 17:18:39 mail postfix/smtpd[18273]: disconnect from mail.xxx.yyy[127.0.0.1] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7
May 14 17:18:40 mail postfix/10025/smtpd[18297]: connect from mail.xxx.yyy[127.0.0.1]
May 14 17:18:40 mail postfix/10025/smtpd[18297]: 49NJD00vNpzBl7wv: client=mail.xxx.yyy[127.0.0.1]
May 14 17:18:40 mail postfix/cleanup[18294]: 49NJD00vNpzBl7wv: message-id=<[email protected]>
May 14 17:18:40 mail postfix/10025/smtpd[18297]: disconnect from mail.xxx.yyy[127.0.0.1] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
May 14 17:18:40 mail postfix/qmgr[1287]: 49NJD00vNpzBl7wv: from=<[email protected]>, size=1009, nrcpt=1 (queue active)
May 14 17:18:40 mail amavis[689]: (00689-01) Passed CLEAN {RelayedInternal}, MYNETS LOCAL [127.0.0.1]:57298 ESMTP/ESMTP <[email protected]> -> <[email protected]>, (), Queue-ID: 49NJCz4yZqzBl7wn,$
May 14 17:18:40 mail postfix/amavis/smtp[18295]: 49NJCz4yZqzBl7wn: to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=1.1, delays=0.76/0.02/0.05/0.27, dsn=2.0.0, status=sent (250 2.0.0 fr$
May 14 17:18:40 mail postfix/qmgr[1287]: 49NJCz4yZqzBl7wn: removed<br>
May 14 17:18:41 mail postfix/smtp[18298]: Trusted TLS connection established to mx.zzz.com[153.x.x.x]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
May 14 17:18:42 mail postfix/smtp[18298]: 49NJD00vNpzBl7wv: to=<[email protected]>, relay=mx.zoho.com[136.x.x.x]:25, delay=2.6, delays=0.01/0.05/1.6/0.96, dsn=2.0.0, status=sent (250 Message rec$
May 14 17:18:42 mail postfix/qmgr[1287]: 49NJD00vNpzBl7wv: removed
메시지가 성공적으로 전송되었습니다.
이는 모든 연결이 컨테이너 호스트에 의해 컨테이너 루프백으로 전달되기 때문인 것 같지만 이를 대체 작업 구성으로 성공적으로 변경할 수는 없습니다.
현재 포트는 다음과 같이 LXC를 사용하여 컨테이너로 전달됩니다.
root@xxx:~# lxc config device show mailserver
port25:
connect: tcp:127.0.0.1:25
listen: tcp:0.0.0.0:25
type: proxy
port110:
connect: tcp:127.0.0.1:110
listen: tcp:0.0.0.0:110
type: proxy
...
나는 그것을 다음과 같이 변경하려고 시도했습니다.
port25:
connect: tcp:10.33.196.133:25
listen: tcp:0.0.0.0:25
type: proxy
그러나 이로 인해 별도의 문제가 발생합니다. 외부 이메일은 여전히 내부 이메일로 간주됩니다. 컨테이너화된 접미사 구성과 LXD에서 메일 서버를 실행하는 기타 시나리오를 검색했지만 해결책을 찾지 못했습니다.
누군가가 나에게 올바른 방향을 알려줄 수 있다면 좋을 것입니다. 도움을 주셔서 감사합니다.
또한 추가 정보가 필요한 경우 알려주시기 바랍니다.
답변1
도움을 주셔서 감사합니다. 해결책은 다음과 같습니다. 매개변수를 추가하세요.
proxy_protocol=true
LXD 프록시 장치에 라인을 추가하십시오
postscreen_upstream_proxy_protocol = haproxy
도착하다/etc/postfix/main.cf
Postfix를 다시 시작한 후에도 원래 IP 주소는 유지되며 이제 연결이 외부 연결로 인식됩니다.