Postfix yra el. pašto siuntimo agentas (MTA - mail transfer agent), skirtas nukreipti ir pristatyti elektroninį paštą. Dovecot yra saugus IMAP ir POP3 pašto pristatymo agentas (MDA - mail deliver agent). Šios dvi atviro kodo programos puikiai veikia su Roundcube - viena populiariausių el. pašto administravimo programų.
Šioje pamokoje įdiegsite Postfix, Dovecot ir Roundcube Ubuntu 20.04 operacinėje sistemoje.
0. Preliminarūs reikalavimai
* Linux serveris naudojantis mūsų parengtą Ubuntu 20.04 operacinę sistemą;
* Atskiras domenas ar subdomenas turintis į serverį nukreiptą MX tipo įrašą;
1. Postfix diegimas ir konfigūravimas
1.1. Prisijunkite prie serverio terminalo ir paleiskite šias komandas Postfix diegimui:
sudo apt update -y
sudo apt install -y postfix
1.2. Jums bus pateikiamas konfigūracijos langas, kuriame pasirinkite "<ok>":
1.3. Sekančiame lange pasirinkite Internet Site ir "<ok>":
1.4. Įveskite domeno/subdomeno pavadinimą, kurį naudosite pašto sistemai:
1.5. Sukurkite failo
/etc/postfix/main.cf atsarginę kopiją ir sukurkite naują papildomą:
sudo mv /etc/postfix/main.cf /etc/postfix/main.cf.bk
sudo nano /etc/postfix/main.cf
1.6. Įkelkite žemiau pateiktą informaciją į naują failą. Pakoreguokite jį ir vietoje mano-svetaine.lt įrašykite savo domeno vardą. Įsitikinkite, kad smtpd_tls_cert_file ir smtpd_tls_key_file kreipia į SSL sertifikatus:
smtpd_banner = $myhostname ESMTP $mail_name
biff = no
append_dot_mydomain = no
readme_directory = no
# TLS parameters
smtp_use_tls = yes
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_use_tls = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_cert_file = /etc/letsencrypt/live/mano-svetaine.lt/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mano-svetaine.lt/privkey.pem
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = /etc/postfix/virtual_mailbox_domains
myhostname = pastas.mano-svetaine.com
myorigin = /etc/mailname
mydestination = localhost.$mydomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
1.7. Išsaugokite ir uždarykite failą.
2. Virtualių dėžučių domeno sukūrimas
2.1. Konfigūracinis failas main.cf nurodo Postfix tarnybai, koks domenas bus naudojamas el. pašto dėžučių kūrimui. Domenai aprašomi faile /etc/postfix/virtual_mailbox_domains. Susikuriame failą:
sudo nano /etc/postfix/virtual_mailbox_domains
2.2. Pridedame eilutę (pakeiskite mano-svetaine.lt į savo domeno vardą):
2.3. Naudojama postmap komanda, kuri pakeičia failo /etc/postfix/virtual_mailbox_domains formatą tam, kad jis būtų atpažinamas Postfix. Paleiskite šią komandą kiekvieną kartą kai pridėsite papildomą domeną šiame faile:
sudo postmap /etc/postfix/virtual_mailbox_domains
2.4. Pakoreguojame failą:
sudo nano /etc/postfix/master.cf
kuriame susirandame eilutę:
...
#submission inet n - y - - smtpd
...
ir pašaliname groteles:
...
submission inet n - y - - smtpd
...
Išsaugome ir uždarome failą.
3. Dovecot diegimas ir konfigūravimas
3.1. Įdiekite Dovecot paketą ir visus paketus reikalingus
imap,
pop3 ir
lmtp veikimui:
$ sudo apt install -y dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd
3.2. Pakoreguokite failą /etc/dovecot/conf.d/10-mail.conf, kuris informuos Dovecot, kur rasti el. laiškus:
sudo nano /etc/dovecot/conf.d/10-mail.conf
Susiraskite įrašą:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
ir pakeiskite į:
mail_location = maildir:/var/mail/vhosts/%d/%n
Išsaugokite ir uždarykite failą. Parametras %d reiškia domeną, n% - naudotoją. Tai reiškia, kad turite sukurti subdirektoriją /var/mail/vhosts kataloge kiekvienam domenui, kurio vardu turi būti gaunami laiškai.
3.3. Sukurkite subdirektoriją ir pakeiskite
mano-svetaine.lt nurodydami savo domeną:
sudo mkdir -p /var/mail/vhosts/mano-svetaine.lt
Jeigu norite pridėti daugiau domenų, kurie bus naudojami laiškų gavimui, pakartokite veiksmą įvedant kitą domeno vardą.
3.4. Sukurkite Dovecot paslaugoms naudojamą Vmail naudotoją ir grupę. Pirmą sukurkite vmail grupę:
sudo groupadd -g 5000 vmail
Tada sukurkite naudotoją:
sudo useradd -r -g vmail -u 5000 vmail -d /var/mail/vhosts -c "virtual mail user"
Perskirkite /var/mail/vhosts/ teises vmail naudotojui ir grupei:
sudo chown -R vmail:vmail /var/mail/vhosts/
3.5. Pakoreguokite Dovecot
10-master.conf failą:
sudo nano /etc/dovecot/conf.d/10-master.conf
Ir susiraskite įrašus:
...
inet_listener imaps {
#port = 993
#ssl = yes
}
...
Pašalinkite # simbolius prieš port ir ssl tam, kad Dovecot naudotų 993 prievadą ir saugų susijungimą:
...
inet_listener imaps {
port = 993
ssl = yes
}
...
Susiraskite kitus įrašus:
...
inet_listener pop3s {
#port = 995
#ssl = yes
}
...
Pašalinkite # simbolius prieš port ir ssl:
...
inet_listener pop3s {
port = 995
ssl = yes
}
...
Taip pat reikia pakeisti lmtp įrašus. Susiraskite juos:
...
service lmtp {
unix_listener lmtp {
#mode = 0666
}
}
...
ir pakeiskite bei pridėkite kelis papildomus, kaip nurodyta žemiau:
...
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
...
Papildomai reikia susirasti Dovecot autorizacijos konfigūraciją, kuri atrodo taip:
...
# Postfix smtp-auth
#unix_listener /var/spool/postfix/private/auth {
# mode = 0666
#}
...
ir pakeiskite į:
...
#Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
...
Išsaugokite ir uždarykite failą.
3.6. Nustatykite Dovecot saugumo autorizacijos konfigūraciją. Tai atliekama koreguojant failą
10-auth.conf:sudo nano /etc/dovecot/conf.d/10-auth.conf
Susiraskite įrašą:
# disable_plaintext_auth = yes
ir pašalinkite #:
disable_plaintext_auth = yes
Susiraskite kitą įrašą:
ir pridėkite žodį
login:
auth_mechanisms = plain login
Toliau pašalinkite Dovecot standartinę konfigūraciją, kuri reikalauja naudotojo turėti sisteminę paskyrą tam, kad naudotis paštu:
!include auth-system.conf.ext
Ir pradžioje įrašykite
# simbolį:
#!include auth-system.conf.ext
Tada reikia susirasti kitą eilutę:
#!include auth-passwdfile.conf.ext
ir pašalinti # tam, kad būtų naudojamas slaptažodžių failas:
!include auth-passwdfile.conf.ext
3.7. Toliau reikia atlikti failo auth-passwdfile.conf.ext turinį:
sudo nano /etc/dovecot/conf.d/auth-passwdfile.conf.ext
Tekstą:
passdb {
driver = passwd-file
args = scheme=CRYPT username_format=%u /etc/dovecot/users
}
userdb {
driver = passwd-file
args = username_format=%u /etc/dovecot/users
...
}
pakeiskite į:
passdb {
driver = passwd-file
args = scheme=PLAIN username_format=%u /etc/dovecot/dovecot-users
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}
Išsaugokite ir uždarykite.
3.8. Susikurkite slaptažodžių failą /etc/dovecot/dovecot-users. Šis failas bus duomenų bazė, kurioje bus nurodomi serverio el. pašto naudotojai:
sudo nano /etc/dovecot/dovecot-users
Pridėkite el. pašto adresą ir SLAPTAZODIS pakeiskite į sudėtingą slaptažodį. Taip pat pakeiskite mano-svetaine.lt į savo domeną:
admin@mano-svetaine.lt:{plain}SLAPTAZODIS
info@
mano-svetaine.lt
:{plain}
SLAPTAZODIS
tomas@
mano-svetaine.lt
:{plain}
SLAPTAZODIS
Išsaugokite ir uždarykite failą.
3.9. Paskutiniai Dovecot konfigūracijos pakeitimai - nustatymas naudoti SSL sertifikatą. Atsidarykite failą /etc/dovecot/conf.d/10-ssl.conf:
sudo nano /etc/dovecot/conf.d/10-ssl.conf
Susiraskite eilutę:
ir pakeiskite ssl reikšmę iš yes į required:
Susiraskite kitus du įrašus:
#ssl_cert = </etc/dovecot/dovecot.pem
#ssl_key = </etc/dovecot/private/dovecot.pem
pašalinkite # ir sutikrinkite, kad nurodytas kelias atitiktų sertifikato failus. Jeigu naudojatės Let's Encrypt sertifikatu, įrašai turėtų būti tokie patys kaip nurodyti žemiau (nepamirškite pakeisti mano-svetaine.lt):
ssl_cert = </etc/letsencrypt/live/mano-svetaine.lt/fullchain.pem
ssl_key = </etc/letsencrypt/live/
mano-svetaine.lt
/privkey.pem
Išsaugokite ir uždarykite failą. Tada perkraukite Postfix ir Dovecot tarnybas:
sudo service postfix restart
sudo service dovecot restart
4. Roundcube diegimas ir konfigūravimas
4.1. Tam, kad galėtumėte naudotis Postfix ir Dovecot tarnybomis, įdiekite Roundcube pašto serverį:
sudo apt install -y roundcube
4.2. Pasirinkite <Yes>:
4.3. Įveskite MySQL duomenų bazės slaptažodį:
tada reikės pakartotinai įvesti slaptažodį ir pasirinkti Enter.
4.4. Toliau reikia atlikti konfigūracinius pakeitimus. Atsidarykite SSL konfigūracinų failą direktorijoje /etc/apache2/sites-enabled. Mūsų atveju konfigūracijos failas yra 000-default-le-ssl.conf, tačiau Jūsų atveju gali būti skirtingas, todėl visų pirmą patikrinkite koks tai failas apsilankę:
cd /etc/apache2/sites-enabled/
Tada atlikite failo korekcijas:
sudo nano /etc/apache2/sites-enabled/pavadinimas-le-ssl.conf
Susiraskite turinį:
...
<VirtualHost *:443>
ServerAdmin admin@mano-svetaine.lt
ServerName server.mano-svetaine.lt
...
</VirtualHost>
...
ir pakeiskite pridėdami papildomą eilutę Alias /mail /usr/share/roundcube žemiau ServerName:
...
<VirtualHost *:443>
ServerAdmin admin@
mano-svetaine.lt
ServerName
mano-svetaine.lt
Alias /mail /usr/share/roundcube
...
</VirtualHost>
...
Išsaugokite ir uždarykite failą.
4.5. Perkraukite Apache tarnybą:
sudo service apache2 restart
5. Testavimas
Tam, kad galėtumėte prisijungti prie dėžutės, įveskite žemiau nurodytą URL adresą pakeisdami į savo domeną:
https://mail.mano-svetaine.lt/mail
Atidarius Jums turėtų būti pateikiamas toks langas:
Galite prisijungti ir siųsti/gauti laiškus naudojantis Roundcube pašto administravimo programa.