כיצד להתקין ולהגדיר Postfix על Ubuntu 22.04

הקדמה

Postfix הוא מערכת העברת דואר פופולרית ופתוחה המכונה גם בשם סוכן העברת דואר (MTA) שניתן להשתמש בה כדי להפנות ולמסור דואר אלקטרוני במערכת Linux. משוער כי כ-25% משרתי הדואר הציבוריים באינטרנט מפעילים Postfix.

במדריך זה, תלמד כיצד להתקין ולהגדיר את Postfix על שרת Ubuntu 22.04. לאחר מכן, תבדוק ש-Postfix יכול לנתב דואר כהלכה על ידי התקנת s-nail, סוכן משתמשי דואר (MUA), הידוע גם כ-קונסולת דואר.

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

דרישות מוקדמות

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

אם אתה בטוח שאתה רוצה לעקוב אחר המדריך הזה להתקנה והגדרה של Postfix, אז עליך להיות זהיר ולוודא שיש לך את התכונות הבאות:

  • A server running Ubuntu 22.04 to function as your Postfix mail server. This server should have a non-root user with sudo privileges and a firewall configured with UFW. You can follow our Ubuntu 22.04 initial server setup guide to set this up.
  • A Fully Qualified Domain Name pointed at your Ubuntu 22.04 server. You can find help on setting up your domain name with DigitalOcean by following our Domains and DNS Networking documentation. Be aware that if you plan on accessing mail from an external location, you will need to make sure you have an MX record pointing to your mail server as well.

שים לב שמדריך זה מניח שאתה מגדיר מארח שיש לו את FQDN של mail.example.com. בכל מקום שנדרש, וודא שאתה משנה את example.com או mail.example.com כדי להתאים ל-FQDN שלך.

שלב 1 — התקנת Postfix

Postfix כלול במאגרי הנתונים ברירת המחדל של Ubuntu, לכן תוכל להתקין אותו עם APT.

כדי להתחיל, עדכן את מטמון החבילות המקומי שלך באמצעות פקודת apt:

  1. sudo apt update

לאחר מכן התקן את החבילה postfix באמצעות הפקודה הבאה. שים לב שכאן אנו מעבירים את המשתנה הסביבתי DEBIAN_PRIORITY=low לתוך פקודת ההתקנה הזו. זה יגרום לתהליך ההתקנה להציג לך הוראות להגדרת אפשרויות נוספות:

  1. sudo DEBIAN_PRIORITY=low apt install postfix

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

  • סוג כללי של הגדרות דואר?: עבור זה, בחר אינטרנט אתר מאחר וזה מתאים לצרכי התשתית שלנו.
  • שם דואר מערכת: זהו הדומיין הבסיסי המשמש לבניית כתובת דואר אלקטרוני חוקית כאשר ניתן רק את חלק חשבון הכתובת. לדוגמה, נניח ששם המארח של השרת שלך הוא mail.example.com. סביר להניח שתרצה להגדיר את שם הדואר המערכת ל- example.com כך ש, בנתונים המשתמש user1, פוסטפיקס ישתמש בכתובת user1@example.com.
  • נמעני דואר עבור root ו־postmaster: זהו חשבון הלינוקס שיעביר דואר שנשלח אליו ל־ root@ ו־postmaster@. השתמש בחשבון הראשי שלך עבור זה. במקרה זה לדוגמה, sammy.
  • יעדים נוספים לקבלת דואר: זה מגדיר את היעדים לדואר שהתקנת פוסטפיקס זה יקבל. אם תצטרך להוסיף דומיינים נוספים שהשרת הזה יהיה אחראי על קבלתם, הוסף אותם כאן. במקרה אחר, הגדרת ברירת המחדל תהיה מספיקה.
  • האם לאלץ עדכונים סינכרוניים בתור הדואר?: מאחר וכנראה תשתמש במערכת קבצים יומנית, קבל לא כאן.
  • רשתות מקומיות: זו רשימה של הרשתות שבהן שרת הדואר שלך מוגדר להעביר הודעות. ברירת המחדל תתאים לרוב התרחישים. אם בחרת לשנות אותה, ודא שתהיה מצומצמת מאוד ביחס לטווח הרשת.
  • מגבלת גודל תיבת הדואר: ניתן להשתמש בזה כדי להגביל את גודל ההודעות. קביעת ערך זה ל־0 מבטלת כל הגבלה על גודל.
  • תו הרחבת כתובת מקומית: זהו התו שניתן להשתמש בו כדי להפריד את החלק הרגיל של הכתובת מהרחבה (המשמשת ליצירת כתובות נלוות דינמיות). הברירת מחדל, +, תעבוד עבור המדריך הזה.
  • פרוטוקולי האינטרנט לשימוש: בחר אם להגביל את גרסת ה־IP שתומכת Postfix. למטרת המדריך הזה, בחר הכל.

