/etc/mail/access를 이용한 Spam 메일방지법
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 3,286 조회
- 0 추천
- 목록
본문
/etc/mail/access를 이용한 Spam 메일방지법
특정 IP주소 또는 도메인 또는 Email주소, 그리고 특정 네트워크에 대하여 sendmail에 접근하지 못하도록 설정할 수 있는 파일이다.
정확히 표현하자면 sendmail의 Relay제한 대상은 Sendmail을 거쳐가는 메일들 즉, 메일을 보내는자(IP주소, 도메인, 메일주소등)와 다른 메일서버 즉, 다른 SMTP서버(목적지 SMTP)가 그 대상이 된다.
따라서 이러한 설정을 하게되면 특정 IP주소로 부터 들어오는 메일이나 특정 도메인으로 부터 들어오는 메일에 대하여 sendmail이 거부할 수 있도록 설정할 수 있다.
즉 스팸메일로 사용되는 서버의 IP 주소를 등록하거나 스팸사용자의 Email주소를 등록하여 스팸메일을 relay하는 것을 막을 수 있다는 결론을 얻을 수 있다.
다음은 /etc/mail/access파일의 작성예이다.
[root@sulinux mail]#cat /etc/mail/access # by default we allow relaying from localhost... Connect:localhost.localdomain RELAY Connect:localhost RELAY Connect:127.0.0.1 RELAY sulinux.net RELAY linux.co.kr RELAY spam.com REJECT spamuser@spam.com DISCARD 211.223.191.123 REJECT 192.168.2. REJECT 192.168.3.0/255.255.255.0 REJECT [root@sulinux mail]# |
위의 예와같이 /etc/mail/access파일의 내용은 크게 두부분으로 나누어진다.
왼쪽부분에는 제어대상을 설정한다.
즉 도메인명(spam.com), 메일주소(spamuser@spam.com), IP주소(211.223.191.123), 네트워크(192.168.2. 또는 192.168.3.0/255.255.255.0)등이 올 수 있다.
오른쪽
부분에는 제어옵션(방법)이 온다.
즉 왼쪽의 제어대상을 어떻게 할것인가를 결정하는 옵션이 온다.
이 옵션에는 다음과 같은 것들이 올 수 있다.
[/etc/mail/access파일의 설정 제어옵션]
제어옵션
|
설 명
|
RELAY
|
메일 Relay를 허용하게 된다.
즉 관련(host에서지정된)메일의 수신/발신을 허용한다.
|
REJECT
|
RELAY와는 반대로 메일 RELAY(수발신)를 허용하지 않는다.
|
DISCARD
|
메일을 받은후에 폐기한다.
단, 메일발신자에게 폐기통보를 전혀하지않는다.
즉 /etc/sendmail.cf에 지정된 $#discard mailer에 지정된곳으로 메일을 폐기함.(발신자는 메일이 발신된것으로 알게됨.) |
OK
|
조건없이 허용한다.
즉 관련(host에서지정된)메일의 모든것을 허용(relay)한다.
|
|
메일주소가 일부분이상 일치할 경우에 지정된 “메시지”로 거부하게된다.
관련(host에서지정된)메일의 Email Address와 일치된 메일을 받지않음. |
“502 메시지”
|
발신메일주소에 host명이 없을경우에 메일을 받지않음. |
“503 메시지”
|
관련(host에서지정된)된 도메인과 관련된 메일을 받지않음 |
“550 메시지”
|
특정한 도메인에 대해 지정된 “메시지”로 거부하게 된다.
|
“571 메시지”
|
주로 스팸메일의 경우에 사용하는 설정으로 지정된 “메시지”로 경로메일을 보낸후에 거부하게 된다.
|
“572 메시지”
|
위의 571 설정과 거의 유사한 설정임. |
즉 위에서 확인한 /etc/mail/access파일의 설정예들을 한행씩 설명하면 다음과 같다.
sulinux.net RELAY
sulinux.net에서 발송되어 이 서버로 들어오는 메일은 모두 relay(메일라우팅)를 허용한다.
예를들어 sspark@sulinux.net사용자가 발송한 메일은 메일라우팅을 허용하게 된다.
물론 이 사용자가 사용한 PC의 IP주소가 허용되어있어야 한다.
대부분 호스팅사용자들이 사용하는 도메인명은 반드시 이와같이 등록해 주어야만 호스팅사용자들이 자신의 도메인이름으로 메일을 사용할 수 있다.
linux.co.kr RELAY
linux.co.kr에서 발송되어 들어오는 메일도 모두 relay를 허용한다.
이 부분은 위의 sulinux.net 과 동일하게 적용된다.
spam.com REJECT
spam.com에 관련된 메일은 모두 거부한다.
예를들어 bible@spam.com사용자에게서 발송된 메일은 모두 거부하게 된다.
따라서 특정 도메인에서 스팸메일이 대량으로 발송될 때에는 이와같이 도메인명을 등록해두면 된다.
spamuser@spam.com DISCARD
메일주소로 등록하여 메일 발송을 거부하고 거부된 사실을 알져주지않고 그냥 패기해 버린다.
따라서 메일을 보낸사람(spamuser@spam.com)은 메일이 발송된 것으로 인식하게 된다.
스팸메일을 대량으로 발송하는 특정사용자가 있다면 그 사용자의 메일주소를 이와같이 등록하면 된다.
211.223.191.123 REJECT
그리고 만약 특정IP주소에서 스팸메일이 발송될 경우에는 이와같이 등록하면 된다.
즉 211.223.191.123 IP주소에서 스팸메일이 발송되어 이를 거부하기 위한 설정이다.
192.168.2. REJECT
그리고 이 설정은 192.168.2.라는 네트워크로 설정한 경우이다.
즉 192.168.2.0부터 192.168.2.255까지의 모든 IP주소에서 발송되는 메일을 거부하게 된다.
192.168.3.0/255.255.255.0 REJECT
이번 설정은 192.168.3.0네트워크에 대한 설정이다.
즉 192.168.3.0부터 192.168.3.255까지의 모든 IP주소에서 발송되는 메일들을 모두 거부하게 된다.
그리고 다음과 같은 방법으로도 설정할 수 있다.
do@hyung.co.kr 501 You send email
to Spammer. Delete Email Address in your list.
즉 위의 설정은 do@hyung.co.kr에서 발송되는 메일을 거부하고 위의 501뒤에있는 메시지와 함께 거부메일을 보내주게 된다.
즉 이와 같은 방법으로 거부되었거나 경고성 메시지를 스팸메일발송자나 특정 메일발송자에게 보낼 수 있다.
그리고 이와같이 /etc/mail/access파일을 작성 및 편집한 후에는 다음과 같이 makemap유틸리티를 이용하여 /etc/mail/access.db파일을 생성해주어야 한다.
[root@sulinux mail]#makemap hash /etc/mail/access.db < /etc/mail/access [root@sulinux mail]# [root@sulinux mail]#ls -l /etc/mail/access.db -rw-r----- 1 root root 12288 5월 7 03:05 /etc/mail/access.db [root@sulinux mail]# |
위의 makemap 실행예에서 다음과 같이 access.db에서 .db를 생략해도 상관없다.
[root@sulinux mail]#makemap hash /etc/mail/access < /etc/mail/access [root@sulinux mail]# |
또는 간편하게 /etc/mail/디렉토리에서 그냥 "make"를 실행만 하면 /etc/mail/access 파일뿐아니라 /etc/mail/virtusertable파일을 포함하여 변경된 사항들을 모두 적용해 준다.
실제로 sendmail은 /etc/mail/access파일을 사용하는 것이 아니라 DB파일인 /etc/mail/access.db파일을 사용하기 때문이다.
따라서 위와같이 makemap유틸리티를 이용하여 /etc/mail/access파일을 입력으로 하여 /etc/mail/access.db파일을 생성해 낸다.
그리고 다음은 /etc/mail/access.db파일에 실제로 등록되었는가를 확인하기 위하여
strings라는 명령어를 사용하여 확인한 것이다.
다음과 같이 하면 /etc/mail/access.db파일의 내용 전체를 확인할 수 있다.
이 파일은 텍스트파일이 아니기 때문에 vi나 cat등으로 볼수는 없다.
[root@sulinux mail]#strings /etc/mail/access.db REJECT 211.223.191.123 DISCARD spamuser@spam.com REJECT spam.com RELAY connect:localhost.localdomain REJECT 192.168.3.0/255.255.255.0 REJECT 192.168.2. RELAY linux.co.kr RELAY sulinux.net RELAY connect:127.0.0.1 RELAY connect:localhost [root@sulinux mail]# |
다음은 위와같이 전체 내용을 한번에 확인하는 것이아니라 특정 사용자에 대한 설정이 실제로 /etc/mail/access.db파일에 들어가 있는가를 확인하는 방법이다.
[root@sulinux mail]#strings /etc/mail/access.db | grep spamuser spamuser@spam.com [root@sulinux mail]# |
즉 위의 예는 spamuser라는 사용자의 설정이 /etc/mail/access.db파일에 적용되어 있는가를 확인한 것이다.
관련자료
-
이전
-
다음