Postfix (algemeen): verschil tussen versies
Naar navigatie springen
Naar zoeken springen
Regel 39: | Regel 39: | ||
* https://help.ubuntu.com/community/Postfix | * https://help.ubuntu.com/community/Postfix | ||
* http://stackoverflow.com/questions/4798772/postfix-its-installed-but-how-do-i-test | * http://stackoverflow.com/questions/4798772/postfix-its-installed-but-how-do-i-test | ||
+ | * http://www.postfix.org/VIRTUAL_README.html | ||
+ | * http://wiki.alpinelinux.org/wiki/Setting_up_postfix_with_virtual_domains | ||
== Appendix: Script addmailuser == | == Appendix: Script addmailuser == |
Versie van 15 sep 2015 14:26
Postfix is de standaard mailserver voor Ubuntu. De handleidingen van TransIP gaan uit van Postfix + Dovecot + SASL + Squirrelmail. Dus de keuze is gemaakt
Configuratie - Overzicht
/etc/postfix/master.cf
Bevat algemene instellingen zoals privileges. Onder operationele omstandigheden heb ik dit bestand waarschijnlijk zelden of nooit nodig/etc/postfix/main.cf
Is het centrale configuratiebestand.- Postfix maakt gebruik van virtuele mailboxen, om op één server meerdere domeinen te kunnen hosten
- Het gebruikersaccount
vmail
wordt gebruikt voor deze virtuele mailboxen /etc/postfix/vhosts
bevat de lijst van domeinnamen waarvan de mailboxen door Postfix worden beheerd/etc/postfix/vmaps
bevat de lijst van emailadressen.
Emailadressen & vhosts verwijderen
- Het script
deletemailuser
(zie appendix) geeft geen foutmeldingen, en de betreffende emailadressen verdwijnen daadwerkelijk uit bestandvmaps
, dus dat ziet er hoopvol uit - bestand
vhosts
blijft onaangeroerd door dit script. Ook als je het laatste emailadres van een domein verwijderd, blijft de naam staan in dit bestand. Op zich logisch
Status
sudo postfix status
vertelt je hoe Postfix er aan toe is.
Casus sep. 2015: postmap: warning: /etc/postfix/vmaps.db: duplicate entry
vmaps.db
is een binair bestand en kun je dus niet zomaar lezen
Vraagstukken
- Hoe verwijder ik een compleet virtueel domein? Eerst alle emailadressen verwijderen en dan het domein, of in één keer het domein?
- Hoe zorg ik ervoor dat een Apache virtuele host samenwerkt met de bijbehorende Postmaster virtuele host, of gaat dat niet? In de praktijk wordt email vaak verstuurd uit naam van een webserver, en niet uit naam van een domein dat op die webserver draait
- Monitoring: Hoe kan ik zien hoe actief er gemailed wordt, en of een domein wordt misbruikt? Bv. een gekraakte website die mail uitstuurt?
- Hoe vervang ik
addmailusetr
voor iets niet-interactiefs? - Hoe vervang ik
deletemailusetr
voor iets niet-interactiefs? - Hoe doe ik spamfiltering?
- Hoe doe ik beveiliging?
Bronnen
- https://help.ubuntu.com/community/Postfix
- http://stackoverflow.com/questions/4798772/postfix-its-installed-but-how-do-i-test
- http://www.postfix.org/VIRTUAL_README.html
- http://wiki.alpinelinux.org/wiki/Setting_up_postfix_with_virtual_domains
Appendix: Script addmailuser
Script uit een forum-posting:
#!/bin/sh if [ ! $# = 1 ] then echo "Gebruik: $0 gebruikersnaam@domeinnaam" exit 1 else user=`echo "$1" | cut -f1 -d "@"` domain=`echo "$1" | cut -s -f2 -d "@"` if [ -x $domain ] then echo "Geen domeinnaam opgegeven\nGebruik: $0 gebruikersnaam@domeinnaam" exit 2 fi echo "Gebruiker toevoegen $user@$domain in /etc/dovecot/users" echo "$user@$domain::5000:5000::/home/vmail/$domain/$user/:/bin/false::" >> /etc/dovecot/users echo "Aanmaken van de maildirectory /home/vmail/$domain/$user" if [ ! -x /home/vmail/$domain ] then mkdir /home/vmail/$domain chown 5000:5000 /home/vmail/$domain chmod 700 /home/vmail/$domain fi /usr/bin/maildirmake.dovecot /home/vmail/$domain/$user 5000:5000 /usr/bin/maildirmake.dovecot /home/vmail/$domain/$user/.Drafts 5000:5000 /usr/bin/maildirmake.dovecot /home/vmail/$domain/$user/.Sent 5000:5000 /usr/bin/maildirmake.dovecot /home/vmail/$domain/$user/.Junk 5000:5000 /usr/bin/maildirmake.dovecot /home/vmail/$domain/$user/.Trash 5000:5000 echo "Gebruiker toevoegen aan /etc/postfix/vmaps" echo $1 $domain/$user/ >> /etc/postfix/vmaps postmap /etc/postfix/vmaps postfix reload fi echo "\nVoer een wachtwoord in voor de mailbox" #SWAP THE FOLLOWING passwd LINES IF USING A UBUNTU VERSION PRIOR TO 12.04 #passwd=`dovecotpw` passwd=`doveadm pw -u $user` echo "Wachtwoord instellen voor $user@$domain in /etc/dovecot/passwd" if [ ! -x /etc/dovecot/passwd ] then touch /etc/dovecot/passwd chmod 640 /etc/dovecot/passwd fi echo "$user@$domain:$passwd" >> /etc/dovecot/passwd exit 0
Appendix: Script deletemailuser
#!/bin/bash if [ ! $# = 1 ] then echo -e "Gebruik het volgende: $0 gebruikersnaam@jouwdomein" exit 1 else user=`echo "$1" | cut -f1 -d "@"` domain=`echo "$1" | cut -s -f2 -d "@"` if [ -x $domain ] then echo -e "Geen domein ingevoerd\nGebruik: $0 gebruikersnaam@jouwdomein: " exit 2 fi fi read -n 1 -p "Verwijder $user@$domain van de server? [Y/N]? " echo case $REPLY in y | Y) new_users=`grep -v $user@$domain /etc/dovecot/users` new_passwd=`grep -v $user@$domain /etc/dovecot/passwd` new_vmaps=`grep -v $user@$domain /etc/postfix/vmaps` echo "Verwijder $user@$domain van /etc/dovecot/users" echo "$new_users" > /etc/dovecot/users echo "Verwijder $user@$domain van /etc/dovecot/passwd" echo "$new_passwd" > /etc/dovecot/passwd echo "Verwijder $user@$domain van /etc/postfix/vmaps" echo "$new_vmaps" > /etc/postfix/vmaps postmap /etc/postfix/vmaps postfix reload read -n1 -p "Verwijder alle bestanden in /home/vmail/$domain/$user? [Y/N]? " DELETE echo case $DELETE in y | Y) echo "Verwijder bestanden in /home/vmail/$domain/$user" rm -fr /home/vmail/$domain/$user ;; * ) echo "Bestanden niet verwijderd in /home/vmail/$domain/$user" ;; esac ;; * ) echo "Afsluiten..." ;; esac