כדי להיות ברור, אלו הם ההגדרות המשמשות במדריך זה:

  • סוג כללי של הגדרת דואר?: אתר אינטרנט
  • שם הדואר של המערכת: example.com (לא mail.example.com)
  • נמען הדואר של רוט ו־postmaster: שם משתמש של החשבון הלינוקס הראשי שלך (sammy בדוגמאות שלנו)
  • יעדים אחרים לקבלת דואר עבור: $myhostname, example.com, mail.example.com, localhost.example.com, localhost
  • לכפות עדכונים אסינכרוניים על תור הדואר?: לא
  • רשתות מקומיות: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  • מגבלת גודל תיבת הדואר: 0
  • תו הרחבת כתובת מקומית: +
  • פרוטוקולי האינטרנט לשימוש: הכל

הערה: אם תצטרך לחזור ולשנות את ההגדרות אי פעם, תוכל לעשות זאת על ידי הקלדת:

  1. sudo dpkg-reconfigure postfix

ההזמנות יהיו מוקדמות עם התגובות הקודמות שלך.

כאשר תתבקש לאתחל שירותים מחדש, קבל את הברירות המחדלות ובחר אישור.

כאשר תסיים את תהליך ההתקנה, אתה מוכן לבצע מספר עדכונים להגדרת ה-Postfix שלך.

שלב 2 — שינוי ההגדרות של Postfix

עכשיו אתה יכול להתאים עם חלק מההגדרות של Postfix שלא הוזנו במהלך תהליך ההתקנה. רוב ההגדרות של ההגדרות של Postfix מוגדרות בקובץ /etc/postfix/main.cf. במקום לערוך את הקובץ הזה ישירות, תוכל להשתמש בפקודת postconf של Postfix כדי לשאול או להגדיר הגדרות של ההגדרות.

להתחיל, הגדר את המיקום עבור תיקיית הדואר של המשתמש שלך ב-Ubuntu שאינו משתמש root. במדריך הזה, נשתמש בתבנית Maildir, שמפרידה את ההודעות לקבצים נפרדים שאז מועברים בין תיקיות על פי פעולת המשתמש. האפשרות האלטרנטיבית שלא מוסברת במדריך היא התבנית mbox, ששומרת את כל ההודעות בתוך קובץ אחד.

הגדר את המשתנה home_mailbox ל־Maildir/. מאוחר יותר, תיצור מבנה ספריית קבצים בשם זה בתוך ספריית הבית של המשתמש. הגדר את home_mailbox על ידי הקלדה:

  1. sudo postconf -e 'home_mailbox= Maildir/'

לאחר מכן, הגדר את מיקום טבלת virtual_alias_maps, הממפה חשבונות דואר אלקטרוני שונים לחשבונות מערכת Linux. הרץ את הפקודה הבאה, הממפה את מיקום הטבלה לקובץ מסד נתונים בתצורת גיבוב בשם /etc/postfix/virtual:

  1. sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

עכשיו שהגדרת את מיקום קובץ המיפוי הווירטואלי בקובץ ה־main.cf שלך, תוכל ליצור את הקובץ עצמו ולהתחיל למפות חשבונות דואר אלקטרוני לחשבונות משתמש במערכת ה־Linux שלך. צור את הקובץ עם עורך טקסט לבחירתך; בדוגמה זו, נשתמש ב־nano:

  1. sudo nano /etc/postfix/virtual

רשום את כל הכתובות שברצונך לקבל דואר עבורן, לאחר מכן רווח ואת שם המשתמש ב־Linux שברצונך שהדואר יועבר אליו.

לדוגמה, אם ברצונך לקבל דואר אלקטרוני בכתובת contact@example.com ו־admin@example.com ותרצה שהדואר יועבר אל המשתמש בשם sammy, תוכל להגדיר את הקובץ שלך בדרך הבאה:

/etc/postfix/virtual
contact@example.com sammy
admin@example.com sammy

