Android

Rspamd'yi yükleyin ve entegre edin

Rspamd — высокопроизводительная система фильтрации спама / Всеволод Стахов (University of Cambridge)

Rspamd — высокопроизводительная система фильтрации спама / Всеволод Стахов (University of Cambridge)

İçindekiler:

Anonim

Bu, posta sunucusu kurma ve yapılandırma işlemimizin üçüncü bölümüdür. Bu derste Rspamd spam filtreleme sisteminin kurulumu ve yapılandırması ve posta sunucumuza entegrasyonu ile DKIM ve DMARC DNS kayıtları oluşturulacaktır.

Spamassassin ile değil, neden Rspamd ile gitmeyi seçtiğimizi sorabilirsiniz. Rspamd C'de daha aktif bir şekilde korunur ve yazılır ve Perl'de yazılmış Spamassassin'den çok daha hızlıdır. Başka bir neden Rspamd bir DKIM imzalama modülü ile geliyor, bu yüzden giden e-postalarımızı imzalamak için başka bir yazılım kullanmamız gerekmeyecek.

Ön şartlar

Bu eğiticiye devam etmeden önce sudo ayrıcalıklarına sahip bir kullanıcı olarak oturum açtığınızdan emin olun.

Redis'i Yükle

Redis, Rspamd tarafından bir depolama ve önbellek sistemi olarak kullanılacak, sadece çalıştırmak için:

sudo apt install redis-server

Bağlanmamış Yükleme

Unbound, çok güvenli bir doğrulama, özyinelemeli ve önbelleğe alma DNS çözümleyicisidir.

Bu hizmeti kurmanın temel amacı, harici DNS isteklerinin sayısını azaltmaktır. Bu adım isteğe bağlıdır ve atlanabilir.

sudo apt update sudo apt install unbound

Varsayılan Bağlanmamış ayarları çoğu sunucu için yeterli olmalıdır.

Bağlı olmayan sunucunuzu birincil DNS çözümleyicisi olarak ayarlamak için aşağıdaki komutları çalıştırın:

sudo echo "nameserver 127.0.0.1" >> /etc/resolvconf/resolv.conf.d/head sudo resolvconf -u resolvconf kullanmıyorsanız, /etc/resolv.conf dosyasını manuel olarak düzenlemeniz gerekir.

Rspamd yükleyin

Rspamd'ın en son kararlı sürümünü resmi deposundan kuracağız.

Gerekli paketleri kurarak başlayın:

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

Aşağıdaki wget komutunu kullanarak depo GPG anahtarını apt sources anahtarlığınıza ekleyin:

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

Rspamd deposunu çalıştırarak etkinleştirin:

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

Depo etkinleştirildikten sonra paket dizinini güncelleyin ve aşağıdaki komutları kullanarak Rspamd'yi yükleyin:

sudo apt update sudo apt install rspamd

Rspamd'yi yapılandırma

Stok yapılandırma dosyalarını değiştirmek yerine, /etc/rspamd/local.d/local.d/ dizininde varsayılan ayarın üzerine /etc/rspamd/local.d/local.d/ yeni dosyalar oluşturacağız.

Varsayılan olarak Rspamd'nin normal worker , e-posta iletilerini tarayan çalışan 11333 numaralı bağlantı noktasındaki tüm arabirimleri dinler. Rspamd normal çalışanını yalnızca localhost arabirimini dinleyecek şekilde yapılandırmak için aşağıdaki dosyayı oluşturun:

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

bind_socket = "127.0.0.1:11333";

proxy worker , 11332 numaralı bağlantı noktasını dinler ve milter protokolünü destekler. Postfix'in Rspamd ile iletişim kurabilmesi için milter modunu etkinleştirmemiz gerekir:

/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; }

Ardından, Rspamd web arayüzüne erişim sağlayan controller worker sunucusu için bir şifre ayarlamamız gerekiyor. Şifrelenmiş bir şifre oluşturmak için:

rspamadm pw --encrypt -p P4ssvv0rD

Çıktı şöyle görünmelidir:

