Asenna täydellinen sähköpostipalvelin, jossa on Postfix ja Webmail Debian 9:ssä


Tämä opetusohjelma opastaa sinua asentamaan ja määrittämään täydellisen sähköpostipalvelimen Postfix-sovelluksella Debian 9 -julkaisussa. Siinä käsitellään myös tilien postilaatikoiden määrittämistä Dovecotin avulla sähköpostien hakemiseksi ja kirjoittamiseksi IMAP-protokollan kautta. Käyttäjät käyttävät Rainloop Webmail -käyttöliittymää sähköpostin käyttäjäagenttina postin käsittelyyn.

Vaatimukset

  1. Debian 9:n minimiasennus
  2. Staattinen IP-osoite, joka on määritetty verkkoliitäntää varten
  3. Paikallinen tai julkinen rekisteröity verkkotunnus.

Tässä opetusohjelmassa käytämme sähköpostipalvelimen määrittämiseen yksityistä verkkotunnuksen tiliä, joka on määritetty vain /etc/hosts-tiedoston kautta, ilman DNS-selvityksen käsittelyyn osallistuvaa DNS-palvelinta.

Vaihe 1: Debianin Postfix-postipalvelimen alkuasetukset

1. Kirjaudu ensimmäisessä vaiheessa koneellesi pääkäyttäjän tilillä tai suoraan pääkäyttäjän kanssa ja varmista, että Debian-järjestelmäsi on ajan tasalla uusimpien tietoturvakorjausten sekä ohjelmisto- ja pakettijulkaisujen kanssa. , antamalla seuraavan komennon.

apt-get update 
apt-get upgrade 

2. Asenna seuraavassa vaiheessa seuraavat ohjelmistopaketit, joita käytetään järjestelmän hallintaan, antamalla seuraava komento.

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

3. Avaa seuraavaksi tiedosto /etc/host.conf muokattavaksi suosikkitekstieditorillasi ja lisää seuraava rivi tiedoston alkuun, jotta DNS-selvitys lue ensin hosts-tiedosto.

order hosts,bind
multi on

4. Määritä seuraavaksi koneesi FQDN ja lisää verkkotunnuksesi ja järjestelmän FQDN /etc/hosts-tiedostoon. Käytä järjestelmän IP-osoitetta verkkotunnuksen ja FQDN:n nimen selvittämiseen alla olevan kuvakaappauksen mukaisesti.

Vaihda IP-osoite ja verkkotunnus vastaavasti. Tämän jälkeen käynnistä kone uudelleen, jotta isäntänimi otetaan käyttöön oikein.

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

5. Tarkista uudelleenkäynnistyksen jälkeen, että isäntänimi on määritetty oikein antamalla seuraavat komentosarjat. Järjestelmän toimialueen nimi, FQDN, isäntänimi ja IP-osoite tulee palauttaa hostname-komennolla.

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

6. Testaa myös, vastaako verkkotunnus oikein paikallisiin kyselyihin, antamalla alla olevat komennot. Huomaa, että verkkotunnusta ei toisteta verkon muiden järjestelmien lähettämille etäkyselyille, koska emme käytä DNS-palvelinta.

Verkkotunnuksen pitäisi kuitenkin vastata muista järjestelmistä, jos lisäät toimialueen nimen manuaalisesti kuhunkin niiden /etc/hosts-tiedostoon. Huomaa myös, että /etc/hosts-tiedostoon lisätyn verkkotunnuksen DNS-resoluutio ei toimi isäntä-, nslookup- tai dig-komentojen kautta.

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

Vaihe 2: Asenna Postfix Mail Server Debianiin

7. Tärkein sähköpostipalvelimen moitteettoman toiminnan edellyttämä ohjelmisto on MTA-agentti. MTA on palvelin-asiakasarkkitehtuuriin rakennettu ohjelmisto, joka vastaa sähköpostin siirrosta sähköpostipalvelimien välillä.

Tässä oppaassa käytämme Postfixia postinsiirtoagenttina. Asenna postfix Debianiin virallisista arkistoista suorittamalla seuraava komento.

apt-get install postfix

