2개의 서버(웹용 하나, 메일용 하나)에 대해 DNS를 올바르게 구성하는 방법은 무엇입니까?

2개의 서버(웹용 하나, 메일용 하나)에 대해 DNS를 올바르게 구성하는 방법은 무엇입니까?

이메일 서버에는 iredmail. 다음 설정의 이메일 서버가 있습니다.

# /etc/hostname
mail

# /etc/hosts
127.0.1.1 mail.mydomain.com mail
127.0.0.1 localhost

따라서 FQDN은 mail.mydomain.com.

여기내가 사용한 예제를 찾았지만 이 예제에서는 내 서버가 이메일을 보낼 수 있지만 받을 수는 없습니다.

Type     Name                Value                                  TTL
A         @                  195.201.40.1                           1 hour  # Web server
A         mail               195.201.40.2                           1 hour  # Mail server
MX        @                  mail.mydomain.com (Priority: 10)       1 hour
TXT       @                  v=spf1 ip4:195.201.40.2 -all           1 hour
TXT       @                  v=DMARC1; p=reject; sp=reject;...      1 hour
TXT       _adsp._domainkey   dkim=all
TXT       dkim._domainkey    v=DKIM1; k=rsa; p=MIGfMA0GCSq...

그런 다음 변경했습니다.

MX        @   mail.mydomain.com (Priority: 10)  1 hour

에게

MX        mail    mail.mydomain.com (Priority: 10)  1 hour

메일 서버가 이메일을 받기 시작했습니다.

두 가지 질문 블록이 있습니다.

1) 제가 이해하는 바에 따르면, 외부 이메일 서비스(예: Gmail)는 내 이메일 주소가 이 아닌 이 아닌 mydomain.com이로 메일을 보냅니다 . 이메일 수신 문제를 해결하기 위해 변경하는 이유는 무엇입니까 ?mail.mydomain.com[email protected][email protected]@mail

나는 그 기록을 MX @ mail.mydomain.com다음과 같이 이해합니다: "외부 이메일 서비스, 다음 주소로 이메일을 보내는 경우[이메일 보호됨](@ = mydomain.com)을 입력한 다음 FQDN mail.mydomain.com"을 사용하여 서버에 이메일을 보내지만 내 논리가 작동하지 않는 것 같습니다. 이유는 무엇입니까?

여기@호스트 이름이 다른 FQDN을 가질 수 있음을 알 수 있습니다 . 제 경우에는 왜 작동하지 않나요?

2) TXT 레코드의 경우 어떤 이름을 제공해야 합니까? @또는 mail, 즉 도메인 이름 또는 호스트 이름? 그렇다면 mail메일 서버가 10개라면 모든 서버에 대해 자체 TXT 레코드를 만들어야 한다는 뜻인가요?

답변1

귀하의 DNS 레코드를 바인드 형식으로 변환했습니다. 항목을 변경하지 않는 한 항목에 대한 TTL을 지정할 필요가 없습니다.

SPF 레코드를 가장 간단한 형태로 변환했습니다. A기록 규칙은 SPF 확인을 mail위한 것입니다 -helo. 에 대한 규칙은 하위 도메인 www에서 이메일을 보내서는 안 된다는 것을 나타냅니다 www.

귀하의 도메인 항목과 하위 도메인이 이어집니다. (MX 레코드 끝에 있는 점을 참고하세요. 점이 없는 경우 를 사용해야 합니다 mail.)

 @       IN  A    195.201.40.1
         IN  MX   mail.mydomain.com.
         IN  TXT  "v=spf1 mx -all"

표준 서비스 메일 및 www(일부 브라우저는 항목에 www가 제공되지 않더라도 www를 시도합니다).

 mail    IN  A    195.201.40.2 
         IN  TXT  "v=spf1 a -all"
 www     IN  A    195.201.40.1 
         IN  TXT  "v=spf1 -all"

보고 기능이 포함된 DMARC 구성입니다. 보고서에 문제가 없다고 나타날 때까지는 정책을 사용하지 않을 것입니다 reject. 귀하 none의 정책으로 시작하는 것이 좋습니다 .

 _dmarc  IN  TXT  "v=DMARC1; p=reject; sp=reject;..."
 *._report.dmarc  IN TXT "v=DMARC1"

DKIM에 대한 구성입니다. _adsp더 이상 표준 트랙에 있지 않은 것 같습니다. dkim서명할 때 사용하는 키 이름으로 바꾸세요 .

 _adsp._domainkey IN  TXT dkim=all
 dkim._domainkey  IN  TXT  v=DKIM1; k=rsa; p=MIGfMA0GCSq...

답변2

1) 이메일 주소의 호스트 이름 부분에 대한 MX 레코드에 지정된 호스트 이름으로 메일이 전송됩니다. 예를 들어 다음 주소로 메일을 보낼 때[이메일 보호됨], 다음이 발생합니다.

구성된 MX 레코드 중 하나가 gmail.com에 사용됩니다.

# dig mx gmail.com +short | head -n 1
5 gmail-smtp-in.l.google.com.

이메일은 해당 메일 서버의 IP 주소로 전달됩니다.

# dig gmail-smtp-in.l.google.com +short
173.194.221.27

귀하의 경우 초기 구성이 좋아 보이기 때문에 문제가 어떻게 해결되었는지 명확하지 않습니다. 도메인 이름을 담당하는 MX 서버와 공용 DNS를 사용하여 해당 서버가 참조하는 IP 주소를 확인해보세요.

# dig mx mydomain.com @8.8.8.8 +short
mail.mydomain.com
# dig mail.mydomain.com @8.8.8.8 +short

2) SPF 레코드에는 도메인 이름( mail.부분 제외)을 제공해야 합니다. DKIM 및 DMARC의 경우 접두어도 도메인 이름에 mail.부분 없이 추가해야 합니다. 예:

TXT       _dmarc             v=DMARC1; p=reject; sp=reject;...
TXT       dkim._domainkey    v=DKIM1; k=rsa; p=MIGfMA0GCSq...

관련 정보