Exchange2003 서버에서 메일필터링하기 작전입니다.
스팸메일을 줄이는것은 메일서버의 성능을 보장하기위해서도 매우 필수적입니다.
물론 사용자들의 불편을 많이 줄일수도 있구요...^^
이 글은 마이크로소프트웨어지에 소개되었던 글을 zdnet에서 다시 올린것인데
제가 다시 조금 정리해서 올렸습니다.
1.보낸 사람 필터링(Sender Filtering)=(exchange2000시절부터)
필요에 따라 도메인이나 특정 메일 주소를 등록할 수 있으며 여러 가지 옵션을 설정할 수도 있다. 먼저 [보낸 사람]은 필터링을 하고 싶은 도메인 앞에 @표시를 해서 입력하고, 주소 형태는 그대로 타이핑해 막을 수 있다. 약 850개까지 등록할 수 있으며 그 이상 입력하면 ‘LDAP Provider의 80072024’ 오류와 함께 먼저 입력한 것이 삭제된다. 이것은 [보낸 사람] 목록도 액티브 디렉토리(active directory) 데이터베이스 내에서 하나의 개체를 차지하게 되고 이것은 AD의 데이터베이스 단위인 8KB를 차지하는데, 이론적으로는 910개 정도(8*1024/9=910)가 들어가는 것이 정상이지만 이미 데이터베이스 내에 고정된 필드들이 존재하므로 이 50여개를 제외한 850여개로 제한되기 때문이다. [필터링한 메시지 보관]을 선택하게 되면 필터링한 것이 익스체인지가 설치된 하부 디렉토리의 Mailroot\vis 1\filter 폴더에 저장된다.
90년대 말과 2000년 초에는 스팸 메일을 보내는 기술도 그리 발달하지 못해 보낸 사람을 공란으로 해서 보내는 경우가 많았다. 그래서 나온 것이 [보낸 사람]이 비어 있는 메시지 필터링 기능이다. 하지만 요즘은 보내는 사람 란에 비어 있는 스팸 메시지는 거의 찾아볼 수 없다(일부 보이스 메일에서 보내는 메일의 경우 [보낸 사람] 란이 비어 있는 경우가 있다).
[주소와 필터가 일치하면 연결 끊기] 옵션을 선택하면 해당 주소가 보낸 메시지는 Mail From 명령 후에 곧바로 ‘554 5.1.0 Sender Denied’가 나타나고 연결이 종료된다. 이 옵션은 아예 연결 자체를 막아버리기 때문에 받는 서버의 부하에 전혀 영향을 미치지 않는다는 장점이 있지만, 보내는 사람이 필터링된 것을 알게 되므로 보낸 사람 란에 다른 주소를 입력하는 방식으로 악용될 가능성이 있다.
[보낸 사람에게 필터링한 것을 알리지 않고 수락] 옵션은 [주소와 필터가 일치하면 연결 끊기] 옵션을 선택하지 않았을 때 사용할 수 있다. 즉 보낸 사람에게는 정상적으로 메일을 보낸 것처럼 처리하지만 실제로는 필터링하도록 하는 것이다. 보내는 사람에게 메시지 필터링의 여부를 알지 못하게 하는 장점이 있지만 큰 메시지를 보내올 때 서버가 일단 받아들이기 때문에 대용량 부하가 발생할 수 있다.
주의해야 할 것은 기본적으로 그룹에게는 모든 사람으로부터 메일을 받을 수 있도록 설정돼 있다는 사실이다. 따라서 가능하면 그룹에 대해서는 [인증된 사람으로부터만] 옵션을 선택하고 그 외 세부 옵션을 선택하는 것이 좋다. 그래야만 외부에 있는 사용자가 함부로 내부에 있는 메일 그룹으로 메시지를 보낼 수 없도록 막을 수 있다. 이렇게 설정한 상태에서 외부에 있는 사용자가 내부에 있는 그룹으로 메일을 보내면 ‘550 5.1.1 User unknown’ 오류가 나타난다.
받는 사람 필터링을 구성하면 서버의 부하를 줄일 수 있지만 DHA(Directory Harvest Attack)의 가능성이 여전히 존재한다. DHA란 스팸 메일 발송자들이 메일 주소를 얻는 방법 가운데 하나로, DNS 내에서 메일 서버의 위치를 파악해 해당 메일 서버에 사전식으로 조합된 메일 주소를 보내서 NDR을 보내지 않는 메일에 대해서 메일 주소의 유효성을 확인하는 방법이다. 이밖에도 스팸 메일 발송자들은 성인사이트나 메일링 서비스 업체의 데이터베이스를 해킹하거나 다른 사람들에게 돈을 주고 메일 주소를 사기도 한다.
그림은 DNS 내에 포함된 MX 레코드와 호스트 주소로 메일 서버의 주소를 알아내 사전식으로 조합된 메일 주소 목록을 이용, 해당 서버에 있는 유효한 메일 주소를 검색하는 DHA를 그림으로 나타낸 것이다.
이는 메일 주소를 수집하는 데 널리 사용되지만 사실 이렇게 해서 알아낸 메일 주소는 해킹을 통해서 얻은 주소 목록보다는 훨씬 가치가 떨어진다. 왜냐하면 특정 서버에 포함된 메일 주소는 해당 서버의 목적에 관심을 가진 사용자들의 주소지만 사전식으로 공격해서 얻은 메일 주소들은 해당 주소가 그것에 대해 관심이 있을지 여부를 알 수 없기 때문이다.
예를 들면 비아그라를 판매하려는 스팸 메일 발송자의 경우 일반 회사의 메일 서버에 사전식으로 공격하기 보다는 성인사이트를 운영하는 서버의 데이터베이스에 저장되어 있는 전자메일 주소 목록을 얻는 것이 비아그라를 훨씬 많이 판매할 수 있는 기회가 될 것이다.
아무리 메일 주소의 값어치가 떨어지더라도 잠재적인 고객확보 차원에서, 그리고 메일 주소를 다른 사람들에게 판매하기 위해서는 DHA를 수행하는데 이것을 방지하기 위해 널리 사용되는 기능이 타르피팅(Tarpiting) 기능(tar+pit의 합성어로 쥐를 잡을 때 사용하는 것처럼 타르로 된 끈끈이 덫을 의미한다)이다. SMTP 서버가 RCPT TO 명령을 통해 보낸 메일 주소가 디렉토리를 검색한 뒤 없다고 하면 늦게 응답하도록 해 스팸 발송자들이 해당 주소가 유효한지 여부를 알 수 없도록 하는 것이다.
타르피팅 기능은 윈도우 2003 환경에 SMTP 서비스의 버전(확인은 Windows\System32\inetsrv 디렉토리 안의 smtpsvc.dll이다)이 6.0.3790.175 이상 되어야 한다. 꾸준하게 보안 업데이트를 해 왔다면 문제가 없을 것이다. 지원 환경이 된다면 레지스트리를 변경해 줘야 한다. 레지스트리 HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Services\SMTPSVC\ Parameters에서 새로 만들기 → DWORD → TarpitTime을 입력한 후 시간을 초단위로 입력하고 재부팅하면 된다. 만일 값을 5라고 설정하면 RCPT TO 명령은 5초 뒤에 응답하게 될 것이다. 보통 스팸 메일 발송자들은 RCPT TO에 대한 응답이 늦어지면 재시도를 하지 않는 것이 특징이다.
3. RBL 필터링스팸 (발송 서버를 막는 ‘연결 필터링’)
RBL이란 특정 단체나 회사에서 스팸 메일을 보내는 서버나, 전화 접속자(일반적으로 동적 IP를 사용하는 전화 접속자들이 자신도 모르게 스팸을 발송하게 되는 경우가 많다), 오픈 릴레이로 맞추어진 서버들의 IP 목록들을 말하며 우리가 일반적으로 알고 있는 ORDB(Open Relay DataBase, www.ordb.net ), Spamhause(www.spamhaus.org ), Mail-abuse(www.mail-abuse.org ), SpmaCop(www.spamcop.net ) 등이 바로 이 RBL을 제공해 주는 회사들이다.
연결 필터링이란 메시지가 들어오면 메시지를 보낸 서버의 IP 주소를 추출해 RBL 제공자에게 질의를 하고 해당 IP 주소가 목록에 있는지 여부를 확인, 해당 주소가 없다면 메시지를 받아들이고 주소가 존재한다면 거부하는 방법이다. 이 방법을 사용하면 약 40~50%의 스팸들을 걸러낼 수 있다고 한다.
RBL들은 보통 DNS 쿼리를 이용해 질의를 한다. 즉 SMTP 가상 서버가 메시지를 받으면 <화면 4>와 같이 연결 필터링 탭의 [차단 목록 서비스]에 설정돼 있는 목록 중 가장 위쪽 서버에 질의를 한다. RBL에 질의를 하는 방법은 역방향 조회와 비슷한 모양을 가지고 있다.
역방향 조회 시에는 in-addr.arpa를 사용하지만 RBL의 경우 bl.spamcop.net이 같이 RBL 제공자의 도메인 이름을 사용한다는 것이 차이점이다. 예를 들면 123.12.12.3이라는 서버가 메시지를 보내 왔다면 3.12.12.123.bl.spamcop.net으로 질의를 한다. 그러면 해당 서버에서는 IP 주소가 있는지 확인해 이름이 있는지 여부를 결과로 보내 준다. nslookup 명령을 통해서 알아보면 어떻게 확인하는지 간단하게 확인할 수 있다.
>nslookup -q=a 3.12.12.123.bl.spamcop.net
server:ns.techmentor.co.kr
address:211.114.57.123
Name: 3.12.12.123.bl.spamcop.net
Address: 127.0.0.2
이를 네트워크 모니터를 이용해서 보면 다음과 같다.
DNS: 0x6c:Std Qry for 3.12.12.123.bl.spamcop.net of type Host Addr on Class INET addr
이때 해당 주소가 자신의 데이터베이스에 없으면 다음과 같은 메시지를 보여 준다.
DNS: 0x6c:Std Resp. Auth. Ns is spamcop.net. of type SOA on Class INET addr.: Name does not exist
데이터베이스에 존재한다면 다음과 같이 처리를 한다.
DNS: Answer section: 3.12.12.123.bl.spamcop.net of type SOA on class INET addr.
DNS: Resource Name: 3.12.12.123.bl.spamcop.net.
DNS: Resource Type= Host Address
DNS: Resource Class= Internet address class
DNS: Time To Live=2048(0x800)
DNS: Resource Data Length =4(0x4)
DNS: IP address=127.0.0.2
이렇게 되면 클라이언트에게는 기본적으로 550 5.7.1 123.12.12.3 has been blocked by Spamcop RBL list라는 응답을 보내 준다. 여기서 중요한 것이 바로 127.0.0.2라는 IP 주소다. 이것은 보통 반환상태 코드라고 부르는데, 해당 주소가 어떤 RBL에 포함돼 있는지를 나타내는 코드로 각 RBL 업체에 따라 약간의 차이가 있다. 그러므로 자신이 사용하는 RBL의 제공자 홈페이지에서 상태 반환 코드를 확인한 후 <화면 5>와 같이 필요한 코드만 적용할 수 있다. email-policy.com 웹사이트(www.email-policy.com/spam-black.lists.html )에 보면 각 RBL 제공회사별 반환 상태코드를 확인할 수 있다.
메시지를 보낸 사용자에게 반환할 메시지의 내용도 지정할 수 있다. 기본적으로 [IP 주소 has been blocked by 규칙의 표시이름]으로 나타나는데 이것을 필요에 따라 바꿀 수 있다. 한글은 사용할 수 없으며, 다음과 같은 변수를 사용하면 적당하게 수정할 수 있다.
◆ %0: 보낸 메일 서버의 IP 주소
◆ %1: 연결 필터링의 규칙 표시 이름
◆ %2: RBL 서비스 제공회사 이름
예를 들어 ‘The IP address %0 was rejected by the Realtime Block List provider %2’라고 [반환할 사용자 지정 오류 메시지]에 입력하면 ‘The IP address 123.12.12.3 was rejected by the Realtime Block List provider bl.Spamcop.net’이라는 메시지를 받게 된다. 이때 특정 메일 주소에 대해 연결 필터링에 예외를 두기 원한다면 [예외]를 선택하고 SMTP 주소를 입력하면 해당 주소에 대해서는 연결 필터링의 결과에 상관없이 메시지를 받아 들인다.
만약 특정 주소가 아니라 특정 서버가 된다면 상황은 달라진다. 이때는 사용자가 원하는 작업이 무엇인지 먼저 결정해야 한다. 즉 특정 IP 주소에 대해서 거부할지 아니면 허용할지를 결정해야 한다. 특정 IP 주소에 대해서 거부한다는 말은 연결 필터링 결과에 상관없이 특정 IP 주소나 그 대역에 있는 컴퓨터 그룹들을 모두 거부한다는 의미이며, 반대로 허용한다는 것은 RBL의 질의 결과에 상관없이 해당 IP 주소에 대해서는 모두 허용한다는 뜻이다. 익스체인지 5.5의 경우 허용 목록에 해당 IP 주소를 입력해 바로 연결을 허용할 수 있다(이것을 보통 블랙 리스트의 반대 개념으로 화이트 리스트라고 한다).
4. IMF(지능형 메시지필터)이용하기
우리나라 사람들이 싫어하고 고통스러워하는 이야기가 바로 IMF이다. 처음 Intelligent Message Filter라고 했을 때는 좀 있어 보이더니 이것을 줄여서 IMF라고 하니 바로 인상이 구겨지는 것이 우리나라 사람들의 인지상정이다.
어쨌든 IMF가 첫선을 보인 것이 2004년 5월 미국에서 열린 TechED 2004이다. 이전까지만 해도 MS 익스체인지 컨퍼런스(MEC)가 따로 개최될 정도로 활기가 있었으나 2003년부터는 TechED에 통합돼 세션의 숫자도 줄어 들었다. 메시징의 중요성은 점점 강조되고 있지만 MS는 오히려 뒷걸음질치는 인상이다.
본래 IMF 개념이 처음 제기된 것이 지난 2003년 가을 컴덱스다. 빌 게이츠 회장이 자신도 하루에 수천통의 스팸을 받는다는 고백과 함께 앞으로 MS가 스팸과의 전쟁을 선포하고 그것을 위해 엄청난 돈을 투자하겠다고 밝혔다. 익스체인지 서버에 기계 학습(Machine Learning) 기술을 접목시킨 새로운 필터링 도구를 선보이겠다는 것이었다. 그리고 이 가운데 가장 먼저 제품화한 것이 바로 IMF였다.
익스체인지 2003이 출시될 때 이미 IMF에 대한 윤곽이 있었다. 왜냐하면 이전 버전에서 받는 사람 필터링, 연결 필터링 기능까지 구현했기 때문에 고객들의 컨텐츠 필터링에 대한 요구가 더욱 높아질 것으로 예상했기 때문이다. 실제로 익스체인지 2003이 출시될 당시 아웃룩 2003에 스팸 방지 기술을 추가했고, 이때 이미 SCL(Spam Confidence Level) 이야기도 함께 제기됐다. 이제 IMF의 내면 속으로 들어가 보자.
IFM의 기술 기반 ‘스마트스크린’
스마트스크린(SmartScreen) 기술은 MS에서 특허를 낸 기술로, 특정 메시지가 들어오면 이 메시지가 스팸인지 아닌지를 통계학으로 판단하는 기술이다. 이 기술의 근간에는 베이지언(Bayesian) 정리가 있다. 베이지언 정리는 우리가 고등학교 때 배운 조건부 확률을 기초로 하고 있는데 이 조건부 확률을 이해하는 것이 스마트스크린을 이해하는데 도움을 줄 것이다(박스 기사 참조).
스마트스크린은 이와 같은 통계학적 방법에 의해 미래의 정보에 점수를 매겨 스팸인지 아닌지를 평가한다. 그러므로 스마트스크린에 사용되는 확률 정보가 얼마나 정확한지에 따라 메시지 분류의 정확도가 결정된다. 필자는 여기서 변인을 하나만 두었다. 즉 특정 낱말이 들어간 경우에 스팸인지 여부를 결정하지만 스마트스크린에 적용되는 변인은 여러 가지이며 각 변인에 대한 가중치도 다르다. 그렇기 때문에 MS는 스마트스크린 전체 기술에 대해서 특허가 있으며 이 기술은 MSN, Hotmail, 아웃룩에서 사용되고 있다.
이 기술은 베이지언 정리를 스팸 부분에 적용하는데 권위자인 David Hekermann이 MS 연구소의 MLAS(Machine Learning and Applied Stastistics)와 ASI(Adaptive Systems annd Interactions) 그리고 시그널 프로세싱(Signal Processing) 그룹을 이끌고 완성시킨 것이다. MS는 스마트스크린 기술을 개발한 후 스팸 분류의 정확도를 높이기 위해 피드백 루프 프로그램을 이용, 고객들로부터 50만개 이상의 스팸 메일들을 받아 각각의 특징을 분석했다.
현재에는 MS의 스마트스크린 뿐만 아니라 스팸 어세신(Spam Assassin)이라는 스팸방지 공개 소프트웨어에도 베이지언 정리가 이용되고 있다. 미국의 대다수 컨텐츠 필터링을 이용한 스팸방지 솔루션도 마찬가지다. 이렇게 스마트스크린 기술을 통해서 얻어진 결과가 각 메시지별로 SCL로 표시된다. SCL 값은 모두 11단계의 값으로 구성돼 있으며 상세한 내용은 <표 1>과 같다.
SCL 값설명-1익스체인지 서버 2003 내부에서 이동하는 메시지에 부여하는 값이다. 내부적으로 배달되는 메시지에 대해 위양성(False Positive: 스팸 메일이 아닌데 스팸 메일로 분류되는 경우)일 가능성은 전혀 없으므로 따로 구분하며 덮어쓰기도 불가능하다. 인증 받은 사용자로부터 받는 메일은 기본적으로 -1이 된다.0전혀 스팸이 아닐 때 쓰여진다.1~9스팸일 가능성을 나타내는데 1은 스팸이 아닐 가능성이 높고 숫자가 높아짐에 따라 스팸일 가능성이 높아진다. 9가 되면 스팸일 가능성이 99% 이상이 된다.
이렇게 각 메시지 별로 SCL이 정해지는데 IMF는 스팸 여부를 판단하는 임계값을 정한다. 임계값을 5로 정하면 5이상의 SCL 값을 부여받은 메일을 스팸으로 인식한다. 임계값을 낮게 설정하면 스팸 메일로 분류되는 메일이 많은 반면 위양성 메일도 증가하고, 임계점을 높게 설정하면 위양성 메일을 줄일 수 있지만 스팸 메일들의 덜 걸러질 가능성이 있다.
실전! 지능형 메시지 필터 사용하기
지능형 메시지 필터 기능을 사용하려면 SMTP 게이트웨이 역할을 하거나 브리지헤더 역할을 하는 서버에 설치해야 한다. IMF를 설치하면 전역 설정의 메시지 배달 특성에 <화면 6>과 같이 지능형 메시지 필터 탭이 추가된다. 이 값을 정하기 전에 [메시지 차단하는 경우]에서 기본으로 선택되어 있는 [작업없음]을 그대로 두고 성능 모니터에서 [Total Messages Assigned an SCL Rating of X] 카운터들을 이용해서 전체적인 메시지의 SCL 단계를 모니터링한 뒤 메시지 차단 임계점을 정해야 한다.
지능형 메시지 필터에는 게이트웨이에서의 차단을 구성하거나 정보 저장소 단계에서 정크메일로 분류하도록 구성할 수 있는데 그 내용을 살펴보면 다음과 같다.
◆ 게이트웨이 차단 구성 : 메시지가 들어오게 되면 SCL을 부여 받고 이 SCL은 게이트웨이 차단 구성의 [SCL 등급이 다음보다 크거나 같은 메시지 차단]에서 설정한 임계값 보다 높은지 낮은지를 판단해, 낮으면 게이트웨이를 통과해 사서함이 위치해 있는 서버의 정보 저장소로 전달되고, 높으면 [메시지를 차단하는 경우]에서 설정한 옵션대로 처리한다.
① 거부 : 게이트웨이에서 메시지를 거부한다. 익스체인지는 SMTP 세션 동안 메시지를 거부하므로 연결하는 SMTP 서버가 보낸 사람에게 NDR을 발송해야 한다.
② 보관 : 등급이 지정한 임계값 이상인 UCE로 표시된 모든 메시지를 보관한다. 보관된 메시지는 보관 디렉토리에 저장된다. 이 디렉토리는 SMTP 가상 서버 속성의 메시지 탭에서 지정한 큐 디렉토리의 루트 디렉토리에 있다. 기본적으로 보관 디렉토리는 Exchsrvr\Mailroot\vsi n\UCEArchive이며 여기서 n은 SMTP 가상 서버 인스턴스 번호이다. 메모장으로 열거나 MS 아웃룩 익스프레스를 이용해 보관 디렉토리에 있는 메시지를 검토할 수 있다. 합법적인 전자 메일 메시지가 보관돼 있는 것을 발견하면 해당 메시지를 Exchsrvr\Mailroot\vsi n\pickup 디렉토리로 이동해 다시 전송할 수도 있다. 그러면 SMTP 서비스가 전자 메일 메시지를 해당 사서함으로 배달한다. HKEY_LOCAL_MACHINE\Software\Microsoft\Exchange\ContentFilter 레지스트리 밑에 새로 만들기, 문자열 값 그리고 ArchiveDir를 입력한 다음 보관할 위치를 D:\ArchiveDir 등과 같이 변경할 수 있다.
③ 삭제 : 등급이 지정한 임계값 이상인 UCE로 표시된 모든 메시지를 삭제한다. 해당 메시지는 익스체인지에서 받아 삭제한다. 보낸 사람과 받는 사람 모두 해당 메시지가 삭제됐는지 여부를 알 수 없다.
④ 작업 없음: 작업 없음을 선택하면 등급이 지정한 임계값 이상인 UCE로 표시된 메시지에 대해 어떤 작업도 수행하지 않는다. 이 UCE 등급은 다른 메시지 속성과 함께 저장되며 이러한 속성은 해당 메시지와 함께 다른 익스체인지 서버에 전송된다. 익스체인지 사서함 서버는 UCE 등급과 정보 저장소 정크 메일 구성에서 지정한 설정을 사용해 메시지를 사용자의 받은 편지함으로 배달할 것인지 정크 메일 폴더로 배달할 것인지 결정한다.
◆ 정보 저장소 정크 메일 구성 : 게이트웨이 차단 구성을 통과한 메일들은 실제 자신의 사서함이 있는 저장소에 저장될 때 각 사서함에 존재하는 정크 메일 폴더에 저장될지, 아니면 받은 편지함으로 이동할지 여부를 결정해야 하는데, 이때 [정보 저장소 정크 메일 구성]의 [SCL 등급보다 크거나 같은 메시지 이동]에서 설정한 SCL 값에 따르게 된다. 즉 여기서 설정한 SCL 값보다 크거나 같으면 해당 사서함 내의 정크 메일 폴더로 이동하고 작으면 받은 편지함으로 간다. 기억해 둘 것은 SCL 값은 정수가 아니라 소수점까지 포함된 유리수라는 것이다. 이 값은 당연히 게이트웨이에서 설정한 차단 구성의 SCL 값보다 같거나 작아야 한다.
IMF를 통과한 메시지들은 x-sender, x-receiver 속성이 추가되며 기본적으로 X-SCL 속성은 확장되지 않는다. 이를 확장하기 위해서는 HKEY_LOCAL_MACHINE\Software\Microsoft\Exchange\ContentFilter에서 새로 만들기 → DWORD → ArchiveSCL라고 입력하고 DWORD 편집에서 1이라 입력한다. 만일 0이나 이 값이 없으면 헤더 정보에 X-SCL이 남지 않는다. 다음은 IMF에서 확장된 헤더 특성에 대한 예이다.
x-sender: bkuk@korea.com
x-receiver: administrator@numi.ne.kr
X-SCL: 6 90.64%
필터링 동작 순서각 필터링이 어떤 순서를 거쳐서 분류되는지에 대해서는 <그림 2>에 나와 있다.
① SMTP 서버가 익스체인지에 연결해 SMTP 세션을 시작한다.
② SMTP 세션 중 익스체인지는 다음 기준에 따라 [연결 필터링]을 적용한다.
③ 익스체인지는 [받는 사람 필터링]에 등록한 목록에 받는 사람이 있는지 확인한다. 받는 사람이 필터링하는 전자 메일 주소와 일치하면 익스체인지는 해당 메시지를 거부하고 다른 필터는 적용하지 않는다.
④ 받는 사람 필터링이 적용되면 익스체인지는 [보낸 사람 필터링]으로 구성된 보낸 사람 목록에서 확인된 보낸 사람 주소를 확인한다. 보낸 사람이 보낸 사람 목록에 있는 주소와 일치하면 구성된 옵션에 따라 필터링하고 다른 필터는 적용하지 않는다.
⑤ 메시지가 연결, 받는 사람 또는 보낸 사람 필터링 별로 필터링하지 않으면 지능형 메시지 필터가 적용되고 게이트웨이에서 다음 둘 중 하나가 발생한다.
⑥ 사용자가 아웃룩 2003 또는 익스체인지 2003용 OWA를 사용하고 있는 경우, 사용자의 사서함 저장소가 메시지 SCL 등급과 사용자가 구성한 저장소 임계값을 비교하면 다음 중 하나가 실행된다.
⑦ 메시지 등급이 저장소 임계값보다 높으면 사서함 저장소는 아웃룩 또는 OWA에서 구성된 사용자의 수신 허용-보낸 사람 목록을 확인하고 다음 중 하나가 발생한다.
스팸메일을 줄이는것은 메일서버의 성능을 보장하기위해서도 매우 필수적입니다.
물론 사용자들의 불편을 많이 줄일수도 있구요...^^
이 글은 마이크로소프트웨어지에 소개되었던 글을 zdnet에서 다시 올린것인데
제가 다시 조금 정리해서 올렸습니다.
1.보낸 사람 필터링(Sender Filtering)=(exchange2000시절부터)
필요에 따라 도메인이나 특정 메일 주소를 등록할 수 있으며 여러 가지 옵션을 설정할 수도 있다. 먼저 [보낸 사람]은 필터링을 하고 싶은 도메인 앞에 @표시를 해서 입력하고, 주소 형태는 그대로 타이핑해 막을 수 있다. 약 850개까지 등록할 수 있으며 그 이상 입력하면 ‘LDAP Provider의 80072024’ 오류와 함께 먼저 입력한 것이 삭제된다. 이것은 [보낸 사람] 목록도 액티브 디렉토리(active directory) 데이터베이스 내에서 하나의 개체를 차지하게 되고 이것은 AD의 데이터베이스 단위인 8KB를 차지하는데, 이론적으로는 910개 정도(8*1024/9=910)가 들어가는 것이 정상이지만 이미 데이터베이스 내에 고정된 필드들이 존재하므로 이 50여개를 제외한 850여개로 제한되기 때문이다. [필터링한 메시지 보관]을 선택하게 되면 필터링한 것이 익스체인지가 설치된 하부 디렉토리의 Mailroot\vis 1\filter 폴더에 저장된다.
90년대 말과 2000년 초에는 스팸 메일을 보내는 기술도 그리 발달하지 못해 보낸 사람을 공란으로 해서 보내는 경우가 많았다. 그래서 나온 것이 [보낸 사람]이 비어 있는 메시지 필터링 기능이다. 하지만 요즘은 보내는 사람 란에 비어 있는 스팸 메시지는 거의 찾아볼 수 없다(일부 보이스 메일에서 보내는 메일의 경우 [보낸 사람] 란이 비어 있는 경우가 있다).
[주소와 필터가 일치하면 연결 끊기] 옵션을 선택하면 해당 주소가 보낸 메시지는 Mail From 명령 후에 곧바로 ‘554 5.1.0 Sender Denied’가 나타나고 연결이 종료된다. 이 옵션은 아예 연결 자체를 막아버리기 때문에 받는 서버의 부하에 전혀 영향을 미치지 않는다는 장점이 있지만, 보내는 사람이 필터링된 것을 알게 되므로 보낸 사람 란에 다른 주소를 입력하는 방식으로 악용될 가능성이 있다.
[보낸 사람에게 필터링한 것을 알리지 않고 수락] 옵션은 [주소와 필터가 일치하면 연결 끊기] 옵션을 선택하지 않았을 때 사용할 수 있다. 즉 보낸 사람에게는 정상적으로 메일을 보낸 것처럼 처리하지만 실제로는 필터링하도록 하는 것이다. 보내는 사람에게 메시지 필터링의 여부를 알지 못하게 하는 장점이 있지만 큰 메시지를 보내올 때 서버가 일단 받아들이기 때문에 대용량 부하가 발생할 수 있다.
2. 받는 사람 필터링-메일 주소 수집을 피해라
받는 사람 필터링은 디렉토리에 존재하지 않는 주소 또는 차단 목록에 기록된 특정 주소로 들어오는 메시지에 대해서 SMTP 세션에서 막아버리는 방법이다.
게이트웨이 역할을 하는 익스체인지 서버는 RCPT TO 명령을 받으면 받은 메일 주소가 유효한지를 알아보기 위해서 글로벌 카탈로그 서버에 질의를 한다. 이때 [디렉토리에 없는 사람 필터링] 옵션을 선택하면 메일 주소가 있는 경우에만 이후 명령을 수행해 메시지 전체 내용을 받고, 주소가 없으면 ‘501 5.5.4 Invalid Address’ 오류 메시지를 내보낸다. 이 옵션은 익스체인지 2003의 큐를 말끔하게 정리할 수 있는 팁이다.
2000 버전에서 큐 안에 그렇게 많이 쌓여서 괴롭히던 메일 찌꺼기들이 2003이 되면서부터 자취를 감추게 된 것도 모두 이 기능 덕분이다(사실 이것은 익스체인지 5.5나 익스체인지 2000에서도 특정 메일이 도착하면 디렉토리에 LDAP(Lightweight Directory Access Protocol)으로 질의하도록 하는 스크립트를 작성해 SMTP 이벤트 싱크(Event Sink)에 추가해도 충분히 방비할 수 있었다).
익스체인지 2000에서는 공용 폴더에서 익명의 사용자에게 기고자 권한이 주어졌었다. 또 회의실과 같이 리소스 사서함을 가진 서버에서는 외부의 사용자도 해당 사서함에 메일을 보낼 수가 있었다. 회사 내에 있던 배포 그룹이 메일 주소를 가질 수도 있었다.
스팸 메일 발송자들은 해당 메일 주소가 공용폴더 주소인지 아니면 리소스 사서함인지를 모르며, 설사 알고 있더라도 상관하지 않고 메일을 보낼 것이다. 만일 [받는 사람]란에 이런 리소스 주소들을 등록해 놓는다면 공용 폴더를 아주 깨끗하게 유지할 수 있을 것이다. [받는 사람]란에 특정 주소를 입력하고 나서 해당 주소로 접속하면 ‘550 5.7.1 Requested Action not taken: mailbox not available’ 오류를 나타낸다.
메일을 사용할 수 있도록 한 그룹의 경우 여기서 메일 주소를 입력해도 되며 <화면 3>과 같이 해당 메일 그룹의 속성 대화상에 있는 익스체인지 일반정보 탭에 있는 메시지 제한에서 설정해도 된다.
게이트웨이 역할을 하는 익스체인지 서버는 RCPT TO 명령을 받으면 받은 메일 주소가 유효한지를 알아보기 위해서 글로벌 카탈로그 서버에 질의를 한다. 이때 [디렉토리에 없는 사람 필터링] 옵션을 선택하면 메일 주소가 있는 경우에만 이후 명령을 수행해 메시지 전체 내용을 받고, 주소가 없으면 ‘501 5.5.4 Invalid Address’ 오류 메시지를 내보낸다. 이 옵션은 익스체인지 2003의 큐를 말끔하게 정리할 수 있는 팁이다.
2000 버전에서 큐 안에 그렇게 많이 쌓여서 괴롭히던 메일 찌꺼기들이 2003이 되면서부터 자취를 감추게 된 것도 모두 이 기능 덕분이다(사실 이것은 익스체인지 5.5나 익스체인지 2000에서도 특정 메일이 도착하면 디렉토리에 LDAP(Lightweight Directory Access Protocol)으로 질의하도록 하는 스크립트를 작성해 SMTP 이벤트 싱크(Event Sink)에 추가해도 충분히 방비할 수 있었다).
익스체인지 2000에서는 공용 폴더에서 익명의 사용자에게 기고자 권한이 주어졌었다. 또 회의실과 같이 리소스 사서함을 가진 서버에서는 외부의 사용자도 해당 사서함에 메일을 보낼 수가 있었다. 회사 내에 있던 배포 그룹이 메일 주소를 가질 수도 있었다.
스팸 메일 발송자들은 해당 메일 주소가 공용폴더 주소인지 아니면 리소스 사서함인지를 모르며, 설사 알고 있더라도 상관하지 않고 메일을 보낼 것이다. 만일 [받는 사람]란에 이런 리소스 주소들을 등록해 놓는다면 공용 폴더를 아주 깨끗하게 유지할 수 있을 것이다. [받는 사람]란에 특정 주소를 입력하고 나서 해당 주소로 접속하면 ‘550 5.7.1 Requested Action not taken: mailbox not available’ 오류를 나타낸다.
메일을 사용할 수 있도록 한 그룹의 경우 여기서 메일 주소를 입력해도 되며 <화면 3>과 같이 해당 메일 그룹의 속성 대화상에 있는 익스체인지 일반정보 탭에 있는 메시지 제한에서 설정해도 된다.
주의해야 할 것은 기본적으로 그룹에게는 모든 사람으로부터 메일을 받을 수 있도록 설정돼 있다는 사실이다. 따라서 가능하면 그룹에 대해서는 [인증된 사람으로부터만] 옵션을 선택하고 그 외 세부 옵션을 선택하는 것이 좋다. 그래야만 외부에 있는 사용자가 함부로 내부에 있는 메일 그룹으로 메시지를 보낼 수 없도록 막을 수 있다. 이렇게 설정한 상태에서 외부에 있는 사용자가 내부에 있는 그룹으로 메일을 보내면 ‘550 5.1.1 User unknown’ 오류가 나타난다.
받는 사람 필터링을 구성하면 서버의 부하를 줄일 수 있지만 DHA(Directory Harvest Attack)의 가능성이 여전히 존재한다. DHA란 스팸 메일 발송자들이 메일 주소를 얻는 방법 가운데 하나로, DNS 내에서 메일 서버의 위치를 파악해 해당 메일 서버에 사전식으로 조합된 메일 주소를 보내서 NDR을 보내지 않는 메일에 대해서 메일 주소의 유효성을 확인하는 방법이다. 이밖에도 스팸 메일 발송자들은 성인사이트나 메일링 서비스 업체의 데이터베이스를 해킹하거나 다른 사람들에게 돈을 주고 메일 주소를 사기도 한다.
그림은 DNS 내에 포함된 MX 레코드와 호스트 주소로 메일 서버의 주소를 알아내 사전식으로 조합된 메일 주소 목록을 이용, 해당 서버에 있는 유효한 메일 주소를 검색하는 DHA를 그림으로 나타낸 것이다.
이는 메일 주소를 수집하는 데 널리 사용되지만 사실 이렇게 해서 알아낸 메일 주소는 해킹을 통해서 얻은 주소 목록보다는 훨씬 가치가 떨어진다. 왜냐하면 특정 서버에 포함된 메일 주소는 해당 서버의 목적에 관심을 가진 사용자들의 주소지만 사전식으로 공격해서 얻은 메일 주소들은 해당 주소가 그것에 대해 관심이 있을지 여부를 알 수 없기 때문이다.
예를 들면 비아그라를 판매하려는 스팸 메일 발송자의 경우 일반 회사의 메일 서버에 사전식으로 공격하기 보다는 성인사이트를 운영하는 서버의 데이터베이스에 저장되어 있는 전자메일 주소 목록을 얻는 것이 비아그라를 훨씬 많이 판매할 수 있는 기회가 될 것이다.
아무리 메일 주소의 값어치가 떨어지더라도 잠재적인 고객확보 차원에서, 그리고 메일 주소를 다른 사람들에게 판매하기 위해서는 DHA를 수행하는데 이것을 방지하기 위해 널리 사용되는 기능이 타르피팅(Tarpiting) 기능(tar+pit의 합성어로 쥐를 잡을 때 사용하는 것처럼 타르로 된 끈끈이 덫을 의미한다)이다. SMTP 서버가 RCPT TO 명령을 통해 보낸 메일 주소가 디렉토리를 검색한 뒤 없다고 하면 늦게 응답하도록 해 스팸 발송자들이 해당 주소가 유효한지 여부를 알 수 없도록 하는 것이다.
타르피팅 기능은 윈도우 2003 환경에 SMTP 서비스의 버전(확인은 Windows\System32\inetsrv 디렉토리 안의 smtpsvc.dll이다)이 6.0.3790.175 이상 되어야 한다. 꾸준하게 보안 업데이트를 해 왔다면 문제가 없을 것이다. 지원 환경이 된다면 레지스트리를 변경해 줘야 한다. 레지스트리 HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Services\SMTPSVC\ Parameters에서 새로 만들기 → DWORD → TarpitTime을 입력한 후 시간을 초단위로 입력하고 재부팅하면 된다. 만일 값을 5라고 설정하면 RCPT TO 명령은 5초 뒤에 응답하게 될 것이다. 보통 스팸 메일 발송자들은 RCPT TO에 대한 응답이 늦어지면 재시도를 하지 않는 것이 특징이다.
3. RBL 필터링스팸 (발송 서버를 막는 ‘연결 필터링’)
RBL이란 특정 단체나 회사에서 스팸 메일을 보내는 서버나, 전화 접속자(일반적으로 동적 IP를 사용하는 전화 접속자들이 자신도 모르게 스팸을 발송하게 되는 경우가 많다), 오픈 릴레이로 맞추어진 서버들의 IP 목록들을 말하며 우리가 일반적으로 알고 있는 ORDB(Open Relay DataBase, www.ordb.net ), Spamhause(www.spamhaus.org ), Mail-abuse(www.mail-abuse.org ), SpmaCop(www.spamcop.net ) 등이 바로 이 RBL을 제공해 주는 회사들이다.
연결 필터링이란 메시지가 들어오면 메시지를 보낸 서버의 IP 주소를 추출해 RBL 제공자에게 질의를 하고 해당 IP 주소가 목록에 있는지 여부를 확인, 해당 주소가 없다면 메시지를 받아들이고 주소가 존재한다면 거부하는 방법이다. 이 방법을 사용하면 약 40~50%의 스팸들을 걸러낼 수 있다고 한다.
RBL들은 보통 DNS 쿼리를 이용해 질의를 한다. 즉 SMTP 가상 서버가 메시지를 받으면 <화면 4>와 같이 연결 필터링 탭의 [차단 목록 서비스]에 설정돼 있는 목록 중 가장 위쪽 서버에 질의를 한다. RBL에 질의를 하는 방법은 역방향 조회와 비슷한 모양을 가지고 있다.
역방향 조회 시에는 in-addr.arpa를 사용하지만 RBL의 경우 bl.spamcop.net이 같이 RBL 제공자의 도메인 이름을 사용한다는 것이 차이점이다. 예를 들면 123.12.12.3이라는 서버가 메시지를 보내 왔다면 3.12.12.123.bl.spamcop.net으로 질의를 한다. 그러면 해당 서버에서는 IP 주소가 있는지 확인해 이름이 있는지 여부를 결과로 보내 준다. nslookup 명령을 통해서 알아보면 어떻게 확인하는지 간단하게 확인할 수 있다.
>nslookup -q=a 3.12.12.123.bl.spamcop.net
server:ns.techmentor.co.kr
address:211.114.57.123
Name: 3.12.12.123.bl.spamcop.net
Address: 127.0.0.2
이를 네트워크 모니터를 이용해서 보면 다음과 같다.
DNS: 0x6c:Std Qry for 3.12.12.123.bl.spamcop.net of type Host Addr on Class INET addr
이때 해당 주소가 자신의 데이터베이스에 없으면 다음과 같은 메시지를 보여 준다.
DNS: 0x6c:Std Resp. Auth. Ns is spamcop.net. of type SOA on Class INET addr.: Name does not exist
데이터베이스에 존재한다면 다음과 같이 처리를 한다.
DNS: Answer section: 3.12.12.123.bl.spamcop.net of type SOA on class INET addr.
DNS: Resource Name: 3.12.12.123.bl.spamcop.net.
DNS: Resource Type= Host Address
DNS: Resource Class= Internet address class
DNS: Time To Live=2048(0x800)
DNS: Resource Data Length =4(0x4)
DNS: IP address=127.0.0.2
이렇게 되면 클라이언트에게는 기본적으로 550 5.7.1 123.12.12.3 has been blocked by Spamcop RBL list라는 응답을 보내 준다. 여기서 중요한 것이 바로 127.0.0.2라는 IP 주소다. 이것은 보통 반환상태 코드라고 부르는데, 해당 주소가 어떤 RBL에 포함돼 있는지를 나타내는 코드로 각 RBL 업체에 따라 약간의 차이가 있다. 그러므로 자신이 사용하는 RBL의 제공자 홈페이지에서 상태 반환 코드를 확인한 후 <화면 5>와 같이 필요한 코드만 적용할 수 있다. email-policy.com 웹사이트(www.email-policy.com/spam-black.lists.html )에 보면 각 RBL 제공회사별 반환 상태코드를 확인할 수 있다.
메시지를 보낸 사용자에게 반환할 메시지의 내용도 지정할 수 있다. 기본적으로 [IP 주소 has been blocked by 규칙의 표시이름]으로 나타나는데 이것을 필요에 따라 바꿀 수 있다. 한글은 사용할 수 없으며, 다음과 같은 변수를 사용하면 적당하게 수정할 수 있다.
◆ %0: 보낸 메일 서버의 IP 주소
◆ %1: 연결 필터링의 규칙 표시 이름
◆ %2: RBL 서비스 제공회사 이름
예를 들어 ‘The IP address %0 was rejected by the Realtime Block List provider %2’라고 [반환할 사용자 지정 오류 메시지]에 입력하면 ‘The IP address 123.12.12.3 was rejected by the Realtime Block List provider bl.Spamcop.net’이라는 메시지를 받게 된다. 이때 특정 메일 주소에 대해 연결 필터링에 예외를 두기 원한다면 [예외]를 선택하고 SMTP 주소를 입력하면 해당 주소에 대해서는 연결 필터링의 결과에 상관없이 메시지를 받아 들인다.
만약 특정 주소가 아니라 특정 서버가 된다면 상황은 달라진다. 이때는 사용자가 원하는 작업이 무엇인지 먼저 결정해야 한다. 즉 특정 IP 주소에 대해서 거부할지 아니면 허용할지를 결정해야 한다. 특정 IP 주소에 대해서 거부한다는 말은 연결 필터링 결과에 상관없이 특정 IP 주소나 그 대역에 있는 컴퓨터 그룹들을 모두 거부한다는 의미이며, 반대로 허용한다는 것은 RBL의 질의 결과에 상관없이 해당 IP 주소에 대해서는 모두 허용한다는 뜻이다. 익스체인지 5.5의 경우 허용 목록에 해당 IP 주소를 입력해 바로 연결을 허용할 수 있다(이것을 보통 블랙 리스트의 반대 개념으로 화이트 리스트라고 한다).
4. IMF(지능형 메시지필터)이용하기
우리나라 사람들이 싫어하고 고통스러워하는 이야기가 바로 IMF이다. 처음 Intelligent Message Filter라고 했을 때는 좀 있어 보이더니 이것을 줄여서 IMF라고 하니 바로 인상이 구겨지는 것이 우리나라 사람들의 인지상정이다.
어쨌든 IMF가 첫선을 보인 것이 2004년 5월 미국에서 열린 TechED 2004이다. 이전까지만 해도 MS 익스체인지 컨퍼런스(MEC)가 따로 개최될 정도로 활기가 있었으나 2003년부터는 TechED에 통합돼 세션의 숫자도 줄어 들었다. 메시징의 중요성은 점점 강조되고 있지만 MS는 오히려 뒷걸음질치는 인상이다.
본래 IMF 개념이 처음 제기된 것이 지난 2003년 가을 컴덱스다. 빌 게이츠 회장이 자신도 하루에 수천통의 스팸을 받는다는 고백과 함께 앞으로 MS가 스팸과의 전쟁을 선포하고 그것을 위해 엄청난 돈을 투자하겠다고 밝혔다. 익스체인지 서버에 기계 학습(Machine Learning) 기술을 접목시킨 새로운 필터링 도구를 선보이겠다는 것이었다. 그리고 이 가운데 가장 먼저 제품화한 것이 바로 IMF였다.
익스체인지 2003이 출시될 때 이미 IMF에 대한 윤곽이 있었다. 왜냐하면 이전 버전에서 받는 사람 필터링, 연결 필터링 기능까지 구현했기 때문에 고객들의 컨텐츠 필터링에 대한 요구가 더욱 높아질 것으로 예상했기 때문이다. 실제로 익스체인지 2003이 출시될 당시 아웃룩 2003에 스팸 방지 기술을 추가했고, 이때 이미 SCL(Spam Confidence Level) 이야기도 함께 제기됐다. 이제 IMF의 내면 속으로 들어가 보자.
IFM의 기술 기반 ‘스마트스크린’
스마트스크린(SmartScreen) 기술은 MS에서 특허를 낸 기술로, 특정 메시지가 들어오면 이 메시지가 스팸인지 아닌지를 통계학으로 판단하는 기술이다. 이 기술의 근간에는 베이지언(Bayesian) 정리가 있다. 베이지언 정리는 우리가 고등학교 때 배운 조건부 확률을 기초로 하고 있는데 이 조건부 확률을 이해하는 것이 스마트스크린을 이해하는데 도움을 줄 것이다(박스 기사 참조).
스마트스크린은 이와 같은 통계학적 방법에 의해 미래의 정보에 점수를 매겨 스팸인지 아닌지를 평가한다. 그러므로 스마트스크린에 사용되는 확률 정보가 얼마나 정확한지에 따라 메시지 분류의 정확도가 결정된다. 필자는 여기서 변인을 하나만 두었다. 즉 특정 낱말이 들어간 경우에 스팸인지 여부를 결정하지만 스마트스크린에 적용되는 변인은 여러 가지이며 각 변인에 대한 가중치도 다르다. 그렇기 때문에 MS는 스마트스크린 전체 기술에 대해서 특허가 있으며 이 기술은 MSN, Hotmail, 아웃룩에서 사용되고 있다.
이 기술은 베이지언 정리를 스팸 부분에 적용하는데 권위자인 David Hekermann이 MS 연구소의 MLAS(Machine Learning and Applied Stastistics)와 ASI(Adaptive Systems annd Interactions) 그리고 시그널 프로세싱(Signal Processing) 그룹을 이끌고 완성시킨 것이다. MS는 스마트스크린 기술을 개발한 후 스팸 분류의 정확도를 높이기 위해 피드백 루프 프로그램을 이용, 고객들로부터 50만개 이상의 스팸 메일들을 받아 각각의 특징을 분석했다.
현재에는 MS의 스마트스크린 뿐만 아니라 스팸 어세신(Spam Assassin)이라는 스팸방지 공개 소프트웨어에도 베이지언 정리가 이용되고 있다. 미국의 대다수 컨텐츠 필터링을 이용한 스팸방지 솔루션도 마찬가지다. 이렇게 스마트스크린 기술을 통해서 얻어진 결과가 각 메시지별로 SCL로 표시된다. SCL 값은 모두 11단계의 값으로 구성돼 있으며 상세한 내용은 <표 1>과 같다.
SCL 값설명-1익스체인지 서버 2003 내부에서 이동하는 메시지에 부여하는 값이다. 내부적으로 배달되는 메시지에 대해 위양성(False Positive: 스팸 메일이 아닌데 스팸 메일로 분류되는 경우)일 가능성은 전혀 없으므로 따로 구분하며 덮어쓰기도 불가능하다. 인증 받은 사용자로부터 받는 메일은 기본적으로 -1이 된다.0전혀 스팸이 아닐 때 쓰여진다.1~9스팸일 가능성을 나타내는데 1은 스팸이 아닐 가능성이 높고 숫자가 높아짐에 따라 스팸일 가능성이 높아진다. 9가 되면 스팸일 가능성이 99% 이상이 된다.
이렇게 각 메시지 별로 SCL이 정해지는데 IMF는 스팸 여부를 판단하는 임계값을 정한다. 임계값을 5로 정하면 5이상의 SCL 값을 부여받은 메일을 스팸으로 인식한다. 임계값을 낮게 설정하면 스팸 메일로 분류되는 메일이 많은 반면 위양성 메일도 증가하고, 임계점을 높게 설정하면 위양성 메일을 줄일 수 있지만 스팸 메일들의 덜 걸러질 가능성이 있다.
실전! 지능형 메시지 필터 사용하기
지능형 메시지 필터 기능을 사용하려면 SMTP 게이트웨이 역할을 하거나 브리지헤더 역할을 하는 서버에 설치해야 한다. IMF를 설치하면 전역 설정의 메시지 배달 특성에 <화면 6>과 같이 지능형 메시지 필터 탭이 추가된다. 이 값을 정하기 전에 [메시지 차단하는 경우]에서 기본으로 선택되어 있는 [작업없음]을 그대로 두고 성능 모니터에서 [Total Messages Assigned an SCL Rating of X] 카운터들을 이용해서 전체적인 메시지의 SCL 단계를 모니터링한 뒤 메시지 차단 임계점을 정해야 한다.
지능형 메시지 필터에는 게이트웨이에서의 차단을 구성하거나 정보 저장소 단계에서 정크메일로 분류하도록 구성할 수 있는데 그 내용을 살펴보면 다음과 같다.
◆ 게이트웨이 차단 구성 : 메시지가 들어오게 되면 SCL을 부여 받고 이 SCL은 게이트웨이 차단 구성의 [SCL 등급이 다음보다 크거나 같은 메시지 차단]에서 설정한 임계값 보다 높은지 낮은지를 판단해, 낮으면 게이트웨이를 통과해 사서함이 위치해 있는 서버의 정보 저장소로 전달되고, 높으면 [메시지를 차단하는 경우]에서 설정한 옵션대로 처리한다.
① 거부 : 게이트웨이에서 메시지를 거부한다. 익스체인지는 SMTP 세션 동안 메시지를 거부하므로 연결하는 SMTP 서버가 보낸 사람에게 NDR을 발송해야 한다.
② 보관 : 등급이 지정한 임계값 이상인 UCE로 표시된 모든 메시지를 보관한다. 보관된 메시지는 보관 디렉토리에 저장된다. 이 디렉토리는 SMTP 가상 서버 속성의 메시지 탭에서 지정한 큐 디렉토리의 루트 디렉토리에 있다. 기본적으로 보관 디렉토리는 Exchsrvr\Mailroot\vsi n\UCEArchive이며 여기서 n은 SMTP 가상 서버 인스턴스 번호이다. 메모장으로 열거나 MS 아웃룩 익스프레스를 이용해 보관 디렉토리에 있는 메시지를 검토할 수 있다. 합법적인 전자 메일 메시지가 보관돼 있는 것을 발견하면 해당 메시지를 Exchsrvr\Mailroot\vsi n\pickup 디렉토리로 이동해 다시 전송할 수도 있다. 그러면 SMTP 서비스가 전자 메일 메시지를 해당 사서함으로 배달한다. HKEY_LOCAL_MACHINE\Software\Microsoft\Exchange\ContentFilter 레지스트리 밑에 새로 만들기, 문자열 값 그리고 ArchiveDir를 입력한 다음 보관할 위치를 D:\ArchiveDir 등과 같이 변경할 수 있다.
③ 삭제 : 등급이 지정한 임계값 이상인 UCE로 표시된 모든 메시지를 삭제한다. 해당 메시지는 익스체인지에서 받아 삭제한다. 보낸 사람과 받는 사람 모두 해당 메시지가 삭제됐는지 여부를 알 수 없다.
④ 작업 없음: 작업 없음을 선택하면 등급이 지정한 임계값 이상인 UCE로 표시된 메시지에 대해 어떤 작업도 수행하지 않는다. 이 UCE 등급은 다른 메시지 속성과 함께 저장되며 이러한 속성은 해당 메시지와 함께 다른 익스체인지 서버에 전송된다. 익스체인지 사서함 서버는 UCE 등급과 정보 저장소 정크 메일 구성에서 지정한 설정을 사용해 메시지를 사용자의 받은 편지함으로 배달할 것인지 정크 메일 폴더로 배달할 것인지 결정한다.
◆ 정보 저장소 정크 메일 구성 : 게이트웨이 차단 구성을 통과한 메일들은 실제 자신의 사서함이 있는 저장소에 저장될 때 각 사서함에 존재하는 정크 메일 폴더에 저장될지, 아니면 받은 편지함으로 이동할지 여부를 결정해야 하는데, 이때 [정보 저장소 정크 메일 구성]의 [SCL 등급보다 크거나 같은 메시지 이동]에서 설정한 SCL 값에 따르게 된다. 즉 여기서 설정한 SCL 값보다 크거나 같으면 해당 사서함 내의 정크 메일 폴더로 이동하고 작으면 받은 편지함으로 간다. 기억해 둘 것은 SCL 값은 정수가 아니라 소수점까지 포함된 유리수라는 것이다. 이 값은 당연히 게이트웨이에서 설정한 차단 구성의 SCL 값보다 같거나 작아야 한다.
IMF를 통과한 메시지들은 x-sender, x-receiver 속성이 추가되며 기본적으로 X-SCL 속성은 확장되지 않는다. 이를 확장하기 위해서는 HKEY_LOCAL_MACHINE\Software\Microsoft\Exchange\ContentFilter에서 새로 만들기 → DWORD → ArchiveSCL라고 입력하고 DWORD 편집에서 1이라 입력한다. 만일 0이나 이 값이 없으면 헤더 정보에 X-SCL이 남지 않는다. 다음은 IMF에서 확장된 헤더 특성에 대한 예이다.
x-sender: bkuk@korea.com
x-receiver: administrator@numi.ne.kr
X-SCL: 6 90.64%
필터링 동작 순서각 필터링이 어떤 순서를 거쳐서 분류되는지에 대해서는 <그림 2>에 나와 있다.
① SMTP 서버가 익스체인지에 연결해 SMTP 세션을 시작한다.
② SMTP 세션 중 익스체인지는 다음 기준에 따라 [연결 필터링]을 적용한다.
◆ 연결 필터링이 전체 수락 목록을 확인한다. IP 주소가 전체 수락 목록에 있으면 다른 연결, 받는 사람 또는 보낸 사람 필터링은 적용하지 않고 메시지를 수락한다.
◆ 연결 필터링이 전체 거부 목록을 확인한다. 보내는 서버의 IP 주소가 전체 거부 목록에 있으면 메시지를 자동으로 거부하고 다른 필터는 적용하지 않는다.
◆ 연결 필터링이 구성된 공급자의 실시간 차단 목록을 확인한다. 보내는 서버의 IP 주소가 차단 목록에 있으면 메시지는 거부하고 다른 필터는 적용하지 않는다.
◆ 연결 필터링이 전체 거부 목록을 확인한다. 보내는 서버의 IP 주소가 전체 거부 목록에 있으면 메시지를 자동으로 거부하고 다른 필터는 적용하지 않는다.
◆ 연결 필터링이 구성된 공급자의 실시간 차단 목록을 확인한다. 보내는 서버의 IP 주소가 차단 목록에 있으면 메시지는 거부하고 다른 필터는 적용하지 않는다.
③ 익스체인지는 [받는 사람 필터링]에 등록한 목록에 받는 사람이 있는지 확인한다. 받는 사람이 필터링하는 전자 메일 주소와 일치하면 익스체인지는 해당 메시지를 거부하고 다른 필터는 적용하지 않는다.
④ 받는 사람 필터링이 적용되면 익스체인지는 [보낸 사람 필터링]으로 구성된 보낸 사람 목록에서 확인된 보낸 사람 주소를 확인한다. 보낸 사람이 보낸 사람 목록에 있는 주소와 일치하면 구성된 옵션에 따라 필터링하고 다른 필터는 적용하지 않는다.
⑤ 메시지가 연결, 받는 사람 또는 보낸 사람 필터링 별로 필터링하지 않으면 지능형 메시지 필터가 적용되고 게이트웨이에서 다음 둘 중 하나가 발생한다.
◆ 지능형 메시지 필터가 메시지에 게이트웨이 임계값보다 높은 SCL 등급을 매기면 지능형 메시지 필터는 적절한 게이트웨이 작업을 수행한다.
◆ 지능형 메시지 필터가 메시지에 게이트웨이 임계값보다 낮거나 같은 SCL 등급을 매기면 메시지는 사용자의 사서함 저장소를 사용해 익스체인지 서버로 전달된다.
◆ 지능형 메시지 필터가 메시지에 게이트웨이 임계값보다 낮거나 같은 SCL 등급을 매기면 메시지는 사용자의 사서함 저장소를 사용해 익스체인지 서버로 전달된다.
⑥ 사용자가 아웃룩 2003 또는 익스체인지 2003용 OWA를 사용하고 있는 경우, 사용자의 사서함 저장소가 메시지 SCL 등급과 사용자가 구성한 저장소 임계값을 비교하면 다음 중 하나가 실행된다.
◆ 메시지 등급이 저장소 임계값보다 낮거나 같으면 사서함 저장소는 아웃룩 또는 OWA에서 구성한 사용자의 차단할 보낸 사람 목록을 확인하고 다음 중 하나가 발생한다.
◆ 메시지를 보낸 사람이 아웃룩 또는 OWA에서 구성된 차단할 보낸 사람 목록에 없거나 차단할 보낸 사람 목록이 사용 가능하지 않거나 정의돼 있지 않으면 메시지는 받는 사람의 받은 편지함으로 배달된다.
◆ 보낸 사람이 아웃룩 또는 OWA에서 구성된 차단할 보낸 사람 목록에 있으면 메시지는 사용자의 정크 메일 폴더로 배달된다.
◆ 메시지를 보낸 사람이 아웃룩 또는 OWA에서 구성된 차단할 보낸 사람 목록에 없거나 차단할 보낸 사람 목록이 사용 가능하지 않거나 정의돼 있지 않으면 메시지는 받는 사람의 받은 편지함으로 배달된다.
◆ 보낸 사람이 아웃룩 또는 OWA에서 구성된 차단할 보낸 사람 목록에 있으면 메시지는 사용자의 정크 메일 폴더로 배달된다.
⑦ 메시지 등급이 저장소 임계값보다 높으면 사서함 저장소는 아웃룩 또는 OWA에서 구성된 사용자의 수신 허용-보낸 사람 목록을 확인하고 다음 중 하나가 발생한다.
◆ 보낸 사람이 수신 허용-보낸 사람 목록에 있으면 메시지는 받는 사람의 받은 편지함으로 배달된다.
◆ 보낸 사람이 수신 허용-보낸 사람 목록에 없거나 수신 허용-보낸 사람 목록을 사용할 수 없거나 정의돼 있지 않으면 메시지는 받는 사람의 정크 메일 폴더에 저장된다.
◆ 보낸 사람이 수신 허용-보낸 사람 목록에 없거나 수신 허용-보낸 사람 목록을 사용할 수 없거나 정의돼 있지 않으면 메시지는 받는 사람의 정크 메일 폴더에 저장된다.