웹사이트 검색

ClamAV 및 SpamAssassin을 사용하여 Postfix 메일 서버에 바이러스 백신 및 스팸 방지 기능을 추가하는 방법 - 3부


Postfix 시리즈의 이전 두 기사에서는 phpMyAdmin을 통해 이메일 서버 데이터베이스를 설정 및 관리하는 방법과 수신 및 발신 메일을 처리하도록 Postfix 및 Dovecot을 구성하는 방법을 배웠습니다. 그리고 앞서 생성한 가상계좌에 대해 썬더버드 등의 메일 클라이언트를 설정하는 방법에 대해서도 설명했습니다.

  1. MariaDB를 사용하여 Postfix 메일 서버 및 Dovecot 설정 – 1부
  2. 가상 도메인 사용자로 Postfix 및 Dovecot을 구성하는 방법 – 2부
  3. Postfix의 가상 사용자를 사용하여 RoundCube 웹메일 클라이언트 설치 및 구성 – 4부
  4. 바이러스 백신/스팸 방지 게이트웨이인 Sagator를 사용하여 메일 서버 보호 - 5부

바이러스 및 스팸에 대한 예방 조치 없이는 이메일 서버 설정을 완료할 수 없으므로 현재 기사에서 해당 주제를 다루겠습니다.

*nix 계열 운영 체제에 일반적으로 바이러스가 없는 것으로 간주되더라도 다른 운영 체제를 사용하는 클라이언트도 이메일 서버에 연결할 가능성이 있다는 점을 명심하세요.

따라서 그러한 위협으로부터 가능한 한 보호하기 위해 필요한 조치를 취했다는 확신을 제공해야 합니다.

Postfix용 SpamAssassin 구성

이메일을 수신하는 과정에서 spamassassin은 외부 세계와 서버 자체에서 실행되는 이메일 서비스 사이에 서게 됩니다. 정의 규칙 및 구성에 따라 수신 메시지가 스팸인 것으로 확인되면 스팸임을 명확하게 식별하기 위해 제목 줄을 다시 작성합니다. 방법을 살펴보겠습니다.

기본 구성 파일은 /etc/mail/spamassassin/local.cf이며, 다음 옵션을 사용할 수 있는지 확인해야 합니다(없으면 추가하거나 필요한 경우 주석 처리를 제거합니다).

report_safe 0
required_score 8.0
rewrite_header Subject [SPAM]
  1. report_safe0(권장 값)으로 설정된 경우 수신 스팸은 rewrite_header에 따라 이메일 헤더를 수정해야만 수정됩니다. 1로 설정하면 메시지가 삭제됩니다.
  2. 스팸 필터의 강도를 설정하려면 required_score 뒤에 정수나 십진수가 와야 합니다. 숫자가 작을수록 필터가 더 민감해집니다. required_score8.0에서 10.0 사이의 값으로 설정하는 것은 많은 (~100초)를 서비스하는 대규모 시스템에 권장됩니다. 이메일 계정.

변경 사항을 저장한 후 스팸 필터 서비스를 활성화하고 시작한 다음 스팸 규칙을 업데이트하세요.

systemctl enable spamassassin
systemctl start spamassassin
sa-update

더 많은 구성 옵션을 보려면 명령줄에서 perldoc Mail::SpamAssassin::Conf를 실행하여 설명서를 참조하세요.

Postfix와 SpamAssassin 통합

Postfix와 spamassassin을 효율적으로 통합하려면 스팸 필터 데몬을 실행할 전용 사용자와 그룹을 만들어야 합니다.

useradd spamd -s /bin/false -d /var/log/spamassassin

그런 다음 /etc/postfix/master.cf 하단에 다음 줄을 추가합니다.

spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

그리고 spamassassin이 content_filter 역할을 한다는 것을 (상단에) 표시합니다.

-o content_filter=spamassassin

마지막으로 Postfix를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart postfix

SpamAssassin이 제대로 작동하고 수신 스팸을 감지하는지 확인하기 위해 GTUBE(원치 않는 대량 이메일에 대한 일반 테스트)라는 테스트가 제공됩니다.

이 테스트를 수행하려면 네트워크 외부 도메인(예: Yahoo!, Hotmail 또는 Gmail)에서 이메일 서버에 있는 계정으로 이메일을 보내세요. 제목 줄을 원하는 대로 설정하고 메시지 본문에 다음 텍스트를 포함합니다.

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

예를 들어, 내 Gmail 계정에서 메시지 본문에 위의 텍스트를 보내면 다음과 같은 결과가 나타납니다.

그리고 로그에 해당 알림이 표시됩니다.

journalctl | grep spam

위 이미지에서 볼 수 있듯이 이 이메일 메시지의 스팸 점수는 1002.3입니다. 또한 명령줄에서 바로 spamassassin을 테스트할 수 있습니다.

