시작하기
대부분의 이메일 서비스 제공자(gmail, naver 등)는 메일 수신 시 Domain Key(DKIM)와 DMARC 인증 여부를 확인하며, 인증이 없을 경우 메일을 거절합니다. 따라서 DKIM과 DMARC 인증을 올바르게 설정하지 않으면 이메일 서비스를 원활하게 사용하기 어렵습니다.
DKIM 이란?
도메인키 식별 메일(DKIM)은 스팸 발송자 및 기타 악의적인 당사자가 합법적인 도메인을 가장하는 것을 방지하는 데 도움이 되는 이메일 인증 방법입니다. 자세한 내용은 아래 링크에서 확인하세요.

Axigen 메일서버의 DKIM 설정하기
SSL 터미널에서 Domain Key 생성
Axigen 메일서버는 서버에 SSL로 접속하여 터미널에서 작업합니다. 이는 식별 키의 인증을 위해 OpenSSL을 사용하여 RSA 형식의 키 페어를 생성해야 하기 때문입니다.
root@axigen-server:cd /var/opt/axigen # RSA인증서 KEY PAIR 생성 root@axigen-server:/var/opt/axigen# openssl genrsa -out dkim.privkey.your_domain_com.pem 2048 root@axigen-server:/var/opt/axigen# openssl rsa -in dkim.privkey.your_domain_com.pem -outform PEM -pubout -out dkim.pubkey.your_domain_com.pem writing RSA key # 생성된 인증서 파일들의 권한 부여 root@axigen-server:/var/opt/axigen# chmod 600 dkim.*.pem root@axigen-server:/var/opt/axigen# chown axigen:axigen dkim.*.pem # 인증서 공개키 내용 확인 root@axigen-server:/var/opt/axigen# cat dkim.pubkey.your_domain_com.pem | grep -v PUBLIC | tr -d "\n" | grep -v AAAAAAAAAA MIIBIjANBgkqhkiG9...................4xWqfQLAtRwpzr6wIDAQAB # DNS Record에 공개키 값을 입력할 경우, DNS txt레코드는 1줄에 256자까지만 허용합니다. 따라서 값을 여러줄로 나누어야 합니다. root@axigen-server:/var/opt/axigen# LONG_KEY="MIIBIjANBgkqhkiG9...................4xWqfQLAtRwpzr6wIDAQAB" root@axigen-server:/var/opt/axigen# HEADER="k=rsa; p=" # 256자로 나누기 echo "2025._domainkey.your_domain.com. IN TXT (" > dkim_record.txt echo "$HEADER$LONG_KEY" | fold -w 256 | sed 's/^/"/; s/$/"/' >> dkim_record.txt echo ")" >> dkim_record.txt # 완성된 DNS txt 값 # 이 값으로 사용하는 DNS관리툴을 사용하여 txt 레코드를 입력. root@axigen-server:/var/opt/axigen# cat dkim_record.txt 2025._domainkey.your_domain.com. IN TXT ( "k=rsa; p=MIIBIjANBgkqhkiG9..................." "...................4xWqfQLAtRwpzr6wIDAQAB" )
위의 코드와 같이 메일서버에서 사용할 도메인 주소로 인증서 파일을 생성하고, DNS 레코드에 입력할 텍스트 문구를 생성합니다. 위의 예제에서는 공개 키의 값을 256자로 잘라서 사용합니다. 이는 대부분의 DNS 서비스 제공자들의 TXT 레코드가 한 줄에 256자로 입력이 제한되기 때문에 여러 줄로 나누어 입력해야 합니다. Windows Server의 DNS 레코드는 한 줄에 256자 이상 입력이 가능하므로 여러 줄로 나눌 필요 없이 한 줄로 입력해도 됩니다.
#txt 레코드를 입력 후, 다음 명령어로 DNS항목이 올바르게 전파되었는지 확인 root@axigen-server:/var/opt/axigen# dig +short txt 2025._domainkey.your_domain.com @8.8.8.8 "k=rsa; p=MIIBIjANBgkqhkiG9...................4xWqfQLAtRwpzr6wIDAQAB"
DNS에 txt레코드를 입력한 후, 성공적으로 입력 값이 전파되어 있는지 확인하기 위하여 위와 같이 입력하여 확인 해 봅니다. 위의 예제와 같이 결과 값이 나온다면 성공입니다.
Axigen WebAdmin에서 DKIM설정 생성
이제 설정한 DKIM의 DNS 레코드를 Axigen 메일서버에 적용해야 합니다. Axigen 메일서버의 Web Admin에 접속한 후, 아래 메뉴로 이동하여 새로운 규칙(Rule)을 추가합니다. 추가해야 하는 규칙은 수신과 발신의 두 가지입니다.
SECURITY & FILTERING > Acceptance & Routing > ADVANCED SETTINGS
- 수신메세지를 위한 Rule 생성
위의 그림과 같이 수신 메시지를 위한 규칙을 생성합니다. 이는 모든 수신되는 이메일에 대해 Domain Key와 DKIM을 확인하겠다는 의미입니다.
[입력 값]
Conditions:
Match any email message
Actions:
Check Domain Key
Check DKIM
- 발신메세지를 위한 Domain 별 Rule 생성
위의 그림과 같이 발신 메시지를 위한 규칙을 추가합니다.
대략적인 내용은,
1. 발신자 이메일의 도메인이 your_domain.com인 경우
2. 발신자의 이메일이 인증된 경우
3. DK 및 DKIM 셀렉터를 2025로 설정
4. DK Key 및 DKIM Key는 dkim.privkey.your_domain_com.pem 인증서를 사용
5. Domain Key로 서명
6. DKIM으로 서명
[입력 값]
Conditions :
ALL
Sender domain is your_domain.com
Connection is authenticated (체크)
Actions:
DK Selector: 2025
DKIM Selector: 2025
DK Key Path: dkim.privkey.your_domain_com.pem
DKIM Key Path: dkim.privkey.your_domain_com.pem
Sign Domain Key
Sign DKIM
모든 설정이 완료되면 서버를 재시작하고, 아래 테스트 사이트에서 DKIM이 올바르게 설정되었는지 확인합니다.


