CentOS 5에 Exim 4.71 설치 및 DKIM 설정하기

CentOS 5에 yum으로 설치가능한 Exim 버전은 4.63이다. 4.63은 DKIM을 지원하지 않으므로 DKIM을 사용하기 위해서는 상위 버전을 설치해야 한다.

  1. /etc/yum.repos.d/atrpms.repo 파일을 만든다.

    [atrpms-stable]
    name=Centos $releasever – $basearch – ATrpms
    baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
    gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
    gpgcheck=1
    enabled=1
    includepkgs=libspf2* libsrs*[atrpms-testing]
    name=Centos $releasever – $basearch – ATrpms
    baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/testing
    gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
    gpgcheck=1
    enabled=1
    includepkgs=exim*

  2. exim을 설치한다.

    yum install exim

  3. /etc/exim/exim.conf의 상단에 다음 라인 추가

    DKIM_DOMAIN = ${lc:${domain:$h_from:}}
    DKIM_FILE = /etc/exim/dkim/${lc:${domain:$h_from:}}.pem
    DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}

  4. /etc/exim/exim.conf의 remote_smtp 항목 수정

    remote_smtp:
    driver = smtp
    dkim_domain = DKIM_DOMAIN
    dkim_selector = mail
    dkim_private_key = DKIM_PRIVATE_KEY
    dkim_canon = relaxed
    dkim_strict = 0

  5. 인증서 생성

    $ mkdir /etc/exim/dkim/ && cd /etc/exim/dkim/
    $ openssl genrsa -out example.com.pem 768
    $ openssl rsa -in example.com.pem -out example.com-public.pem -pubout -outform PEM

  6. DNS에 위에서 생성된 DKIM public 키 추가mail._domainkey.example.com.     IN      TXT     “v=DKIM1; t=y; k=rsa; p=MIGfMA0AQAB”

    t=y는 테스트 중임을 의미. 테스트가 끝나면 삭제해야 한다.

  7. DNS 설정 테스트

    $ dig +short txt x._domainkey.example.com
    “v=DKIM1\; k=rsa\; p=MIGfMA0AQAB”

  8. gmail 계정으로 메일을 발송. DKIM  인증이 되는지 gmail에서 ‘원본 보기’ 메뉴를 통해서 확인

    Authentication-Results: mx.google.com; spf=neutral (google.com: ….., dkim=pass (test mode) header.i=@example.com

  9. DNS 수정
    t=y 삭제

CentOS에 exim 메일서버 설치하기

yum을 이용해서 exim과 system-swtich-mail을 설치한다.

# yum install exim system-switch-mail

system-swtich-mail을 실행해서 MTA를 Exim으로 변경한다.

# system-switch-mail

sendmail 서비스를 종료한다.

# service sendmail stop
# chkconfig sendmail off

exim 서비스를 시작한다.

# service exim start
# chkconfig exim on

테스트 메일을 발송한다.

# echo "test mail"|mail -s "$HOSTNAME" user1@domain.com