לאחר שמפתית את כל הכתובות לחשבונות השרת המתאימים, שמור וסגור את הקובץ. אם השתמשת ב־nano, עשה זאת על ידי לחיצה על CTRL + X, Y, ואז ENTER.

החל את המיפוי על ידי הקלדה:

  1. sudo postmap /etc/postfix/virtual

אתחל את תהליך ה־Postfix מחדש כדי לוודא שכל השינויים שלך הוחלו:

  1. sudo systemctl restart postfix

נניח שעקבת לתוך המדריך להגדרת השרת הראשונית, כבר הגדרת חומת אש עם UFW. חומת האש הזו תחסום חיבורים חיצוניים לשירותים בשרת שלך כברירת מחדל אלא אם ורק החיבורים האלה מורשים באופן ספציפי, ולכן תצטרך להוסיף כלל בחומת האש כדי לאפשר יוצאים ל-Postfix.

ניתן לאפשר חיבורים לשירות על ידי הקלדת:

  1. sudo ufw allow Postfix

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

שלב 3 — התקנת הלקוח לדואר ואתחול מבנה ה-Maildir

כדי לאינטראקט עם הדואר שמועבר, שלב זה ילמד אותך כיצד להתקין את החבילה s-nail. זו גרסה מותאמת של לקוח BSD xmail שיכולה להתמודד עם פורמט ה-Maildir בצורה נכונה.

לפני התקנת הלקוח, מומלץ לוודא שהמשתנה הסביבתי MAIL מוגדר כראוי. s-nail תחפש את המשתנה הזה כדי לקבוע איפה למצוא את הדואר של המשתמש שלך.

כדי לוודא שהמשתנה MAIL מוגדר ללא קשר לאופן בו אתה גושב על החשבון שלך – באמצעות ssh, su, su -, או sudo, לדוגמה – עליך להגדיר את המשתנה בקובץ /etc/bash.bashrc ולהוסיף אותו לקובץ בתיקיית /etc/profile.d כך שהוא יוגדר עבור כל המשתמשים כברירת מחדל.

כדי להוסיף את המשתנה לקבצים אלה, הקלד:

  1. echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

כדי לקרוא את המשתנה להפעלה הנוכחית שלך, יש לטעון את הקובץ /etc/profile.d/mail.sh:

  1. source /etc/profile.d/mail.sh

עם זאת, לאחר השלמת הפעולות, התקן את לקוח האימייל s-nail עם APT:

  1. sudo apt install s-nail

לפני הרצת הלקוח, ישנם כמה הגדרות שעליך לשנות. פתח את הקובץ /etc/s-nail.rc בעורך שלך:

  1. sudo nano /etc/s-nail.rc

בתחתית הקובץ, הוסף את האפשרויות הבאות:

/etc/s-nail.rc
. . .
set emptystart
set folder=Maildir
set record=+sent

הנה מה שהשורות הללו עושות:

  • set emptystart: מאפשר ללקוח לפתוח גם עם תיבת דואר ריקה
  • set folder=Maildir: מגדיר את התיקייה Maildir למשתנה הפנימי folder
  • set record=+sent: יוצר קובץ sent mbox לאחסון הודעות שנשלחו בתוך התיקייה שהוגדרה כתיקיית folder, במקרה זה Maildir

שמור וסגור את הקובץ כאשר תסיים. עכשיו אתה מוכן לאתחל את מבנה ה-Maildir של המערכת שלך.

A quick way to create the Maildir structure within your home directory is to send yourself an email with the s-nail command. Because the sent file will only be available once the Maildir is created, you should disable writing to it for this initial email. Do this by passing the -Snorecord option.

שלח את האימייל על ידי עבורת מחרוזת לפקודת ה־s-nail. תאם את הפקודה כך שתסמן את משתמש ה-Linux שלך כנמען:

  1. echo 'init' | s-nail -s 'init' -Snorecord sammy

הערה: עשויים להופיע את התגובה הבאה:

Output
Can't canonicalize "/home/sammy/Maildir"

זה נורמלי ועשוי להופיע רק בשליחת ההודעה הראשונה זו.

ניתן לבדוק כי התיקייה נוצרה על ידי חיפוש אחר התיקייה ~/Maildir:

  1. ls -R ~/Maildir

תראו כי מבנה התיקייה נוצר וקובץ ההודעה החדש נמצא בתיקיית ~/Maildir/new:

Output
/home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1650294586.Vfc01I7e11dM993645.mail.example.com /home/sammy/Maildir/tmp:

