Instalirajte kompletan poslužitelj pošte s Postfixom i Webmailom u Debianu 9


Ovaj vodič će vas voditi kako instalirati i konfigurirati kompletan poslužitelj pošte s Postfixom u izdanju Debian 9. Također će pokriti kako konfigurirati poštanske sandučiće računa koristeći Dovecot za dohvaćanje i sastavljanje e-pošte putem IMAP protokola. Korisnici će koristiti sučelje Rainloop Webmail kao korisnički agent pošte za rukovanje poštom.

Zahtjevi

  1. Debian 9 minimalna instalacija
  2. Statička IP adresa konfigurirana za mrežno sučelje
  3. Naziv lokalne ili javne registrirane domene.

U ovom vodiču koristit ćemo račun privatne domene za postavljanje poslužitelja e-pošte konfiguriran samo putem /etc/hosts datoteke, bez ikakvog DNS poslužitelja uključenog u rješavanje DNS razlučivanja.

Korak 1: Početne konfiguracije za Postfix Mail Server na Debianu

1. U prvom koraku, prijavite se na svoje računalo s računom s root privilegijama ili izravno s root korisnikom i provjerite je li vaš Debian sustav ažuriran s najnovijim sigurnosnim zakrpama i izdanjima softvera i paketa , izdavanjem sljedeće naredbe.

apt-get update 
apt-get upgrade 

2. U sljedećem koraku instalirajte sljedeće softverske pakete koji će se koristiti za administraciju sustava izdavanjem sljedeće naredbe.

apt-get install curl net-tools bash-completion wget lsof nano

3. Zatim otvorite datoteku /etc/host.conf za uređivanje u svom omiljenom uređivaču teksta i dodajte sljedeći redak na početak datoteke kako bi DNS razlučivost prvo pročitajte datoteku hosts.

order hosts,bind
multi on

4. Zatim postavite FQDN vašeg stroja i dodajte naziv svoje domene i FQDN vašeg sustava u datoteku /etc/hosts. Upotrijebite svoju IP adresu sustava za rješavanje naziva domene i FQDN-a kao što je prikazano na slici ispod.

Zamijenite IP adresu i domenu u skladu s tim. Nakon toga ponovno pokrenite stroj kako biste ispravno primijenili naziv glavnog računala.

hostnamectl set-hostname mail.linux-console.net
echo "192.168.0.102 linux-console.net mail.linux-console.net" >> /etc/hosts
init 6

5. Nakon ponovnog pokretanja, provjerite je li naziv glavnog računala ispravno konfiguriran izdavanjem sljedećeg niza naredbi. Naziv domene, FQDN, naziv glavnog računala i IP adresa sustava trebaju biti vraćeni naredbom hostname.

hostname
hostname -s
hostname -f
hostname -A
hostname -i
cat /etc/hostname 

6. Također, testirajte da li domena ispravno odgovara na lokalne upite izdavanjem naredbi u nastavku. Imajte na umu da se domena neće ponovno reproducirati udaljenim upitima koje su izdali drugi sustavi u vašoj mreži jer ne koristimo DNS poslužitelj.

Međutim, domena bi trebala odgovarati od drugih sustava ako ručno dodate naziv domene svakoj od njihovih datoteka /etc/hosts. Također imajte na umu da DNS rezolucija za domenu dodanu u datoteku /etc/hosts neće raditi putem naredbi za host, nslookup ili dig.

getent ahosts mail.linux-console.net
ping linux-console.net
ping mail.linux-console.net

Korak 2: Instalirajte Postfix Mail Server na Debian

7. Najvažniji dio softvera potreban za ispravno funkcioniranje poslužitelja e-pošte je MTA agent. MTA je softver izgrađen u arhitekturi poslužitelj-klijent, koji je odgovoran za prijenos pošte između poslužitelja pošte.

U ovom vodiču koristit ćemo Postfix kao agenta za prijenos pošte. Za instalaciju postfixa u Debianu iz službenih repozitorija izvršite sljedeću naredbu.

apt-get install postfix

8. Tijekom postupka instalacije Postfixa postavit će vam se niz pitanja. Na prvom upitu odaberite opciju Internet Site kao opću vrstu za konfiguraciju Postfixa i pritisnite tipku [enter] za nastavak, a zatim dodajte naziv svoje domene nazivu sistemske pošte, kao ilustrirano na sljedećim snimkama zaslona.

