Complete Virtual Mail Server/amavisd spamassassin clamav/ko

도입부
스팸은 인터넷에서 더욱 문제가 될것이며 견고하고 탄탄한 해결책이 필요합니다. 스팸을 차단하는 유료 서비스가 있지만 필수는 아니며 이 글에서 언급하지 않겠습니다.

Postfix
방어의 최전선은 postfix 그 자체입니다. postfix는 스팸 또는 스패머를 차단하는 몇가지 기본 수단을 제공합니다. 를 활용하면 공개 DNS 블랙리스트를 활용할 수 있습니다. 다른 곳에 포함할 수 있는 DNS 블랙리스트는 세가지가 있습니다. 이 중 두가지는 상당히 정확한en 리스트입니다. 가장 중요한 한가지는 zen.spamhaus.org에 있으며 bl.spamcop.net 에 있는 목록을 백업으로 사용할 수 있습니다. 이들 목록을 postfix와 사용하는 방법은 매우 단순합니다. 이 도메인을 파일에서   설정에 추가하면됩니다:

도입부
스팸 어쌔신과 ClamAV는 스팸과 바이러스를 차단하는 도구입니다만, amavis로 이들을 함께 묶어야합니다. amavis는 실제로 메일 서버처럼 동작하고, 메일을 받아들이며, 검사하고, 실제 메일 서버로 다시 보냅니다. 이 동작을 처리하려면 postfix에서 메일을 다시 받기 위해 실제로 대기해야합니다. 기본 25번 포트는 메일을 처음에 받는 경로입니다. 이 포트에서 10024번 포트를 쓰는 amavis로 보냅니다. amavis가 메시지를 잘 처리했다면 postfix의 다른 10025번 포트로 보냅니다. 이유는 명백합니다. 메일을 25번 포트에서만 받는다면 amavis로 다시 넘기고, 이 과정은 끊임없이 반복합니다. 분명히 10025번 포트에서 대기중인 postfix는 localhost와 같이 알고 있는 호스트에 대해 대기하며 더이상 스팸을 검사하지 않습니다.

설치
amavis는 이미 설치를 했어야 합니다만, 아직 설치하지 않았다면 이머지하십시오. 스팸 어쌔신과 clamav를 의존 요소로 끌어와야합니다.

기본 설정
amavisd는 오류 투성이 옵션을 제공하며, 처리하려면 시간이 좀 걸립니다. 허나,  설정 파일에 설명이 잘 되어 있으며, 분명하게 섹션으로 나뉘어 있습니다. 각 섹션은 필요한대로 살펴봅니다. 바꿔야 할 옵션은 가독성을 보장하기 위해 부분 부분 나누어서 언급합니다.

예를 들어 amavisd를 foo 호스트에서 실행하지만 마찬가지로 다른 호스트에서도 동작한다면 amavisd는 postfix 실행 호스트와 동일한 호스트에서 실행할 필요가 없습니다. 또한 사용하는 도메인은 서버 자체를 식별하는 용도로만 사용하며, amavisd가 도메인을 검사하려고 하는건 아닙니다.

처음에는 실제 모든 검사를 비활성화하고 기록을 활성화하십시오. 또한 일부 기본값을 설정하십시오.

보통 postfix를 다시 시작하면 amavisd도 다시 시작합니다. 이제 amavisd에 초기 문제가 있는지 확인하기 위해 amavisd만 시작해야합니다.

amavisd를 Postfix에 연동
amavisd가 근본 동작 모드로 동작하면 이론적으로 메일을 그대로 통과시킵니다 postfix -> amavisd -> postfix 바인딩 시험은 완벽하게 이루어집니다.

우선, amavis가 메일을 넣을 2차 postfix 전송 단을 추가합니다. 대부분 옵션은 이미 확인을 했거나 아니면 혼동할 수 있으니, 빈 값이 기본값입니다.

적재 적소에 전달할 때, localhost에서만 대기해야 하며, localhost에서 온 메일만 허용해야합니다. amavis를 다른 곳에서도 동작할 때 확장 해야겠지만, 어떤 내용이든 받아야합니다.

