Android

ติดตั้งและรวม rspamd

Faith Evans feat. Stevie J – "A Minute" [Official Music Video]

Faith Evans feat. Stevie J – "A Minute" [Official Music Video]

สารบัญ:

Anonim

นี่เป็นส่วนที่สามของการตั้งค่าและกำหนดค่าเมลเซิร์ฟเวอร์ของเรา ในบทช่วยสอนนี้เราจะทำการติดตั้งและกำหนดค่าระบบกรองสแปม Rspamd และการรวมเข้ากับเซิร์ฟเวอร์อีเมลของเราซึ่งสร้างระเบียน DKIM และ DMARC DNS

คุณอาจถามว่าทำไมเราถึงเลือกไปกับ Rspamd และไม่ใช่กับ Spamassassin Rspamd นั้นได้รับการดูแลและเขียนใน C มากขึ้นและเร็วกว่า Spamassassin ซึ่งเขียนด้วยภาษา Perl อีกเหตุผลหนึ่งคือ Rspamd มาพร้อมกับโมดูลการลงนาม DKIM ดังนั้นเราจะไม่ต้องใช้ซอฟต์แวร์อื่นเพื่อลงชื่ออีเมลขาออกของเรา

ข้อกำหนดเบื้องต้น

ก่อนดำเนินการกับบทช่วยสอนนี้ต่อให้แน่ใจว่าคุณได้เข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ sudo

ติดตั้ง Redis

Redis จะถูกใช้เป็นที่เก็บข้อมูลและระบบแคชโดย Rspamd เพื่อติดตั้งเพียงแค่เรียกใช้:

sudo apt install redis-server

ติดตั้ง Unbound

Unbound เป็นตัวแก้ไข DNS ที่ตรวจสอบความถูกต้องซ้ำและแคชอย่างปลอดภัย

วัตถุประสงค์หลักของการติดตั้งบริการนี้คือเพื่อลดจำนวนคำขอ DNS ภายนอก ขั้นตอนนี้เป็นทางเลือกและสามารถข้ามได้

sudo apt update sudo apt install unbound

การตั้งค่า Unbound เริ่มต้นควรเพียงพอสำหรับเซิร์ฟเวอร์ส่วนใหญ่

ในการตั้งค่า 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

เพิ่มที่เก็บคีย์ GPG ลงในพวงกุญแจ apt source ของคุณโดยใช้คำสั่ง wget ต่อไปนี้:

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/ ซึ่งจะเขียนทับการตั้งค่าเริ่มต้น

โดยค่าเริ่มต้น normal worker ของ Rspamd normal worker งานที่สแกนข้อความอีเมลฟังบนอินเตอร์เฟสทั้งหมดบนพอร์ต 11333 สร้างไฟล์ต่อไปนี้เพื่อกำหนดค่าผู้ปฏิบัติงานปกติ Rspamd ให้รับฟังเฉพาะอินเตอร์เฟส localhost เท่านั้น:

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

bind_socket = "127.0.0.1:11333";

ผู้ proxy worker รับฟังพอร์ต 11332 และรองรับโปรโตคอล milter เพื่อให้ 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; }

ต่อไปเราต้องตั้งรหัสผ่านสำหรับเซิร์ฟเวอร์ controller worker ซึ่งให้การเข้าถึง Rspamd เว็บอินเตอร์เฟส ในการสร้างรหัสผ่านที่เข้ารหัสให้รัน:

rspamadm pw --encrypt -p P4ssvv0rD

ผลลัพธ์ควรมีลักษณะดังนี้:

$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb อย่าลืมเปลี่ยนรหัสผ่าน ( P4ssvv0rD ) เป็นสิ่งที่ปลอดภัยยิ่งขึ้น

คัดลอกรหัสผ่านจากเทอร์มินัลของคุณและวางลงในไฟล์กำหนดค่า:

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

password = "$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb";

ต่อมาเราจะกำหนดค่า Nginx เป็น reverse proxy ไปยังเว็บเซิร์ฟเวอร์ผู้ควบคุมคอนโทรลเลอร์เพื่อให้เราสามารถเข้าถึงเว็บอินเตอร์เฟส Rspamd ได้

ตั้งค่า Redis เป็น backend สำหรับสถิติ Rspamd โดยเพิ่มบรรทัดต่อไปนี้ในไฟล์ classifier-bayes.conf :

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

คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับส่วนหัวของ milter ได้ที่นี่

ในที่สุดเริ่มบริการ Rspamd ใหม่เพื่อให้การเปลี่ยนแปลงมีผล:

sudo systemctl restart rspamd

กำหนดค่า Nginx

ในส่วนแรกของชุดนี้เราสร้างบล็อกเซิร์ฟเวอร์ Nginx สำหรับอินสแตนซ์ PostfixAdmin

เปิดไฟล์คอนฟิกูเรชัน 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/ ป้อนรหัสผ่านที่คุณสร้างไว้ก่อนหน้านี้โดยใช้คำสั่ง rspamadm pw และคุณจะพบกับเว็บอินเตอร์เฟส Rspamd

กำหนดค่า Postfix

