Debian 9 instalējiet pilnu pasta serveri ar Postfix un Webmail


Šī apmācība palīdzēs jums instalēt un konfigurēt pilnu pasta serveri ar Postfix Debian 9 laidienā. Tas aptvers arī to, kā konfigurēt kontu pastkastes, izmantojot Dovecot, lai izgūtu un sastādītu vēstules, izmantojot IMAP protokolu. Lietotāji izmantos Rainloop Webmail saskarni kā pasta lietotāju aģentu, lai apstrādātu pastu.

  1. Debian 9 minimālā instalēšana
  2. statiska IP adrese, kas konfigurēta tīkla saskarnei
  3. vietējs vai publiski reģistrēts domēna vārds.

Šajā apmācībā mēs izmantosim privātu domēna kontu pasta servera iestatīšanai, kas konfigurēts tikai ar/etc/hosts failu, bez DNS servera, kas iesaistīts DNS izšķirtspējas apstrādē.

1. solis: Sākotnējās Postfix pasta servera konfigurācijas pakalpojumā Debian

1. Pirmajā solī piesakieties savā datorā ar kontu ar root tiesībām vai tieši ar root lietotāju un pārliecinieties, vai jūsu Debian sistēma ir atjaunināta ar jaunākajiem drošības ielāpiem, programmatūras un pakotņu laidieniem, izsniedzot šādu komandu.

# apt-get update 
# apt-get upgrade 

2. Nākamajā solī instalējiet šādas programmatūras paketes, kas tiks izmantotas sistēmas administrēšanai, izsniedzot šādu komandu.

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

3. Pēc tam atveriet /etc/host.conf failu rediģēšanai ar iecienītāko teksta redaktoru un faila sākumā pievienojiet šādu rindu, lai DNS izšķirtspēja vispirms varētu nolasīt resursdatora failu.

order hosts,bind
multi on

4. Pēc tam iestatiet iekārtas FQDN un pievienojiet savu domēna vārdu un sistēmas FQDN failam/etc/hosts. Izmantojiet savas sistēmas IP adresi, lai atrisinātu domēna un FQDN nosaukumu, kā parādīts zemāk redzamajā ekrānuzņēmumā.

Attiecīgi nomainiet IP adresi un domēnu. Pēc tam restartējiet mašīnu, lai pareizi lietotu resursdatora nosaukumu.

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

5. Pēc pārstartēšanas pārbaudiet, vai resursdatora nosaukums ir pareizi konfigurēts, izsniedzot šādas komandu sērijas. Domēna nosaukums, FQDN, resursdatora nosaukums un sistēmas IP adrese jāatgriež ar komandu hostname.

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

6. Pārbaudiet arī to, vai domēns pareizi atbild uz vietējiem jautājumiem, izsniedzot tālāk norādītās komandas. Ņemiet vērā, ka domēns neatkārtosies uz attāliem vaicājumiem, kurus izsniedz citas jūsu tīkla sistēmas, jo mēs neizmantojam DNS serveri.

Tomēr domēnam vajadzētu atbildēt no citām sistēmām, ja manuāli pievienojat domēna nosaukumu katram no viņu failiem/etc/hosts. Turklāt ņemiet vērā, ka domēna, kas pievienots failam/etc/hosts, DNS izšķirtspēja nedarbosies, izmantojot dig komandas.

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

2. darbība: instalējiet Postfix pasta serveri vietnē Debian

7. Vissvarīgākā programmatūra, kas nepieciešama pasta servera pareizai darbībai, ir MTA aģents. MTA ir servera-klienta arhitektūrā iebūvēta programmatūra, kas ir atbildīga par pasta pārsūtīšanu starp pasta serveriem.

Šajā rokasgrāmatā mēs izmantosim Postfix kā pasta pārsūtīšanas aģentu. Lai instalētu Postfix Debian no oficiālajiem krātuvēm, izpildiet šādu komandu.

# apt-get install postfix