8. Postfixin asennuksen aikana sinulta kysytään useita kysymyksiä. Valitse ensimmäisessä kehotteessa Postfix-määrityksen yleiseksi tyypiksi Internet-sivusto ja jatka painamalla [enter]-näppäintä ja lisää sitten verkkotunnuksesi nimi järjestelmän sähköpostin nimeen. kuvattu seuraavissa kuvakaappauksissa.

Vaihe 3: Määritä Postfix-postipalvelin Debianissa

9. Varmuuskopioi seuraavaksi Postfixin päämääritystiedosto ja määritä Postfix verkkotunnuksellesi käyttämällä seuraavia komentoja.

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

Määritä nyt Postfix-määritykset main.cf-tiedostossa kuvan mukaisesti.

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

Korvaa muuttujat myhostname, mydomain ja mynetworks vastaamaan omia määrityksiäsi.

Voit suorittaa postconf -n -komennon, jotta voit tyhjentää Postfix-pääasetustiedoston ja tarkistaa mahdolliset virheet, kuten alla olevassa kuvakaappauksessa näkyy.

postconf -n

10. Kun kaikki määritykset on tehty, käynnistä Postfix-daemon uudelleen tehdäksesi muutokset ja varmistaaksesi, että palvelu on käynnissä, tarkistamalla, onko Postfix-pääpalvelu sidottu porttiin 25 suorittamalla netstat komento.

systemctl restart postfix
systemctl status postfix
netstat -tlpn

Vaihe 3: Testaa Postfix-postipalvelinta Debianissa

11. Testaaksesi, pystyykö postfix käsittelemään postin siirtoa, asenna ensin paketti mailutils suorittamalla seuraava komento.

apt-get install mailutils

12. Lähetä seuraavaksi sähköpostin komentorivityökalulla sähköposti root-tilille ja tarkista, onko sähköpostin lähetys onnistunut antamalla alla oleva komento tarkistaaksesi postijonon ja listaamalla pääkäyttäjän sisällön. koti Maildirin hakemistosta.

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

13. Voit myös tarkistaa, miten postfix-palvelu on käsitellyt postia, tarkistamalla sähköpostilokitiedoston sisällön antamalla seuraava komento.

tailf /var/log/mail.log

Vaihe 4: Asenna ja määritä Dovecot IMAP Debianissa

14. Postinjakeluagentti, jota käytämme tässä oppaassa sähköpostiviestien toimittamiseen paikallisen vastaanottajan postilaatikoihin, on Dovecot IMAP. IMAP on protokolla, joka toimii 143- ja 993-porteissa (SSL), joka on vastuussa lukemisesta, poistamisesta tai sähköpostien siirtäminen useiden sähköpostiohjelmien välillä.

IMAP-protokolla käyttää myös synkronointia varmistaakseen, että jokaisesta viestistä tallennetaan kopio palvelimelle ja että käyttäjät voivat luoda palvelimelle useita hakemistoja ja siirtää sähköpostit näihin hakemistoihin sähköpostien lajittelemiseksi.

Tämä ei koske POP3-protokollaa. POP3-protokolla ei salli käyttäjien luoda useita hakemistoja palvelimelle postin lajittelua varten. Sinulla on vain Saapuneet-kansio sähköpostin hallintaa varten.

Asenna Dovecot-ydinpalvelin ja Dovecot IMAP -paketti Debianiin suorittamalla seuraava komento.

apt install dovecot-core dovecot-imapd

15. Kun Dovecot on asennettu järjestelmääsi, avaa alla olevat dovecot-tiedostot muokkausta varten ja tee seuraavat muutokset. Avaa ensin /etc/dovecot/dovecot.conf-tiedosto, etsi seuraava rivi ja poista kommentit:

listen = *, ::

16. Avaa seuraavaksi /etc/dovecot/conf.d/10-auth.conf muokkausta varten ja etsi ja muuta alla olevat rivit alla olevan otteen kaltaisiksi.

disable_plaintext_auth = no
auth_mechanisms = plain login

17. Avaa /etc/dovecot/conf.d/10-mail.conf-tiedosto ja lisää seuraava rivi käyttääksesi Maildir-sijaintia. Mbox-muodossa sähköpostien tallentamiseen.

