기계적 인조 인간

rspamd 설치 및 통합

BitNotice #108 - Rspamd: Server-SPAM-Filter mit Postfix

BitNotice #108 - Rspamd: Server-SPAM-Filter mit Postfix

차례:

Anonim

이것은 메일 서버 설정 및 구성의 세 번째 부분입니다. 이 자습서에서는 Rspamd 스팸 필터링 시스템의 설치 및 구성과 메일 서버로의 통합을 통해 DKIM 및 DMARC DNS 레코드를 만듭니다.

Spamassassin이 아닌 Rspamd를 선택하는 이유를 물을 수 있습니다. Rspamd는 C에서보다 적극적으로 유지 관리되고 작성되며 Perl로 작성된 Spamassassin보다 훨씬 빠릅니다. 또 다른 이유는 Rspamd에 DKIM 서명 모듈이 포함되어 있기 때문에 발신 이메일에 서명하기 위해 다른 소프트웨어를 사용할 필요가 없기 때문입니다.

전제 조건

이 학습서를 계속하기 전에 sudo 권한이있는 사용자로 로그인했는지 확인하십시오.

Redis 설치

Redis는 Rspamd에서 스토리지 및 캐싱 시스템으로 사용되어 설치됩니다.

sudo apt install redis-server

언 바운드 설치

언 바운드는 매우 안전한 유효성 검사, 재귀 및 캐싱 DNS 확인자입니다.

이 서비스를 설치하는 주요 목적은 외부 DNS 요청 수를 줄이는 것입니다. 이 단계는 선택 사항이며 건너 뛸 수 있습니다.

sudo apt update sudo apt install unbound

기본 언 바운드 설정은 대부분의 서버에 충분해야합니다.

서버 기본 DNS 확인 자로 언 바운드를 설정하려면 다음 명령을 실행하십시오.

sudo echo "nameserver 127.0.0.1" >> /etc/resolvconf/resolv.conf.d/head sudo resolvconf -u resolvconf 를 사용하지 않는 경우 /etc/resolv.conf 파일을 수동으로 편집해야합니다.

Rspamd 설치

공식 저장소에서 최신 안정 버전의 Rspamd를 설치합니다.

필요한 패키지를 설치하여 시작하십시오.

sudo apt install software-properties-common lsb-release sudo apt install lsb-release wget

다음 wget 명령을 사용하여 저장소 GPG 키를 적절한 소스 키링에 추가하십시오.

wget -O- https://rspamd.com/apt-stable/gpg.key | sudo apt-key add -

다음을 실행하여 Rspamd 저장소를 활성화하십시오.

echo "deb http://rspamd.com/apt-stable/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/rspamd.list

리포지토리가 활성화되면 다음 명령을 사용하여 패키지 인덱스를 업데이트하고 Rspamd를 설치하십시오.

sudo apt update sudo apt install rspamd

Rspamd 구성

스톡 구성 파일을 수정하는 대신 /etc/rspamd/local.d/local.d/ 디렉토리에 기본 설정을 덮어 쓰는 새 파일을 만듭니다.

기본적으로 Rspamd의 normal worker 는 전자 메일 메시지를 검사하는 작업자가 포트 11333의 모든 인터페이스에서 수신 대기합니다. 다음 파일을 작성하여 localhost 인터페이스 만 수신하도록 Rspamd 일반 작업자를 구성하십시오.

/etc/rspamd/local.d/worker-normal.inc

bind_socket = "127.0.0.1:11333";

proxy worker 는 포트 11332에서 수신 대기하며 더 많은 프로토콜을 지원합니다. Postfix가 Rspamd와 통신하려면 milter 모드를 활성화해야합니다.

/etc/rspamd/local.d/worker-proxy.inc

bind_socket = "127.0.0.1:11332"; milter = yes; timeout = 120s; upstream "local" { default = yes; self_scan = yes; }

