Postfix를 백업 MX로 설정

Postfix를 백업 MX로 설정

2022-10-19 last update

7 minutes reading email postfix
이 튜토리얼에서는 Postfix 메일 서버를 도메인의 백업 메일 교환기로 설정하여 기본 메일 교환기가 다운되거나 연결할 수 없고 메일을 기본 메일 교환기로 전달할 경우 이 도메인의 메일을 수락하도록 설정하는 방법을 보여줍니다. MX 한 번 그 하나가 다시 올라갑니다.

1 서문


example.com 도메인에 대한 백업 MX를 설정하고 싶습니다. 이 예에서 example.com의 기본 MX는 mx1.example.com(IP 주소 1.2.3.4)이므로 백업 MX를 mx2.example.com(IP 주소 1.2.3.5)이라고 합니다.

다음과 같은 example.com에 대한 MX 레코드를 만들었습니다.
example.com.               86400   IN      MX      10 mx1.example.com.
example.com.               86400   IN      MX      20 mx2.example.com.
기본 MX의 번호(10)가 낮으므로 백업 MX(20)보다 우선 순위가 높아야 합니다.
mx2.example.com의 Postfix가 이미 설치되어 작동하고 있다고 가정합니다.

2 mx2.example.com에서 Postfix 구성


mx2.example.com을 example.com 도메인의 백업 MX로 만들려면/etc/postfix/main.cf에 세 줄을 변경/추가하기만 하면 됩니다.
nano /etc/postfix/main.cf
먼저 smtpd_recipient_restrictions에 permit_mynetworks 및 reject_unauth_destination이 포함되어 있는지 확인하여 다음과 같이 해도 됩니다.
[...]
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
[...]
그런 다음 relay_domains 매개변수에 example.com을 추가해야 합니다./etc/postfix/main.cf에 아직 relay_domains 매개변수가 없으면 다음이 수행됩니다.
[...]
relay_domains = $mydestination, example.com
[...]
마지막으로/etc/postfix/main.cf에 빈 relay_recipient_maps 매개변수를 추가합니다.
[...]
relay_recipient_maps =
[...]
(이렇게 하면 백업할 유효한 이메일 주소 목록을 지정할 필요가 없습니다. 수백 개의 이메일 계정을 관리해야 하는 경우 이는 어려운 작업이 될 수 있습니다.)
한 가지 중요한 사항을 추가해야 합니다./etc/postfix/main.cf의 다음 매개변수에 example.com을 나열해서는 안 됩니다.

목적지
virtual_alias_domains
virtual_mailbox_domains
그게 다야 이제 Postfix를 다시 시작하기만 하면 됩니다.
service postfix restart

3 테스트


새로운 백업 MX를 테스트하기 위해 mx1.example.com에서 MTA(Postfix, Sendmail, Exim 등)를 삭제하고 일부 원격 서버에서 example.com 계정(예: [email protected])으로 이메일을 보냅니다. .
원격(전송) 서버의 메일 로그에 액세스할 수 있는 경우 이제 다음과 같은 내용을 찾을 수 있습니다.
Jun 6 18:29:16 mail postfix/smtp[17746]: AF814144146: to=<[email protected]>, relay=mx2.example.com[1.2.3.5], delay=1, status=sent (250 2.0.0 Ok: queued as DCA5A1BF40F)
보시다시피 mx1.example.com에 연결할 수 없기 때문에 메일이 mx1.example.com 대신 mx2.example.com으로 전송되었습니다. 이제 mx2.example.com의 메일 로그를 살펴보겠습니다.
Jun 6 18:29:16 mx2 postfix/qmgr[3049]: DCA5A1BF40F: from=<[email protected]>, size=892, nrcpt=1 (queue active)
Jun 6 18:29:16 mx2 postfix/smtpd[3051]: disconnect from mail.blabla.tld[1.2.3.6]
Jun 6 18:29:16 mx2 postfix/smtp[3057]: connect to mx1.test1.de[1.2.3.4]: Connection refused (port 25)
Jun 6 18:29:16 mx2 postfix/smtp[3057]: DCA5A1BF40F: to=<[email protected]>, relay=none, delay=0.07, delays=0.03/0.02/0.01/0, dsn=4.4.1, status=deferred (connect to mx1.test1.de[1.2.3.4]: Connection refused)
mx2.example.com이 메일을 수락하고 mx1.example.com에 연결하여 기본 MX에 전달하려고 했습니다. 기본 MX가 다운되었기 때문에 mx2.example.com은 메일을 배달할 수 없으며 mx1.example.com을 다시 사용할 수 있을 때까지 메일 대기열에 보관합니다.
이제 mx1.example.com에서 MTA를 다시 시작합니다. 백업 MX는 대기 중인 메일을 즉시 배달하지 않지만 몇 분 후에 mx2.example.com의 메일 로그에 다음과 같은 내용이 표시됩니다.
Jun 6 18:56:44 mx2 postfix/qmgr[3080]: DCA5A1BF40F: from=<[email protected]>, size=892, nrcpt=1 (queue active)
Jun 6 18:56:45 mx2 postfix/smtp[3083]: DCA5A1BF40F: to=<[email protected]>, relay=mx1.example.com[1.2.3.4]:25, delay=1648, delays=1648/0.09/0.4/0.12, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 167995B0109)
메일은 메일 로그에서 볼 수 있는 기본 MX로 배달되었습니다.
Jun 6 18:56:45 mx1 postfix/local[4963]: 167995B0109: to=<[email protected]>, orig_to=<[email protected]>, relay=local, delay=0.54, delays=0.08/0.02/0/0.43, dsn=2.0.0, status=sent (delivered to command: /usr/bin/procmail -f-)
따라서 mx1.example.com이 다운된 동안 메일이 손실되지 않았으며 사용자는 mx1.example.com에서 메일을 계속 검색할 수 있습니다.

4 링크


  • 접미사: http://www.postfix.org