Postfix

Postfix är den Mail Transfer Agent (MTA) som är standard i Ubuntu. Det försöker vara snabbt, enkelt att administrera och säkert. Det är kompatibelt med MTA:n sendmail. Den här avdelningen förklarar hur du installerar och konfigurerar postfix. Den förklarar också hur du sätter upp en SMTP-server som använder en säker anslutning (för att skicka e-post säkert).

Installation

Kör följande kommando för att installera postfix med SMTP-AUTH och Transport Layer Security (TLS):

sudo apt-get install postfix

Tryck helt enkelt på retur när installationsprocessen ställer frågor - vi kommer att ställa in konfigurationen mer noggrant i nästa steg.

Grundläggande konfiguration

För att konfigurera postfix kör du följande kommando:

sudo dpkg-reconfigure postfix

Användargränssnittet kommer att visas. Välj följande värden på respektive skärm:

  • Ok

  • Internetsystem

  • INGEN

  • mail.exempel.com

  • mail.exempel.com, localhost.localdomain, localhost

  • Nej

  • 127.0.0.0/8

  • Ja

  • 0

  • +

  • alla

[Notera]

Ersätt mail.exempel.com med din e-postservers värdnamn.

Nu är det dags att bestämma dig för vilket postlådeformat du vill använda. Som standard kommer Postfix att använda mbox som postlådeformat. Istället för att redigera konfigurationsfilen direkt kan du använda kommandot postconf för att konfigurera alla postfix-parametrar. Konfigurationsparametrarna kommer att sparas i filen /etc/postfix/main.cf. Om du senare vill konfigurera om en specifik parameter kan du antingen köra kommandot eller ändra den manuellt i filen.

Konfigurera postlådeformatet för Maildir:

sudo postconf -e 'home_mailbox = Maildir/'
[Notera]

Det här kommer placera ny post i /home/användarnamn/Maildir så du behöver konfigurera din e-postserver till använda samma sökväg.

SMTP-autentisering

Nästa steg är att konfigurera postfix till att använda SASL för SMTP AUTH.

  1. Konfigurera Postfix till att göra SMTP AUTH med SASL (saslauthd):

    sudo postconf -e 'smtpd_sasl_local_domain ='
    sudo postconf -e 'smtpd_sasl_auth_enable = yes'
    sudo postconf -e 'smtpd_sasl_security_options = noanonymous'
    sudo postconf -e 'broken_sasl_auth_clients = yes'
    sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
    sudo postconf -e 'inet_interfaces = all'
    

    Öppna filen /etc/postfix/sasl/smtpd.conf och lägg till följande rader på slutet av filen:

    pwcheck_method: saslauthd
    mech_list: plain login
    
  2. Sedan, konfigurera ditt digitala certifikat för TLS. Vid frågor, följ instruktionerna och svara noggrant.

    openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
    chmod 600 smtpd.key
    openssl req -new -key smtpd.key -out smtpd.csr
    openssl x509 -req -days 365 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
    openssl rsa -in smtpd.key -out smtpd.key.unencrypted
    mv -f smtpd.key.unencrypted smtpd.key
    openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
    sudo mv smtpd.key /etc/ssl/private/
    sudo mv smtpd.crt /etc/ssl/certs/
    sudo mv cakey.pem /etc/ssl/private/
    sudo mv cacert.pem /etc/ssl/certs/
    
    [Notera]

    Du kan få dina digitala certifikat från en certifierad källa. Alternativt så kan du skapa certifikatet själv. Läs mer på underavdelningen Creating a self Signed Certification för fler detaljer.

  3. Konfigurera Postfix till att göra TLS-kryptering för både inkommande och utgående post:

    sudo postconf -e 'smtpd_tls_auth_only = no'
    sudo postconf -e 'smtp_use_tls = yes'
    sudo postconf -e 'smtpd_use_tls = yes'
    sudo postconf -e 'smtp_tls_note_starttls_offer = yes'
    sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key'
    sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt'
    sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
    sudo postconf -e 'smtpd_tls_loglevel = 1'
    sudo postconf -e 'smtpd_tls_received_header = yes'
    sudo postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
    sudo postconf -e 'tls_random_source = dev:/dev/urandom'
    sudo postconf -e 'myhostname = e-post.exampel.se'
    
  4. Stäng av chroot-funktionen för SMTP-servern. Lokalisera följande rad i filen /etc/postfix/master.cf :

    smtp      inet  n       -       -       -       -       smtpd
    

    och ändra det till:

    smtp      inet  n       -       n       -       -       smtpd
    
