상세 컨텐츠

본문 제목

Sendmail 설정 - 스팸방지

카테고리 없음

by 지니워 2014. 12. 22. 18:21

본문

짬이 안나서 아직 적용해보지는 못했다. 최근 설정이랑 다른 부분도 있는 것 같고...나중에 테스트 서버에 적용을 해봐야겠다.

이놈의 스팸메일 지긋지긋하다 ㅠ


스팸메일을 방지하기 위한 Sendmail Relay 설정

relay를 방지하기 위해 sendmail.cf 을 다시 작성해줍니다.
sendmail.cf는 m4를 사용해서 만들면 됩니다.

예를 들어, /tmp/sendmail-8.11.0에 소스가 설치되어 있다면,


/tmp/sendmail-8.11.0/cf/cf 에 각 OS에 맞는 mc파일이 있습니다.
자신의 시스템에 가장 적당한 mc파일을 선택합니다.

예전 sendmail 버전 경우 리눅스의 mc파일이 없습니다.
직접 vi 에디터로 mc파일을 만듭니다.

-----  linux.mc 내용 ---------

    divert(0)dnl
    VERSIONID(`$Id: generic-linux.mc,v 8.1 1999/09/24 22:48:05 gshapiro Exp $')   
    OSTYPE(linux)dnl
    DOMAIN(generic)dnl
    MAILER(local)dnl
    MAILER(smtp)dnl
    FEATURE(`access_db', `dbm /etc/mail/access.db')
-----------------------------

 linux.mc 파일을 이용해서 sendmail.cf파일을 생성합니다.

# /tmp/sendmail-8.11.0/cf/cf$ m4 ../m4/cf.m4 linux.mc > sendmail.cf

 sendmail.cf를 /etc/mail에 복사한후  /etc/sendmail.cf를 /etc/mail/sendmail.cf로 심볼릭링크를 생성합니다
 (ln -s /etc/mail/sendmail.cf /etc/sendmail.cf)

  /etc/mail/access 설정

 스팸메일을 방지하기 위해 Relay를 허용할 호스트의 IP와 도메인을 설정하는 중요한 파일입니다.
 먼저 vi에디터나 emacs를 사용해 /etc/mail/access파일을 열고 릴레이를 허용하거나 거부할 IP를 아래와 같이 입력합니다.

     ------- access 내용 -----------
     localhost.localdomain   RELAY

     localhost        RELAY       ( 호스트와 RELAY를 Tab키로 띄워줍니다.)

     127.0.0.1       RELAY

     203.243.15     RELAY

     spam.com      REJECT

     ----------------------------

    이와 같이 설정한 후에는 아래의 명령으로 DB파일(access.db)을 만들어 줍니다.
    
     #cd /etc/mail
    #makemap hash access < access

 위의 작업은 access파일을 수정할 때마다 해주어야 하며, sendmail을 다시 시작할 필요는 없습니다.


 
  access 내용설명

 203.243.88   RELAY  -> 203.243.88 네트워크에 속하는 C클래스의 IP주소에 대해서는 메일을 [보내기/받기]를 할 수 있지만 다른 IP주소에서는 메일을 받을 수만 있습니다.
 spam.com   REJECT  -> spam.com 도메인에 속한 모든 호스트에서 오는 메일은 완전히 거부됩니다.

  
   [Relay란?]

    예를 들어 A라는 사람은 IP주소가 203.245.15.5 컴퓨터에서help@hitel.net이라는 메일을 사용한다고 가정하고, B라는 사람은 IP주소가 211.47.45.8인 컴퓨터에서me@hitel.net이라는 메일을 사용한다고 가정합니다.
  
   B가 A에게 메일을 보내면 메일은 203.245.15.5로 가는 것이 아니라 mail.hitel.net서버의 /var/mail 디렉토리 밑에 help라는 파일로 복사가 됩니다. 그러면 A는 MUA 프로그램을 사용해 메일을 확인할 수 있습니다.

   그런데 여기서 중대한 문제점이 생겨나게 됩니다. 아무나 주소를 맞게 보내면 그냥/var/mail에 쌓이게 되는 것이죠.
   그래서 하드디스크가 메일로 꽉 차버리거나, 네트워크 전송량의 증가로 네트워크가 마비되는 경우가 생겨나게됩니다.
   이 문제를 막기 위해서 고안도니 방법이 바로 Relay라는 방법입니다.


Relay로 주로 쓰이는 방법은 메일을 확인하는 컴퓨터는 제한하지 않고 메일을 보내는 것을 제한하는 것입니다.
 즉, 위의 그림과 같이 /etc/mail/access파일에 203.245.15의 C클래스를 허용 가능하게 해주면 203.245.15.5처럼 허용 그룹에 들어 있는  컴퓨터에서는 메일을 보내고/받을 수가 있지만, 그룹에 들지 않은 211.47.45.8라는 컴퓨터에서는 메일을 확인할 수만 있습니다.
 또한 spam.com이라는 도메인에 속한 호스트에서 오는 메일은 보내기와 받기가 모두 거부됩니다.
 
 /etc/mail/relay-domains을 사용해도 됩니다. 하지만, 차이점은 relay-domains을 사용하면 sendmail데몬을 다시 실행시켜 주어야 하지만 /etc/mail/access파일을 사용하면 다시 실행할 필요 없이
makemap hash /etc/mail/access < /etc/mail/access라고 실행만 시켜두면  됩니다.