이 절에서는 일반적인 몇 가지 SpamAssassin 구성 예를 설명합니다.
이 예에서는 많은 옵션과 키워드를 사용합니다. 12.12.5 스팸 필터 키워드 및 표 14–1을 참조하십시오.
이 예에서는 로컬 메시지 저장소에서 받는 메시지를 테스트하여 스팸을 spam이라는 폴더에 정리합니다. 처음 세 단계는 순서에 관계없이 수행할 수 있습니다.
SpamAssassin 구성 파일을 만듭니다.
이 파일의 이름과 위치는 단계 2에서 지정합니다. spamassassin.opt라는 이름을 사용하는 것이 좋습니다. 이 파일은 다음과 같은 행으로 구성되어 있습니다.
host=127.0.0.1 port=2000 mode=0 verdict=spam debug=1 |
host 및 port는 spamd가 실행 중인 시스템의 이름과 spamd가 받는 요청을 수신하는 포트를 지정합니다. mode=0은 메시지가 스팸으로 간주될 때 verdict에 지정된 문자열이 반환되도록 지정합니다. debug=1은 SpamAssassin 라이브러리에서 디버깅을 설정합니다. 표 14–3을 참조하십시오.
option.dat 파일에 다음 행을 추가합니다.
! for Spamassassin spamfilter1_config_file=/opt/SUNWmsgsr/config/spamassassin.opt spamfilter1_library=/opt/SUNWmsgsr/lib/libspamass.so spamfilter1_optional=1 spamfilter1_string_action=data:,require "fileinto"; fileinto "$U"; |
spamfilter1_config_file은 SpamAssassin 구성 파일을 지정합니다.
spamfilter1_library는 SpamAssassin 공유 라이브러리를 지정합니다.
spamfilter1_optional=1은 spamd에 의한 장애가 있더라도 MTA가 작업을 계속하도록 지정합니다.
spamfilter1_string_action은 스팸 메시지에 대해 수행할 시브(Sieve) 작업을 지정합니다.
이 예에서는 기본값이 이미 data:,require "fileinto"; fileinto "$U";로 설정되어 있기 때문에 spamfilter1_string_action은 필요하지 않습니다. 이 행은 스팸 메시지를 폴더로 보내도록 지정합니다. 폴더 이름은 SpamAssassin에서 반환되는 스팸 답신 값입니다. SpamAssassin에서 반환되는 값은 spamassassin.opt의 verdict 옵션에 의해 지정됩니다. 단계 1을 참조하십시오. 이 경우 폴더 이름은 spam입니다.
필터링할 메시지를 지정합니다.
로컬 메시지 저장소로 들어오는 모든 메시지를 필터링하려면 ims-ms 채널에 destinationspamfilter Xoptin spam 키워드를 추가하여 imta.cnf 파일을 변경합니다.
! ! ims-ms ims-ms defragment subdirs 20 notices 1 7 14 21 28 backoff "pt5m" "pt10m" "pt30m" "pt1h" "pt2h" "pt4h" maxjobs 4 pool IMS_POOL fileinto $U+$S@$D destinationspamfilter1optin spam ims-ms-daemon |
구성을 다시 컴파일하고 서버를 다시 시작합니다. MTA만 다시 시작해야 합니다. stop-msg는 실행할 필요가 없습니다.
# imsimta cnbuild # imsimta restart |
spamd 데몬을 시작합니다. 이 작업은 다음과 같은 일반적인 명령 형식을 사용하여 수행됩니다.
spamd -d
spamd 기본값은 로컬 시스템으로부터의 연결만 허용하는 것입니다. SpamAssassin과 Messaging Server가 서로 다른 시스템에서 실행 중인 경우 이 구문이 필요합니다.
spamd -d -i listen_ip_address -A allowed_hosts
여기서 listen_ip_address는 수신할 주소이고 allowed_hosts는 이 spamd 인스턴스에 연결할 수 있는 인증된 호스트 또는 네트워크(IP 주소 사용)의 목록입니다.
spamd가 모든 주소에서 수신하게 하려면 0.0.0.0을 -i listen_ip_address와 함께 사용할 수 있습니다. 시스템의 IP 주소를 변경할 때 spamfilter X_verdict_n으로 인해 명령 스크립트를 변경할 필요가 없기 때문에 모든 주소를 수신하는 것이 좋습니다.
이 예에서는 SpamAssassin에 의해 스팸으로 확인된 메시지에 Spam-test: result string 헤더를 추가합니다. 다음은 헤더 예입니다.
Spam-test: True ; 7.3 / 5.0
여기서 Spam-test:는 리터럴이고 그 뒤의 모든 항목은 결과 문자열입니다. True는 스팸임을 의미하고 false는 스팸이 아님을 의미합니다. 7.3은 SpamAssassin 점수입니다. 5.0은 임계값입니다. 이 결과는 특정 점수 이상 또는 사이의 메일을 파일로 저장하거나 삭제할 수 있는 시브(Sieve) 필터를 설정할 때 유용합니다.
또한, USE_CHECK를 0으로 설정하면 답신 문자열과 함께 일치하는 SpamAssassin 테스트 목록이 반환됩니다. 표 14–3의 USE_CHECK를 참조하십시오.
필터링할 메시지를 지정합니다. 이 내용은 스팸을 별도의 폴더에 정리의 단계 3에 설명되어 있습니다.
SpamAssassin 구성 파일을 만듭니다.
이 파일의 이름과 위치는 spamfilter_config X_file을 사용하여 지정합니다(다음 단계 참조). 이 파일은 다음과 같은 행으로 구성되어 있습니다.
host=127.0.0.1 port=2000 mode=1 field= debug=1 |
host 및 port는 spamd가 실행 중인 시스템의 이름과 spamd가 받는 요청을 수신하는 포트를 지정합니다. mode=1은 메시지가 스팸으로 확인되는 경우 SpamAssassin 결과 문자열을 반환하도록 지정합니다. field=는 SpamAssasin 결과 문자열의 문자열 접두어를 지정합니다. 이 예에서는 시브(Sieve) 스크립트로 지정하기 때문에 접두어가 필요하지 않습니다. debug=1은 SpamAssassin 라이브러리에서 디버깅을 설정합니다.
option.dat 파일에 다음 행을 추가합니다.
!for Spamassassin spamfilte1r_config_file=/opt/SUNWmsgsr/config/spamassassin.opt spamfilter1_library=/opt/SUNWmsgsr/lib/libspamass.so spamfilter1_optional=1 spamfilter1_string_action=data:,require ["addheader"];addheader "Spam-test: $U"; |
앞의 예와 마찬가지로 처음 세 옵션은 SpamAssassin 구성 파일과 공유 라이브러리를 지정하고 공유 라이브러리에 오류가 있을 경우 MTA 작업을 계속하도록 지정합니다. 다음 행은
spamfilter1_string_action=data:,require ["addheader"];addheader "Spam-test: $U";
스팸 메시지에 헤더를 추가하도록 지정합니다. 헤더에는 SpamAssassin에서 반환되는 문자열 앞에 Spam-text:라는 문자 접두어가 붙습니다. 이전 단계에서 mode=1로 지정했기 때문에 SpamAssassin 결과 문자열이 반환됩니다. 예를 들면 다음과 같습니다. True; 7.3/5.0입니다.
구성을 다시 컴파일하고 서버를 다시 시작한 다음 spamd 데몬을 시작합니다.
14.4.5 SpamAssassin 구성 예를 참조하십시오.
SpamAssassin 결과 문자열을 제목 줄에 추가하여 SpamAssassin 점수로 메시지를 읽을지 여부를 결정할 수 있습니다. 예를 들면 다음과 같습니다.
Subject: [SPAM True ; 99.3 / 5.0] Free Money At Home with Prescription Xanirex!
USE_CHECK를 0으로 설정하면 답신 문자열과 함께 일치하는 SpamAssassin 테스트 목록이 반환됩니다( 14.4.7 SpamAssassin 옵션 참조). 이 목록의 길이가 매우 길 수 있으므로 USE_CHECK를 1로 설정하는 것이 가장 좋습니다.
필터링할 메시지를 지정합니다.
이 내용은 스팸을 별도의 폴더에 정리의 단계 3에 설명되어 있습니다.
SpamAssassin 구성 파일을 만듭니다.
이 단계는 스팸을 별도의 폴더에 정리에 설명되어 있습니다. mode=1은 메시지가 스팸으로 확인되는 경우 SpamAssassin 결과 문자열을 반환하도록 지정합니다.
host=127.0.0.1 port=2000 mode=1 debug=1 |
host 및 port는 spamd가 실행 중인 시스템의 이름과 spamd가 받는 요청을 수신하는 포트를 지정합니다. mode=1은 메시지가 스팸으로 확인되는 경우 SpamAssassin 결과 문자열을 반환하도록 지정합니다. debug=1은 SpamAssassin 라이브러리에서 디버깅을 설정합니다.
option.dat 파일에 다음 행을 추가합니다.
!for Spamassassin spamfilter1_config_file=/opt/SUNWmsgsr/config/spamassassin.opt spamfilter1_library=/opt/SUNWmsgsr/lib/libspamass.so spamfilter1_optional=1 spamfilter1_string_action=data:,addtag “[SPAM detected: $U]”; |
앞의 예와 마찬가지로 처음 세 옵션은 SpamAssassin 구성 파일과 공유 라이브러리를 지정하고 공유 라이브러리에 오류가 있을 경우 MTA 작업을 계속하도록 지정합니다. 다음 행은
spamfilter1_string_action=data:,addtag “[SPAM detected $U]”;
Subject: 행에 태그를 추가하도록 지정합니다. SpamAssassin에서 반환되는 “[result string]” 앞의 field 문자열(기본값: Spam-Test) 앞에 SPAM detected라는 문자 접두어가 있습니다. 14.4.5 SpamAssassin 구성 예에서 mode=1로 지정했기 때문에 SpamAssassin 결과 문자열이 반환됩니다. 따라서, 제목 줄은 다음과 비슷합니다. 따라서, 제목 줄은 다음과 비슷합니다.
Subject: [SPAM detected Spam-Test: True ; 11.3 / 5.0] Make Money!
다음과 같이 addheader와 addtag를 함께 사용할 수도 있습니다.
spamfilter1_string_action=data:,require ["addheader"];addtag "[SPAM detected $U]";addheader "Spamscore: $U";
다음과 비슷한 메시지를 볼 수도 있습니다.
Subject: [SPAM detected Spam-Test: True ; 12.3 / 5.0] Vigaro Now!Spamscore: Spam-Test: True ; 12.3 / 5.0
spamassassin.opt에서 field=를 설정하여 Spam-Test의 기본값을 제거합니다. 더 명확한 메시지가 반환됩니다.
Subject: [SPAM True ; 91.3 / 5.0] Vigaro Now!Spamscore: True ; 91.3 / 5.0
구성을 다시 컴파일하고 서버를 다시 시작한 다음 spamd 데몬을 시작합니다.
스팸을 별도의 폴더에 정리를 참조하십시오.
이 예에서는 SpamAssassin 점수를 기준으로 메시지를 필터링하는 방법을 보여줍니다. 여기서는 spamadjust 및 spamtest 시브(Sieve) 필터 작업을 사용합니다. 이 예에서는 SpamAssassin 점수를 포함하는 헤더가 모든 메시지에 추가됩니다. SpamAssassin 소프트웨어 관리자는 이 헤더를 사용하여 SpamAssassin을 조정하고 스팸 전자 메일 감지 성능을 향상시킬 수 있습니다. 메시지의 SpamAssassin 점수가 5에서 10까지인 경우에는 메시지가 사용자 계정의 spam 폴더에 필터링됩니다. 메시지의 SpamAssassin 점수가 10보다 큰 경우에는 메시지가 삭제됩니다. 기본적으로 SpamAssassin에서는 점수가 5 이상인 메시지를 스팸으로 간주합니다.
필터링할 메시지를 지정합니다.
이 내용은 스팸을 별도의 폴더에 정리의 단계 3에 설명되어 있습니다.
SpamAssassin 구성 파일을 만듭니다.
이 파일의 이름과 위치는 spamfilter_configX_file을 사용하여 지정합니다(다음 단계 참조). 이 파일은 다음과 같은 행으로 구성되어 있습니다.
debug=1 host=127.0.0.1 port=783 mode=2 field= |
host 및 port는 spamd가 실행 중인 시스템의 이름과 spamd가 받는 요청을 수신하는 포트를 지정합니다. mode=2는 점수에 관계 없이 항상 SpamAssassin 결과 문자열을 반환하도록 지정합니다. field=는 SpamAssasin 결과 문자열의 문자열 접두어를 지정합니다. 이 예에서는 시브(Sieve) 스크립트로 지정하기 때문에 접두어가 필요하지 않습니다. debug=1은 SpamAssassin 라이브러리에서 디버깅을 설정합니다.
option.dat 파일에 다음 행을 추가합니다.
! For SpamAssassin spamfilter1_config_file=/opt/SUNWmsgsr/config/spamassassin.opt spamfilter1_library=/opt/SUNWmsgsr/lib/libspamass.so spamfilter1_optional=1 spamfilter1_string_action=data:, require ["addheader","spamtest"]; \ spamadjust "$U"; addheader "Spam-test: $U" |
앞의 예와 마찬가지로 처음 세 행은 SpamAssassin 구성 파일과 공유 라이브러리를 지정하고 공유 라이브러리에 오류가 있을 경우 MTA 작업을 계속하도록 지정합니다. 마지막 두 행에서는 spamtest 작업에 사용되는 SpamAssassin($U) 반환 문자열에서 SpamAssassin 점수를 추출하고 모든 메시지에 스팸 점수 헤더를 추가하도록 지정합니다(예: Spam-test: True; 7.3/5.0).
스팸 점수를 기준으로 전자 메일을 처리하는 채널 수준 필터를 만듭니다.
채널 수준 필터 만들기를 참조하십시오. 해당 파일에 다음 규칙을 추가합니다.
require ["spamtest","relational","comparator-i;ascii-numeric","fileinto"]; if spamtest :value "ge" :comparator "i;ascii-numeric" "10" {discard;} elsif spamtest :value "ge" :comparator "i;ascii-numeric" "5" {fileinto "spam";} else {keep;} |
두 번째 행에서는 SpamAssassin 점수가 10 이상인 경우 스팸 전자 메일을 삭제합니다. 세 번째 행에서는 점수가 5 이상인 경우 전자 메일을 사용자의 "spam" 폴더에 파일로 보관합니다. 마지막 행 else {keep;}에서는 점수가 5 미만인 모든 메시지를 보관합니다.
구성을 다시 컴파일하고 서버를 다시 시작한 다음 spamd 데몬을 시작합니다.
스팸을 별도의 폴더에 정리의 마지막 단계를 참조하십시오.