amavis가 어느정도 '존재함'을 고려할 수 있는 대상에 대해 다른 전송 과정을 추가합니다.

amavis 전송 단계를 추가하고 나면 smtp는 amavis를 통해 모든 메일이 지정 경로를 돌도록 안내받아야합니다. 이를 처리하기 위해 smtpd에 두가지 옵션을 추가하고 amavis의 maxproc 값을 바꿔야합니다.

amavisd와 postfix를 다시 시작한 후 amavisd를 통해 모든 메일을 전달하게 하십시오.

시험
testuser@example.com 로 원격/로컬의 메시지 전달이 제대로 동작해야합니다. 메시지가 도착하면 헤더를 확인해야합니다.

메일 헤더를 살펴보십시오. amavisd로 보냈으며 postfix에서 다시 전달했음을 보여줍니다.

위 내용을 확인할 때 SMTPS로 postfix에서 받은 내용까지 보여줍니다. 다음 LMTP 10024번 포트를 통해 amavisd로 전달하며, 마지막으로 SMTP를 다시 활용하여 postfix로 다시 전달합니다.

도입부
ClamAV는 사실상 리눅스용 오픈 소스 기반 바이러스 검색기입니다. Amavis는 자유 버전과 상업용 바이러스 검색기를 연동할 수 있지만 clamav를 사용합니다. ClamAV는 전자메일을 검색하도록 설계했습니다. clamav 자체와 freshclam, 그리고 clamav 업데이트 서비스 두 부분으로 나뉩니다. 기본적으로 두시간에 한번씩 충분히 업데이트합니다.

설치
ClamAV는 이미 설치했어야하지만, 설치하지 않았다면 이머지해야합니다.

설정
ClamA를 데몬 모드로 실행하도록 설정하겠습니다(예: 연결 감시). 다른 옵션(과 amavisd의 기본 대체 모드)은 amavisd를 명령행 검색기로 활용하도록 하는 건데, 매우 느리며 시스템 자원을 집중적으로 엄청나게 먹습니다.

ClamAV는 동일한 호스트에서 실행하면 안되지만, 자원 사용량에 따라 성능 문제로 동일한 호스트에서 실행하도록 내버려두는 것을 추천합니다.

상호 소통을 가능하게 하려면, clamav를 amavisd 그룹에 넣어야합니다.

다음 설정은 clamd가 일부 디버깅 정보를 출력할 수 있게 합니다.

또한 clamd는 설정 파일에서 일부 설정을 처리하여 amavis와 상호 연동할 수 있게 해야합니다.

clamav를 보안을 강화한 커널에서 실행할 때, 일부 동작을 실행할 수 없다는 경고를 만납니다:

기대하던 동작이고 문제 없습니다. ClamAV는 JIT 없이 멀쩡하게 실행할 수 있습니다.

clamav를 처음 시작하기 전에 바이러스 데이터베이스를 다운로드해야합니다. Freshclam은 바이러스 데이터베이스를 다운로드하고 최신으로 유지하는 역할을 수행합니다. Flashclam은 clamd 시작 스크립트로 자동으로 시작하지만, clamd는 데이터베이스가 없어 시작에 실패할 것입니다.

이제 clamav 로그 파일을 살펴보고 freshclam이 초기 바이러스 데이터베이스를 다운로드한 기록을 살펴보십시오.

이제 데이터베이스를 업데이트했으니, clamd를 다시 시작하십시오:

amavisd를 clamav에 연동
alavisd는 clamd 소캣으로 연결해야하며, clamav는 주요 바이러스 검사기중 하나로 활성화해야 합니다. clamav를 명령행에서 실행하는 대안을 바꾸면 안됩니다. 또한 바이러스 검사 과정을 분명히 건너뛰지 못하게 해야합니다.

amavisd를 다시 시작하고 나면 바이러스를 발견하고 차단해야합니다:

시험
바이러스 필터가 동작하는지 시험할 때, 멀웨어 방지 시험 파일이 있는데, 전자메일을 보낼 때 이 문자열을 이용하고 바이러스 검색기를 실행해야합니다.

파일을 살펴보면, 다음 내용이 나타납니다:

