sendmail에 Domainkey 적용하는 방법
이 문서는 sendmail 에 Yahoo! 의 ANTI SPAM 정책인 Domain Key를 사용할 수 있는 방법을 설명한다.
작성자 : hasu0707@gmail.com
■ 시험 환경
1. CentOS 5.3 (최소 설치 환경에서 Development Kit만 추가로 설치된 상태) 2. 구축 및 시험할 도메인은 esvali.com 이다. 3. sendmail에 Domain Key를 적용하기 위해서는 DNS 환경 또한 변경이 필요하므로 네임서버환경을 편집할 수 있어야 한다. |
■ 준비사항
1. sendmail-devel RPM 패키지 파일 2. sendmail용 domainkeys-milter (http://sourceforge.net/projects/dk-milter/) 3. Berkeley DB 가 필요하나 sendmail이 동작 중이면 보통 설치되어 있다. 4. openssl, sendmail은 이미 설치가 되어 있는 것으로 간주한다. |
■ sendmail-devel과 dk-milter 설치
1. sendmail-devel RPM을 설치한다.
2. domainkeys-milter를 빌드한다.
|
■ public key와 private key 생성하기
# openssl genrsa -out rsa.private 768 # openssl rsa -in rsa.private -out rsa.public -pubout -outform PEM - 만들어진 개인 키를 /var/db/domainkeys에 mail.key.pem이란 이름으로 이동시킨다. # mkdir -p /var/db/domainkeys # mv rsa.private /var/db/domainkeys/mail.key.pem |
■ 네임서버 설정에 public key 명시하기
# cd /var/named/chroot/var/named # vi esvali.com 도메인 설정파일에 아래와 같은 내용을 추가해 준다. ; 아래 부분을 추가한다. p=여기에 BASE64 인코딩된 public key를 넣는다. ; 위에서 만든 rsa.public을 참조하라. mail._domainkey IN TXT "k=rsa; p=MEww......DAQAB" _domainkey IN TXT "t=y; o=~" |
■ sendmail 에 domainkey milter 설정하기
1. /etc/mail/sendmail.mc에 아래 부분을 추가해 준다. INPUT_MAIL_FILTER(`dk-filter', `S=inet:8891@localhost') sendmail 재시작 # /etc/rc.d/init.d/sendmail restart 2. dk-filter를 아래와 같이 실행한다. /usr/bin/dk-filter -l -p inet:8891@localhost -c simple -d esvali.com -s /var/db/domainskeys/mail.key.pem -S mail -u hasu0707 -m MSA |
■ 적용 시험
1. autorespond+dk@dk.elandsys.com 으로 메일을 보내 본다. (내용은 상관없다.) 2. 잠시 후 답장이 아래와 같이 오면 성공한 것이다. The results are as follows: DomainKeys Signature validation: pass (testing) : 성공 !! DomainKeys Selector: mail |
■ dk-filter
dk-filter - DomainKeys filter for sendmail SYNOPSIS |
■ 참고 자료
http://domainkeys.sourceforge.net/
http://www.elandsys.com/resources/sendmail/domainkeys.html