Difference between revisions of "Mail"
(→Postfix) |
Wdenbesten (Talk | contribs) (Services van Haskell toegevoegd. RoundCube vervangen door SquirrelMail. Mailman update.) |
||
Line 7: | Line 7: | ||
* [http://www.dovecot.org/ dovecot] (''/etc/dovecot/'') neemt de POP- en IMAP-servers voor zijn rekening; | * [http://www.dovecot.org/ dovecot] (''/etc/dovecot/'') neemt de POP- en IMAP-servers voor zijn rekening; | ||
* [http://spamassassin.apache.org/ SpamAssassin] [[mailfiltering|filtert]] het binnenkomende mailverkeer. | * [http://spamassassin.apache.org/ SpamAssassin] [[mailfiltering|filtert]] het binnenkomende mailverkeer. | ||
+ | |||
+ | Op [[haskell]] draait [[vm-mail]] om het mailverkeer van en naar A-Eskwadraat te regelen: | ||
+ | * [http://www.exim.org/ exim] (''/etc/exim4/'') verwerkt in principe alle binnenkomende mails, en wat er waarheen doorgestuurd moet worden; | ||
+ | * [http://www.dovecot.org/ dovecot] (''/etc/dovecot/'') neemt de POP- en IMAP-servers voor zijn rekening; | ||
+ | * [http://spamassassin.apache.org/ SpamAssassin] (''/etc/mail/spamassassin/'') [[mailfiltering|filtert]] het binnenkomende mailverkeer; | ||
+ | * [http://http://www.clamav.net/lang/en/ ClamAV] (''/etc/clamd.d/'') scant het mailverkeer voor virussen en dergelijke; | ||
+ | * [http://squirrelmail.org SquirrelMail] (''/etc/squirrelmail/'') is een webmail interface SquirrelMail draait in de webserver van [[vm-mail]]; | ||
+ | * [http://www.list.org/ Mailman] (''/etc/mailman/'') Mailman is verantwoordelijk voor de mailing lists, zoals de BBCie-announce. | ||
== Naamgeving Maildirmappen == | == Naamgeving Maildirmappen == | ||
Line 21: | Line 29: | ||
om te zorgen dat e-mail toch niet in ''/var/mail'' terechtkomt. | om te zorgen dat e-mail toch niet in ''/var/mail'' terechtkomt. | ||
− | == Maak een mailserver met | + | == Maak een mailserver met exim, en dovecot == |
Zorg eerst dat sendmail uit staat! | Zorg eerst dat sendmail uit staat! | ||
<pre> | <pre> | ||
Line 27: | Line 35: | ||
chkconfig sendmail off | chkconfig sendmail off | ||
</pre> | </pre> | ||
+ | Bij voorkeur verwijder je ook de package voor [[postfix]]. | ||
=== Postfix === | === Postfix === | ||
Postfix is een MTA (Mail Transfer Agent) en is ervoor om mailtjes door te sturen en mailtjes te sturen. Dit wil je natuurlijk wel op een mailserver kunnen doen! | Postfix is een MTA (Mail Transfer Agent) en is ervoor om mailtjes door te sturen en mailtjes te sturen. Dit wil je natuurlijk wel op een mailserver kunnen doen! | ||
Line 185: | Line 194: | ||
/etc/lib/mailman/bin/newlist mailman | /etc/lib/mailman/bin/newlist mailman | ||
</pre> | </pre> | ||
− | Voeg | + | Voeg geen regels toe aan /etc/aliases, aangezien exim deze automatisch herkent. |
− | + | Tenslotte, restart httpd en start mailman: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | Tenslotte | + | |
<pre> | <pre> | ||
− | |||
service httpd restart | service httpd restart | ||
service mailman start | service mailman start | ||
Line 205: | Line 203: | ||
</pre> | </pre> | ||
− | == | + | == SquirrelMail == |
− | + | SquirrelMail is een webmail-client. | |
− | === | + | === SquirrelMail installeren === |
− | Installeer eerst natuurlijk | + | Installeer eerst natuurlijk Squirrelmail: |
<pre> | <pre> | ||
− | yum install | + | yum install squirrelmail |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</pre> | </pre> | ||
+ | |||
Zorg ervoor dat httpd standaard aan staat en start httpd: | Zorg ervoor dat httpd standaard aan staat en start httpd: | ||
<pre> | <pre> | ||
Line 228: | Line 216: | ||
service httpd start | service httpd start | ||
</pre> | </pre> | ||
− | Verander nu het volgende in /etc/ | + | Verander nu het volgende in /etc/squirrelmail/config.php: |
− | + | <pre> | |
− | + | $org_name = "A-Eskwadraat"; | |
− | + | $org_logo = SM_PATH . 'images/sm_logo.png'; | |
− | + | $org_logo_width = '308'; | |
− | + | $org_logo_height = '111'; | |
− | Zet | + | $org_title = 'A-Eskwadraat SquirrelMail $version"; |
+ | $signout_page = 'vm-mail.a-eskwadraat.nl'; | ||
+ | |||
+ | $domain = 'circle.a-eskwadraat.nl'; | ||
+ | $imapServerAddress = 'localhost'; | ||
+ | $useSendmail = false; | ||
+ | $smtpServerAddress = 'localhost'; | ||
+ | $pop_before_smtp = false; | ||
+ | |||
+ | </pre> | ||
+ | Zet nu het A-Eskwadraat logo in de squirrelmail config map. | ||
<pre> | <pre> | ||
setsebool -P httpd_can_network_connect 1 | setsebool -P httpd_can_network_connect 1 | ||
</pre> | </pre> |
Revision as of 20:12, 3 December 2013
Bij A–Eskwadraat gebruiken we Maildir voor de opslag van e-mail. Hiervoor gebruikten we het mbox-formaat. We raden gebruikers aan om niet direct de Maildirmappen te benaderen, maar om dit via IMAP te doen. De standaardconfiguratie van de meeste mailclients staat hier ook voor ingesteld.
Contents
Services
Op square draait een aantal services om het mailverkeer van en naar A–Eskwadraat te regelen:
- exim (/etc/exim4/) verwerkt in principe alle binnenkomende mails, en wat er waarheen doorgestuurd moet worden;
- dovecot (/etc/dovecot/) neemt de POP- en IMAP-servers voor zijn rekening;
- SpamAssassin filtert het binnenkomende mailverkeer.
Op haskell draait vm-mail om het mailverkeer van en naar A-Eskwadraat te regelen:
- exim (/etc/exim4/) verwerkt in principe alle binnenkomende mails, en wat er waarheen doorgestuurd moet worden;
- dovecot (/etc/dovecot/) neemt de POP- en IMAP-servers voor zijn rekening;
- SpamAssassin (/etc/mail/spamassassin/) filtert het binnenkomende mailverkeer;
- ClamAV (/etc/clamd.d/) scant het mailverkeer voor virussen en dergelijke;
- SquirrelMail (/etc/squirrelmail/) is een webmail interface SquirrelMail draait in de webserver van vm-mail;
- Mailman (/etc/mailman/) Mailman is verantwoordelijk voor de mailing lists, zoals de BBCie-announce.
Naamgeving Maildirmappen
Let op dat om voor dovecot begrijpbare namen te hebben, de mappen op in ~/Maildir altijd met een punt moeten beginnen. Submappen werken ook op deze manier. Een paar voorbeelden:
- ~/Maildir/.Intro/ voor de IMAP-map Intro;
- ~/Maildir/.Sysop.postmaster/ voor de map postmaster als submap van Sysop.
Als de mappen via IMAP worden aangemaakt gebeurt dit automatisch.
Configuratie mailfilters
Gebruik je een .forward of .procmailrc om e-mail direct in mappen te stoppen, let dan op de naamgeving (zie hierboven) en zorg ervoor dat de mappen altijd op een / eindigen. Begin je .procmailrc ook altijd met de regel
MAILDIR=$HOME/Maildir/
om te zorgen dat e-mail toch niet in /var/mail terechtkomt.
Maak een mailserver met exim, en dovecot
Zorg eerst dat sendmail uit staat!
service sendmail stop chkconfig sendmail off
Bij voorkeur verwijder je ook de package voor postfix.
Postfix
Postfix is een MTA (Mail Transfer Agent) en is ervoor om mailtjes door te sturen en mailtjes te sturen. Dit wil je natuurlijk wel op een mailserver kunnen doen! Zorg als eerste natuurlijk dat postfix is geïnstalleerd op je host. Verander dan nu de volgende regels in /etc/postfix/main.cf:
- myhostname = "De FQDN van de mailserver"
- mydomain = "Het domein van de mailserver"
- inet_interfaces = all
- mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
- mynetworks = "De ip-range van alle hosts die via de mailserver moeten mailen"
- home_mailbox = Maildir/
- mail_spool_directory = /var/mail
Vervolgens moet je in elke host die de mailserver gaat gebruiken om te mailen het volgende in /etc/postfix/main.cf wijzigen:
- relay_host = "De FQDN van je mailhost"
Vergeet tenslotte niet om postfix te starten:
chkconfig postfix on service postfix restart
Voila! Dit is alles wat je voor postfix hoeft te doen
Dovecot
Dovecot is een IMAP en POP3 server, wat inhoud dat het mailtjes kan ontvangen, iets wat best wel handig is om te hebben. Installeer dovecot op je mailserver als je dat nog niet gedaan hebt. Verander dan nu het volgende:
In /etc/dovecot/dovecot.conf:
- protocols = imap
- login_trusted_networks = <ip-adressen die je vertrouwd>
In /etc/dovecot/conf.d/10-mail.conf
- mail_location = maildir:~/Maildir
- lock_method = dotlock
In /etc/dovecot/conf.d/10-auth.conf
- disable_plaintext_auth = no
- auth_realms = aeskwadraat
- auth_default_realm = aeskwadraat
- auth_gssapi_hostname = <ipa-server>
- auth_krb5_keytab = /etc/dovecot/krb5.keytab
- auth_mechanisms = plain gssapi
en zet op het einde
userdb { driver = static args = uid=dovecot gid=dovecot home=/var/spool/mail/%u }
Maak nu op de ipa-server een service imap aan met de mailserver als host. Dit kan je doen via de webinterface. Voer vervolgens het volgende uit op de mailserver:
kinit admin ipa-getkeytab -s <ipa-server> -p imap/<mailserver> -k /etc/dovecot/krb5.keytab chown root:dovecot /etc/dovecot/krb5.keytab chmod 640 /etc/dovecot/krb5.keytab
Restart dovecot en zet hem standaard aan:
service dovecot restart chkconfig dovecot on
Zet tenslotte nog met system-config-firewall-tui 'imap over ssl' en 'mail (smtp)' aan, en voila! Je kan nu met ipa-users gebruik maken van IMAP om mailtjes te ontvangen!
Je kan eventueel in /etc/postfix/main.cf en /etc/dovecot/conf.d/10-mail.conf nog het een ander van waar de mail wordt opgeslagen veranderen.
Spamassassin
Spamassassin is een mailfilteringprogramma voor spam. Om het te installeren:
yum install spamassassin
Maak nu de user en group spamd aan:
groupadd -g 5001 spamd useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd mkdir /var/lib/spamassassin chown spamd:spamd /var/lib/spamassassin
Zet dan het volgende in /etc/mail/spamassassin/local.cf:
required_score 5.0 report_safe 0 rewrite_header Subject [***SPAM***] # Enable the Bayes system use_bayes 1 use_bayes_rules 1 # Enable Bayes auto-learning bayes_auto_learn 1
Verander nu in /etc/postfix/master.cf
smtp inet n - n - - smtpd
in
smtp inet n - n - - smtpd -o content_filter=spamassassin
en stop op het einde van master.cf:
spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
Restart nu spamassassin en postfix:
chkconfig spamassassin on service spamassassin restart service postfix restart
Aliases
In postfix staan de locaties van de aliases in /etc/postfix/main.cf. Deze kan je vinden bij de regel 'alias_maps = ...'. Als je een nieuw aliasbestand wilt toevoegen, voeg dit dan ook toe bij deze regel als hash:<bestandslocatie>. Vergeet ook niet om dit toe te voegen bij alias_database!.
De aliases zelf staan geconfigureerd in de aliasbestanden die te vinden zijn onder /etc/aesalias/. Nadat je een nieuw alias hebt toegevoegd moet je het commando 'newaliases' als root uitvoeren om de nieuwe alias(sen) te activeren. Hetzelfde moet je ook doen als je aliases weghaalt natuurlijk!
Instellingen
Postfix
Mail relay
Postfix kan mail relayen naar een extern domein. Hiervoor is de volgende regel:
relay_domains = $mydestination, hash:/etc/postfix/domains.relay
In het bestand /etc/postfix/domains.relay staat de lijst van alle externe domains waar mail naar toe gerelayed wordt. Als je iets in het bestand wijzigt, vergeet dan niet om daarna het commando
postmap /etc/postfix/domains.relay
uit te voeren.
Whitelist
Postfix kan gebruik maken van een whitelist. Zorg hiervoor dat er het volgende in /etc/postfix/main.cf staat:
smtpd_client_restrictions = check_client_access hash:/etc/postfix/client.access
In het bestand /etc/postfix/client.access staat de lijst van alle domains die geweigerd en toegelaten worden. Als je hier iets in verandert, vergeet dan niet om uit te voeren
postmap /etc/postfix/access.client
Mailman
Mailman onderhoudt mailinglijsten zoals de jarigen-lijst en de IBA-lijst.
Mailman installeren
Installeer Mailman en httpd (als die als niet geinstalleerd zijn):
yum install mailman httpd
Uncomment de laatste regel van /etc/httpd/conf.s/mailman.conf:
- RedirectMatch ^/mailman[/]*$ /mailman/listinfo
Zet een wachtwoord voor de admin van de mailmansite:
/etc/lib/mailman/bin/mmsitepass
Verander de volgende twee regels in /usr/lib/mailman/Mailman/mm_cfg.py
- DEFAULT_URL_HOST = '<mailserver-domain>'
- DEFAULT_EMAIL_HOST = '<mailserver-domain>'
Check voor updates:
/etc/lib/mailman/bin/update
Zet alle permissies goed:
/etc/lib/mailman/bin/check_perms -f
Maak de mailman-mailing-list:
/etc/lib/mailman/bin/newlist mailman
Voeg geen regels toe aan /etc/aliases, aangezien exim deze automatisch herkent. Tenslotte, restart httpd en start mailman:
service httpd restart service mailman start chkconfig httpd on chkconfig mailman on
SquirrelMail
SquirrelMail is een webmail-client.
SquirrelMail installeren
Installeer eerst natuurlijk Squirrelmail:
yum install squirrelmail
Zorg ervoor dat httpd standaard aan staat en start httpd:
chkconfig httpd on service httpd start
Verander nu het volgende in /etc/squirrelmail/config.php:
$org_name = "A-Eskwadraat"; $org_logo = SM_PATH . 'images/sm_logo.png'; $org_logo_width = '308'; $org_logo_height = '111'; $org_title = 'A-Eskwadraat SquirrelMail $version"; $signout_page = 'vm-mail.a-eskwadraat.nl'; $domain = 'circle.a-eskwadraat.nl'; $imapServerAddress = 'localhost'; $useSendmail = false; $smtpServerAddress = 'localhost'; $pop_before_smtp = false;
Zet nu het A-Eskwadraat logo in de squirrelmail config map.
setsebool -P httpd_can_network_connect 1