본문 바로가기
서버 및 보안

Amavis

by 다움위키 2023. 12. 24.

Amavis전자 우편에 대해 오픈-소스 컨텐츠 필터로, 메일 메시지 전송, 디코딩, 일부 처리 및 확인을 구현하고, 외부 컨텐츠 필터를 스팸바이러스와 기타 맬웨어로부터 보호하기 위해 인터페이스합니다. 그것은 메일러 (MTA, 우편 전달 에이전트)와 하나 이상의 컨텐츠 필터 사이의 인터페이스로 고려될 수 있습니다.

Amavis는 다음으로 사용될 수 있습니다:

  • 메일 메시지에서 바이러스, 스팸, 금지된 컨텐츠 유형 또는 구문 오류 감지
  • 내용, 출처 또는 크기에 따라 메일 차단, 태그-지정, 리다이렉션 (하위-주소-지정 사용) 또는 전달
  • 격리 (및 릴리스) 또는 메일 메시지를 파일, 사서함 또는 관계형 데이터베이스에 보관
  • 외부 살균기를 사용하여 전달된 메시지를 삭제
  • DKIM 서명 생성
  • DKIM 서명 확인 및 DKIM-기반 화이트리스트 제공

주목할 만한 특색:

  • 300개 이상의 변수를 갖는 광범위한 MIB를 사용하여 SNMP 통계 및 상태 모니터링 제공
  • JSON 형식에서 구조화된 이벤트 로그 제공
  • IPv6 프로토콜은 인터페이스에서 지원되고, IPv6 주소는 메일 헤더 섹션에서 형성됩니다.
  • 메시지를 한 번만 검사하면서 다중-수신자 메시지에서도 수신자별 설정을 올바르게 준수합니다.
  • 국제 이메일 (RFC 6530, SMTPUTF8, EAI, IDN) 지원

Amavis와 함께 공통적인 메일 필터링 설치는 MTA로서의 Postfix, 스팸 분류기로서의 SpamAssassin, 안티-바이러스 보호로서의 ClamAV로 구성되고, 모두 유닉스와 같은 운영 시스템 아래에서 실행합니다. 다른 많은 바이러스 스캐너 (약 30개)와 일부 다른 스팸 스캐너 (CRM114, DSPAM, Bogofilter)는 지원되고, 마찬가지로 일부 다른 MTA도 지원됩니다.

Installation

Amavis를 이용하기 위해서는 스팸어쎄신을 먼저 설치하시고, 이 프로그램을 설치하시기 바랍니다. 비록 의존성에 의해 설치가 되더라도, 확인은 하시기 바랍니다.

저장소에 있는 버전을 설치합니다.

  • sudo apt install amavisd-new

Configuration

만약 바이러스 검사하기 원하면, Clam AntiVirus를 먼저 설치하십시오. 그리고 서로 사용자를 등록해야 합니다.

  • sudo adduser clamav amavis
  • sudo adduser amavis clamav

설정을 변경합니다.

  • sudo nano /etc/amavis/conf.d/15-content_filter_mode
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

위 내용을 주석해제합니다.

Postfix 설정은 자동으로 추가됩니다.

  • sudo nano /etc/postfix/master.cf
pickup    unix  n       -       y       60      1       pickup
# 아래 2줄 추가?? (필요없는 것으로 보입니다)
#     -o content_filter=
#     -o receive_override_options=no_header_body_checks

# 아래 내용은 자동으로 추가됩니다.
smtp-amavis unix    -       -       -       -       2     smtp
     -o smtp_data_done_timeout=1200
     -o smtp_send_xforward_command=yes
     -o smtp_tls_note_starttls_offer=no

