Asenna täydellinen postipalvelin, jossa on Postfix ja Webmail, Debian 9: een


Tämä opetusohjelma opastaa sinua asentamaan ja määrittämään kokonaisen sähköpostipalvelimen Postfix-ohjelmalla Debian 9 -julkaisussa. Siinä käsitellään myös sitä, miten tilien postilaatikot määritetään Dovecot-sovelluksella sähköpostien hakemiseksi ja kirjoittamiseksi IMAP-protokollan kautta. Käyttäjät käyttävät Rainloop Webmail -rajapintaa postin käyttäjäagenttina postin käsittelyyn.

  1. Debian 9: n vähäinen asennus
  2. Staattinen IP-osoite, joka on määritetty verkkoliittymälle
  3. Paikallinen tai julkisesti rekisteröity verkkotunnus.

Tässä opetusohjelmassa käytämme yksityistä verkkotunnustiliä sähköpostipalvelimen asetuksiin, jotka on määritetty vain/etc/hosts-tiedoston kautta, ilman DNS-palvelinta, joka käsittelisi DNS-tarkkuutta.

Vaihe 1: Postfix-postipalvelimen alustavat määritykset Debianissa

1. Kirjaudu sisään ensimmäisessä vaiheessa koneellesi pääkäyttäjätilillä tai suoraan pääkäyttäjän kanssa ja varmista, että Debian-järjestelmäsi on ajan tasalla uusimmista tietoturvakorjauksista sekä ohjelmistoista ja paketeista julkaisemalla seuraavan komennon.

# apt-get update 
# apt-get upgrade 

2. Asenna seuraavassa vaiheessa seuraavat järjestelmän hallintaan käytettävät ohjelmistopaketit antamalla seuraava komento.

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

3. Seuraavaksi avaa /etc/host.conf-tiedosto muokkausta varten suosikkitekstieditorilla ja lisää seuraava rivi tiedoston alkuun, jotta DNS-tarkkuus lukee ensin isäntätiedoston.

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 ratkaistaksesi verkkotunnuksen ja FQDN: n nimen alla olevan kuvakaappauksen mukaisesti.

Korvaa IP-osoite ja toimialue vastaavasti. Käynnistä kone sitten uudestaan, jotta isäntänimi voidaan käyttää 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, onko isäntänimi määritetty oikein antamalla seuraavat komentosarjat. Verkkotunnus, FQDN, isäntänimi ja järjestelmän IP-osoite tulee palauttaa isäntäkomennolla.

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

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

Verkkotunnuksen tulisi kuitenkin vastata muista järjestelmistä, jos lisäät toimialueen nimen manuaalisesti kuhunkin/etc/hosts-tiedostoon. Huomaa myös, että/etc/hosts-tiedostoon lisätyn verkkotunnuksen DNS-tarkkuus ei toimi kaivakomennoilla.

# 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 ohjelmisto, jota tarvitaan sähköpostipalvelimen moitteettomaan toimintaan, on MTA-agentti. MTA on palvelin-asiakasarkkitehtuuriin rakennettu ohjelmisto, joka vastaa postinsiirrosta postipalvelinten 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 sinulle kysytään joukko kysymyksiä. Valitse ensimmäisestä kehotteesta Internet-sivustovaihtoehto Postfix-kokoonpanon yleiseksi tyypiksi ja jatka painamalla [enter] -näppäintä ja lisää sitten verkkotunnuksesi järjestelmän sähköpostiosoitteeseen seuraavien kuvakaappausten mukaisesti.

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

9. Seuraavaksi varmuuskopioi Postfixin pääasetustiedosto ja määritä Postfix toimialueellesi seuraavilla komennoilla.

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

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

# 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 myhostname, mydomain ja mynetworks -muuttujat vastaamaan omia kokoonpanojasi.

Voit suorittaa postconf -n -komennon Postfix-päämääritystiedoston tyhjentämiseksi ja mahdollisten virheiden tarkistamiseksi, kuten alla olevassa kuvakaappauksessa näkyy.

# postconf -n

10. Kun kaikki kokoonpanot ovat paikallaan, käynnistä Postfix-daemon uudelleen ja ota muutokset käyttöön ja tarkista, toimiiko palvelu tarkistamalla, sitooko Postfix-pääpalvelu porttia 25 suorittamalla netstat-komennon.

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

Vaihe 3: Testaa Postfix-postipalvelinta Debianissa

11. Jotta voit testata, pystyykö postfix käsittelemään postinsiirtoa, asenna ensin mailutils-paketti suorittamalla seuraava komento.

# apt-get install mailutils

12. Seuraavaksi, lähetä sähköposti komentorivin apuohjelman avulla, lähetä sähköposti juuritilille ja tarkista, lähetetäänkö posti onnistuneesti lähettämällä alla oleva komento, jotta voit tarkistaa postijonon ja luetella juuren koti-Maildir-hakemiston sisällön.

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