Korak 3: Konfigurirajte Postfix Mail Server na Debianu

9. Zatim napravite sigurnosnu kopiju glavne konfiguracijske datoteke Postfixa i konfigurirajte Postfix za svoju domenu pomoću sljedećih naredbi.

cp /etc/postfix/main.cf{,.backup}
nano /etc/postfix/main.cf

Sada konfigurirajte Postfix konfiguraciju u datoteci main.cf kao što je prikazano.

See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP
biff = no
appending .domain is the MUA's job.
append_dot_mydomain = no
readme_directory = no

See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
fresh installs.
compatibility_level = 2

TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.debian.lan

mydomain = debian.lan

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

#myorigin = /etc/mailname
myorigin = $mydomain

mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#inet_protocols = all
inet_protocols = ipv4

home_mailbox = Maildir/

SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

Zamijenite varijable myhostname, mydomain i mynetworks tako da odgovaraju vašim konfiguracijama.

Možete pokrenuti naredbu postconf -n kako biste ispisali glavnu konfiguracijsku datoteku Postfixa i provjerili eventualne pogreške, kao što je prikazano na slici ispod.

postconf -n

10. Nakon što su sve konfiguracije postavljene, ponovno pokrenite Postfix demon za primjenu promjena i provjerite radi li usluga provjerom je li glavna usluga Postfix obvezujuća na priključak 25 pokretanjem netstata naredba.

systemctl restart postfix
systemctl status postfix
netstat -tlpn

Korak 3: Testirajte Postfix Mail Server na Debianu

11. Kako biste testirali može li postfix upravljati prijenosom pošte, prvo instalirajte paket mailutils pokretanjem sljedeće naredbe.

apt-get install mailutils

12. Zatim, pomoću uslužnog programa naredbenog retka za poštu, pošaljite e-poštu na root račun i provjerite je li pošta uspješno poslana izdavanjem donje naredbe kako biste provjerili red čekanja pošte i popis sadržaja root-a kućni Maildir imenik.

echo "mail body"| mail -s "test mail" root
mailq
mail
ls Maildir/
ls Maildir/new/
cat Maildir/new/[TAB]

13. Također možete provjeriti na koji je način postfix usluga obradila e-poštu pregledom sadržaja datoteke dnevnika e-pošte izdavanjem sljedeće naredbe.

tailf /var/log/mail.log

Korak 4: Instalirajte i konfigurirajte Dovecot IMAP na Debianu

14. Agent za dostavu pošte kojeg ćemo koristiti u ovom vodiču za isporuku poruka e-pošte u poštanske sandučiće lokalnog primatelja je Dovecot IMAP. IMAP je protokol koji radi na portovima 143 i 993 (SSL), koji je odgovoran za čitanje, brisanje ili premještanje pošte između više klijenata e-pošte.

IMAP protokol također koristi sinkronizaciju kako bi se osiguralo da se kopija svake poruke sprema na poslužitelj i omogućuje korisnicima da kreiraju više direktorija na poslužitelju i premještaju e-poštu u te direktorije kako bi sortirali e-poštu.

To nije slučaj s POP3 protokolom. POP3 protokol neće dopustiti korisnicima stvaranje više direktorija na poslužitelju za sortiranje vaše pošte. Za upravljanje poštom imate samo mapu ulazne pošte.

Za instalaciju Dovecot glavnog poslužitelja i Dovecot IMAP paketa na Debianu izvršite sljedeću naredbu.

apt install dovecot-core dovecot-imapd

15. Nakon što je Dovecot instaliran u vaš sustav, otvorite dovecot datoteke za uređivanje i napravite sljedeće promjene. Prvo otvorite datoteku /etc/dovecot/dovecot.conf, pretražite i uklonite komentare iz sljedećeg retka:

listen = *, ::

16. Zatim otvorite /etc/dovecot/conf.d/10-auth.conf za uređivanje te locirajte i promijenite donje retke da izgledaju kao u donjem izvatku.

disable_plaintext_auth = no
auth_mechanisms = plain login

17. Otvorite datoteku /etc/dovecot/conf.d/10-mail.conf i dodajte sljedeći redak za korištenje lokacije Maildir umjesto Mbox format za pohranu e-pošte.