8. Postfix instalēšanas laikā jums tiks uzdoti vairāki jautājumi. Pirmajā uzvednē kā vispārīgu Postfix konfigurācijas veidu atlasiet opciju Interneta vietne un nospiediet taustiņu [Enter], lai turpinātu, un pēc tam pievienojiet sava domēna vārdu sistēmas pasta nosaukumam, kā parādīts turpmākajos ekrānuzņēmumos.

3. darbība: konfigurējiet Postfix pasta serveri pakalpojumā Debian

9. Pēc tam dublējiet Postfix galveno konfigurācijas failu un konfigurējiet Postfix savam domēnam, izmantojot šādas komandas.

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

Tagad konfigurējiet Postfix konfigurāciju failā main.cf, kā parādīts.

# 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

Nomainiet mainīgos myhostname, mydomain un mynetworks, lai tie atbilstu jūsu pašu konfigurācijām.

Varat palaist komandu postconf -n, lai izgāztu Postfix galveno konfigurācijas failu un pārbaudītu iespējamās kļūdas, kā parādīts zemāk esošajā ekrānuzņēmumā.

# postconf -n

10. Kad visas konfigurācijas ir ieviestas, restartējiet Postfix dēmonu, lai lietotu izmaiņas un pārbaudītu, vai pakalpojums darbojas, pārbaudot, vai Postfix galvenais pakalpojums ir saistošs 25. portam, palaižot komandu netstat.

# systemctl restart postfix
# systemctl status postfix
# netstat -tlpn

3. darbība: pārbaudiet Postfix pasta serveri vietnē Debian

11. Lai pārbaudītu, vai postfix spēj apstrādāt pasta pārsūtīšanu, vispirms instalējiet mailutils pakotni, izpildot šādu komandu.

# apt-get install mailutils

12. Pēc tam, izmantojot pasta komandrindas utilītu, nosūtiet e-pastu uz saknes kontu un pārbaudiet, vai pasts ir veiksmīgi nosūtīts, izsniedzot tālāk norādīto komandu, lai pārbaudītu pasta rindu un uzskaitītu saknes mājas Maildir direktorija saturu.

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

13. Varat arī pārbaudīt, kādā veidā pasts tika apstrādāts ar postfix pakalpojumu, pārbaudot pasta žurnāla faila saturu, izdodot šādu komandu.

# tailf /var/log/mail.log

4. darbība: instalējiet un konfigurējiet Dovecot IMAP vietnē Debian

14. Pasta piegādes aģents, kuru mēs izmantosim šajā ceļvedī, lai piegādātu e-pasta ziņojumus vietējā saņēmēja pastkastēs, ir Dovecot IMAP. IMAP ir protokols, kas darbojas 143 un 993 (SSL) portos, un tas ir atbildīgs par e-pastu lasīšanu, dzēšanu vai pārvietošanu vairākos e-pasta klientos.

IMAP protokols izmanto arī sinhronizāciju, lai pārliecinātos, ka katra ziņojuma kopija tiek saglabāta serverī, un ļauj lietotājiem serverī izveidot vairākus direktorijus un pārvietot vēstules uz šiem direktorijiem, lai kārtotu e-pastus.

POP3 protokola gadījumā tas nav. POP3 protokols neļaus lietotājiem serverī izveidot vairākus direktorijus, lai kārtotu jūsu vēstules. Lai pārvaldītu pastu, jums ir tikai iesūtnes mape.

Lai Debian instalētu Dovecot galveno serveri un Dovecot IMAP pakotni, izpildiet šo komandu.

# apt install dovecot-core dovecot-imapd

15. Pēc tam, kad Dovecot ir instalēts jūsu sistēmā, rediģēšanai atveriet zemāk redzamos dovecot failus un veiciet šādas izmaiņas. Vispirms atveriet failu /etc/dovecot/dovecot.conf, meklējiet un noņemiet komentāru šajā rindā:

listen = *, ::

16. Pēc tam rediģēšanai atveriet /etc/dovecot/conf.d/10-auth.conf un atrodiet un mainiet zemāk redzamās rindas, lai tās izskatītos zemāk esošajā fragmentā.

disable_plaintext_auth = no
auth_mechanisms = plain login

17. Atveriet failu /etc/dovecot/conf.d/10-mail.conf un pievienojiet šo rindu, lai e-pastu glabāšanai Mbox formāta vietā izmantotu Maildir atrašanās vietu.