13. Voit myös tarkistaa, millä tavoin postia käsiteltiin postfix-palvelulla, tarkastamalla postilokitiedoston sisältö antamalla seuraava komento.

# tailf /var/log/mail.log

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

14. Postinjakeluagentti, jota käytämme tässä oppaassa lähettämään sähköpostiviestejä paikallisen vastaanottajan postilaatikoihin, on Dovecot IMAP. IMAP on protokolla, joka toimii 143- ja 993 (SSL) -portteilla ja joka on vastuussa sähköpostin lukemisesta, poistamisesta tai siirtämisestä useille sähköpostiohjelmille.

IMAP-protokolla käyttää myös synkronointia varmistaakseen, että kopio jokaisesta viestistä tallennetaan palvelimelle, ja antaa käyttäjille mahdollisuuden luoda palvelimelle useita hakemistoja ja siirtää sähköpostia tähän hakemistoon sähköpostien lajittelemiseksi.

Näin ei ole POP3-protokollan kanssa. POP3-protokolla ei salli käyttäjien luoda palvelimelle useita hakemistoja lajittelemaan postisi. Sinulla on postilaatikon kansio vain postin hallintaan.

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

# apt install dovecot-core dovecot-imapd

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

listen = *, ::

16. Avaa seuraavaksi /etc/dovecot/conf.d/10-auth.conf muokkausta varten ja etsi ja muuta alla olevat rivit näyttämään alla olevasta otteesta.

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-muodon sijaan sähköpostien tallentamiseen.

mail_location = maildir:~/Maildir

18. Viimeinen muokattava tiedosto on /etc/dovecot/conf.d/10-master.conf. Täällä etsi Postfix smtp-auth-lohko 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-demoni uudelleen vastaamaan muutoksia, tarkista sen tila ja varmista, että Dovecot sitoo porttia 143 antamalla alla olevat komennot.

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

20. Testaa, toimiiko postipalvelin oikein, lisäämällä uusi käyttäjätili järjestelmään ja muodosta yhteys SMTP-palvelimeen ja lähetä uusi viesti uudelle lisätylle käyttäjälle telnet- tai netcat-komennon avulla 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 uuteen käyttäjän postilaatikkoon, lisäämällä 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, kuten alla olevassa otteessa näkyy. Uuden postin pitäisi näkyä käyttäjän postilaatikossa.

# 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öpostejaan Rainloop Webmail -asiakasohjelman kautta. Ennen kuin asennat Rainloop-sähköposti-käyttäjäagentin, asenna ensin Apache HTTP -palvelin ja seuraavat Rainloopin edellyttämät 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 tiedostoon/var/www/html/hakemisto, poista index.html-tiedosto ja anna seuraava komento Rainloop Webmailin asentamiseksi.

# 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 toimialueen IP-osoitteeseen ja kirjaudu Rainloop-järjestelmänvalvojan web-käyttöliittymään seuraavilla oletustiedoilla:

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

26. Siirry Domains-valikkoon, paina Add Domain -painiketta ja lisää verkkotunnuksesi asetukset alla olevan kuvakaappauksen mukaisesti.

27. Kun olet lisännyt verkkotunnuksen asetukset, kirjaudu ulos Ranloop-järjestelmänvalvojan käyttöliittymästä ja osoita selain IP-osoitteeseesi, jotta voit kirjautua sisään sähköpostiohjelmaan sähköpostitilillä.

Kun olet kirjautunut onnistuneesti Rainloop-webmailiin, sinun pitäisi nähdä aiemmin komentoriviltä lähetetty sähköposti Saapuneet-kansioon.

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

27. Voit lisätä uuden käyttäjän ongelman useradd -komennon -m -lipulla käyttäjän kotihakemiston luomiseksi. Varmista kuitenkin ensin, että määrität jokaiselle käyttäjälle Maildir-polun muuttujan seuraavalla komennolla.

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

28. Jos haluat ohjata kaikki juuren sähköpostit tiettyyn paikalliseen sähköpostitiliin järjestelmästä, suorita alla olevat komennot. Kaikki juuritilille uudelleenohjatut tai lähetetyt sähköpostit välitetään sähköpostin käyttäjälle alla olevan kuvan mukaisesti.

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

Siinä kaikki! Olet asentanut ja konfiguroinut postipalvelimen tiloihisi onnistuneesti, jotta paikalliset käyttäjät voivat kommunikoida sähköpostin kautta. Tämän tyyppisiä postimääritelmiä ei kuitenkaan ole suojattu millään tavalla, ja on suositeltavaa ottaa käyttöön vain pienet kokoonpanot järjestelmissä ja verkoissa täysin hallinnassasi.