Rspamd 설치 및 통합

Rspamd 설치 및 통합

2022-06-01 last update

25 minutes reading postfix dovecot dns rspamd mail server
저희 Setting up and configuring a mail server의 세 번째 부분입니다.
. 이 강좌에서 Rspamd 스팸메일 필터 시스템의 설치와 설정, 그리고 메일 서버와의 통합을 소개하고 DKIM과 DMARC DNS 기록을 만들 것입니다.왜 우리가 Spamassassin이 아니라 Rspamd를 선택했는지 물어볼 수도 있다.Rspamd는 C로 더욱 적극적으로 유지하고 작성한 것으로 Perl로 작성한 Spamassassin보다 훨씬 빠르다.또 다른 이유는 Rspamd에 DKIM 서명 모듈이 첨부되어 있기 때문에 우리는 다른 소프트웨어를 사용하여 보내는 전자메일에 서명할 필요가 없다.Rspamd에 익숙하지 않으면 공식 문서 here

선결 조건

을 보고 이 강좌를 계속할 수 있습니다. user with sudo privileges으로 로그인하시기 바랍니다.
.

Redis 설치

Redis
Rspamd를 저장 및 캐시 시스템으로 사용하고 설치할 때 실행만 하면 됩니다:
sudo apt install redis-server

설치가 바인딩되지 않았습니다.

Unbound는 매우 안전한 검증, 귀속 및 캐시 DNS 해상도입니다.이 서비스를 설치하는 주요 목적은 외부 DNS 요청의 수를 줄이는 것입니다.이 단계는 선택 사항입니다. 건너뛸 수 있습니다.
sudo apt updatesudo apt install unbound
대부분의 서버에 대해 기본 미귀속 설정은 충분할 것입니다.unbound를 서버 주 DNS 확인 프로그램으로 설정하려면 다음 명령을 실행합니다.
sudo echo "nameserver 127.0.0.1" >> /etc/resolvconf/resolv.conf.d/headsudo resolvconf -u
resolvconf을 사용하지 않으면 /etc/resolv.conf 파일을 수동으로 편집해야 합니다.

Rspamd 설치

우리는 공식 저장소에서 최신 안정적인 버전의 Rspamd를 설치할 것이다.먼저 필요한 패키지를 설치합니다:
sudo apt install software-properties-common lsb-releasesudo apt install lsb-release wget
다음 wget command을 사용하여 저장소 GPG 키를 apt 소스 키 링에 추가
:
wget -O- https://rspamd.com/apt-stable/gpg.key | sudo apt-key add -
실행을 통해:
echo "deb http://rspamd.com/apt-stable/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/rspamd.list
Rspamd 저장소 활성화 저장소 활성화 후 다음 명령을 사용하여 패키지 인덱스를 업데이트하고 Rspamd:
sudo apt updatesudo apt install rspamd

Rspamd 구성

우리는 /etc/rspamd/local.d/local.d/ 디렉터리에 새 파일을 만들 것입니다. 재고 프로필을 수정하는 것이 아니라 묵인 설정을 덮어씁니다.기본적으로 Rspamd의 normal worker은 전자 우편을 스캔하는 작업 프로그램 탐지 포트 11333의 모든 인터페이스를 스캔합니다.다음 파일을 만들고 Rspamd 일반 작업 라인을 localhost 인터페이스만 정탐하도록 설정합니다:/etc/Rspamd/local.d/노동자는 정상입니다.c
bind_socket = "127.0.0.1:11333";
proxy worker 탐지 포트 11332 및milter 프로토콜 지원.Postfix가 Rspamd와 통신하기 위해서는milter 모드를 사용해야 합니다:/etc/Rspamd/local.d/근무자 대리.c
bind_socket = "127.0.0.1:11332";
milter = yes;
timeout = 120s;
upstream "local" {
  default = yes;
  self_scan = yes;
}
다음에 controller worker 서버에 비밀번호를 설정해야 합니다. 이 서버는 Rspamd 웹 인터페이스에 접근할 수 있습니다.암호화된 암호를 생성하려면
rspamadm pw --encrypt -p P4ssvv0rD
을 실행하십시오. 출력은 다음과 같습니다. (adsbygoogle=window.adsbygoogle | []).푸시({});
$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb
암호(P4ssvv0rD)를 보다 안전한 암호로 변경하는 것을 잊지 마십시오.터미널에서 비밀번호를 복사해서 프로필에 붙여넣습니다:/etc/rspamd/local.d/작업 컨트롤러.잠시 후 configure Nginx
reverse proxy으로
Controller Worker 웹 서버로 이동하여 Rspamd 웹 인터페이스에 액세스할 수 있습니다.classifier-bayes.conf 파일에 다음 줄을 추가합니다:/etc/Rspamd/local, Redis를 Rspamd 통계의 백엔드로 설정합니다.d/분류기 베일스.conf
password = "$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb";
milter_headers.conf 파일을 열고milter 헤더를 설정합니다:/etc/rspamd/local.d/milter\U 제목입니다.conf
servers = "127.0.0.1";
backend = "redis";
milter 제목 here에 대한 더 많은 정보를 찾을 수 있습니다
.마지막으로 변경 사항을 적용하기 위해 Rspamd 서비스를 다시 시작합니다. first part
use = ["x-spamd-bar", "x-spam-level", "authentication-results"];

Nginx 구성


이 시리즈에서 우리는 Nginx server block을 만들었다
PostfixAdmin 인스턴스의 경우Nginx 프로필을 열고 다음 위치 명령을 추가합니다. 이 명령은 노란색으로 강조 표시됩니다./etc/Nginx/sites enabled/mail.형태
sudo systemctl restart rspamd
Reload the Nginx service
변경 사항을 적용하려면:
...
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;
}
...
에서 https://mail./rspamd/으로 이동하려면 rspamadm pw 명령을 사용하여 생성한 암호를 입력하면 Rspamd 웹 인터페이스가 표시됩니다.

구성 접미사

Rspamd milter를 사용하려면 Postfix를 구성해야 합니다.다음 명령을 실행하여 접두사 주 프로필을 업데이트합니다.
sudo systemctl reload nginx
접두사 서비스를 다시 시작하여 변경 사항을 적용합니다.
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"

Dovecot 구성

second part에 Dovecot을 설치하고 구성했습니다.
이제 sieve 필터 모듈을 설치하고 Dovecot과 Rspamd를 통합합니다.먼저 Dovecot 필터 모듈을 설치합니다.
sudo systemctl restart postfix
패키지를 설치한 후 다음 파일을 열고 노란색으로 강조 표시된 행을 편집합니다.etc/dovecot/conf.d/20-lmtp.conf
sudo apt install dovecot-sieve dovecot-managesieved
/etc/dovecot/conf.d/20-imap.conf
...
protocol lmtp {
  postmaster_address = [email protected]
  mail_plugins = $mail_plugins sieve
}
...
/etc/dovecot/conf.d/20-ManageSeeve.conf
...
protocol imap {
  ...
  mail_plugins = $mail_plugins imap_quota imap_sieve
  ...
}
...
/etc/dovecot/conf.d/90-sieve.conf
...
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  ...
}
...
service managesieve {
  process_limit = 1024
}
...
파일을 저장하고 닫습니다.스크립트 필터를 위한 디렉터리 만들기:
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
    ....
}
전역 필터를 만들고 스팸메일로 표시된 전자메일을 Spam 디렉터리로 이동합니다:/var/mail/vmail/sieve/global/spam global.
mkdir -p /var/mail/vmail/sieve/global
디렉터리로 이메일을 옮기거나 옮길 때마다 다음 두 개의 스크립트를 터치합니다:/var/mail/vmail/sieve/global/report spam.체
require ["fileinto","mailbox"];

if anyof(
    header :contains ["X-Spam-Flag"] "YES",
    header :contains ["X-Spam"] "Yes",
    header :contains ["Subject"] "*** SPAM ***"
    )
{
    fileinto :create "Spam";
    stop;
}
/var/mail/vmail/체/전역/보고ham.변경 사항을 적용하기 위해 Dovecot 서비스를 다시 시작합니다.
require ["vnd.dovecot.pipe", "copy", "imapsieve"];
pipe :copy "rspamc" ["learn_spam"];
은sieve 스크립트를 컴파일하고 올바른 권한을 설정합니다.
require ["vnd.dovecot.pipe", "copy", "imapsieve"];
pipe :copy "rspamc" ["learn_ham"];

DKIM 키 포인트 만들기