이론적으로, 바이러스 검색기는 완전한 기능을 수행해야합니다.

도입부
스팸 어쌔신은 멋진 스팸 필터입니다. 해를 거듭해가면서 복잡해졌으며 올바르게 설정하는 노력이 필요합니다.

설치
정말로 스팸 어쌔신을 따로 설치할 필요가 없습니다. USE 플래그를 설정하면 amavisd-new의 의존성 항목으로 끌어옵니다.

설정
기본 설정은 표준 용도를 만족합니다.

업데이트
스팸 어쌔신의 핵심 기능은 자체 업데이트입니다. 업데이트는 업데이트 채널에서 관리합니다.

스팸 어쌔신은 도구를 보유하고 있어 업데이트를 완전히 자동화할 수 있습니다. 스팸 어쌔신은  플래그를 사용하여 GPG 키를 무시할 수 있지만, 최종 안착지에 도달한 것처럼 끝내야합니다. 스팸 어쌔신 GPG 키를 추가하는 과정은 간단한 두 단계를 거칩니다.

스팸 어쌔신 업데이트 채널을 추가하고 나면 업데이트해야합니다. 이 명령을 실행하고 나서 오류를 확인하십시오.

업데이트를 끝내고 나서 스팸 어쌔신을 활용하려면 컴파일해야합니다. 또한 여기서 오류도 잡아야합니다.

clamav와는 달리 'freshassasin'이 없으며 업데이트를 처리할 크론 작업이 필요합니다. 스팸 어쌔신을 최신으로 유지하려면, 크론 작업을 만들어야합니다.

크론 작업이 제대로 동작하도록 실행 가능하게 하십시오:

amavisd를 스팸 어쌔신에 연동
실제로, 스팸 어쌔신은 amavisd로 연동할 필요가 없으며, amavisd의 통합 부분입니다. amavisd에서 스팸 차단을 활성화하면 스팸 차단 역할을 수행합니다.

이 값을 바꿨으면 amavisd를 다시 시작해야합니다:

시험
스팸 필터를 붙이지 않은 25번 포트에 클라이언트를 연결하면 시험을 다시금 진행합니다. GTUBE를 시험 데이터로 사용할 수 있습니다. 해당 사이트에는 RFC-822 형식의 적당한 메일 메시지가 있습니다.

시험 사용자의 받은 편지함 또는 스팸 메일함 같은 곳을 확인하시면 메시지와 시험 과정을 거친 헤더를 찾을 수 있습니다:

Amavisd 최적화
Amavis는 세밀하게 설정할 수 있는 몇가지 더 많은 설정 항목이 있습니다.

수신자 구분 문자
postfix를 와 활용할 때, amavisd는 이 기능을 사용하도록 알릴 수 있습니다.

에 다음 내용을 추가하는게 좋아보일텐데, 이렇게 설정하지 않으면 user+foo@domain 도메인에 전달하지 않습니다:

분산 격리
여러 하위 디렉터리에 분산 격리할 수 있습니다. 진행하려면 디렉터리를 먼저 만들어야합니다:

또한, 스팸 처리 기준 레벨 설정은 저장하는 스팸 메일 양 감소에 도움이 됩니다. 기준 레벨은 스팸 가중치를 상회하는 스팸 메일을 저장하지 않게 합니다.

스팸 배달
의 기본 값은 이며, 가중치가 높은 대상을 스팸으로 간주하고, 그래도 사용자 메일함에 배달함을 의미합니다. 최근 스팸 어쌔신을 신뢰하는 메일 클라이언트는 자동으로 스팸 폴더로 이동합니다.

Bayes 데이터베이스 경로
스팸 어쌔신 설정 파일의  옵션을 설정하여 sa-learn같은 도구가 올바른 데이터베이스 위치에 기록할 수 있도록 하십시오.

가상 호스트
서버에서 하나 이상의 도메인을 다룬다면, amavis에 알려 여기서 도움을 받을 수 있습니다.

정리
기대한 바대로 스팸 어쌔신과 ClamAV가 동작한다면, 디버깅 정보 표시를 보통 최소화하여 줄일 수 있습니다.