BBUWOO'S [ LIKE UNIX ] WORLD Home > Lecture > Sendmail > Sendmail-3  

HOME
WHAT's BBUWOO?
LInux AnNyung
Open Source
    GitHUB
    GitHUB (for PHP)
LECTURE
MINI LECTURE
QnA BOARD
ENGLISH POEM


WARNNING

강좌의 모든 권리는 본인 김정균에게 있으며 이 강좌를 상업적 목적 으로 이용
하거나 다른 곳으로 옮길시에는 본인의 허락이 있어야 한다. 이글의 가장 최신글은
http://oops.org 에서 확인할수 있다.



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
>> 다음 : 가상 메일 설정



    



 Home > Lecture > Sendmail > Sendmail-3

Copyright 1997-2021 JoungKyun Kim 
LAST MODIFIED: 2017/01/18