Complete Virtual Mail Server/amavisd spamassassin clamav/ko

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

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

도입부
Spam-assassin and ClamAV are the tools to block spam and viruses, however amavis is required to tie this all together. Amavis will actually behave as a mail server in itself, accept mail, filter it, and send it onwards again. For this to work, postfix will need to actually listen for mail twice. The default port 25 is where mail initially is received on. From there on it is sent to amavis, which will be listening on port 10024. When amavis is done with the message, it will be sent to postfix on a different port, 10025. The reason for this should be obvious. If mail would be offered again on port 25, it would be passed to amavis again and thus in an endless loop. Obviously, postfix on port 10025 would only be listening to known hosts, like localhost and not check for spam anymore.

설치
Amavis should have been installed already, if not, emerge it. This should pull in spam-assassin and clamav as its dependencies.

기본 설정
Amavisd offers an enormous amount of options and going over all them will take some time. The configuration file however is well documented and divided into clear sections. Each section will be examined as needed. Only options that will be changed will be mentioned to cut down the text for readability.

For this example amavisd will be running on host foo but this could be any other host as well, amavisd does not require to run on the same host as postfix. Also the domain used is only used to identify the server itself with, not the domains amavisd will be scanning.

The first step, is to disable all actual checks and to enable logging. Also some default values should be setup.

Normally restarting postfix should restart amavisd as well. For now, only amavisd should be started to see if there are any initial problems.

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

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

With this transport in place, it should only listen on localhost and only accept mail from localhost. This should be extended if amavis is run elsewhere, but keep in mind anything is accepted.

Next another transport is added for, which could be considers 'being' amavis in a sense.

After the transport for amavis has been added, smtp should be told to route all mail through amavis. For this two option need to be added to smtpd and change the maxproc to match amavis's.

Restarting both amavisd and postfix then should pass all mail through amavisd.

시험
Sending a message to testuser@example.com remotely and locally should work fine. After the message has arrived, the headers should be checked.

Looking at the mail headers, it should be noticed that it was sent through amavisd and re-delivered to postfix.

Examining the above it is clearly visible that the mail was received by postfix via SMTPS even. It was then forwarded to amavisd on port 10024 via LMTP and finally redelivered to postfix using SMTP again.

도입부
ClamAV is the de facto open source virus scanner for linux. Amavis can be linked to many different free and commercial virus scanners, but here clamav will be used. ClamAV is specifically designed for scanning e-mail. It consists of two parts, clamav itself, and freshclam, the clamav updating service. By default it updates every two hours, which should be enough for anyone.

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

설정
ClamAV will be configured to run in daemonized mode, e.g. it will be listening for connections (from amavisd). The other option (and the default fallback in amavisd) is to have amavisd use the commandline scanner, which is much slower and much much more resource intensive.

ClamAV does not have to be run on the same host, however it is recommended for performance reasons to keep it on the same host, depending on resource usage.

To be able to communicate, clamav needs to be part of amavisd's group.

It always helps to allow clamd to output some debug information.

Also clamd needs some settings setup in its configuration file so that amavis can talk to it.

When running clamav on a hardened kernel, there will be warnings about certain operations not being permitted:

This is expected and okay. ClamAV can run fine without JIT.

Before starting clamav for the first time, the virus database needs to be downloaded. Freshclam is responsible for downloading and keeping the virus database up to date. Freshclam gets automatically started by the clamd startup script, but clamd will fail to start due to a missing database.

Now monitor the clamav log file to see freshclam download the initial virus database.

Now that the database has been updated, restart clamd:

amavisd를 clamav에 연동
Amavisd should connect to the socket of clamd and thus clamav needs to be enabled as one of the main antivirus scanners. The fallback of invoking clamav from the commandline should not be changed. Also the virus check bypass needs to be disabled to be effective.

After restarting amavisd viruses should be able to detected and blocked:

시험
To test whether the virus filter works, an anti-malware testfile exists, sending an e-mail using this string should trigger the virus scanner.

{{CodeBox|title=EICAR-STANDARD-ANTIVIRUS-TEST-FILE| X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* }}

Looking at the file, the following should be revealed:

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

도입부
Spam Assassin is an excellent spam filter. It has become quite complex throughout the years and requires some effort to configure correctly.

설치
There really should be no need to install spamassassin separately. The  USE flag should have pulled it in as a dependency of amavisd-new.

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

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

Spam Assassin comes with the sa-update tool so updates can be fully automated. Spam Assassin updates can be done by using the  flag to ignore gpg keys, but should really only be done as a last resort. Adding the spamassassin GPG key is a simple 2 step process.

After adding the spamassassin update channel, it needs to be updated. After running this command, check for any errors.

Once these updates have completed they need to be compiled for use with Spam Assassin. Also any errors should be spotted here.

Unlike clamav, there is no 'freshassassin' and a cronjob is required to do updates. To keep Spam Assassin up to date, a cronjob should be created for the task.

Making the cronjob executable ensures it runs regularly:

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

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

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

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

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

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

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

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

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

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

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

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

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