Mailserver - Installatie Sep. 2014

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

Dit betreft een installatie van de volgende pakketen op een VPS:

  • Postfix als mailserver
  • Docecot als mail delivery agent
  • SASL voor SMTP-authenticatie
  • Squirrelmail voor webmail.

Postfix

Installatie

sudo apt-get install postfix

System mail name

example.com

Zie uitleg bij DNS hiervoor.

Controleren op binnengekomen e-mail

cd /home/vmail
sudo su

Daarna verder bladeren naar uiteindelijk

/home/vmail/example.com/info/new

Met info het aangemaakte e-mailadres. Hier staat als het goed is de mailfile.

Verder...

... Zie https://www.transip.nl/forum/post/prm/1500 voor details.

Dovecot

Dovecot wordt gebruikt als mail delivery agent. Dus het programma dat er voor zorgt dat e-mail overgefietst kan worden van de mailserver naa de client (bv. Thunderbird):

sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d

Ik heb geen self-signed SSL certifcate gekozen.

Backup maken van de oorspronkelijke configuratie:

sudo mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig

Nieuw configuratiebestand aanmaken:

sudo nano /etc/dovecot/dovecot.conf

Met dit als inhoud:

auth_verbose = yes
disable_plaintext_auth = no
base_dir = /var/run/dovecot/
info_log_path = /var/log/dovecot.info
log_path = /var/log/dovecot
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/home/vmail/%d/%n
auth default {
  mechanisms = plain cram-md5
  passdb passwd-file {
    args = /etc/dovecot/passwd
  }
  userdb passwd-file {
    args = /etc/dovecot/users
  }
  user = root
  socket listen {
    client {
      # The client socket is generally safe to export to everyone. Typical use
      # is to export it to your SMTP server so it can do SMTP AUTH lookups
      # using it.
      path = /var/spool/postfix/private/auth-client
      mode = 0660
      user = postfix
      group = postfix
    }
  }
}

protocols = imap pop3
service auth {
  executable = /usr/lib/dovecot/auth
  user = root
}
service imap-login {
  chroot = login
  executable = /usr/lib/dovecot/imap-login
  user = dovecot
}
service imap {
  executable = /usr/lib/dovecot/imap
}
service pop3-login {
  chroot = login
  executable = /usr/lib/dovecot/pop3-login
  user = dovecot
}
service pop3 {
  executable = /usr/lib/dovecot/pop3
}
ssl = no
userdb {  
  args = /etc/dovecot/users
  driver = passwd-file
}
valid_chroot_dirs = /var/spool/vmail
protocol pop3 {
  pop3_uidl_format = %08Xu%08Xv
}

Herstart Dovecot:

service dovecot restart

Dit gaf de volgende melding, die ik vooralsnog negeer:

stop: Rejected send message, 1 matched rules; type="method_call", sender=":1.9" (uid=1002 pid=4612 comm="stop dovecot ") interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")
start: Rejected send message, 1 matched rules; type="method_call", sender=":1.10" (uid=1002 pid=4606 comm="start dovecot ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")

Test

De gemakkelijkste manier om te testen bleek voor mij te zijn door het e-mailadres toe te voegen aan Thunderbird:

Instellingen Thunderbird

  • Inlognaam: E-mailadres
  • Wachtwoord: Zoals opgegeven tijdens de configuratie.

Thunderbird achterhaalde zelf de volgende instellingen:

  • IMAP - Poort 143, geen SSL/TSL
  • SMTP - smtp.example.com, poort 587, STARTTLS, gewoon wachtwoord

Ik kreeg een foutmelding tav. SSL/TSL. Dat kan goed kloppen. De handleiding zegt dat je voor SMTP verificatie nodig hebt. Ik denk dat daarmee STARTTLS bedoeld wordt, want poort 587. SSL/TLS gaat over een andere poort.

Resultaten

  • Mail kwam prima aan in Thunderbird
  • Verzenden lukte niet: Ik kreeg een relay-niet-toegestaan-foutmelding mbt. het ontvangende e-mailadres.

Squirrelmail

Webmail (Squirrelmail) aan de praat krijgen

Verzenden lukte niet. Daarom Squirrelmail geïnstalleerd

sudo apt-get install squirrelmail
sudo /usr/sbin/squirrelmail-configure

Via het interactieve menu de optie dovecot activeren. Daarna:

cd /
sudo cp /etc/squirrelmail/apache.conf /etc/apache2/conf-enabled/squirrelmail.conf
sudo /etc/init.d/apache2 restart

Via Squirrelmail kan ik prima verzenden. Interessant. Misschien heeft dit er mee te maken dat ik SASL niet heb geïnstalleerd.

Oorzaak (achteraf)

Ik had SASL niet geïnstalleerd. Da's nodig voor authenthicatie bij SMTP.

SASL

sudo postconf -e 'smtpd_sasl_auth_enable = yes'
sudo postconf -e 'smtpd_recipient_restrictions =  permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
sudo postconf -e 'smtpd_sasl_type = dovecot'
sudo postconf -e 'smtpd_sasl_path = private/auth-client'
sudo echo "mech_list: cram-md5" > /etc/postfix/sasl/smtpd.conf

Deze laatste regel stuitte op een Permission denied-foutmelding. Oplossing:

sudo su root
sudo echo "mech_list: cram-md5" > /etc/postfix/sasl/smtpd.conf
exit

Gelukt

Nu kan ik vanuit Thunderbird ook e-mail verzenden. Goed gedaan.

Bronnen