DomainKeys Identified Mail(DKIM)은 전자 우편 인증 방법으로 암호화 서명을 아웃소싱 헤더에 추가합니다.수신자가 특정 도메인에서 온 전자 메일이 해당 도메인의 소유자에게 승인되었는지 확인할 수 있습니다.이렇게 하는 주요 목적은 전자 우편 위조를 방지하는 것이다.우리는 모든 도메인에 대해 다른 DKIM 키를 사용할 수 있고, 심지어 한 도메인에 여러 개의 키를 사용할 수도 있지만, 간단하게 말하자면, 본고는 DKIM 키를 사용할 것입니다. 잠시 후에 모든 새로운 도메인에 사용할 수 있습니다.새 디렉터리를 만들어서 DKIM 키를 저장하고 Spam 유틸리티를 사용하여 새 DKIM 키 쌍을 생성합니다.
sudo systemctl restart dovecot
은 위의 예시에서 rspamadm을 DKIM 선택기로 사용했습니다.현재 mail 디렉터리에 두 개의 새 파일이 있습니다. /var/lib/rspamd/dkim/은 우리의 개인 키 파일이고, mail.key은 DKIM의 공개 키를 포함하는 파일입니다.나중에 DNS 로케일을 업데이트합니다.올바른 ownership 설정
permissions
:
sievec /var/mail/vmail/sieve/global/spam-global.sievesievec /var/mail/vmail/sieve/global/report-spam.sievesievec /var/mail/vmail/sieve/global/report-ham.sievesudo chown -R vmail: /var/mail/vmail/sieve/
현재 Rspamd가 DKIM 키를 어디서 찾는지, 선택기의 이름과 마지막 줄에서 별명 발송자 주소를 사용할 DKIM 서명을 알려야 합니다.이를 위해 다음 내용을 포함하는 새 파일을 만듭니다. (adsbygoogle=window.adsbygoogle | [])푸시 ({})/etc/rspamd/로컬.d/dkim\U 서명.conf
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
Rspamd는 인증된 수신 체인(ARC) 서명에 대한 서명도 지원합니다.ARC 사양 here에 대한 자세한 내용을 확인할 수 있습니다.
.Rspamd는 이전의 설정을 간단하게 복사할 수 있도록 DKIM 모듈을 사용하여 ARC 서명을 처리하고 있습니다.
sudo chown -R _rspamd: /var/lib/rspamd/dkimsudo chmod 440 /var/lib/rspamd/dkim/*
변경 사항을 적용하기 위해 Rspamd 서비스를 다시 시작합니다.
selector = "mail";
path = "/var/lib/rspamd/dkim/$selector.key";
allow_username_mismatch = true;

DNS 설정

DKIM 키 쌍을 만들었습니다. 현재 DNS 영역을 업데이트해야 합니다.DKIM 공개 키는 mail.pub 파일에 저장됩니다.파일 내용은 다음과 같습니다.
sudo cp /etc/rspamd/local.d/dkim_signing.conf /etc/rspamd/local.d/arc.conf
sudo systemctl restart rspamd
귀속 DNS 서버를 실행 중인 경우 기록을 직접 복사하여 도메인 영역 파일에 붙여넣기만 하면 됩니다.DNS 웹 인터페이스를 사용하는 경우 mail.pub이라는 새로운 TXT 레코드를 만들어야 하고 값/컨텐트의 경우 따옴표를 삭제하고 세 줄을 연결해야 합니다.우리의 예에서 TXT가 기록한 값/내용은 다음과 같다.
cat /var/lib/rspamd/dkim/mail.pub
은 수신 서버가 특정 발송자의 전자메일을 받아들일지 여부를 알려주는 도메인 기반 메시지 검증(mail._domainkey)을 만들 것이다.기본적으로, 그것은 당신의 영역을 직접 영역의 사기로부터 보호하고, 당신의 영역의 신용을 높일 것입니다.만약 당신이 처음부터 이 시리즈를 주목했다면, 당신의 도메인 이름은 이미 DMARC개의 기록을 가지고 있을 것이다.DMARC 레코드를 설정하려면 전송 도메인에서 SPF 및 DKIM 레코드를 게시해야 합니다.DMARC 정책은 TXT 레코드로 게시되며 인증에 실패했을 때 수신자가 도메인에서 보낸 메시지를 처리하는 방법을 정의합니다.본고에서 우리는 다음과 같은 DMARC 전략을 실현할 것이다.
mail._domainkey IN TXT ( "v=DKIM1; k=rsa; "
	"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4yl"
	"nVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB"
) ;
은 상기 DMARC 기록을 분해하자:
  • SFP- 이것은 DMARC 표지부
  • v=DMARC1- 이것은 수신자가 DMARC 실패의 소식을 어떻게 처리하는지 알려준다.우리의 예에서 "없음"으로 설정되어 있습니다. 이것은 메시지가 DMARC를 통과하지 못하면 아무런 조작도 하지 않는다는 것을 의미합니다.또한 "거절"또는 p=none
  • quarantineadkim=raspf=r 정렬, DKIM 정렬, SPF 정렬, r 엄격함을 나타낼 수 있습니다. 저희 경우에는 DKIM과 SPF에 대해 모두 정렬을 사용합니다.
  • 은 이전과 같습니다. 귀속 DNS 서버를 실행 중인 경우 기록을 복사하여 도메인 영역 파일에 붙여넣기만 하면 됩니다. 다른 DNS 공급자를 사용하고 있는 경우 s을 이름으로, _dmarc을 값/내용으로 하는 TXT 기록을 만들어야 합니다.DNS 변경은 전파하는 데 시간이 걸릴 수 있습니다.당신은 dig command을 사용하여 기록이 전파되었는지 확인할 수 있습니다
    :
    v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB
    
    _dmarc  IN  TXT  "v=DMARC1; p=none; adkim=r; aspf=r;"
    
    dig mail._domainkey. TXT +short
    "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGa" "VuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFdepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB"
    
    도메인의 현재 DMARC 정책을 확인하거나 자신의 DMARC 정책을 만들 수 있습니다 here
    .

    결론

    이 부분의 강좌는 여기서 끝냅니다.본 시리즈의 다음 부분에서, 우리는 계속해서 RoundCube installation and configuration을 소개할 것이다
    .
    이 글은 Setting up and configuring a mail server 시리즈의 일부분이다.이 시리즈의 추가 게시물: •
    Set up a mail server with PostfixAdmin 2018년 3월 1일
    Install and configure Postfix and Dovecot 2018년 3월 2일
    RSPAMD 2018년 3월 8일 설치 및 통합
    Install and Configure Roundcube Webmail 2018년 3월 12일