spamassassin -D < /usr/share/doc/spamassassin-3.4.0/sample-spam.txt

위 명령은 다음을 포함하는 매우 자세한 출력을 생성합니다.

이러한 테스트가 성공하지 못하면 spamassassin 통합 가이드를 참조할 수 있습니다.

ClamAV 시작 및 바이러스 정의 업데이트

시작하려면 /etc/clamd.d/scan.conf를 편집해야 합니다. 다음 줄의 주석 처리를 해제합니다.

LocalSocket /var/run/clamd.scan/clamd.sock

해당 줄을 주석 처리하거나 삭제합니다.

Example

그런 다음 clamav 스캐너 데몬을 활성화하고 시작합니다.

systemctl enable [email 
systemctl start [email 

antivirus_can_scan_system SELinux 부울을 1로 설정하는 것을 잊지 마세요.

setsebool -P antivirus_can_scan_system 1

이 시점에서는 서비스 상태를 확인하는 것이 좋습니다.

위 이미지에서 볼 수 있듯이 바이러스 서명은 7일보다 오래되었습니다. 이를 업데이트하기 위해 clamav-update 패키지의 일부로 설치된 freshclam이라는 도구를 사용합니다.

바이러스 정의를 업데이트하는 가장 쉬운 방법은 원하는 만큼 자주 실행되는 크론 작업을 이용하는 것입니다(예를 들어 다음 예에 표시된 서버 시간 오전 1시는 하루에 한 번이면 충분하다고 간주됩니다).

00 01 * * * root /usr/share/clamav/freshclam-sleep

바이러스 정의를 수동으로 업데이트할 수도 있지만 그 전에 /etc/freshclam.conf에서 다음 줄을 제거하거나 주석 처리해야 합니다.

Example

이제 다음을 실행할 수 있습니다.

freshclam

그러면 원하는 대로 바이러스 정의가 업데이트됩니다.

이메일에서 ClamAV의 바이러스 테스트

ClamAV가 제대로 작동하는지 확인하려면 테스트 바이러스(http://www.eicar.org/download/eicar.com에서 다운로드할 수 있음)를 [email ( /home/vmail/linuxnewz.com/tecmint/Maildir에 있음) 메일 첨부 파일로 받은 감염된 파일을 시뮬레이션합니다.

cd /home/vmail/linuxnewz.com/tecmint/Maildir
wget http://www.eicar.org/download/eicar.com

그런 다음 /home/vmail/linuxnewz.com 디렉토리를 재귀적으로 검색합니다.

clamscan --infected --remove --recursive /home/vmail/linuxnewz.com

이제 cronjob을 통해 실행되도록 이 스캔을 설정해 보세요. /etc/cron.daily/dailyclamscan이라는 파일을 만들고 다음 줄을 삽입합니다.

#!/bin/bash
SCAN_DIR="/home/vmail/linuxnewz.com"
LOG_FILE="/var/log/clamav/dailyclamscan.log"
touch $LOG_FILE
/usr/bin/clamscan --infected --remove --recursive $SCAN_DIR >> $LOG_FILE

실행 권한을 부여합니다.

chmod +x /etc/cron.daily/dailyclamscan

위 cronjob은 메일 서버 디렉토리를 재귀적으로 스캔하고 /var/log/clamav/dailyclamscan.log에 작업 로그를 남깁니다(/var/log/clamav 를 확인하세요). 디렉터리가 존재합니다).

[email 에서 [email eicar.com 파일을 보내면 어떻게 되는지 살펴보겠습니다.

요약

이 튜토리얼과 이 시리즈의 이전 두 기사에 설명된 단계를 따랐다면 이제 스팸 및 바이러스 백신 보호 기능을 갖춘 작동하는 Postfix 이메일 서버가 있습니다.

면책조항: 서버 보안은 광범위한 주제이므로 이와 같은 짧은 시리즈에서 적절하게 다룰 수 없다는 점에 유의하세요.

이러한 이유로 이 시리즈와 매뉴얼 페이지에서 사용되는 도구에 익숙해지기를 적극 권장합니다. 이 주제와 관련된 필수 개념을 다루기 위해 최선을 다했지만 이 시리즈를 살펴본 후에 프로덕션 환경에서 전자 메일 서버를 설정하고 유지 관리할 수 있는 자격을 완전히 갖추었다고 가정하지 마십시오.

이 시리즈는 Linux의 메일 서버 관리에 대한 철저한 안내서가 아닌 시작점으로 작성되었습니다.

당신은 아마도 이 시리즈를 풍성하게 할 수 있는 다른 아이디어를 생각할 것입니다. 그렇다면 아래 의견 양식을 사용하여 언제든지 메모를 남겨주세요. 질문이나 기타 제안 사항도 환영합니다. 여러분의 연락을 기다리겠습니다!