Debian server beheer

Mail versturen: postfix bereikbaar maken van buiten

Als je thuis bent verstuur je over het algemeen mail via de smtp server van je internet provider. Meestal hebben die poort 25 zo ingericht dat je alleen met de smtp server van je eigen provider verbinding kunt maken. Als je mail wilt versturen postfix op je eigen server daat dat via poort 587.

Certificaten maken

Voor de beveiligde verbinding heeft postfix certificaten nodig. Maak om te beginnen de map.

mkdir /etc/postfix/ssl cd /etc/postfix/ssl

Nu gaan we met openssl de certificaten maken met de volgende opdrachten:

openssl genrsa -out postfix.key 1024 chmod 600 postfix.key openssl req -new -key postfix.key -out postfix.csr

Deze laatste opdracht resulteert in een aantal vragen:

You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:NL State or Province Name (full name) [Some-State]:Utrecht Locality Name (eg, city) []:Utrecht Organization Name (eg, company) [Internet Widgits Pty Ltd]:debian.weijers.net Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:Jan Weijers Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:

Vervolgens maken we het certificaat zelf:

openssl x509 -req -days 730 -in postfix.csr -signkey postfix.key -out postfix.crt

openssl antwoordt met het volgende:

Signature ok subject=/C=NL/ST=Utrecht/L=Utrecht/O=debian.weijers.net/CN=Jan Weijers Getting Private key

Controleer nu of je de juiste bestanden hebt:

ls -l /etc/postfix/ssl

-rw-r--r-- 1 root root 806 Jun 2 08:12 postfix.crt -rw-r--r-- 1 root root 631 Jun 2 08:11 postfix.csr -rw------- 1 postfix root 887 Jun 2 08:10 postfix.key

Je hebt nu een zogenaamd 'self signed certificate'. In de meeste e-mail software zul je eenmalig aan moeten geven dat je dit certificaat wil accepteren.

Postfix configuratie

Om te beginnen bewerken we main.cf:

cp /etc/postfix/main.cf /etc/postfix/main.cf.backup3 nano /etc/postfix/main.cf

Zoek de volgende regels en pas die aan met de juiste namen van de certificaten:

smtpd_tls_cert_file=/etc/postfix/ssl/postfix.crt smtpd_tls_key_file=/etc/postfix/ssl/postfix.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

Nu gaan we master.cf aanpassen om er voor ze zorgen dat postfix luistert op poort 587:

cp /etc/postfix/master.cf /etc/postfix/master.cf.backup3 nano /etc/postfix/master.cf

Zoek de volgende regels of voeg ze toe. In de meeste gevallen staan ze al in master.cf maar met een commentaarteken (#) er voor. Haal in dat geval de # tekens weg:

submission inet n - - - - smtpd -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING

Let op dat voor de modifiers -o een tab of spatie staat. Zo weet postfix dat ze horen bij de opdracht op de 'submission' regel.

Als laatste moeten we nu postfix herstarten:

/etc/init.d/postfix restart

Stopping Postfix Mail Transport Agent: postfix. Starting Postfix Mail Transport Agent: postfix.

Maximale grootte bericht aanpassen

Zowel voor inkomende als uitgaande post hanteert postfix standaard een limiet van 10 megabyte. Dat is niet voor iedereen genoeg. Om de maximale grootte te controleren:

postconf | grep message_size_limit

message_size_limit = 10240000

Vervolgens gebruiken we postconf om de maximale grootte aan te passen:

postconf -e message_size_limit=20480000 postfix reload

Je kunt nu controleren of de maximale grootte inderdaad aangepast is.

postconf | grep message_size_limit

message_size_limit = 20480000

Pogingen berichten te versturen beperken

In de default instellingen probeert postfix een uitgaand bericht 5 dagen lang te versturen en dat elke 70 minuten. Ik vind dat veel te vaak en heb dat beperkt tot 5 uur (waarin dus 4 pogingen gedaan worden). Bewerk main.cf:

cp /etc/postfix/main.cf /etc/postfix/main.cf.backup4 nano /etc/postfix/main.cf

Voeg de volgende regel toe:

maximal_queue_lifetime = 5h

Tenslotte postfix herstarten:

postfix reload

Uitgaande mail kopiëren met sender_bcc_maps

In bepaalde gevallen wil je een kopie kunnen ontvangen van uitgaande mail. Ik wil dat bijvoorbeeld bij de uitgaande mail van mijn zoontje van 10. Bewerk de configuratie van postfix:

nano /etc/postfix/main.cf

En voeg daar de volgende regel aan toe:

sender_bcc_maps = hash:/etc/postfix/sender_bcc

Vervolgens maak je het sender_bcc bestand:

nano /etc/postfix/sender_bcc

En zet daarin de bcc regels. Elke regel bestaat uit een afzender, een spatie en tenslotte het adres dat als bcc toegevoegd moet worden:

zoon1@domein.nl ouders@domein.nl zoon2@domein.nl ouders@domein.nl

Vervolgens moet je postmap gebruiken en postfix herladen:

postmap /etc/postfix/sender_bcc postfix reload

Je kunt per afzender-adres maar één bcc-adres invoeren. Als je de mail naar meerdere adressen wilt bcc-en kun je uiteraard via de virtual table een bcc-adres maken dan op zijn beurt weer doorgestuurd wordt aan meerdere ontvangers.