עכשיו שמבנה התיקייה נוצר, אתם מוכנים לבדוק את הלקוח s-nail על ידי צפייה בהודעת init ששלחתם ושליחת הודעה לכתובת דוא"ל חיצונית:

שלב 4 — בדיקת הלקוח

כדי לפתוח את הלקוח, הריצו את הפקודה s-nail:

  1. s-nail

בקונסולת המערכת, תראו תיבת דואר פשוטה עם ההודעת init הממתינה:

Output
s-nail version v14.9.15. Type `?' for help "/home/sammy/Maildir": 1 message 1 new >N 1 [email protected] 2022-04-18 15:09 14/452 init

לחצו ENTER כדי להציג את ההודעה:

Output
[-- Message 1 -- 14 lines, 452 bytes --]: Date: Mon, 18 Apr 2022 15:09:46 +0000 To: [email protected] Subject: init Message-Id: <20220418150946.EE6897E11A@@mail.example.com> From: [email protected] init

ניתן לחזור לרשימת ההודעות על ידי הקלדת h, ואז ENTER:

  1. h
Output
>R 1 [email protected] 2022-04-18 15:09 14/452 init

שימו לב שההודעה כעת נמצאת במצב R, מסמנת שהיא נקראה.

מאחר שההודעה הזו אינה משמעותית מדי, ניתן למחוק אותה על ידי לחיצה על d, ואז ENTER:

  1. d

כדי לחזור לטרמינל, הקלידו q ואז ENTER:

  1. q

כדי לבצע בדיקה סופית, בדוק אם s-nail מסוגל לשלוח הודעות דוא"ל כראוי. כדי לעשות זאת, תוכל לשים את תוכן קובץ טקסט בתהליך s-nail, דומה למה שעשית עם הודעת האיתחול ששלחת בשלב הקודם.

התחל על ידי כתיבת הודעת בדיקה בעורך טקסט:

  1. nano ~/test_message

בתוך ההודעה, הכנס טקסט שתרצה לשלוח:

~/test_message
Hello,

This is a test.  Please confirm receipt!

שמור וסגור את הקובץ לאחר כתיבת ההודעה.

לאחר מכן, השתמש בפקודת cat כדי להעביר את ההודעה לתהליך s-nail. תוכל לעשות זאת באמצעות הדוגמה הבאה, המשתמשת באפשרויות הבאות:

  • -s: מגדיר את שורת נושא ההודעת דוא"ל
  • -r: שינוי אופציונלי לשדה "מאת:" של ההודעת דוא"ל. כברירת מחדל, המשתמש ב-Linux שאתה מחובר אליו ישמש למילוי שדה זה. האפשרות -r מאפשרת לך לדרוס זאת עם כתובת חוקית, כמו אחת מהן שהגדרת בקובץ /etc/postfix/virtual. כדי להדגים, הפקודה הבאה משתמשת ב- [email protected]

כמו כן, הקפידו לשנות את user@email.com לכתובת דוא"ל חוקית שיש לך גישה אליה:

  1. cat ~/test_message | s-nail -s 'Test email subject line' -r [email protected] user@email.com

לאחר מכן, נווט לתיקיית הדואר הנכנס של כתובת הדוא"ל אליה שלחת את ההודעה. תראה את ההודעה שלך מחכה שם בקרוב מאוד.

הערה: אם ההודעה לא נמצאת בתיבת הדואר הנכנס שלך, ייתכן והיא נמצאת בתיקיית הספאם שלך.

תוכל לראות את ההודעות שנשלחו באמצעות לקוח ה- s-nail שלך. התחל מחדש את לקוח ה- s-nail באופן אינטראקטיבי.

  1. s-nail

מתוך לקוח האימייל, צפו בהודעות שנשלחו על ידי קלידה:

  1. file +sent

תראו פלט כמו זה:

Output
+[/home/sammy/Maildir/]sent: 1 message 1 new ▸N 1 To [email protected] 2022-04-18 15:12 10/211 Test email subject line

ניתן לנהל את ההודעות שנשלחו באמצעות אותם פקודות שבאמצעותן אתם מנהלים את ההודעות הנכנסות.

סיכום

עכשיו יש לכם את Postfix מוגדר על שרת Ubuntu 22.04 שלכם. ניהול שרתי דואר יכול להיות משימה מאתגרת למנהלי מערכות חדשים, אך עם התצורה הזו, תהייה לכם מספיק פונקציונליות של דואר MTA כדי להתחיל.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-on-ubuntu-22-04