mail_location = maildir:~/Maildir

18. Zadnja datoteka za uređivanje je /etc/dovecot/conf.d/10-master.conf. Ovdje potražite Postfix smtp-auth blok i napravite sljedeću promjenu:

Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
  mode = 0666
  user = postfix
  group = postfix
 }

19. Nakon što izvršite sve gore navedene promjene, ponovno pokrenite demon Dovecot da bi se prikazale promjene, provjerite njegov status i je li Dovecot vezan za port 143, izdavanjem naredbi u nastavku.

systemctl restart dovecot.service 
systemctl status dovecot.service 
netstat -tlpn

20. Provjerite radi li poslužitelj pošte ispravno dodavanjem novog korisničkog računa u sustav i korištenjem naredbe telnet ili netcat za povezivanje s SMTP poslužitelj i pošaljite novu poruku e-pošte novom dodanom korisniku, kao što je prikazano u odlomcima u nastavku.

adduser matie
nc localhost 25
ehlo localhost
mail from: root
rcpt to: matie
data
subject: test
Mail body
.
quit

21. Provjerite je li pošta stigla u poštanski sandučić novog korisnika ispisivanjem sadržaja korisničkog matičnog imenika kao što je prikazano na slici ispod.

ls /home/test_mail/Maildir/new/

22. Također, možete se povezati s korisničkim poštanskim sandučićem iz naredbenog retka putem IMAP protokola, kao što je prikazano u donjem izvatku. Nova pošta trebala bi biti navedena u korisničkom sandučiću s pristiglom poštom.

nc localhost 143
x1 LOGIN matie user_password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT

Korak 5: Instalirajte i konfigurirajte Webmail u Debianu

23. Korisnici će upravljati svojom e-poštom putem Rainloop Webmail klijenta. Prije instaliranja Rainloop korisničkog agenta za poštu, prvo instalirajte Apache HTTP poslužitelj i sljedeće PHP module koje zahtijeva Rainloop, izdavanjem sljedeće naredbe.

apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-xml

24. Nakon što je Apache web poslužitelj instaliran, promijenite putanju direktorija u /var/www/html/ direktorij, uklonite datoteku index.html i izdajte sljedeću naredbu kako biste instalirali Rainloop Webmail.

cd /var/www/html/
rm index.html 
curl -sL https://repository.rainloop.net/installer.php | php

25. Nakon što je Rainloop Webmail klijent instaliran u sustav, idite na IP adresu svoje domene i prijavite se na Rainloop administratorsko web sučelje sa sljedećim zadanim vjerodajnicama:

http://192.168.0.102/?admin
User: admin
Password: 12345

26. Idite na izbornik Domene, pritisnite gumb Dodaj domenu i dodajte postavke naziva svoje domene kao što je prikazano na slici ispod.

27. Nakon što završite s dodavanjem postavki domene, odjavite se s administratorskog sučelja Ranloopa i usmjerite preglednik na svoju IP adresu kako biste se prijavili na klijent web pošte s računom e-pošte.

Nakon što ste se uspješno prijavili na Rainloop webmail, trebali biste vidjeti e-poštu koju ste ranije poslali iz naredbenog retka u mapu Inbox.

http://192.168.0.102
User: [email 
Pass: the matie password

27. Za dodavanje novog korisnika izdajte naredbu useradd s oznakom -m kako biste kreirali početni direktorij korisnika. Ali prvo provjerite jeste li konfigurirali varijablu staze Maildir za svakog korisnika sljedećom naredbom.

echo 'export MAIL=$HOME/Maildir' >> /etc/profile
useradd -m user3
passwd user3

28. Ako želite preusmjeriti svu root-ovu e-poštu na određeni lokalni račun pošte iz sustava, pokrenite donje naredbe. Sva pošta preusmjerena ili namijenjena root računu bit će proslijeđena vašem korisniku pošte kao što je prikazano na slici ispod.

echo "root: test_mail" >> /etc/aliases
newaliases

To je sve! Uspješno ste instalirali i konfigurirali poslužitelj pošte u svojim prostorijama kako bi lokalni korisnici mogli komunicirati putem e-pošte. Međutim, ova vrsta konfiguracije pošte nije zaštićena ni na koji način i preporučljivo je da se implementira samo za male postavke u sustavima i mrežama pod vašom potpunom kontrolom.