$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb Şifreyi ( P4ssvv0rD ) daha güvenli bir P4ssvv0rD değiştirmeyi unutmayın.

Şifreyi terminalinizden kopyalayın ve yapılandırma dosyasına yapıştırın:

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

password = "$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb";

Daha sonra Nginx'i denetleyici çalışan web sunucusuna ters proxy olarak yapılandıracağız, böylece Rspamd web arayüzüne erişebilelim.

Classifier classifier-bayes.conf dosyasına aşağıdaki satırları ekleyerek Redis'i Rspamd istatistikleri için arka uç olarak ayarlayın:

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

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

milter_headers.conf dosyasını açın ve milter başlıklarını ayarlayın:

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

use =;

Milter başlıkları hakkında daha fazla bilgiyi burada bulabilirsiniz.

Son olarak değişikliklerin geçerli olması için Rspamd hizmetini yeniden başlatın:

sudo systemctl restart rspamd

Nginx'i Yapılandır

Bu serinin ilk bölümünde PostfixAdmin örneği için bir Nginx sunucu bloğu oluşturduk.

Nginx yapılandırma dosyasını açın ve sarı renkle vurgulanan aşağıdaki konum yönergesini ekleyin:

/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; }…

Değişikliklerin etkili olması için Nginx hizmetini yeniden yükleyin:

sudo systemctl reload nginx

https://mail.linuxize.com/rspamd/ , rspamadm pw komutunu kullanarak daha önce oluşturduğunuz şifreyi girin ve Rspamd web arayüzü ile karşılaşacaksınız.

Postfix'i Yapılandır

Postfix'i Rspamd milter'ı kullanacak şekilde yapılandırmamız gerekiyor.

Postfix ana yapılandırma dosyasını güncellemek için aşağıdaki komutu çalıştırın:

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"

Değişikliklerin etkili olması için Postfix hizmetini yeniden başlatın:

sudo systemctl restart postfix

Dovecot'u Yapılandır

Dovecot'u bu serinin ikinci bölümüne zaten kurduk ve yapılandırdık ve şimdi sieve filtreleme modülünü kuracağız ve Dovecot'u Rspamd ile entegre edeceğiz.

Dovecot filtreleme modülünü kurarak başlayın:

sudo apt install dovecot-sieve dovecot-managesieved

Paketler yüklendikten sonra aşağıdaki dosyaları açın ve sarı ile vurgulanan satırları düzenleyin.

/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…. }

Dosyaları kaydedin ve kapatın.

Elek komut dosyaları için bir dizin oluşturun:

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

Spam olarak işaretlenmiş e-postaları Spam dizinine taşımak için genel bir elek filtresi oluşturun:

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

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

Bir e-postayı Spam dizinine Spam veya dışına aktardığınızda aşağıdaki iki elek komut dosyası tetiklenir:

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

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

require; pipe:copy "rspamc";

Değişikliklerin etkili olması için Dovecot hizmetini yeniden başlatın:

sudo systemctl restart dovecot

Elek komut dosyalarını derleyin ve doğru izinleri ayarlayın:

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 anahtarları oluşturma

DomainKeys Identified Mail (DKIM), giden ileti başlıklarına şifreleme imzası ekleyen bir e-posta kimlik doğrulama yöntemidir. Alıcının, belirli bir alan adından kaynaklandığını iddia eden bir e-postanın gerçekten de bu alan adının sahibi tarafından yetkilendirildiğini doğrulamasına izin verir. Bunun temel amacı sahte e-posta mesajlarını önlemektir.

Tüm alanlarımız için farklı DKIM anahtarlarımız ve hatta tek bir alan adı için birden fazla anahtarımız olabilir, ancak bu makalenin basitliği için daha sonra tüm yeni alan adları için kullanılabilecek tek bir DKIM anahtarı kullanacağız.

DKIM anahtarını saklamak için yeni bir dizin oluşturun ve rspamadm yardımcı programını kullanarak yeni bir DKIM anahtar çifti oluşturun:

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

Yukarıdaki örnekte mail DKIM seçici olarak kullanıyoruz.

Artık /var/lib/rspamd/dkim/ dizininde iki özel dosyanız olmalıdır, özel anahtar dosyamız olan mail.pub ve DKIM ortak anahtarını içeren bir mail.pub dosyası. DNS bölge kayıtlarımızı daha sonra güncelleyeceğiz.

Doğru sahipliği ve izinleri ayarlayın:

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

Şimdi Rspamd'e DKIM anahtarını nerede arayacağımızı söylemeliyiz, seçicinin adı ve son satır diğer ad gönderen adresleri için DKIM imzalamayı etkinleştirecek. Bunu yapmak için aşağıdaki içeriklerle yeni bir dosya oluşturun:

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

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

Rspamd, Kimliği Doğrulanmış Alınan Zincir (ARC) imzalarının imzalanmasını da destekler. ARC spesifikasyonu hakkında daha fazla bilgiyi burada bulabilirsiniz.

Rspamd, önceki yapılandırmayı kopyalayabilmemiz için ARC imzalarıyla uğraşmak için DKIM modülünü kullanıyor:

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

Değişikliklerin etkili olması için Rspamd hizmetini yeniden başlatın:

sudo systemctl restart rspamd

DNS ayarları

Zaten bir DKIM anahtar çifti oluşturduk ve şimdi DNS bölgemizi güncellememiz gerekiyor. DKIM ortak anahtarı mail.pub dosyasında saklanır. Dosyanın içeriği şöyle görünmelidir:

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

Ayrıca alıcı sunucuya belirli bir gönderenden gelen bir e-postayı kabul edip etmeyeceğini bildirmek için tasarlanmış bir Etki Alanı Tabanlı İleti Kimlik Doğrulaması ( DMARC ) oluşturacağız. Temel olarak, alanınızı doğrudan alan adı sahteciliğine karşı koruyacak ve alan adınızın itibarını artıracaktır.

aşağıdaki DMARC politikasını uygulayacağız:

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

Yukarıdaki DMARC kaydını parçalayalım:

  • v=DMARC1 - Bu, DMARC tanımlayıcısıdır p=none - Bu, alıcıya v=DMARC1 başarısız olan mesajlarla ne yapacağını söyler. Bizim durumumuzda hiçbiri olarak ayarlanmıştır, bu da bir mesajın DMARC'de başarısız olması durumunda herhangi bir işlem yapmamak anlamına gelir. Ayrıca 'reddet' veya quarantine adkim=r ve aspf=r - DKIM ve SPF hizalaması, r Rahat ve s için Katı, bizim durumumuzda hem DKIM hem de SPF için Rahat Hizalama kullanıyoruz.

Daha önce olduğu gibi, kendi Bağlama DNS sunucunuzu çalıştırıyorsanız, kaydı kopyalayıp etki alanı bölge dosyanıza yapıştırmanız gerekir ve başka bir DNS sağlayıcısı kullanıyorsanız, _dmarc olarak _dmarc ile bir TXT kaydı oluşturmanız gerekir ve v=DMARC1; p=none; adkim=r; aspf=r; v=DMARC1; p=none; adkim=r; aspf=r; değer / içerik olarak.

DNS değişikliklerinin yayılması biraz zaman alabilir. Dig komutunu kullanarak kayıtların yayılıp yayılmadığını kontrol edebilirsiniz:

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;"

Ayrıca, geçerli alan DMARC politikanızı inceleyebilir veya kendi DMARC politikanızı burada oluşturabilirsiniz.

Sonuç

Öğreticinin bu kısmı bu kadar. Bu serinin bir sonraki bölümünde, RoundCube kurulum ve yapılandırmasına devam edeceğiz.

posta sunucusu postfix dovecot dns rspamd

Bu yayın, bir posta sunucusu serisinin kurulması ve yapılandırılmasının bir parçasıdır.

Bu serideki diğer gönderiler:

• PostfixAdmin ile posta sunucusu kurma • Postfix ve Dovecot'u yükleme ve yapılandırma • Rspamd Yükleme ve Entegre Etme • Roundcube Webmail'i Yükleme ve Yapılandırma