הקדמה
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
:
לאחר מכן התקן את החבילה postfix
באמצעות הפקודה הבאה. שים לב שכאן אנו מעבירים את המשתנה הסביבתי DEBIAN_PRIORITY=low
לתוך פקודת ההתקנה הזו. זה יגרום לתהליך ההתקנה להציג לך הוראות להגדרת אפשרויות נוספות:
תהליך ההתקנה הזה יפתח סדרת שאלות אינטראקטיביות. לצורך המדריך הזה, השתמש במידע הבא כדי למלא את השאלות שלך:
- סוג כללי של הגדרות דואר?: עבור זה, בחר אינטרנט אתר מאחר וזה מתאים לצרכי התשתית שלנו.
- שם דואר מערכת: זהו הדומיין הבסיסי המשמש לבניית כתובת דואר אלקטרוני חוקית כאשר ניתן רק את חלק חשבון הכתובת. לדוגמה, נניח ששם המארח של השרת שלך הוא
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
- תו הרחבת כתובת מקומית:
+
- פרוטוקולי האינטרנט לשימוש: הכל
הערה: אם תצטרך לחזור ולשנות את ההגדרות אי פעם, תוכל לעשות זאת על ידי הקלדת:
ההזמנות יהיו מוקדמות עם התגובות הקודמות שלך.
כאשר תתבקש לאתחל שירותים מחדש, קבל את הברירות המחדלות ובחר אישור
.
כאשר תסיים את תהליך ההתקנה, אתה מוכן לבצע מספר עדכונים להגדרת ה-Postfix שלך.
שלב 2 — שינוי ההגדרות של Postfix
עכשיו אתה יכול להתאים עם חלק מההגדרות של Postfix שלא הוזנו במהלך תהליך ההתקנה. רוב ההגדרות של ההגדרות של Postfix מוגדרות בקובץ /etc/postfix/main.cf
. במקום לערוך את הקובץ הזה ישירות, תוכל להשתמש בפקודת postconf
של Postfix כדי לשאול או להגדיר הגדרות של ההגדרות.
להתחיל, הגדר את המיקום עבור תיקיית הדואר של המשתמש שלך ב-Ubuntu שאינו משתמש root. במדריך הזה, נשתמש בתבנית Maildir, שמפרידה את ההודעות לקבצים נפרדים שאז מועברים בין תיקיות על פי פעולת המשתמש. האפשרות האלטרנטיבית שלא מוסברת במדריך היא התבנית mbox, ששומרת את כל ההודעות בתוך קובץ אחד.
הגדר את המשתנה home_mailbox
ל־Maildir/
. מאוחר יותר, תיצור מבנה ספריית קבצים בשם זה בתוך ספריית הבית של המשתמש. הגדר את home_mailbox
על ידי הקלדה:
לאחר מכן, הגדר את מיקום טבלת virtual_alias_maps
, הממפה חשבונות דואר אלקטרוני שונים לחשבונות מערכת Linux. הרץ את הפקודה הבאה, הממפה את מיקום הטבלה לקובץ מסד נתונים בתצורת גיבוב בשם /etc/postfix/virtual
:
עכשיו שהגדרת את מיקום קובץ המיפוי הווירטואלי בקובץ ה־main.cf
שלך, תוכל ליצור את הקובץ עצמו ולהתחיל למפות חשבונות דואר אלקטרוני לחשבונות משתמש במערכת ה־Linux שלך. צור את הקובץ עם עורך טקסט לבחירתך; בדוגמה זו, נשתמש ב־nano
:
רשום את כל הכתובות שברצונך לקבל דואר עבורן, לאחר מכן רווח ואת שם המשתמש ב־Linux שברצונך שהדואר יועבר אליו.
לדוגמה, אם ברצונך לקבל דואר אלקטרוני בכתובת contact@example.com
ו־admin@example.com
ותרצה שהדואר יועבר אל המשתמש בשם sammy, תוכל להגדיר את הקובץ שלך בדרך הבאה:
contact@example.com sammy
admin@example.com sammy
לאחר שמפתית את כל הכתובות לחשבונות השרת המתאימים, שמור וסגור את הקובץ. אם השתמשת ב־nano
, עשה זאת על ידי לחיצה על CTRL + X
, Y
, ואז ENTER
.
החל את המיפוי על ידי הקלדה:
אתחל את תהליך ה־Postfix מחדש כדי לוודא שכל השינויים שלך הוחלו:
נניח שעקבת לתוך המדריך להגדרת השרת הראשונית, כבר הגדרת חומת אש עם UFW. חומת האש הזו תחסום חיבורים חיצוניים לשירותים בשרת שלך כברירת מחדל אלא אם ורק החיבורים האלה מורשים באופן ספציפי, ולכן תצטרך להוסיף כלל בחומת האש כדי לאפשר יוצאים ל-Postfix.
ניתן לאפשר חיבורים לשירות על ידי הקלדת:
עם זאת, Postfix מוגדר ומוכן לקבל חיבורים חיצוניים. עם זאת, אינך מוכן עדיין לבדוק את זה עם לקוח דואר. לפני שתוכל להתקין לקוח ולהשתמש בו לאינטראקציה עם הדואר שמועבר לשרת שלך, תצטרך לבצע מספר שינויים בהגדרת השרת שלך ב-Ubuntu.
שלב 3 — התקנת הלקוח לדואר ואתחול מבנה ה-Maildir
כדי לאינטראקט עם הדואר שמועבר, שלב זה ילמד אותך כיצד להתקין את החבילה s-nail
. זו גרסה מותאמת של לקוח BSD xmail
שיכולה להתמודד עם פורמט ה-Maildir בצורה נכונה.
לפני התקנת הלקוח, מומלץ לוודא שהמשתנה הסביבתי MAIL
מוגדר כראוי. s-nail
תחפש את המשתנה הזה כדי לקבוע איפה למצוא את הדואר של המשתמש שלך.
כדי לוודא שהמשתנה MAIL
מוגדר ללא קשר לאופן בו אתה גושב על החשבון שלך – באמצעות ssh
, su
, su -
, או sudo
, לדוגמה – עליך להגדיר את המשתנה בקובץ /etc/bash.bashrc
ולהוסיף אותו לקובץ בתיקיית /etc/profile.d
כך שהוא יוגדר עבור כל המשתמשים כברירת מחדל.
כדי להוסיף את המשתנה לקבצים אלה, הקלד:
כדי לקרוא את המשתנה להפעלה הנוכחית שלך, יש לטעון את הקובץ /etc/profile.d/mail.sh
:
עם זאת, לאחר השלמת הפעולות, התקן את לקוח האימייל s-nail
עם APT:
לפני הרצת הלקוח, ישנם כמה הגדרות שעליך לשנות. פתח את הקובץ /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 שלך כנמען:
הערה: עשויים להופיע את התגובה הבאה:
OutputCan't canonicalize "/home/sammy/Maildir"
זה נורמלי ועשוי להופיע רק בשליחת ההודעה הראשונה זו.
ניתן לבדוק כי התיקייה נוצרה על ידי חיפוש אחר התיקייה ~/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
:
בקונסולת המערכת, תראו תיבת דואר פשוטה עם ההודעת init
הממתינה:
Outputs-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
:
Output>R 1 [email protected] 2022-04-18 15:09 14/452 init
שימו לב שההודעה כעת נמצאת במצב R
, מסמנת שהיא נקראה.
מאחר שההודעה הזו אינה משמעותית מדי, ניתן למחוק אותה על ידי לחיצה על d
, ואז ENTER
:
כדי לחזור לטרמינל, הקלידו q
ואז ENTER
:
כדי לבצע בדיקה סופית, בדוק אם s-nail
מסוגל לשלוח הודעות דוא"ל כראוי. כדי לעשות זאת, תוכל לשים את תוכן קובץ טקסט בתהליך s-nail
, דומה למה שעשית עם הודעת האיתחול ששלחת בשלב הקודם.
התחל על ידי כתיבת הודעת בדיקה בעורך טקסט:
בתוך ההודעה, הכנס טקסט שתרצה לשלוח:
Hello,
This is a test. Please confirm receipt!
שמור וסגור את הקובץ לאחר כתיבת ההודעה.
לאחר מכן, השתמש בפקודת cat
כדי להעביר את ההודעה לתהליך s-nail
. תוכל לעשות זאת באמצעות הדוגמה הבאה, המשתמשת באפשרויות הבאות:
-s
: מגדיר את שורת נושא ההודעת דוא"ל-r
: שינוי אופציונלי לשדה "מאת:" של ההודעת דוא"ל. כברירת מחדל, המשתמש ב-Linux שאתה מחובר אליו ישמש למילוי שדה זה. האפשרות-r
מאפשרת לך לדרוס זאת עם כתובת חוקית, כמו אחת מהן שהגדרת בקובץ/etc/postfix/virtual
. כדי להדגים, הפקודה הבאה משתמשת ב-[email protected]
כמו כן, הקפידו לשנות את user@email.com
לכתובת דוא"ל חוקית שיש לך גישה אליה:
לאחר מכן, נווט לתיקיית הדואר הנכנס של כתובת הדוא"ל אליה שלחת את ההודעה. תראה את ההודעה שלך מחכה שם בקרוב מאוד.
הערה: אם ההודעה לא נמצאת בתיבת הדואר הנכנס שלך, ייתכן והיא נמצאת בתיקיית הספאם שלך.
תוכל לראות את ההודעות שנשלחו באמצעות לקוח ה- s-nail
שלך. התחל מחדש את לקוח ה- s-nail באופן אינטראקטיבי.
מתוך לקוח האימייל, צפו בהודעות שנשלחו על ידי קלידה:
תראו פלט כמו זה:
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 כדי להתחיל.