::::::::::::::: 메일 전송을 위한 spf 설정 ::::::::::::::: :::
1. spf (Sender Policy Framework) 를 이용한 필터링
* 메일 전송을 위한 spf 설정(수신 서버의 spf 첵크에 통과하기 위한 설정)
도메인 설정시 이런 설정을 본적이 있을 것이다.
kisarbl.or.kr IN TXT "v=spf1 ip4:111.222.123.234 -all"
위의 IP 주소는 메일을 발송하는 서버의 IP 를 지정하게 된다.
~all , -all 등이 있는데, 각각 softfail , fail 등의 spf 값을 리턴하게 된다.
특정도메인에 대해서 spf 설정을 확인하는 방법은
# dig mydomain.com txt
로 확인할 수 있다.
예를 들어 mydomain.com 이 A 사의 웹호스팅을 이용한다고 하자.
이때 mydomain.com에서 웹어플(폼메일,예약,문의등)로 메일을 보낼 때 spf 를 설정하지 않으면 받는 메일서버에서
거부당할 수 있다.(대부분의 포털은 설정이 되어 있다고 봐야 한다)
메일을 발신하는 서버쪽에서의 spf 설정은 네임서버 zone 파일에서 설정을 해주는 것으로 아래와 같이 설정한다.
# vi /var/named/chroot/var/named/zone파일
test.com. IN TXT "v=spf1 ip4:192.168.1.100 -all"
# /etc/rc.d/init.d/named restart
위의 설정의 의미는 메일을 보내는 서버의 도메인이 test.com이고 발송지 주소는 192.168.1.100 이며
이외의 ip에 대해서는 fail 결과를 리턴하라는 의미이다.
SPF레코드의 정상 작동 여부 확인
* 메일 수신 시, spf 첵크를 위한 설정
여기까지는 메일을 전송했을 때 spf 첵크를 하는 메일서버에 메일이 잘 전달될 수 있도록 하는 설정이었으며
우리가 메일을 받을 경우에 spf 첵크를 해서 필터링하는 방법인데,
qmail SRPM 패키지는 spf 패치가 적용되어 있다. 그래서 /var/qmail/bin/spfquery라는 바이너리 파일이 생성되어 있어서
spf 테스트를 해 볼 수 있다.
형식 : spfquery 메일쪽IP 메일도메인 메일주소
# /var/qmail/bin/spfquery 메일쪽IP 메일도메인 메일주소
우리 메일 서버에서 spf 필터링을 활성화 하는 방법은
/var/qmail/control/spfbehavior 를 3 또는 4 로 해주면 된다.(0 은 비활성화)
0: spf 설정에 대한 쿼리를 하지 않으며 spf 결과에 대한 헤더를 생성하지 않는다.
1: 단지 spf 쿼리에 대한 헤더만 생성하되 블럭은 하지 않는다.
2: spf쿼리에 문제가 있을경우 dns 에러와 함게 reject한다.
3: spf 쿼리 결과가 fail 일 경우에 deny한다.
4: spf 쿼리 결과가 softfail 일 경우에 deny한다.
5: spf 쿼리 결과가 neutral 일 경우에 deny한다.
6: spf 쿼리 결과가 pass가 아닐 경우에 deny한다.