mail_location = maildir:~/Maildir

18. Viimeinen muokattava tiedosto on /etc/dovecot/conf.d/10-master.conf. Etsi täältä Postfixin smtp-auth block ja tee seuraava muutos:

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

19. Kun olet tehnyt kaikki yllä olevat muutokset, käynnistä Dovecot-daemon uudelleen muutosten heijastamiseksi, tarkista sen tila ja varmista, että Dovecot on sidottu porttiin 143, antamalla alla olevat komennot.

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

20. Testaa, toimiiko sähköpostipalvelin oikein lisäämällä uusi käyttäjätili järjestelmään ja käytä telnet- tai netcat-komentoa muodostaaksesi yhteyden SMTP-palvelin ja lähetä uusi sähköpostiviesti uudelle lisätylle käyttäjälle alla olevien otteiden mukaisesti.

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

21. Tarkista, onko posti saapunut uuden käyttäjän postilaatikkoon, luettelemalla käyttäjän kotihakemiston sisältö alla olevan kuvakaappauksen mukaisesti.

ls /home/test_mail/Maildir/new/

22. Voit myös muodostaa yhteyden käyttäjän postilaatikkoon komentoriviltä IMAP-protokollan kautta alla olevan otteen mukaisesti. Uuden sähköpostin tulee olla käyttäjän Saapuneet-kansiossa.

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

Vaihe 5: Asenna ja määritä Webmail Debianissa

23. Käyttäjät hallitsevat sähköpostinsa Rainloop Webmail -ohjelman kautta. Ennen kuin asennat Rainloopin sähköpostin käyttäjäagentin, asenna ensin Apache HTTP -palvelin ja seuraavat Rainloopin vaatimat PHP-moduulit antamalla seuraava komento.

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

24. Kun Apache-verkkopalvelin on asennettu, vaihda hakemistopolku /var/www/html/-hakemistoon ja poista index.html-tiedosto ja anna seuraava komento asentaaksesi Rainloop Webmail.

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

25. Kun Rainloop Webmail -asiakasohjelma on asennettu järjestelmään, siirry verkkotunnuksesi IP-osoitteeseen ja kirjaudu sisään Rainloopin järjestelmänvalvojan verkkokäyttöliittymään seuraavilla oletustunnuksilla:

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

26. Siirry Domains-valikkoon, paina Lisää verkkotunnus -painiketta ja lisää verkkotunnuksesi nimiasetukset alla olevan kuvakaappauksen mukaisesti.

27. Kun olet lisännyt verkkotunnuksesi asetukset, kirjaudu ulos Ranloopin hallintaliittymästä ja osoita selain IP-osoitteeseesi, jotta voit kirjautua sisään webmail-asiakasohjelmaan sähköpostitilillä.

Kun olet kirjautunut sisään Rainloopin webmailiin, sinun pitäisi nähdä aiemmin komentoriviltä lähetetty sähköposti Saapuneet-kansiossasi.

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

27. Uuden käyttäjän ongelman lisääminen useradd-komennon kanssa -m-lipulla luodaksesi käyttäjän kotihakemiston. Varmista kuitenkin ensin, että määrität Maildir-polkumuuttujan jokaiselle käyttäjälle seuraavalla komennolla.

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

28. Jos haluat ohjata kaikki pääkäyttäjän sähköpostit tietylle paikalliselle sähköpostitilille järjestelmästä, suorita alla olevat komennot. Kaikki root-tilille uudelleenohjatut tai määrätyt viestit välitetään edelleen sähköpostin käyttäjällesi alla olevan kuvan mukaisesti.

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

Siinä kaikki! Olet onnistuneesti asentanut ja määrittänyt sähköpostipalvelimen toimitiloosi, jotta paikalliset käyttäjät voivat kommunikoida sähköpostitse. Tämän tyyppisiä sähköpostimäärityksiä ei kuitenkaan suojata millään tavalla, ja se on suositeltavaa ottaa käyttöön vain pienissä järjestelmissä ja verkoissa, jotka ovat täysin hallinnassasi.