Ha e-mailt szeretne küldeni vagy kapni, rendelkeznie kell egy e-mail szerverrel. Ebben a bejegyzésben megvitatjuk a Linux levelezőszervert, valamint az SMTP (Simple Mail Transfer Protocol) működését, valamint más levelekkel kapcsolatos protokollokat, mint például a Post Office Protocol (POP) és az Internet Message Access Protocol (IMAP), valamint a köztük lévő kapcsolatot.,
Tartalomjegyzék
Linux SMTP server
SMTP meghatározza, hogyan lehet e-mailt küldeni az egyik gazdagépről a másikra; ez is rendszerfüggetlen, ami azt jelenti, hogy a feladó és a vevő különböző operációs rendszerekkel rendelkezhet.
az SMTP csak azt követeli meg, hogy a kiszolgáló egyenes ASCII szöveget küldjön egy másik kiszolgálóra, ezt úgy teheti meg, hogy csatlakozik a kiszolgálóhoz a 25-ös porton, amely a standard SMTP port.
a legtöbb Linux disztribúció ma az SMTP két leggyakoribb implementációjával érkezik, melyek a sendmail és a Postfix.,
a Sendmail egy híres és ingyenes levelezőszerver, de egy kicsit bonyolult és kevésbé biztonságos.
a Postfix egy lépéssel tovább vitte a mail server megvalósítását; a biztonságot szem előtt tartva fejlesztették ki.
Mail service components
az e-mail szolgáltatás bármely e-mail szerveren három összetevőből áll:
Mail user agent (MUA): ez az összetevő, amelyet a felhasználó lát és kölcsönhatásba lép, mint a Thunderbird és a Microsoft Outlook, ezek a felhasználói ügynökök felelősek a levelek olvasásáért, és lehetővé teszik a levelek összeállítását.,
Mail transport agent (MTA): ez az összetevő felelős azért, hogy a leveleket egyik helyről a másikra, mint a Sendmail és Postfix.
Mail delivery agent (MDA): ez az összetevő felelős a fogadott üzenetek helyi gépen történő terjesztéséért a megfelelő felhasználói postafiókba, mint például a postfix-maildrop vagy a Procmail.
e-mail kiszolgáló beállítása
a Postfix mail kiszolgálót választottuk, amely ma nagyon népszerű és gyakori a rendszergazdák körében.
a Postfix az alapértelmezett levelezőszerver a legtöbb modern Linux disztribúcióban.,
Első, ellenőrizze, hogy telepítve van-e a rendszer vagy sem:
$ rpm -qa | grep postfix
Ha nincs telepítve, telepítse Postfix levelező szerver, vagy a Red hat alapú disztribúciók, mint ez:
$ dnf -y install postfix
Majd indítsa el a postfix szolgáltatás, ami lehetővé teszi a rendszer indításakor:
$ systemctl start postfix$ systemctl enable postfix
A Debian alapú disztribúciók, mint az Ubuntu, tudod telepíteni, mint ez:
$ apt-get -y install postfix
kérni fogja, hogy válassza ki, milyen típusú konfiguráció a Postfix levelező szerver a telepítési folyamat során.,
a négy lehetőség közül nincs konfiguráció, internetes oldal, internet smarthost, műholdas rendszer, csak helyi, nem választunk konfigurációs lehetőséget.
konfigurálja a Linux levelezőszervert
a Postfix levelezőszerver telepítése után konfigurálnia kell; konfigurációs fájljainak nagy részét az /etc/postfix/ könyvtár alatt találja.
a Postfix mail server fő konfigurációját az /etc/postfix/main.cf fájlban találja meg.,
Ez a fájl sok lehetőséget tartalmaz, mint például:
myhostname
ezt a lehetőséget használhatja a levelezőszerver gazdagépnevének megadására. Ez az internetes hostname, amely Postfix e-maileket fog kapni rajta.
Az állomásneveket lehet, mint mail.example.com, smtp.example.com.
myhostname = mail.example.com
mydomain
Ez az opció a mail, domain, hogy lesz szervizelése, mint example.com
A szintaxis, mint ez:
mydomain = example.com
myorigin
az Összes e-maileket küldött e-mail szerver fog kinézni, mintha jött ez a lehetőség., Ezt $mydomain értékre állíthatja.
myorigin = $mydomain
bármelyik opcióértéket használhatja, csak egy $ – hoz hasonló $mydomain-val megelőzve.
mydestination
Ez az opció felsorolja azokat a tartományokat, amelyeket a Postfix szerver használ a bejövő e-mailekhez.
ilyen értékeket vehet fel:
mydestination = $myhostname, localhost.$mydomain, $mydomain, mail.$mydomain, www.$mydomain
mail_spool_directory
két szállítási mód van, amelyeket a Postfix levelezőszerver használhat:
- közvetlenül a felhasználó postafiókjába.
- egy központi spool könyvtárba, így az e-mail a / var / spool / mail fájlban lesz minden felhasználó számára.,
mail_spool_directory = /var/spool/mail
mynetworks
Ez az opció lehetővé teszi, hogy konfigurálja, milyen szerverek továbbíthatják a Postfix kiszolgálót.
Ez az opció a helyi címeket, például a helyi e-mail szkripteket csak a kiszolgálón veheti igénybe.
ellenkező esetben a spamküldők felhasználhatják a levelezőszervert üzeneteik továbbítására, valamint a levelezőszerver feketelistára helyezésére, ezért nem fog tudni sok e-mailt kapni.,
Ez az opció a következő szintaxissal rendelkezik:
mynetworks = 127.0.0.0/8, 192.168.1.0/24
smtpd_barner
Ez a változó beállítja azt az üzenetet, amelyet a szerver küld, amikor az ügyfél sikeres kapcsolat után.
jobb, ha a szalaghirdetést olyanra változtatja, amely nem ad nyomot a használt kiszolgálóról.
inet_protocols
Ez az opció a szerverkapcsolatokhoz használt IP protokoll verziót adja meg.,
inet_protocols = ipv4
Ha megváltoztatja a Postfix levelezőszerver konfigurációs fájljait, újra kell töltenie a szolgáltatást:
$ systemctl reload postfix
bármilyen konfiguráció beírásakor hibát követhet el, a következő paranccsal ellenőrizheti a hibákat:
$ postfix check
Ez az eszköz segít megtalálni pontosan a sort és a hibát, így kijavíthatja.
A levelezési sor ellenőrzése
néha az e-mail sorok tele vannak üzenetekkel. Ez sok okból következik be, mint például a hálózati hiba vagy bármilyen ok, amely késleltetheti a postai kézbesítést.,
a Linux levelezőszerver levelezési sorának ellenőrzéséhez használja a következő parancsot:
$ mailq
Ez a parancs a Postfix levelezési sorát mutatja.
Ha a sor megtelt, az üzenet feldolgozása több órát vesz igénybe, akkor öblítse le a levelezési Sort.
$ postfix flush
most, ha ellenőrzi a levelezési Sort, üresnek kell lennie.
tesztelje a Linux levelezőszervert
a Postfix levelezőszerver helyes konfigurálása után tesztelje a levelezőszervert.,
az első lépés egy helyi e-mail felhasználói ügynök, például a mailx vagy a mail használata, amely egy symlink to mailx.
próbáljon levelet küldeni valaki másnak ugyanazon a kiszolgálón, ha ez működik, majd küldjön egy távoli webhelyre.
ezután próbáljon meg levelet kapni egy távoli webhelyről.
Ha bármilyen problémája van, ellenőrizze a naplókat. A Red Hat alapú disztrók naplófájlja a/var/log / maillog fájlban, valamint a Debian alapú disztrók a / var / log / mail fájlban.naplófájl vagy az rsyslogd konfigurációban meghatározottak szerint.,
azt javaslom, hogy tekintse át a Linux Syslog szerver részletes magyarázatot naplók, hogyan kell beállítani a rsyslogd.
Ha továbbra is problémái vannak, próbálja meg ellenőrizni a DNS-beállításokat, majd ellenőrizze az MX-rekordokat Linux hálózati parancsokkal.
biztonságos postafiókok a spam segítségével SpamAssassin
a spam elleni küzdelem egyik módja a postafiókok beolvasása valamilyen eszközzel, a spamhez kapcsolódó bizonyos minták keresése.
az egyik legjobb megoldás a SpamAssassin, amely nyílt forráskódú.,
így telepítheti:
$ dnf -y install spamassassin
Ezután indítsa el a szolgáltatást, majd indításkor engedélyezze:
$ systemctl start spamassassin$ systemctl enable spamassassin
miután telepítette, ellenőrizheti a konfigurációt
/etc/mail/spamassassin/local.cf
fájl.
a SpamAssassin meghatározza, hogy egy e-mail spam-e vagy sem a különböző szkriptek pontszámai alapján.
Ha az üzenetnek magasabb pontszáma van, ez azt jelenti, hogy nagyobb a lehetősége annak, hogy a levél spam legyen.,
a konfigurációs fájlban a required_hits 5 paraméter azt jelzi, hogy a SpamAssassin egy e-mailt spamként jelöl, ha a pontszám öt vagy annál magasabb.
a report_safe opció a 0, 1 vagy 2 értékeket veszi fel. Ha 0-ra van állítva, akkor azt jelenti, hogy a spamként megjelölt e-maileket úgy küldi el, ahogy van, csak a fejléceket módosítja, hogy megmutassa, hogy spam.
Ha 1 vagy 2 értéket vesz fel, a SpamAssassin új jelentésüzenetet generál, majd elküldi az üzenetet a címzettnek.,
az 1 érték azt jelenti, hogy a spam üzenet tartalomüzenetként van kódolva / rfc822, míg ha az érték 2, Ez azt jelenti, hogy az üzenet szöveges/egyszerű tartalomként van kódolva.
a szöveg/egyszerűség biztonságosabb, mivel egyes levelezőprogramok végrehajtják a message / rfc822 parancsot, és megfertőzhetik az ügyfél számítógépét.
most be kell integrálnunk a Postfixbe. Ennek legegyszerűbb módja valószínűleg a procmail használata.
létre kell hoznunk egy
/etc/procmailrc
nevű fájlt, majd hozzáadjuk a következő tartalmat:
:0 hbfw| /usr/bin/spamc
majd szerkesztjük a Postfix konfigurációs fájlt /etc/postfix/main.,cf and change
mailbox_command
mailbox_command = /usr/bin/procmail
végül indítsa újra a Postfix és a SpamAssassin szolgáltatásokat:
$ systemctl restart postfix$ systemctl restart spamassassin
azonban a SpamAssassin néha nem ismeri fel a spam üzeneteket, amelyek levélszemétekkel töltött postafiókhoz vezettek.
szerencsére szűrheti az üzeneteket, mielőtt belépnének a Postfix szerverbe a valós idejű Blackhole listák (RBLs) segítségével. Ez csökkenti a levelezőszerver terhelését, és tisztán tartja a levelezőszerverét.
nyissa meg a Postfix server /etc/postfix/main konfigurációs fájlját.,cf and change smtpd_recipient_restrictions option and add the following options like this:
ezután indítsa újra a postfix server:
$ systemctl restart postfix
a fenti RBLs a leggyakoribbak; további listákat találhat az interneten, és kipróbálhatja őket.
SMTP-kapcsolat biztosítása
jobb, ha az SMTP-forgalmat TLS-re továbbítja, hogy megvédje azt a középső embertől (MITM) támadás.
először létre kell hoznunk a tanúsítványt és a kulcsot az openssl paranccsal:
majd adjuk hozzá a következő opciót a Postfix konfigurációs fájl /etc/postfix/main.,cf:
végül indítsa újra a postfix szolgáltatást:
$ systemctl restart postfix
most ki kell választania a kliens TLS-jét, amikor csatlakozik a szerverhez.
figyelmeztetést kap, amikor a beállítás megváltoztatása után először küld e-mailt, mert a tanúsítvány nincs aláírva.
A Let ‘s Encrypt certificates
a Let’ s Encrypt egy ingyenes SSL tanúsítványszolgáltató, amely lehetővé teszi a forgalom titkosítását.
ahelyett, hogy önaláírt tanúsítványokat használna, amelyek bosszantják a felhasználókat abban, hogy megbíznak bennük, használhatja ezt a jó megoldást.,
először telepítse a letsencrypt:
$ yum install letsencrypt
vagy ha Debian alapú disztrót használ, akkor a következő parancsot használhatja:
$ apt-get install letsencrypt
ezután futtassa a letsencrypt-t:
$ letsencrypt certonly --standalone -d yourdomain.com
ki kell cserélni yourdomain.com a tényleges domain.
a kapcsolatfelvételi e-mailre, az e-mail szerver domainre, valamint a licencre vonatkozó kérdések megválaszolása után minden rendben van.,
a tanúsítványok a következőkben lesznek:
/etc/letsencrypt/live/yourdomain.com/
még egy utolsó dolog, amit meg kell tennie, ami a postfix ezeket a tanúsítványokat használja, a következő parancsokat használhatja:
ne felejtse el cserélni yourdomain.com a tényleges domain.
Végül indítsa újra a postfix szerver:
$ systemctl restart postfix
POP3, illetve IMAP protokoll alapismeretek
eddig láttuk, hogy az SMTP mail server küld kap e-maileket, problémák nélkül, de fontolja meg az alábbi helyzetekben:
- a Felhasználóknak szükségük van a helyi másolatot az e-mail offline megtekintésre.,
- az mbox fájlformátum nem támogatott. Az mbox formátumot számos levelező felhasználó használja, mint például a mailx vagy a mutt.
- a felhasználók nem maradhatnak csatlakoztatva egy gyors hálózathoz, hogy megragadjanak egy helyi példányt offline olvasáshoz.
- egyes levelezőszerverek biztonsági okokból nem biztosítanak hozzáférést a megosztott levéltárak könyvtáraihoz.
ezeknek az eseteknek a kezeléséhez használja a mail access protokollokat.
a leggyakoribb két népszerű levelezési hozzáférési protokoll a Post Office Protocol (POP) és az Internet Message Access Protocol (IMAP).,
a POP mögött rejlő ötlet nagyon egyszerű: egy központi Linux levelező szerver folyamatosan online marad, és e-maileket fogad és tárol minden felhasználó számára. Az összes fogadott e-mail sorban áll a kiszolgálón, amíg a felhasználó meg nem ragadja őket.
amikor egy felhasználó e-mailt szeretne küldeni, az e-mail kliens normál módon továbbítja azt a központi Linux levelezőszerveren keresztül SMTP-n keresztül.
vegye figyelembe, hogy az SMTP-kiszolgáló és a POP-kiszolgáló probléma nélkül ugyanazon a rendszeren lehet. A legtöbb szerver ezt ma teszi.
olyan funkciók, mint például a felhasználó e-mailjének mestermásolata a kiszolgálón, hiányoztak, ami az IMAP fejlesztéséhez vezetett.,
az IMAP használatával a Linux levelezőszerver három hozzáférési módot támogat:
- az online mód hasonló a közvetlen fájlrendszer-hozzáféréshez a Linux levelezőszerverhez.
- az offline mód hasonló a POP működéséhez, ahol az ügyfél le van választva a hálózatról, kivéve, ha megragad egy e-mailt. Ebben a módban a kiszolgáló általában nem őrzi meg az e-mail másolatát.
- a leválasztott mód Úgy működik, hogy lehetővé teszi a felhasználók számára az e-mailek gyorsítótárazott másolatainak megőrzését, a szerver pedig megőrzi az e-mail másolatát.,
számos implementáció létezik az IMAP és a POP számára; a legnépszerűbb a Dovecot szerver, amely mindkét protokollt biztosítja.
A POP3, a POP3S, az IMAP és az IMAPS a 110-es, a 995-ös, a 143-as és a 993-as portokon hallgat.
telepítése Dovecot
a legtöbb Linux disztribúció jön Dovecot előre telepített., Azonban lehet telepíteni Dovecot a Red hat alapú disztribúciók, mint ez:
$ dnf -y install dovecot
Debian alapú disztribúciók nyújt az IMAP, illetve POP3 funkcionalitás két különálló csomagok telepítése, mint ez:
$ apt-get -y install dovecot-imapd dovecot-pop3d
Ez fogja kérni, hogy hozzon létre saját aláírású bizonyítványt használ, IMAP, illetve POP3-SSL/TLS. Válassza az Igen lehetőséget, majd adja meg a rendszer hostnevét, amikor a rendszer kéri.,
ezután futtathatja a szolgáltatást, és engedélyezheti azt indításkor:
$ systemctl start dovecot$ systemctl enable dovecot
Dovecot
a Dovecot fő konfigurációs fájlja
/etc/dovecot/dovecot.conf
fájl.
néhány Linux disztribúció a konfigurációt
/etc/dovecot/conf.d/
könyvtár alá helyezi, és az include directive segítségével tartalmazza a beállításokat a fájlokban.
a paraméterek alábbi listáját használhatja a Dovecot konfigurálásához:
protokollok: a támogatni kívánt protokollok.
protocols = imap pop3 lmtp
lmtp helyi levelezési protokollt jelent.,
hallgat: IP-címeket hallgatni.
listen = *, ::
a csillag minden ipv4 interfészt jelent, és :: minden ipv6 interfészt jelent
userdb: felhasználói adatbázis a felhasználók hitelesítéséhez.
userdb {driver = pam}
passdb: jelszó adatbázis a felhasználók hitelesítéséhez.
passdb {driver = passwd}
mail_location: this entry in /etc/dovecot/conf.d / 10-mail.conf fájl:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Secure Dovecot
a Dovecot általános SSL tanúsítványokkal és kulcsfájlokkal érkezik., Nézze meg ezt a fájlt:
/etc/dovecot/conf.d/10-ssl.conf
ssl_cert = </etc/pki/dovecot/certs/dovecot.pemssl_key = </etc/pki/dovecot/private/dovecot.pem
amikor egy felhasználó megpróbál csatlakozni a dovecot szerverhez, figyelmeztetést fog mutatni, mert a tanúsítványok nincsenek aláírva, akkor tanúsítványt vásárolhat egy tanúsítványkiadó hatóságtól, ha szeretné.
Vagy ha mondjuk Titkosítása bizonyítványok, akkor pont helyett:
ssl_cert = </etc/letsencrypt/live/yourdomain.com/fullchain.pemssl_key = </etc/letsencrypt/live/yourdomain.com/privkey.pem
Ne felejtsd el, hogy nyitott dovecot szerver port a iptables tűzfal hozzáadásával iptables szabályokat portok 110, 995, 143, 993, 25.
majd mentse el a szabályokat.,
vagy ha firewalld-t használ, akkor a következőket teheti:
és ismét a hibaelhárításhoz ellenőrizze a naplófájlokat /var/log/üzenetek, /var/log/maillog és /var/log/mail.naplófájlok.
A Linux mail server az egyik legegyszerűbb szerver, amellyel dolgozni lehet, különösen a Postfix mail server.
remélem, hasznosnak és érdekesnek találja a posztot. Gyere vissza.
köszönöm.
a LikeGeeks alapítója. 2010 óta dolgozom Linux rendszergazdaként., Én vagyok a felelős a Linux szerverek karbantartásáért, biztonságáért és hibaelhárításáért világszerte több ügyfél számára. Szeretek shell és Python szkripteket írni, hogy automatizáljam a munkámat.
Vélemény, hozzászólás?