127.0.0.1:10025 inet n    -       -       -       -     smtpd
     -o content_filter=
     -o smtpd_delay_reject=no
     -o smtpd_client_restrictions=permit_mynetworks,reject
     -o smtpd_helo_restrictions=
     -o smtpd_sender_restrictions=
     -o smtpd_recipient_restrictions=permit_mynetworks,reject
     -o smtpd_data_restrictions=reject_unauth_pipelining
     -o smtpd_end_of_data_restrictions=
     -o smtpd_restriction_classes=
     -o mynetworks=127.0.0.0/8
     -o smtpd_error_sleep_time=0
     -o smtpd_soft_error_limit=1001
     -o smtpd_hard_error_limit=1000
     -o smtpd_client_connection_count_limit=0
     -o smtpd_client_connection_rate_limit=0
     -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters
     -o local_header_rewrite_clients=
     -o smtpd_milters=
     -o local_recipient_maps=
     -o relay_recipient_maps=

서비스를 재시작합니다.

  • sudo systemctl restart amavis
  • sudo systemctl restart postfix

Tests

Spam Test

다음 파일을 받아서 전송해 봅니다.

Mar  8 22:56:29 dawoum amavis[1885]: (01885-18) Blocked SPAM {DiscardedOpenRelay,Quarantined}, [127.0.0.1] <user@email.com> -> <admin@example.com>, quarantine: D/spam-DbgfeUezJxgX.gz, Message-ID: <GTUBE1.1010101@example.net>, mail_id: DbgfeUezJxgX, Hits: 1002.697, size: 930, 452 ms
Mar  8 22:56:29 dawoum postfix/smtp[16764]: DBE01E611B2: to=<admin@example.com>, relay=localhost[127.0.0.1]:10024, delay=0.49, delays=0.03/0.01/0/0.45, dsn=2.7.0, status=sent (250 2.7.0 Ok, discarded, id=01885-18 - spam)
Mar  8 22:56:29 dawoum postfix/qmgr[23795]: DBE01E611B2: removed

Antivirus Test

EICAR 파일을 받습니다.

메일 클라이언트를 설치합니다.

  • sudo apt install mutt

EICAR 파일을 첨부해서 메일을 보내봅니다.

  • echo "Test virus body" | mutt -a eicar.com.txt -s "This is virus" -- admin@example.com
Mar  8 22:58:59 dawoum amavis[1885]: (01885-19) Blocked INFECTED (Eicar-Test-Signature) {DiscardedOpenRelay,Quarantined}, [127.0.0.1] <user@email.com> -> <admin@example.com>, quarantine: N/virus-Nm30FdGekA6r, Message-ID: <20190308135859.GA26827@dawoum.duckdns.org>, mail_id: Nm30FdGekA6r, Hits: -, size: 764, 104 ms
Mar  8 22:58:59 dawoum postfix/smtp[26850]: 8058DE611B2: to=<admin@example.com>, relay=localhost[127.0.0.1]:10024, delay=0.14, delays=0.02/0.01/0/0.1, dsn=2.7.0, status=sent (250 2.7.0 Ok, discarded, id=01885-19 - INFECTED: Eicar-Test-Signature)
Mar  8 22:58:59 dawoum postfix/qmgr[23795]: 8058DE611B2: removed

Troubleshooting

service not running

어느 날 갑자기 작동을 하지 않아서, systemctl를 확인을 하니, 다음 오류 메시지가 나옵니다:

The value of variable $myhostname is "dawoum", but should have been

이것은 원래 /etc/hosts 파일에서 설정을 해 두었는데, 테스트를 위해 해당 값을 변경함으로써 발생한 문제였습니다.

main not transfer

어느 날 갑자기 메일이 동작하지 않습니다. 관련 서비스를 확인하던 중

  • sudo systemctl status amavisd-new.service

(!)Net::Server: 2019/05/05-17:25:17 Can't connect to TCP port 10024 on ::1 [Cannot assign requested address]\n at line 64 in file /usr/share/perl5/Net/Server/Proto/TCP.pm

다음과 같이 설정을 추가해 줍니다.

  • sudo nano /etc/amavis/conf.d/50-user
$inet_socket_bind = '127.0.0.1';
  • sudo systemctl restart amavisd-new.service

External links