Postfixin ja Dovecotin määrittäminen virtuaalisen verkkotunnuksen käyttäjillä Linuxissa - Osa 2
Tämän sarjan edellisessä artikkelissa selitimme, kuinka sähköpostipalvelimen tietokanta määritetään ja hallitaan turvallisesti phpMyAdminin avulla.
Vaatimus:
- Asenna Postfix Mail Server ja Dovecot MariaDB:n kanssa – Osa 1
Nyt on aika määrittää sisäiset ohjelmat, jotka tekevät sähköpostien lähettämisestä ja vastaanottamisesta todellisuutta: Postfix ja Dovecot (vastaavasti lähtevien ja saapuvien sähköpostien käsittelemiseen).
Postfix-postipalvelimen määrittäminen
Ennen kuin aloitat Postfixin määrittämisen, kannattaa ja hyvä käydä katsomassa sen man-sivuja täällä, painottaen erityisesti osiota "Tietoja uusille Postfix-käyttäjille" . Jos teet niin, sinun on helpompi seurata tätä opetusohjelmaa.
Muutamalla sanalla, sinun pitäisi tietää, että Postfixille on kaksi määritystiedostoa:
- /etc/postfix/main.cf (Postfix-määritysparametrit, katso lisätietoja kohdasta man 5 postconf).
- /etc/postfix/master.cf (Postfix-päädaemonin kokoonpano, katso lisätietoja man 5 -masterista).
Etsi tiedostosta /etc/postfix/main.cf
seuraavat rivit (tai lisää tarvittaessa) ja varmista, että ne vastaavat alla olevia arvoja:
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
dovecot_destination_recipient_limit = 1
message_size_limit = 4194304
readme_directory = no
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (CentOS)
smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem
smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_transport = dovecot
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
Seuraavat kolme asetusta ovat erityisen tärkeitä. Keltaisella merkityissä tiedostoissa määritämme Postfixin pääsyn taulukoihin Domains_tbl, Users_tbl ja Alias_tbl:
virtual_mailbox_domains = mysql:/etc/postfix/mariadb-vdomains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mariadb-vusers.cf
virtual_alias_maps = mysql:/etc/postfix/mariadb-valias.cf
Huomaa, että voit valita yllä erilaisia tiedostonimiä, kunhan luot ne ja lisäät niihin seuraavan sisällön. Korvaa kaikissa tapauksissa YourPassword salasanalla, jonka valitsit dba-käyttäjälle osassa 1, tai voit myös käyttää MariaDB:tä. käyttäjän ja salasanan pääkäyttäjätiedot alla.
Varmista myös, että käytät täsmälleen samoja nimiä sähköpostipalvelimen tietokannassa ja taulukoissa, jotka on luotu osassa 1.
Kohdassa /etc/postfix/mariadb-vdomains.cf
:
user = dba
password = YourPassword
hosts = 127.0.0.1
dbname = EmailServer_db
query = SELECT 1 FROM Domains_tbl WHERE DomainName='%s'
Kohdassa /etc/postfix/mariadb-vusers.cf
:
user = dba
password = YourPassword
hosts = 127.0.0.1
dbname = EmailServer_db
query = SELECT 1 FROM Users_tbl WHERE Email='%s'
Kohdassa /etc/postfix/mariadb-valias.cf
:
user = dba
password = YourPassword
hosts = 127.0.0.1
dbname = EmailServer_db
query = SELECT Destination FROM Alias_tbl WHERE Source='%s'
Lopuksi, älä unohda muuttaa näiden tiedostojen käyttöoikeuksia 640:
chmod 640 /etc/postfix/mariadb-vdomains.cf
chmod 640 /etc/postfix/mariadb-vusers.cf
chmod 640 /etc/postfix/mariadb-valias.cf
Ja omistajuus käyttäjälle root ja ryhmälle postfix:
chown root:postfix /etc/postfix/mariadb-vdomains.cf
chown root:postfix /etc/postfix/mariadb-vusers.cf
chown root:postfix /etc/postfix/mariadb-valias.cf
Seuraavaksi suojattujen yhteyksien mahdollistamiseksi meidän on varmistettava, että seuraavia asetuksia ei ole kommentoitu (tai lisätty tarvittaessa) tiedostoon /etc/postfix/master.cf
:
submission inet n - n - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
pickup unix n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
#virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
Huomaa: -o
-vaihtoehdolla alkavien rivien sisennys on kriittinen. muuten postfix check palauttaa virheen:
Ennen kuin tallennat muutokset, lisää seuraavat rivit tiedoston alaosaan:
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
Tässä vaiheessa on tärkeää tarkistaa, onko Postfixillä pääsy tietokantataulukoihin ja verkkotunnuksiin, tileihin ja aliaksiin, jotka loimme osassa 1.
Käytämme tätä varten postmap-komentoa, apuohjelmaa, jolla testataan kommunikaatiota taulukoiden kanssa, joita Postfix etsii käytön aikana, mutta ennen kaikkea meidän on käynnistettävä postfix uudelleen:
systemctl postfix restart
postmap -q linuxnewz.com mysql:/etc/postfix/mariadb-vdomains.cf
postmap -q someotherdomain.com mysql:/etc/postfix/mariadb-vdomains.cf
postmap -q [email mysql:/etc/postfix/mariadb-vusers.cf
postmap -q [email mysql:/etc/postfix/mariadb-vusers.cf
postmap -q [email mysql:/etc/postfix/mariadb-vusers.cf
postmap -q [email mysql:/etc/postfix/mariadb-valias.cf
Alla olevassa kuvassa voimme nähdä, että tietokannan olemassa oleville tietueille palautetaan 1. Muuten näytölle ei näytetä mitään. Huomaa aliaksen tarkistuksen yhteydessä, että varsinainen sähköpostitili, johon alias on yhdistetty, palautetaan:
Huomaa, että emme EI todenna kullekin sähköpostitilille asetettuja tunnistetietoja vastaan, vaan testaamme vain Postfixin kykyä havaita kyseiset tietueet tietokannasta.
Jos saat siis eri tulosteen kuin yllä, varmista, että käytät kelvollista käyttäjä/salasana-paria tiedostoissa mariadb-vdomains.cf, mariadb-vusers.cf ja mariadb-valias.cf (tai millä tahansa nimellä valitsit näiden tiedostojen nimeksi).
Dovecotin konfigurointi
IMAP/POP3-palvelimena Dovecot tarjoaa käyttäjille tavan Mail User Agentin (MUA tai tunnetaan myös nimellä asiakas), kuten Thunderbird tai Outlook, mainitakseni muutamia esimerkkejä sähköpostinsa käyttämisestä.
Aluksi luodaan käyttäjä ja ryhmä sähköpostien käsittelyä varten (tarvitsemme tätä, koska sähköpostitiliämme ei ole liitetty järjestelmän käyttäjään). Voit käyttää toista UID:tä ja GID:tä (muuta kuin 5000, kuten alla) niin kauan kuin se ei ole käytössä ja on suuri luku:
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail -m
Dovecotin asetukset on jaettu useisiin asetustiedostoihin (varmista, että seuraavat rivit ovat kommentoimattomia ja/tai muokkaa niitä vastaamaan alla olevia asetuksia).
Kohdassa /etc/dovecot/dovecot.conf
:
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap pop3 lmtp
!include conf.d/*.conf
!include_try local.conf
Kohdassa /etc/dovecot/conf.d/10-auth.conf
(ota käyttöön vain todennus SQL:n kautta ja jätä muut todennusmenetelmät pois):
disable_plaintext_auth = yes
auth_mechanisms = plain login
!include auth-sql.conf.ext
Kohdassa /etc/dovecot/conf.d/auth-sql.conf.ext
(huomaa, että tallennamme sähköpostit hakemistoon nimeltä omaverkkotunnus.com, joka sijaitsee / home/vmail, joka sinun on luotava, jos sitä ei ole olemassa. Meidän tapauksessamme teimme mkdir /home/vmail/linuxnewz.com hallitaksemme sähköposteja kyseiselle verkkotunnukselle:
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/home/vmail/%d/%n/Maildir
}
Käyttäjätilien yksittäiset postilaatikot luodaan, kun tällaisia tilejä koskevat sähköpostit vastaanotetaan ensimmäisen kerran.
Kohdassa /etc/dovecot/conf.d/10-mail.conf
:
mail_location = maildir:/home/vmail/%d/%n/Maildir
namespace inbox {
inbox = yes
}
mail_privileged_group = mail
mbox_write_locks = fcntl
Kohdassa /etc/dovecot/conf.d/10-master.conf
:
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
}
}
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
}
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
mode = 0600
user = vmail
}
user = dovecot
}
service auth-worker {
user = vmail
}
service dict {
unix_listener dict {
}
}
Kohdassa /etc/dovecot/conf.d/10-ssl.conf
(korvaa varmenne ja avainpolut, jos aiot käyttää CA:n allekirjoittamaa varmennetta):
ssl = required
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
Syötä kohtaan /etc/dovecot/dovecot-sql.conf.ext
tietokantatietosi ja osassa 1 luodun järjestelmänvalvojan käyttäjätunnukset.
Tärkeää: jos salasanasi sisältää tähden (#)
, sinun on liitettävä liitäntämerkkijono alla olevan esimerkin mukaisesti:
driver = mysql
connect = "host=127.0.0.1 dbname=EmailServer_db user=dba password=PassWith#Here"
default_pass_scheme = SHA512-CRYPT
password_query = SELECT Email as User, password FROM Users_tbl WHERE Email='%u';
Lisäksi voit määrittää Dovecotin kirjaamisen olemaan erillään Postfixista osoitteessa /etc/dovecot/conf.d/10-logging.conf
:
log_path = /var/log/dovecot.log
Varmista lopuksi, että Dovecot-loki on käyttäjän kyyhkynen käytettävissä:
chown vmail:dovecot /var/log/dovecot.log
chmod 660 /var/log/dovecot.log
Tarkista ja korjaa Postifix-määritykset ja ota SMTP, POP3 ja IMAP käyttöön palomuurissa
Jos kohtaat ongelmia Postfixin ja/tai Dovecotin määrittämisessä, sen sijaan, että lähettäisit kaikki määritystiedostot pyytääksesi apua, voit saada kokoonpanoyhteenvedon (vain kommentoimattomat rivit), jossa on:
postconf –n # Summary for /etc/postfix/main.cf
postconf –M # Summary for /etc/postfix/master.cf
doveconf –n # Summary of all configuration files for Dovecot
Varmista lisäksi, että sähköpostit ovat vain vmailin luettavissa:
chown –R vmail:vmail /home/vmail
Määritystiedostojen tulee olla myös vmailin ja dovecot-käyttäjien luettavissa:
chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot
Varmista lopuksi, että otat SMTP-, POP3- ja IMAP käyttöön palomuurin kautta:
firewall-cmd --add-port=143/tcp
firewall-cmd --add-port=143/tcp --permanent
firewall-cmd --add-port=110/tcp
firewall-cmd --add-port=110/tcp --permanent
firewall-cmd --add-port=587/tcp
firewall-cmd --add-port=587/tcp --permanent
Määritä Thunderbird sähköpostiohjelmaksi Postfixille
Kun sähköpostiviestinnässä käytettäviin portteihin on suojattu pääsy palomuurin kautta, on aika määrittää sähköpostiohjelma. Käyttämällä [sähköposti suojattu] ja sitä vastaava salasana sekä mail.linuxnewz.com IMAP- (tai POP3)- ja SMTP-palvelimena olemme valmiita aloittamaan sähköpostien lähettämisen ja vastaanottamisen ja sellaiselta tililtä:
Voit turvallisesti jättää huomioimatta näkyvän varoitusviestin, koska käytät varmennetta, jota ei ole allekirjoittanut luotettava kolmannen osapuolen CA:
Kirjoita lyhyt testisähköposti ja napsauta Lähetä:
Kun sinua kehotetaan hyväksymään lähtevän palvelimen itseallekirjoitettu varmenne, vahvista se aiemmin kuten ennen:
Siirry lopuksi kohdesähköpostiin ja katso, oletko saanut juuri lähetetyn sähköpostin. Jos on, vastaa siihen ja katso, onko se toimitettu takaisin lähdesähköpostilaatikkoon (muuten katso Postfix-loki osoitteessa /var/log/maillog tai Dovecot-loki osoitteessa /var /log/dovecot.log vianetsintätietoja varten):
Sinulla on nyt toimiva Postfix- ja Dovecot-sähköpostipalvelin ja voit alkaa lähettää ja vastaanottaa sähköposteja.
Yhteenveto
Tässä artikkelissa olemme selittäneet, kuinka Postfix ja Dovecot määritetään käsittelemään sähköpostiliikennettä Linux-palvelimessasi. Jos jokin ei toimi tässä artikkelissa kuvatulla tavalla, varmista, että käytät aikaa Postfix- ja Dovecot-dokumenttien tarkistamiseen.
Huomaa, että vaikka Postfix-sähköpostipalvelimen asentaminen ei ole helppoa, se on palkitseva kokemus jokaiselle järjestelmänvalvojalle.
Jos dokumenttien läpi käymisen jälkeen huomaat edelleen kamppailevasi Postfixin ja/tai Dovecotin kanssa, jätä meille viesti alla olevalla kommenttilomakkeella, niin autamme mielellämme auttaa sinua (älä unohda ladata online-tallennuspalveluun Postfix- ja Dovecot-määritykset, jotka on haettu komennoilla postconf ja doveconf, kuten tässä artikkelissa on kuvattu).