본문 바로가기
운영체제/리눅스

Linux Sendmail에서 Spam Mail Reject와 Relay 방지 설정

by o테리o 2010. 10. 4.

센드메일의 주요설정은 /etc/mail/sendmail.cf 파일에서 여러가지 옵션을 조절함으로써 할 수 있다. 


sendmail을 설치하고 나면 /etc/mail/ 디렉토리에 메일서버에서 사용하는 여러가지 설정에 관련된 파일들이 생성된다. 


그 외, sendmail.cw, sendmail.mc 등의 파일이 생성되고, 이러한 파일들은 자주 사용되므로 /etc/mail/ 이라는 별도의 디렉토리를 만들어 /etc/mail/sendmail.cf에서 불러들여 사용한다.

sendmail 8.9.0부터는 기본적으로 메일 릴레이 기능을 제한하는 기능이 지원된다. 


버전이 향상되면서 추가된 `Anti Spam`이 바로 그것인데, Access DB라는 새로운 데이타베이스의 도입으로 이것을 설정하여 특정 메일들을 받지 않을 수 있다. 


설정도 다음처럼 간단하여 해당 E-Mail 주소와 도메인 이름 그리고, IP 주소 별로 메일의 수신여부를 결정할 수 있다.


spam@jihwaja.com     REJECT

nalary.com                REJECT
antispam.com            OK
210.251.153             RELAY
211.248.151             RELAY


`지화자 닷컴`의 아이디 `spam`으로 오는 메일과 `날라리 닷컴`에서 오는 모든 메일을 수신 거부한다. 


antispam.com에서 오는 메일은 모두 받고, 210.251.153과 211.248.151 네트워크의 IP 주소에 대하여는 릴레이를 허가한다.


여기서 설정된 사항은 /etc/mail/access란 이름의 access DB로 파일시스템에 저장된다. 


파일구조는 텍스트 형식이고 sendmail이 참조할 수는 없다. 


그래서 makemap이란 프로그램을 사용하여 sendmail이 인식할 수 있는 DB형태로 다음과 같이 변경해야 한다.


# makemap hash /etc/mail/access < /etc/mail/access


access.dir과 access.pag라는 이름의 DB가 생성된다. 


한가지 번거로운 점은 /etc/mail/access 파일을 수정할 때마다 makemap을 사용해서 DB를 새로 만들어 주어야 한다.


출처: http://www.aginet.kr/linux/13007