เราจำเป็นต้องกำหนดค่า Postfix เพื่อใช้ Rspamd milter

รันคำสั่งต่อไปนี้เพื่ออัพเดตไฟล์คอนฟิกูเรชันหลักของ 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"

เริ่มบริการ Postfix ใหม่เพื่อให้การเปลี่ยนแปลงมีผล:

sudo systemctl restart postfix

กำหนดค่า Dovecot

เราได้ติดตั้งและกำหนดค่า 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…. }

บันทึกและปิดไฟล์

สร้างไดเรกทอรีสำหรับสคริปต์ตะแกรง:

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

รวบรวมสคริปต์ตะแกรงและตั้งค่าสิทธิ์ที่ถูกต้อง:

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

สร้างคีย์ DKIM

DomainKeys Identified Mail (DKIM) เป็นวิธีการตรวจสอบสิทธิ์อีเมลซึ่งจะเพิ่มลายเซ็นการเข้ารหัสให้กับส่วนหัวของข้อความขาออก อนุญาตให้ผู้รับตรวจสอบว่าอีเมลที่อ้างว่ามาจากโดเมนที่ระบุนั้นได้รับอนุญาตจากเจ้าของโดเมนนั้นแน่นอน วัตถุประสงค์หลักของสิ่งนี้คือเพื่อป้องกันข้อความอีเมลปลอมแปลง

เราสามารถมีคีย์ DKIM ที่แตกต่างกันสำหรับโดเมนทั้งหมดของเราและแม้กระทั่งหลายคีย์สำหรับโดเมนเดียว แต่เพื่อความง่ายของบทความนี้เราจะใช้คีย์ DKIM เดียวซึ่งในภายหลังสามารถใช้สำหรับโดเมนใหม่ทั้งหมดได้

สร้างไดเร็กทอรีใหม่เพื่อเก็บคีย์ DKIM และสร้างคีย์ DKIM ใหม่โดยใช้ยูทิลิตี rspamadm :

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.key ซึ่งเป็นไฟล์กุญแจส่วนตัวของเราและ mail.pub ไฟล์ที่มีพับลิกคีย์ DKIM เราจะอัปเดตระเบียนโซน 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) คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับข้อมูลจำเพาะของ ARC ได้ที่นี่

Rspamd กำลังใช้โมดูล DKIM สำหรับจัดการกับลายเซ็น ARC เพื่อให้เราสามารถคัดลอกการกำหนดค่าก่อนหน้านี้:

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 ) ซึ่งออกแบบมาเพื่อบอกเซิร์ฟเวอร์ที่รับว่าจะรับอีเมลจากผู้ส่งรายใดหรือไม่ โดยทั่วไปจะช่วยปกป้องโดเมนของคุณจากการปลอมแปลงโดเมนโดยตรงและปรับปรุงชื่อเสียงของโดเมนของคุณ

เราจะใช้นโยบาย DMARC ต่อไปนี้:

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

มาแบ่งระเบียน DMARC ด้านบน:

  • v=DMARC1 - นี่คือตัวระบุ DMARC p=none - นี่เป็นการบอกผู้รับว่าจะทำอย่างไรกับข้อความที่ล้มเหลว DMARC ในกรณีของเรามันถูกตั้งค่าเป็นไม่มีซึ่งหมายถึงไม่ดำเนินการใด ๆ หากข้อความล้มเหลว DMARC นอกจากนี้คุณยังสามารถใช้ 'ปฏิเสธ' หรือ quarantine adkim=r และ aspf=r - การจัดตำแหน่ง DKIM และ SPF , r สำหรับการผ่อนคลายและ s สำหรับการเข้มงวดในกรณีของเราเราใช้การจัดตำแหน่งที่ผ่อนคลายสำหรับทั้ง DKIM และ SPF

เหมือนก่อนหน้านี้ถ้าคุณใช้เซิร์ฟเวอร์ Bind DNS ของคุณเองคุณเพียงแค่คัดลอกและวางข้อมูลลงในไฟล์โซนโดเมนของคุณและถ้าคุณใช้ผู้ให้บริการ DNS อื่นคุณต้องสร้างระเบียน TXT ด้วย _dmarc เป็นชื่อและ v=DMARC1; p=none; adkim=r; aspf=r; v=DMARC1; p=none; adkim=r; aspf=r; เป็นค่า / เนื้อหา

อาจใช้เวลาสักครู่ก่อนที่การเปลี่ยนแปลง DNS จะเผยแพร่ คุณสามารถตรวจสอบว่าบันทึกได้แพร่กระจายโดยใช้คำสั่งขุด:

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 ต่อไป

เซิร์ฟเวอร์อีเมล postfix dovecot dns rspamd

โพสต์นี้เป็นส่วนหนึ่งของการตั้งค่าและกำหนดค่าเซิร์ฟเวอร์จดหมาย

โพสต์อื่น ๆ ในชุดนี้:

•ตั้งค่าเซิร์ฟเวอร์อีเมลด้วย PostfixAdmin •ติดตั้งและกำหนดค่า Postfix และ Dovecot •ติดตั้งและรวม Rspamd •ติดตั้งและกำหนดค่า Roundcube Webmail