אנדרואיד

התקן ושלב rspamd

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

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

תוכן עניינים:

Anonim

זהו החלק השלישי בהגדרת שרת הדואר והגדרת התצורה שלו. במדריך זה נעבור על ההתקנה והתצורה של מערכת סינון הספאם Rspamd והשילוב שלה בשרת הדואר שלנו, וניצור רשומות DNS של DKIM ו- DMARC.

אתם עשויים לשאול מדוע אנו בוחרים ללכת עם Rspamd ולא עם Spamassassin. Rspamd מתוחזק ונכתב בצורה פעילה יותר ב- C וזה הרבה יותר מהיר מספאסאסין שנכתב בפרל. סיבה נוספת היא ש- Rspamd מגיע עם מודול חתימה של DKIM כך שלא נצטרך להשתמש בתוכנה אחרת כדי לחתום על המיילים היוצאים שלנו.

תנאים מוקדמים

לפני שתמשיך במדריך זה, וודא שאתה מחובר כמשתמש עם הרשאות סודו.

התקן את Redis

Redis ישמש כמערכת אחסון ושמור מטמון על ידי Rspamd, כדי להתקין אותה פשוט הפעל:

sudo apt install redis-server

התקן ללא קשר

Unbound הוא פותר DNS מאובטח מאוד, רקורסיבי ומטמון.

המטרה העיקרית של התקנת שירות זה היא לצמצם את מספר בקשות ה- DNS החיצוניות. שלב זה הוא אופציונלי וניתן לדלג עליו.

sudo apt update

הגדרות ברירת המחדל של 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 למאגר למפתח המקור המתאים שלך באמצעות הפקודה הבאה של 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

הגדר את Rspamd

במקום לשנות את קבצי config המניות, ניצור קבצים חדשים בספרייה /etc/rspamd/local.d/local.d/ אשר יחליף את הגדרת ברירת המחדל.

כברירת מחדל normal worker של Rspamd העובד הסורק הודעות דוא"ל מקשיב בכל הממשקים ביציאה 11333. צור את הקובץ הבא כדי להגדיר את העובד הרגיל של Rspamd להאזין רק לממשק localhost:

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

bind_socket = "127.0.0.1:11333";

proxy worker ה- proxy worker מקשיב ביציאה 11332 ותומך בפרוטוקול מילטר. על מנת ש- Postfix יתקשר עם Rspamd עלינו לאפשר מצב מילטר:

/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 כ- proxy הפוך לשרת האינטרנט של עובדי הבקר כך שנוכל לגשת לממשק האינטרנט Rspamd.

הגדר את ה- Redis ככניסה לאחור לסטטיסטיקה של 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 =;

תוכל למצוא מידע נוסף על כותרות מילטר כאן.

סוף סוף הפעל מחדש את שירות 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.

הפעל את הפקודה הבאה כדי לעדכן את קובץ התצורה הראשי של 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 לספריית 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/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

DomainKeys Mail Identified (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 עבור Relaxed ו- s עבור Strict, במקרה שלנו אנו משתמשים ב- Aligned Alignment עבור DKIM ו- SPF.

כמו קודם אם אתה מנהל שרת DNS משלך Bind, אתה רק צריך להעתיק ולהדביק את הרשומה בקובץ אזור התחום שלך, ואם אתה משתמש _dmarc DNS אחר אתה צריך ליצור רשומת TXT עם _dmarc כשם ו- 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.

שרת דואר postfix dovecot dns rspamd

פוסט זה הוא חלק מההגדרה והגדרת התצורה של סדרת שרתי דואר.

פוסטים אחרים בסדרה זו:

• הגדרת שרת דואר באמצעות PostfixAdmin • התקנה וקביעת תצורה של Postfix ו- Dovecot • התקנה ושילוב של Rspamd • התקנה והגדרת תצורת דואר אלקטרוני של Roundcube