DMARC 란?
DMARC는 SPF와 DKIM 설정을 기반으로 추가로 설정하는 보안 정책입니다. 이를 통해 이메일 송신 도메인이 올바르게 인증되지 않은 경우, 해당 이메일을 어떻게 처리할지 정의할 수 있습니다. DMARC 정책은 DNS에 TXT 레코드 형태로 추가됩니다.

Axigen 메일서버의 DMARC 설정하기
아래의 테이블은 DNS Record에 입력할 값들의 세부 설명입니다. 아래의 값을 기준하여 DNS에 입력할 txt레코드를 구성합니다.
태그명 | 필수여부 | 내용 | 설명 | 입력 예 |
---|---|---|---|---|
v | 필수 | 프로토콜 버전 | v=DMARC1 | |
p | 필수 | DMARC 정책 |
none: 인증 실패 시 아무 작업도 하지 않음. quarantine: 인증 실패 시 이메일을 스팸으로 처리. reject: 인증 실패 시 이메일을 거부. | p=quarantine |
pct | 정책을 적용할 메시지 비율 | pct=20 | ||
rua | 보고서를 보낼 이메일 | rua=mailto:aggrep@example.com | ||
sp | 하위도메인에 대한 여부 | 설정하지 않으면 p값이 기본으로 적용 | sp=r | |
aspf | SPF에 대한 정렬 모드 | aspf=r |
DMARC를 초기 도입 및 테스트 시:
"v=DMARC1; p=none; pct=10; rua=mailto:dmarc-reports@example.com"
위 설정은 인증 실패 시 아무 작업도 하지 않으며, 전체 메시지 중 10%에만 정책을 적용합니다. DMARC를 처음 설정하거나 테스트할 때 적합합니다.
DMARC 테스트 후 서비스 시:
"v=DMARC1; p=quarantine; pct=100; rua=mailto:dmarc-reports@example.com"
이 설정은 인증 실패 시 이메일을 스팸으로 처리하고, 모든 메시지에 정책을 적용합니다. 실제 운영 환경에서 사용하는 데 적합합니다.만약 설정 후 많은 메시지가 인증 실패로 처리된다면, pct 값을 낮춰 점진적으로 정책을 강화하는 것이 좋습니다.
설정 확인 및 테스트:
모든 설정을 완료한 후 서버를 재시작하고, 아래 테스트 사이트에서 DMARC가 올바르게 설정되었는지 확인하세요.

