Mail

From A-Eskwiki
Revision as of 18:12, 15 March 2013 by Pepijno (Talk | contribs)

Jump to: navigation, search

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.

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.

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 postfix en dovecot

Zorg eerst dat sendmail uit staat!

service sendmail stop
chkconfig sendmail off

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 je host"
  • 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-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

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.

TODO: Spamassassin

Roundcube

Roundcube is een webmail-client.

Roundcube installeren

Installeer eerst natuurlijk roundcube:

yum install roundcubemail

Roundcube maakt ook gebruik van een mysql-database, dus zorg dat je een werkende mysql-database hebt (yum install mysql mysql-server)! Login als root in mysql en voor het volgende uit:

create database roundcubedb character set utf8 collate utf8_bin;
grant all privileges on roundcubedb.* to roundcube@'localhost' identified by 'password';
flush privileges;
exit

Zorg nu voor de juiste tables in de roundcubedb:

mysql roundcubedb -u root -p < /usr/share/doc/roundcubemail-*/SQL/mysql.initial.sql

Zorg ervoor dat httpd standaard aan staat en start httpd:

chkconfig httpd on
service httpd start

Verander nu het volgende in /etc/roundcubemail/db.inc.php:

  • $rcmail_config['db_dsnw'] = 'mysql://roundcube:password@localhost/roundcubedb';

en het volgende in /etc/roundcubemail/main.inc.php:

  • $rcmail_config['default_host'] = '<mailserver>'
  • $rcmail_config['smtp_server'] = '<mailserver>'
  • $rcmail_config['auto_create_user'] = true;

Zet ook de juiste SELinux-bool aan:

setsebool -P httpd_can_network_connect 1

Je kan eventueel ook nog een link /var/www/html maken die linkt naar /usr/share/roundcubemail

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!