다음으로 Rspamd 웹 인터페이스에 대한 액세스를 제공하는 controller worker 서버의 암호를 설정해야합니다. 암호화 된 비밀번호를 생성하려면 다음을 실행하십시오.

rspamadm pw --encrypt -p P4ssvv0rD

출력은 다음과 같아야합니다.

$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb 비밀번호 ( P4ssvv0rD )를보다 안전한 것으로 변경하는 것을 잊지 마십시오.

터미널에서 비밀번호를 복사하여 구성 파일에 붙여 넣으십시오.

/etc/rspamd/local.d/worker-controller.inc

password = "$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb";

나중에 Rgind 웹 인터페이스에 액세스 할 수 있도록 Nginx를 컨트롤러 작업자 웹 서버에 대한 리버스 프록시로 구성합니다.

classifier-bayes.conf 파일에 다음 행을 추가하여 Redis를 Rspamd 통계의 백엔드로 설정하십시오.

/etc/rspamd/local.d/classifier-bayes.conf

servers = "127.0.0.1"; backend = "redis";

milter_headers.conf 파일을 열고 milter 헤더를 설정하십시오:

/etc/rspamd/local.d/milter_headers.conf

use =;

밀터 헤더에 대한 자세한 정보는 여기에서 찾을 수 있습니다.

마지막으로 Rspamd 서비스를 다시 시작하여 변경 사항을 적용하십시오.

sudo systemctl restart rspamd

Nginx 구성

이 시리즈의 첫 번째 부분에서는 PostfixAdmin 인스턴스를위한 Nginx 서버 블록을 만들었습니다.

Nginx 구성 파일을 열고 노란색으로 강조 표시된 다음 위치 지시문을 추가하십시오.

/etc/nginx/sites-enabled/mail.linuxize.com.conf

… location /rspamd { proxy_pass http://127.0.0.1:11334/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }…

변경 사항을 적용하려면 Nginx 서비스를 다시로드하십시오.

sudo systemctl reload nginx

https://mail.linuxize.com/rspamd/ https://mail.linuxize.com/rspamd/ 하여 rspamadm pw 명령을 사용하여 이전에 생성 한 비밀번호를 입력하면 Rspamd 웹 인터페이스가 표시됩니다.

접미사 구성

Rspamd Milter를 사용하려면 Postfix를 구성해야합니다.

다음 명령을 실행하여 Postfix 기본 구성 파일을 업데이트하십시오.

sudo postconf -e "milter_protocol = 6" sudo postconf -e "milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}" sudo postconf -e "milter_default_action = accept" sudo postconf -e "smtpd_milters = inet:127.0.0.1:11332" sudo postconf -e "non_smtpd_milters = inet:127.0.0.1:11332" sudo postconf -e "smtpd_milters = inet:127.0.0.1:11332" sudo postconf -e "non_smtpd_milters = inet:127.0.0.1:11332"

변경 사항을 적용하려면 Postfix 서비스를 다시 시작하십시오.

sudo systemctl restart postfix

비둘기장 구성

이 시리즈의 두 번째 부분에서 Dovecot을 이미 설치 및 구성했으며 이제 sieve 필터링 모듈을 설치하고 Dovecot을 Rspamd와 통합합니다.

Dovecot 필터링 모듈을 설치하여 시작하십시오.

sudo apt install dovecot-sieve dovecot-managesieved

패키지가 설치되면 다음 파일을 열고 노란색으로 강조 표시된 줄을 편집하십시오.

/etc/dovecot/conf.d/20-lmtp.conf

… protocol lmtp { postmaster_address = [email protected] mail_plugins = $mail_plugins sieve }… /etc/dovecot/conf.d/20-imap.conf

… protocol imap {… mail_plugins = $mail_plugins imap_quota imap_sieve… }… /etc/dovecot/conf.d/20-managesieve.conf

… service managesieve-login { inet_listener sieve { port = 4190 }… }… service managesieve { process_limit = 1024 }… /etc/dovecot/conf.d/90-sieve.conf

plugin {… # sieve = file:~/sieve;active=~/.dovecot.sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_before = /var/mail/vmail/sieve/global/spam-global.sieve sieve = file:/var/mail/vmail/sieve/%d/%n/scripts;active=/var/mail/vmail/sieve/%d/%n/active-script.sieve imapsieve_mailbox1_name = Spam imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_before = file:/var/mail/vmail/sieve/global/report-spam.sieve imapsieve_mailbox2_name = * imapsieve_mailbox2_from = Spam imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_before = file:/var/mail/vmail/sieve/global/report-ham.sieve sieve_pipe_bin_dir = /usr/bin sieve_global_extensions = +vnd.dovecot.pipe…. }

파일을 저장하고 닫습니다.

시브 (sieve) 스크립트 용 디렉토리를 작성하십시오.

mkdir -p /var/mail/vmail/sieve/global

스팸으로 표시된 이메일을 Spam 디렉토리로 이동하려면 글로벌 체 필터를 작성하십시오.

/var/mail/vmail/sieve/global/spam-global.sieve

require; if anyof(header:contains "YES", header:contains "Yes", header:contains "*** SPAM ***") { fileinto:create "Spam"; stop; }

Spam 디렉토리 안팎으로 전자 메일을 이동할 때마다 다음 두 개의 체 스크립트가 트리거됩니다.

/var/mail/vmail/sieve/global/report-spam.sieve

require; pipe:copy "rspamc"; /var/mail/vmail/sieve/global/report-ham.sieve

require; pipe:copy "rspamc";

변경 사항을 적용하려면 Dovecot 서비스를 다시 시작하십시오.

sudo systemctl restart dovecot

시브 (sieve) 스크립트를 컴파일하고 올바른 권한을 설정하십시오.

sievec /var/mail/vmail/sieve/global/spam-global.sieve sievec /var/mail/vmail/sieve/global/report-spam.sieve sievec /var/mail/vmail/sieve/global/report-ham.sieve sudo chown -R vmail: /var/mail/vmail/sieve/

DKIM 키 생성

DKIM (DomainKeys Identified Mail)은 암호화 서명을 아웃 바운드 메시지 헤더에 추가하는 이메일 인증 방법입니다. 수신자는 특정 도메인에서 발생한다고 주장하는 이메일이 해당 도메인의 소유자에 의해 실제로 승인되었는지 확인할 수 있습니다. 이것의 주요 목적은 위조 된 전자 메일 메시지를 방지하는 것입니다.

모든 도메인에 대해 서로 다른 DKIM 키를 가질 수 있고 단일 도메인에 대해 여러 키를 가질 수도 있지만이 기사를 단순화하기 위해 나중에 모든 새 도메인에 사용할 수있는 단일 DKIM 키를 사용할 것입니다.

rspamadm 유틸리티를 사용하여 DKIM 키를 저장할 새 디렉토리를 만들고 새 DKIM 키 쌍을 생성하십시오.

sudo mkdir /var/lib/rspamd/dkim/ rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub

위의 예에서는 mail 을 DKIM 선택기로 사용하고 있습니다.

이제 /var/lib/rspamd/dkim/ 디렉토리에 개인 키 파일 인 mail.pub 와 DKIM 공개 키를 포함하는 mail.pub 파일에 두 개의 새 파일이 있어야합니다. 나중에 DNS 영역 레코드를 업데이트 할 것입니다.

올바른 소유권과 권한을 설정하십시오.

sudo chown -R _rspamd: /var/lib/rspamd/dkim sudo chmod 440 /var/lib/rspamd/dkim/*

이제 Rspamd에게 DKIM 키를 찾을 위치, 선택기 이름 및 마지막 줄에서 별칭 보낸 사람 주소에 대한 DKIM 서명을 활성화해야합니다. 그렇게하려면 다음 내용으로 새 파일을 작성하십시오.

/etc/rspamd/local.d/dkim_signing.conf

selector = "mail"; path = "/var/lib/rspamd/dkim/$selector.key"; allow_username_mismatch = true;

Rspamd는 또한 ARC (Authenticated Received Chain) 서명에 대한 서명을 지원합니다. ARC 사양에 대한 자세한 내용은 여기를 참조하십시오.

Rspamd는 이전 구성을 간단히 복사 할 수 있도록 ARC 서명을 처리하기 위해 DKIM 모듈을 사용하고 있습니다.

sudo cp /etc/rspamd/local.d/dkim_signing.conf /etc/rspamd/local.d/arc.conf

변경 사항을 적용하려면 Rspamd 서비스를 다시 시작하십시오.

sudo systemctl restart rspamd

DNS 설정

이미 DKIM 키 페어를 만들었으므로 이제 DNS 영역을 업데이트해야합니다. DKIM 공개 키는 mail.pub 파일에 저장됩니다. 파일 내용은 다음과 같아야합니다.

cat /var/lib/rspamd/dkim/mail.pub

mail._domainkey IN TXT ("v=DKIM1; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4yl" "nVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB");

v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB

또한 수신인에게 특정 발신자의 이메일 수신 여부를 알리도록 설계된 DMARC (Domain-Based Message Authentication)를 만들 것입니다. 기본적으로 직접 도메인 스푸핑으로부터 도메인을 보호하고 도메인 평판을 향상시킵니다.

다음과 같은 DMARC 정책을 구현할 것입니다.

_dmarc IN TXT "v=DMARC1; p=none; adkim=r; aspf=r;"

위의 DMARC 레코드를 세분화하십시오.

  • v=DMARC1 이것은 DMARC 식별자입니다. p=none -이것은 DMARC에 실패한 메시지로 무엇을해야하는지 수신자에게 알려줍니다. 이 경우 메시지가 DMARC에 실패하면 조치를 취하지 않음을 의미하는 none으로 설정됩니다. 또한 '거부'또는 quarantine adkim=r aspf=r - DKIM SPF 정렬, r 은 완화 및 s 는 엄격으로 사용할 수 있습니다.이 경우 DKIM 및 SPF 모두에 완화 정렬을 사용합니다.

자신의 바인드 DNS 서버를 실행하는 경우와 마찬가지로 레코드를 복사하여 도메인 영역 파일에 붙여 넣기 만하면되고 다른 DNS 공급자를 사용하는 경우 이름이 _dmarc TXT 레코드를 만들고 v=DMARC1; p=none; adkim=r; aspf=r; v=DMARC1; p=none; adkim=r; aspf=r; 가치 / 콘텐츠로.

DNS 변경 사항이 적용되는 데 시간이 걸릴 수 있습니다. dig 명령을 사용하여 레코드가 전파되었는지 여부를 확인할 수 있습니다.

dig mail._domainkey.linuxize.com TXT +short

"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGa" "VuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFdepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB"

dig _dmarc.linuxize.com TXT +short

"v=DMARC1; p=none; adkim=r; aspf=r;"

도메인 현재 DMARC 정책을 검사하거나 여기에서 고유 한 DMARC 정책을 만들 수도 있습니다.

결론

이것이 튜토리얼의이 부분입니다. 이 시리즈의 다음 부분에서는 RoundCube 설치 및 구성을 계속합니다.

메일 서버 접미사 비둘기장 DNS 스팸

이 게시물은 메일 서버 시리즈 설정 및 구성의 일부입니다.

이 시리즈의 다른 게시물:

• PostfixAdmin으로 메일 서버 설정 • Postfix 및 Dovecot 설치 및 구성 • Rspamd 설치 및 통합 • Roundcube 웹 메일 설치 및 구성