Configure DKIM with Postfix on CentOS 7

Postfix 에 도메인 키 인증 DKIM 설정 가이드

DKIM(DomainKeys Identified Mail)은 메일의 위/변조 여부를 확인 할 수 있게 해줌으로 메일 보안을 강화 시켜 줍니다.

DKIM 은 이메일이 발송되면 발신자의 메일 서버에서 메세지 내용과 발신자의 개인키를 기반으로 암호화된 서명을 메일 헤더에 첨부하고, 수신 메일 서버에서는 복호화 할 공개키를 DNS 서버에서 확인 후 위/변조 여부를 판별하게 됩니다. DKIM 은 RFC6376 문서에 명시되어 있습니다.

이번 가이드에서는 CentOS 7 에서 Opendkim 을 설치하고 Postfix 와 DKIM 을 연동하는 방법에 대해서 알아보도록 하겠습니다.

Opendkim 설치

[root@172-16-11-5 /]# yum install opendkim

키 디렉토리 생성

[root@172-16-11-5 /]# mkdir -p /etc/opendkim/keys/smtp.umount.net

키 생성

[root@172-16-11-5 /]# opendkim-genkey -D /etc/opendkim/keys/smtp.umount.net -d smtp.umount.net -s umount-dkim

파일 확인

[root@172-16-11-5 /]# ls /etc/opendkim/keys/smtp.umount.net/

umount-dkim.private umount-dkim.txt

소유자 변경

[root@172-16-11-5 /]# chown opendkim. /etc/opendkim/keys/smtp.umount.net/*

설정 파일 편집 (주요 설정 사항만 표시하였습니다. 본인의 환경에 맞게 수정해 주시기 바랍니다.)

: vi /etc/opendkim.conf

PidFile /var/run/opendkim/opendkim.pid
Mode     sv
Socket   inet:8891@localhost
Domain   smtp.umount.net
Selector mail
KeyTable            /etc/opendkim/KeyTable
SigningTable        refile:/etc/opendkim/SigningTable
ExternalIgnoreList  refile:/etc/opendkim/TrustedHosts
InternalHosts       refile:/etc/opendkim/TrustedHosts

: vi /etc/opendkim/KeyTable

umount-dkim._domainkey.smtp.umount.net smtp.umount.net:umount-dkim:/etc/opendkim/keys/smtp.umount.net/umount-dkim.private

: vi /etc/opendkim/SigningTable

*@umount.net umount-dkim._domainkey.smtp.umount.net

: vi /etc/opendkim/TrustedHosts

127.0.0.1
::1
localhost
*.umount.net

: vi /etc/postfix/main.cf (맨 아래줄에 추가해 줍니다.)

smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
milter_protocol = 2

opendkim systemd 등록 및 실행

[root@172-16-11-5 /]# systemctl enable opendkim
[root@172-16-11-5 /]# systemctl start opendkim

postfix 재실행

[root@172-16-11-5 /]# systemctl restart postfix

DNS 설정

사용하고 있는 DNS 에 DKIM 에서 생성된 KEY 를 TXT 레코드로 추가해 주어야 합니다.

우선 정보를 확인 합니다.

[root@172-16-11-5 /]# cat /etc/opendkim/keys/smtp.umount.net/umount-dkim.txt 

umount-dkim._domainkey	IN	TXT	( "v=DKIM1; k=rsa; "
	  "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCr23YswFgJUZR79ZbONH3CIINcgIufjhQ+P5QFHrZKrrb3nxz20D/ktegKvxJY2LcR4jeqSBzI8A97/r4qVk0yQ7rqQuv0vqlNqv2t0cLlV04lTJnJDkaYovmbxpE93n036SJ8RQ7FvtHLBRy3XCArIjzyV9o2LO/CeU5PTyEX3wIDAQAB" )  ; ----- DKIM key umount-dkim for smtp.umount.net

위 정보를 바탕으로 자신이 사용하는 DNS 서버에 아래와 같은 형식으로 추가해 줍니다.
작성이 완료된 후에는 /etc/opendkim/keys/smtp.umount.net/umount-dkim.txt 파일은 삭제해도 상관은 없지만 실수로 DNS 정보를 변경했을 경우를 대비하여 어딘가에 잘 보관하는 것을 권장합니다.

호스트 : umount-dkim._domainkey.smtp.umount.net
타입 : TXT
값 : "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCr23YswFgJUZR79ZbONH3CIINcgIufjhQ+P5QFHrZKrrb3nxz20D/ktegKvxJY2LcR4jeqSBzI8A97/r4qVk0yQ7rqQuv0vqlNqv2t0cLlV04lTJnJDkaYovmbxpE93n036SJ8RQ7FvtHLBRy3XCArIjzyV9o2LO/CeU5PTyEX3wIDAQAB"

모두 적용 후 메일을 발송하면 아래와 같이 maillog 에 DKIM-Signature 필드가 추가 되는 것이 나옵니다.

DKIM-Signature field added (s=umount-dkim, d=smtp.umount.net)

구글에서 제공되는 메일 헤더 분석기를 사용하면 메일 헤더에 추가된 DKIM 적용 여부를 확인 할 있습니다.

mail-header-dkim-postfix
구글 메일 헤더 분석기

You may also like...

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x