Installeer een complete mailserver met Postfix en Webmail in Debian 9
Deze tutorial begeleidt u bij het installeren en configureren van een volledige mailserver met Postfix in de release van Debian 9. Ook wordt besproken hoe u de mailboxen van accounts kunt configureren met behulp van Dovecot om e-mails op te halen en samen te stellen via het IMAP-protocol. De gebruikers zullen de Rainloop Webmail interface gebruiken als mail user agent om mail af te handelen.
Vereisten
- Debian 9 Minimale installatie
- Een statisch IP-adres geconfigureerd voor de netwerkinterface
- Een lokale of een publiek geregistreerde domeinnaam.
In deze zelfstudie gebruiken we een privédomeinaccount voor het instellen van de mailserver, geconfigureerd via het bestand /etc/hosts, zonder dat er een DNS-server betrokken is bij het afhandelen van de DNS-resolutie.
Stap 1: Initiële configuraties voor Postfix Mail Server op Debian
1. Log in de eerste stap in op uw machine met een account met root-rechten of rechtstreeks met de root-gebruiker en zorg ervoor dat uw Debian-systeem up-to-date is met de nieuwste beveiligingspatches en software- en pakketreleases , door het volgende commando te geven.
apt-get update
apt-get upgrade
2. Installeer bij de volgende stap de volgende softwarepakketten die zullen worden gebruikt voor systeembeheer, door de volgende opdracht te geven.
apt-get install curl net-tools bash-completion wget lsof nano
3. Open vervolgens het bestand /etc/host.conf om het te bewerken met uw favoriete teksteditor en voeg de volgende regel toe aan het begin van het bestand, zodat de DNS-resolutie lees eerst het hosts-bestand.
order hosts,bind
multi on
4. Stel vervolgens de FQDN van uw machine in en voeg uw domeinnaam en uw systeem-FQDN toe aan het bestand /etc/hosts. Gebruik het IP-adres van uw systeem om de naam van het domein en de FQDN om te zetten, zoals geïllustreerd in de onderstaande schermafbeelding.
Vervang het IP-adres en domein dienovereenkomstig. Start daarna de machine opnieuw op om de hostnaam correct toe te passen.
hostnamectl set-hostname mail.linux-console.net
echo "192.168.0.102 linux-console.net mail.linux-console.net" >> /etc/hosts
init 6
5. Controleer na het opnieuw opstarten of de hostnaam correct is geconfigureerd door de volgende reeks opdrachten te geven. De domeinnaam, de FQDN, de hostnaam en het IP-adres van het systeem moeten worden geretourneerd via de hostnaamopdracht.
hostname
hostname -s
hostname -f
hostname -A
hostname -i
cat /etc/hostname
6. Test ook of het domein correct reageert op lokale vragen door de onderstaande opdrachten te geven. Houd er rekening mee dat het domein niet opnieuw reageert op externe zoekopdrachten van andere systemen in uw netwerk, omdat we geen DNS-server gebruiken.
Het domein zou echter vanuit andere systemen moeten reageren als u de domeinnaam handmatig aan elk van hun /etc/hosts-bestanden toevoegt. Houd er ook rekening mee dat de DNS-resolutie voor een domein dat is toegevoegd aan het bestand /etc/hosts niet werkt via host-, nslookup- of dig-opdrachten.
getent ahosts mail.linux-console.net
ping linux-console.net
ping mail.linux-console.net
Stap 2: Installeer Postfix Mail Server op Debian
7. Het belangrijkste stuk software dat nodig is om een mailserver goed te laten functioneren is de MTA agent. De MTA is software die is gebouwd in een server-client-architectuur en die verantwoordelijk is voor de e-mailoverdracht tussen mailservers.
In deze handleiding gebruiken we Postfix als mailtransferagent. Om postfix in Debian te installeren vanuit officiële repository's, voert u de volgende opdracht uit.
apt-get install postfix
8. Tijdens het installatieproces van Postfix wordt u een aantal vragen gesteld. Selecteer bij de eerste prompt de optie Internetsite als het algemene type voor Postfix-configuratie en druk op de toets [enter] om door te gaan en voeg vervolgens uw domeinnaam toe aan de e-mailnaam van het systeem, zoals geïllustreerd in de volgende schermafbeeldingen.
Stap 3: Configureer Postfix Mail Server op Debian
9. Maak vervolgens een back-up van het hoofdconfiguratiebestand van Postfix en configureer Postfix voor uw domein met behulp van de volgende opdrachten.
cp /etc/postfix/main.cf{,.backup}
nano /etc/postfix/main.cf
Configureer nu de Postfix-configuratie in het bestand main.cf, zoals weergegeven.
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
Vervang de variabelen mijnhostnaam, mijndomein en mijnnetwerken zodat deze overeenkomen met uw eigen configuraties.
U kunt de opdracht postconf -n uitvoeren om het hoofdconfiguratiebestand van Postfix te dumpen en eventuele fouten te controleren, zoals weergegeven in de onderstaande schermafbeelding.
postconf -n
10. Nadat alle configuraties zijn ingevoerd, start u de Postfix-daemon opnieuw om de wijzigingen toe te passen en controleert u of de service actief is door te inspecteren of de Postfix-hoofdservice bindend is op poort 25 door netstat uit te voeren commando.
systemctl restart postfix
systemctl status postfix
netstat -tlpn
Stap 3: Test Postfix Mail Server op Debian
11. Om te testen of postfix de e-mailoverdracht aankan, installeert u eerst het mailutils pakket door de volgende opdracht uit te voeren.
apt-get install mailutils
12. Vervolgens kunt u met behulp van het opdrachtregelhulpprogramma voor e-mail een e-mail naar het root-account sturen en controleren of de e-mail met succes is verzonden door het onderstaande commando uit te voeren om de e-mailwachtrij te controleren en de inhoud van het root-account weer te geven thuis Maildir-map.
echo "mail body"| mail -s "test mail" root
mailq
mail
ls Maildir/
ls Maildir/new/
cat Maildir/new/[TAB]
13. U kunt ook verifiëren op welke manier de e-mail door de postfix-service is afgehandeld door de inhoud van het e-maillogbestand te inspecteren door de volgende opdracht te geven.
tailf /var/log/mail.log
Stap 4: Installeer en configureer Dovecot IMAP op Debian
14. De mailbezorgingsagent die we in deze handleiding gebruiken om e-mailberichten te bezorgen in de mailboxen van een lokale ontvanger is Dovecot IMAP. IMAP is een protocol dat draait op 143 en 993 (SSL) poorten, dat op verantwoorde wijze leest, verwijdert of e-mails verplaatsen over meerdere e-mailclients.
Het IMAP-protocol maakt ook gebruik van synchronisatie om ervoor te zorgen dat een kopie van elk bericht op de server wordt opgeslagen en stelt gebruikers in staat meerdere mappen op de server aan te maken en e-mails naar deze mappen te verplaatsen om de e-mails te sorteren.
Dit is niet het geval met het POP3-protocol. Het POP3-protocol staat gebruikers niet toe meerdere mappen op de server aan te maken om uw e-mail te sorteren. U hebt alleen de map Postvak IN om e-mail te beheren.
Om de Dovecot kernserver en het Dovecot IMAP pakket op Debian te installeren, voert u de volgende opdracht uit.
apt install dovecot-core dovecot-imapd
15. Nadat Dovecot op uw systeem is geïnstalleerd, opent u de onderstaande Dovecot-bestanden om ze te bewerken en brengt u de volgende wijzigingen aan. Open eerst het bestand /etc/dovecot/dovecot.conf, zoek de volgende regel en verwijder het commentaar:
listen = *, ::
16. Open vervolgens /etc/dovecot/conf.d/10-auth.conf om te bewerken en lokaliseer en wijzig de onderstaande regels zodat ze er uitzien zoals in het onderstaande fragment.
disable_plaintext_auth = no
auth_mechanisms = plain login
17. Open het bestand /etc/dovecot/conf.d/10-mail.conf en voeg de volgende regel toe om de locatie Maildir te gebruiken in plaats van Mbox-formaat om e-mails op te slaan.
mail_location = maildir:~/Maildir
18. Het laatste bestand dat moet worden bewerkt is /etc/dovecot/conf.d/10-master.conf. Zoek hier naar Postfix smtp-auth block en breng de volgende wijziging aan:
Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
19. Nadat u alle bovenstaande wijzigingen heeft aangebracht, start u de Dovecot-daemon opnieuw om de wijzigingen weer te geven, controleert u de status ervan en verifieert u of Dovecot bindend is voor poort 143, door de onderstaande opdrachten uit te voeren.
systemctl restart dovecot.service
systemctl status dovecot.service
netstat -tlpn
20. Test of de mailserver goed werkt door een nieuw gebruikersaccount aan het systeem toe te voegen en gebruik de opdracht telnet of netcat om verbinding te maken met de SMTP-server en stuur een nieuwe e-mail naar de nieuw toegevoegde gebruiker, zoals geïllustreerd in de onderstaande fragmenten.
adduser matie
nc localhost 25
ehlo localhost
mail from: root
rcpt to: matie
data
subject: test
Mail body
.
quit
21. Controleer of de e-mail is aangekomen in de mailbox van de nieuwe gebruiker door de inhoud van de thuismap van de gebruiker weer te geven, zoals weergegeven in de onderstaande schermafbeelding.
ls /home/test_mail/Maildir/new/
22. U kunt ook vanaf de opdrachtregel verbinding maken met de mailbox van de gebruiker via het IMAP-protocol, zoals weergegeven in het onderstaande fragment. De nieuwe e-mail moet in de inbox van de gebruiker worden vermeld.
nc localhost 143
x1 LOGIN matie user_password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT
Stap 5: Webmail installeren en configureren in Debian
23. Gebruikers beheren hun e-mails via de Rainloop Webmail-client. Voordat u de Rainloop mail user agent installeert, installeert u eerst de Apache HTTP server en de volgende PHP modules die vereist zijn door Rainloop, door de volgende opdracht te geven.
apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-xml
24. Nadat de Apache-webserver is geïnstalleerd, wijzigt u het mappad naar de map /var/www/html/ en verwijdert u het bestand index.html en voer het volgende commando uit om Rainloop Webmail te installeren.
cd /var/www/html/
rm index.html
curl -sL https://repository.rainloop.net/installer.php | php
25. Nadat de Rainloop Webmail-client in het systeem is geïnstalleerd, navigeert u naar het IP-adres van uw domein en logt u in op de Rainloop-beheerwebinterface met de volgende standaardgegevens:
http://192.168.0.102/?admin
User: admin
Password: 12345
26. Navigeer naar het menu Domeinen, klik op de knop Domein toevoegen en voeg uw domeinnaaminstellingen toe, zoals weergegeven in de onderstaande schermafbeelding.
27. Nadat u klaar bent met het toevoegen van uw domeininstellingen, logt u uit bij de beheerdersinterface van Ranloop en wijst u de browser naar uw IP-adres om u aan te melden bij de webmailclient met een e-mailaccount.
Nadat u succesvol bent ingelogd op de Rainloop-webmail, zou u de e-mail moeten zien die eerder vanaf de opdrachtregel naar uw map Inbox is verzonden.
http://192.168.0.102
User: [email
Pass: the matie password
27. Om een nieuwe gebruiker toe te voegen, voert u het useradd-commando uit met de vlag -m
om de thuismap van de gebruiker te maken. Maar zorg er eerst voor dat u de Maildir-padvariabele voor elke gebruiker configureert met de volgende opdracht.
echo 'export MAIL=$HOME/Maildir' >> /etc/profile
useradd -m user3
passwd user3
28. Als u alle e-mail van root wilt omleiden naar een specifiek lokaal e-mailaccount van het systeem, voert u de onderstaande opdrachten uit. Alle e-mails die worden omgeleid of bestemd voor het root-account, worden doorgestuurd naar uw e-mailgebruiker, zoals weergegeven in de onderstaande afbeelding.
echo "root: test_mail" >> /etc/aliases
newaliases
Dat is alles! U hebt met succes een mailserver bij u geïnstalleerd en geconfigureerd, zodat lokale gebruikers via e-mail kunnen communiceren. Dit type mailconfiguratie is echter op geen enkele manier beveiligd en het is raadzaam om deze alleen te gebruiken voor kleine opstellingen in systemen en netwerken die u volledig onder controle heeft.