4. Relay
설정
sendmail 8.9.x 대 부터는 SPAM mail 의 폐해 때문에 기본적으로 모든 곳에서의 메일 발
송을 막아 놓은 것을 기본값으로 되어 있다. 그러므로 8.9.x 이후버젼 을 설치한다면 일
단 설치후에 메일을 발송할수 있는 ip address 를 지정하여 RELAY 를 풀어줘야 한다. 이
작업은 /etc/mail/access 에서 하게 된다.
이 설정은 8.10.x 이후 버젼의 smtp auth 기능으로 인하여 별로 설정할 필요성은 없어졌
다고 해도 과언은 아니나 그래도 고정 ip 가 존재할 경우에는 귀찮게 인증을 하는 것 보
다 RELAY 를 설정하여 보내게 하는 것이 더욱 편할것이고, 하나의 중요한 기능이기 때문
에 이에 대해서 계속 살펴 보도록 한다.
Hanterm - cat /etc/mail/access |
[root@oops mail]# cat access
######################################################################
# SENDMAIL RELAY configuration
######################################################################
# 작성 : 김정균 http://oops.org
#
# 자세한 사항은 /usr/lib/sendmail-cf/README 를 참고하십시오.
# access 파일을 고친 이후에는
#
# /etc/mail에서 "./makemap.sh access"
#
# 명령으로 갱신해 주어야 합니다.
# 참고로 일부 relay 를 풀어 주기 위해서 sendamil.cf 를 변경
# 하는 사람들이 있는데 이럴 경우 spamer 들의 표적이 되어 다
# 른 메일 서버로 부터 reject 을 당할수가 있으니 sendmail.cf
# 를 변경하여 전체 relay 를 푸는 일은 하지 말기 바랍니다.
#
# cyberspammer.com REJECT
# sendmail.org OK
# 128.32 RELAY
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
[root@oops mail]#
|
위의 그림은 본인이 패키징 해놓은 sendmail 의 access file 의 예제이다. 설정은 쉽게
[ domain name | ip address | email-address ] [ access control option ]
의 형식을 이용하여 지정을 할수가 있다. 위의 설정과 비교를 해 보면 간단하게 어떻게
설정을 하는 것인지 쉽게 이해가 되리라 생각이된다. 다만 앞쪽의 domain name 의 경우
에는 reverse mapping 이 가능해야 되므로 보통은 domain name 으로 했을 경우 잘 안되
는 경우가 많으므로 ip address 로 지정을 하는 것을 권장한다.
또 하나는 relay 설정을 하라고 하면 메일을 발송 할 client 의 ip 주소를 지정해 줘야
함에도 불구하고 일부 엉뚱한 사람들은 가상호스트를 지정한 도메인을 가지고 RELAY 설
정을 하는 사람들이 있다. 이 글을 보는 사람들은 이런 우매한 행동을 하지 말고 꼭 메
일을 발송시도하는 클라이언트의 ip 를 지정하도록 한다.
다음은 access contrlo option 부분을 살펴 보겠다.
OK 지정된 호스트나 사용자가 보낸메일은 다른 설정 rule 이 거부하는 경우
에도 받아들인다.
RELAY 지정된 호스트에 대해 SMTP 메일 중계 역할을 한다. 즉 지정된 도메인에
있는 사용자에게 오는 메일을 받고 그 도메인에있는 사용자가 서버를 통
해 메일을 보낼수 있도록 한다. 지정된 도메인에서 오는 메일은 다른 룰
이 거부하는 경우에도 받아 들인다.
REJECT 지정된 도메인과 관련된 모든 메일(수신/발신)을 거부한다.
DISCARD $#discard mailer를 사용해 메세지를 완전히 폐기한다. 메세지를 받기는
하지만 배달은 하지않고 발신자에게 폐기사실을 알리지 않기 때문에, 발
신자는 배달되었다고 생각하게 된다.
501 <message> 지정된 user@host 와 발신자의 주소가 전체 혹은 부분적으로 일치할경우
이메일을 받지 않는다. 뒤의 에는 return mail 에 포함될 에
러 메세지 구문을 지정하여 넣을수 있다.
553 <message> 발신자의 주소에 호스트명이 없을 경우 메일을 받지 않는다.
550 <message> 지정된 도메인과 관련된 메일을 받지 않는다.
보통 아주 간단한 예로서 111.111.111.111 이라는 pc 에서 메일을 발송하기를 원한다면
111.111.111.111 RELAY
라는 한줄을 설정해 주는 것으로 메일을 발송을 할수 있다.
/etc/mail/access 에서 RELAY 설정을 마친 후에는 access.db 를 갱신해 줘야 한다.
$ makemap hash /etc/mail/access < /etc/mail/access
명령을 실행하여 갱신을 할수가 있다. access 파일을 수정시에는 sendmail을 재시작 할
필요는 없으며 makemap 을 이용하여 access.db 만 갱신해 주면 바로 적용이 된다.
[ 참고 ]
메일을 보냈는데 리턴되며 메일 헤더에 아래와 같은 메세지가 남아있을 경우가 있다.
----- The following addresses had permanent fatal errors -----
(reason: 553 5.3.0 ... Rejected
- see http://www.mail-abuse.org/rbl/)
이 경우는, 상대방의 server 에서 http://mail-abuse.org 의 RSS 리스트를 이용하여 필
터링을 하고 있으며, 메일을 발송한 서버가 이 RSS 리스트에 등록이 되어 있어 거부를
당하고 있다는 얘기이다.
이 리스트에 포함이 되어 있는지 여부를 확인하려면
http://work-rss.mail-abuse.org/cgi-bin/nph-rss
로 가서 확인을 하도록 한다. 이 리스트에 포함이 되어 있음이 확인이 된다면, 일단 서
버의 릴레이 체크를 막아야 한다. 릴레이가 막혀 있는지 테스트 하는 방법은 쉘상에서
다음의 명령으로 확인을 할 수 있다.
telnet work-rss.mail-abuse.org
릴레이 체크시 주의할 점은 Recipient 가 OK 가 떨어질 경우에는 리스트에서 삭제를 해
주지 않음을 주의해야 한다.
릴레이가 막혀 있음을 확인을 했다면
http://work-rss.mail-abuse.org/cgi-bin/nph-rss-remove?서버IP주소
로 접속을 하여 폼을 전송하면 된다. 주의할 것은 message body 부분에는 간단하게
my ip address fixed up
과 같이 적어 주면 된다.
>> 이전 : Installation & Multiple Queues
>> 다음 : 가상 메일 설정
|