스팸메일을 방지하기 위한 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라고 실행만 시켜두면 됩니다.