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 noggrannt 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 mailservers värdnamn.

SMTP-autentisering

Följande steg är för att konfigurera postfix för att använda SASL för SMTP AUTH. Istället för att läsa konfigurationsfilen direkt kan du använda kommandot postconf för att konfigurera alla parametrar för postfix. Konfigurationsparametrarna kommer lagras i filen /etc/postfix/main.cf. Om du senare vill konfigurera om en speciell parameter kan du antingen köra det här kommandot eller ändra det direkt i filen.

  1. Configure Postfix to do SMTP AUTH using SASL (saslauthd):

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

    Open the /etc/postfix/sasl/smtpd.conf file and add the following lines to end of the file:

    pwcheck_method: saslauthd
    mech_list: plain login
    

  2. Next, configure the digital certificate for TLS. When asked questions, follow the instructions and answer appropriately.

    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]

    You can get the digital certificate from a certificate authority. Alternatively, you can create the certificate yourself. Refer to Creating a self Signed Certification sub-section for more details.

  3. Konfigurera Postfix för att genomföra TLS-kryptering för både utgående och inkommande e-postmeddelanden:

    postconf -e 'smtpd_tls_auth_only = no'
    postconf -e 'smtp_use_tls = yes'
    postconf -e 'smtpd_use_tls = yes'
    postconf -e 'smtp_tls_note_starttls_offer = yes'
    postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key'
    postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt'
    postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
    postconf -e 'smtpd_tls_loglevel = 1'
    postconf -e 'smtpd_tls_received_header = yes'
    postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
    postconf -e 'tls_random_source = dev:/dev/urandom'
    postconf -e 'myhostname = mail.example.com'
    
[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 ursprungliga 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

The libsasl2, sasl2-bin and libsasl2-modules are necessary to enable SMTP AUTH using SASL. You can install these applications if you have not installed them already.

sudo apt-get install libsasl2 sasl2-bin

Det krävs några ändringar för att det ska fungera ordentligt. Eftersom Postfix kör chroot:at i /var/spool/postfix behöver SASL konfigureras för att köras i den falska rooten (/var/run/saslauthd blir /var/spool/postfix/var/run/saslauthd):

mkdir -p /var/spool/postfix/var/run/saslauthd
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 nu dpkgs "state" i /var/spool/portfix/var/run/saslauthd. Initskriptet för saslauthd använder den här inställningen för att skapa den saknade katalogen med lämpliga rättigheter och rätt ägare:

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