mail_location = maildir:~/Maildir

18. Pēdējais rediģējamais fails ir /etc/dovecot/conf.d/10-master.conf. Šeit meklējiet bloku Postfix smtp-auth un veiciet šādas izmaiņas:

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

19. Pēc visu iepriekš minēto izmaiņu veikšanas restartējiet Dovecot dēmonu, lai atspoguļotu izmaiņas, pārbaudītu tā statusu un pārbaudītu, vai Dovecot ir saistošs 143. portam, izsniedzot tālāk norādītās komandas.

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

20. Pārbaudiet, vai pasta serveris darbojas pareizi, pievienojot sistēmai jaunu lietotāja kontu, un izmantojiet komandu telnet vai netcat, lai izveidotu savienojumu ar SMTP serveri un nosūtītu jaunu pastu jaunam pievienotajam lietotājam, kā parādīts zemāk esošajos fragmentos.

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

21. Pārbaudiet, vai pasts ir nonācis jaunajā lietotāja pastkastē, norādot lietotāja mājas direktorija saturu, kā parādīts zemāk esošajā ekrānuzņēmumā.

# ls /home/test_mail/Maildir/new/

22. Jūs varat arī izveidot savienojumu ar lietotāja pastkasti no komandrindas, izmantojot IMAP protokolu, kā parādīts zemāk esošajā fragmentā. Jaunajam pastam jābūt norādītam lietotāja iesūtnē.

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

5. darbība: Instalējiet un konfigurējiet Webmail pakalpojumā Debian

23. Lietotāji pārvaldīs savus e-pastus, izmantojot Rainloop Webmail klientu. Pirms Rainloop pasta lietotāja aģenta instalēšanas vispirms instalējiet Apache HTTP serveri un šādus PHP moduļus, kas nepieciešami Rainloop, izsniedzot šādu komandu.

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

24. Pēc Apache tīmekļa servera instalēšanas nomainiet direktorijas ceļu uz/var/www/html/directory, noņemiet failu index.html un izdodiet šādu komandu, lai instalētu Rainloop Webmail.

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

25. Kad Rainloop Webmail klients ir instalēts sistēmā, dodieties uz sava domēna IP adresi un piesakieties Rainloop administratora tīmekļa saskarnē, izmantojot šādus noklusējuma akreditācijas datus:

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

26. Pārejiet uz izvēlni Domēni, nospiediet pogu Pievienot domēnu un pievienojiet sava domēna vārda iestatījumus, kā parādīts zemāk esošajā ekrānuzņēmumā.

27. Kad esat pabeidzis pievienot savus domēna iestatījumus, izrakstieties no Ranloop administratora saskarnes un norādiet pārlūkprogrammai uz savu IP adresi, lai pieteiktos tīmekļa pasta klientā ar e-pasta kontu.

Kad esat veiksmīgi pieteicies Rainloop tīmekļa pastā, mapē Iesūtne jums vajadzētu redzēt e-pastu, kas iepriekš tika nosūtīts no komandrindas.

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

27. Lai izveidotu lietotāja mājas direktoriju, pievienojiet jaunu lietotāja izdošanas komandu useradd ar karodziņu -m . Bet vispirms pārliecinieties, ka esat konfigurējis Maildir ceļa mainīgo katram lietotājam ar šādu komandu.

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

28. Ja vēlaties visas saknes e-pasta adreses no sistēmas novirzīt uz noteiktu vietējo pasta kontu, izpildiet tālāk norādītās komandas. Visas vēstules, kas novirzītas uz root kontu, tiks pārsūtītas jūsu pasta lietotājam, kā parādīts zemāk esošajā attēlā.

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

Tas ir viss! Jūs esat veiksmīgi instalējis un konfigurējis pasta serveri savās telpās, lai vietējie lietotāji varētu sazināties pa e-pastu. Tomēr šāda veida pasta konfigurācija nav nodrošināta nekādā veidā, un ieteicams to izvietot tikai nelieliem iestatījumiem sistēmās un tīklos, kurus pilnībā kontrolējat.