[Notera]

När du har kört alla kommandona är SMTP AUTH konfigurerat för postfix. Det självsignerade certifikatet skapas för TLS och det konfigureras av postfix.

Nu bör filen /etc/postfix/main.cf se ut så här.

Nu är den initiala konfigurationen av postfix färdig. Kör följande kommandon för att starta postfix-demonen:

          
            sudo /etc/init.d/postfix start
          
        

Nu är postfix installerat, konfigurerat och startat. Postfix stödjer SMTP AUTH enligt vad som beskrivs i ulink url="ftp://ftp.isi.edu/in-notes/rfc2554.txt">RFC2554

Konfigurera SASL

Paketen libsasl2-2, sasl2-bin och libsasl2-modules är nödvändiga för att aktivera SMTP AUTH genom SASL. Du kan installera dessa program om du inte redan har gjort det.

sudo apt-get install libsasl2-2 sasl2-bin

Några få ändringar är nödvändiga för att det skall fungera korrekt . Eftersom Postfix körs "chrooted" i /var/spool/postfix, behöver SASL konfigureras för att köras som falsk root (/var/run/saslauthd blir /var/spool/postfix/var/run/saslauthd):

sudo mkdir -p /var/spool/postfix/var/run/saslauthd
sudo rm -rf /var/run/saslauthd

För att aktivera saslauthd måste du ändra i filen /etc/default/saslauthd och ändra eller lägg till START-variabeln. För att konfigurera saslauthd för att köras i den falska rooten, lägg till variablerna PWDIR, PIDFILE och PARAMS. Konfigurera till slut MECHANISMS efter eget tycke. Filen bör se ut såhär:

# This needs to be uncommented before saslauthd will be run
# automatically
START=yes

PWDIR="/var/spool/postfix/var/run/saslauthd"
PARAMS="-m ${PWDIR}"
PIDFILE="${PWDIR}/saslauthd.pid"

# You must specify the authentication mechanisms you wish to use.
# This defaults to "pam" for PAM support, but may also include
# "shadow" or "sasldb", like this:
# MECHANISMS="pam shadow"

MECHANISMS="pam"
[Notera]

Om du föredrar kan du använda shadow istället för pam. Det här kommer skicka MD5-hashar av lösenorden, vilket är helt säkert. Användarnamnet och lösenordet som krävs för autentisering kommer att vara serverns systemanvändares användarnamn och lösenord.

Uppdatera sedan dpkg "tillståndet" för /var/spool/portfix/var/run/saslauthd. Initieringsskriptet saslauthd använder den här inställningen för att skapa den saknade katalogen med lämpliga rättigheter och ägarskap:

sudo dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd

Testa

Konfigurationen för SMTP AUTH är färdig. Nu är det dags att starta och testa din installation. Du kan köra följande kommando för att starta SASL-demonen:

          
            sudo /etc/init.d/saslauthd start
          
        

För att se om SMTP-AUTH och TLS fungerar som det ska kan du köra följande kommando:

          
            telnet mail.exempel.com 25
          
        

När du har blivit ansluten till postfixservern, skriv:

ehlo mail.example.com

Om du bland annat ser följande rader fungerar allt som det ska. Skriv quit för att avsluta.

250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME