Postfix + SASL + TLS (SMTP-AUTH) Debian/Ubuntu

Postfix + SASL + TLS (SMTP-AUTH) Debian/Ubuntu

 

Instalacja i konfiguracja SASL.

sudo apt-get install libsasl2 sasl2-bin libsasl2-modules postfix-tls

 

Konfiguracja SASL.

Edycja pliku konfiguracyjnego /etc/default/saslauthd.

sudo nano /etc/default/saslauthd

 

START=yes
PWDIR="/var/spool/postfix/var/run/saslauthd"
PARAMS="-m ${PWDIR}"
PIDFILE="${PWDIR}/saslauthd.pid"
MECHANISMS="pam"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

 

Nadpisujemy uprawnienia do pliku /var/spool/postfix/var/run/saslauthd.


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

 

Tworzenie pliku konfiguracyjnego smtp.conf.

sudo touch /etc/postfix/sasl/smtpd.conf
sudo nano /etc/postfix/sasl/smtpd.conf

 

#saslauthd_version: 2
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

 

Dodanie użytkownika sasl.

adduser postfix sasl

 

Uruchamiamy SASL.

/etc/init.d/saslauthd start

 

Testujemy Działanie programu.
sudo testsaslauthd -u użytkownik -p hasło -f /var/spool/postfix/var/run/saslauthd/mux

 

Możliwe jest dodanie dodatkowych opcji do parametru mech_list takich jak cram-md5 czy digest-md5.

 

Edytujemy plik konfiguracyjny postfixa /etc/postfix/main.cf i dodajemy następujące parametry:

sudo nano /etc/postfix/main.cf

 

# sasl support for relaying mails
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, check_relay_domains

 

Restartujemy postfixa:

sudo /etc/init.d/postfix restart

 

Testowanie połączenia:

sudo telnet localhost 25

 

Trying localhost...
Connected to localhost.
Escape character is '^]'.
220 [domain.com, loclhost] ESMTP Postfix

 

Wpisujemy ehlo localhost

ehlo localhost

 

250-[domain.com, loclhost]
...
250-AUTH PLAIN LOGIN
...

 

Linia 250-AUTH powinna pokazywać dostępne mechanizmy, które były zdefiniowane w pliku smtpd.conf (PLAIN LOGIN).

Uwaga!
Jeśli sasldb2 nie został zainstalowany poprawnie tzn. z jakiegoś powodu nie znajduje się w chroot jail musimy wykonać następujące comendy:

sudo cp /etc/sasldb2 /var/spool/postfix/etc/
sudo chown root:sasl /var/spool/postfix/etc/sasldb2
sudo chmod 660 /var/spool/postfix/etc/sasldb2
sudo sed -i -e 's/\(sasl:.*\)/\1postfix/g' /etc/group

 

„Instalacja” TLS

Edytujemy plik konfiguracyjny postfixa /etc/postfix/main.cf i dopisujemy następujące parametry:

sudo nano /etc/postfix/main.cf

 

# Parametry TLS
smtpd_tls_auth_only = yes
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

 

Generacja kluczy TLS (na około 10 lat).



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

 

Poprawne połączenie się klienta do serwera:

Feb 22 06:41:11 ns35748 postfix/smtpd[22745]: connect from artima.com[63.246.23.132]
Feb 22 06:41:11 ns35748 postfix/smtpd[22745]: setting up TLS connection from artima.com[63.246.23.132]
Feb 22 06:41:11 ns35748 postfix/smtpd[22745]: TLS connection established from artima.com[63.246.23.132]: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)

Jeśli wszystko zostało poprawnie skonfigurowane to wynik naszej pracy powinien wyglądać jak poniżej:

telnet localhost 25

 

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 [domain.com, loclhost] ESMTP Postfix

 

ehlo localhost

 

250-[IP lub domena]
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

 

Jak widać opcja 250-STARTTLS została nam zaoferowana.

Konfiguracja klientów

Edytujemy plik konfiguracyjny postfixa /etc/postfix/main.cf i dodajemy następujące parametry:

sudo nano /etc/postfix/main.cf

 

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_sasl_type = cyrus
smtp_sasl_security_options = noanonymous
smtp_tls_loglevel = 0

 

Tworzymy i edytujemy plik sasl_passwd..


sudo touch /etc/postfix/sasl/sasl_passwd
sudo nano /etc/postfix/sasl/sasl_passwd

 

..i dodajemy użytkowników do autoryzacji:

domena.com użytkownik1:hasło1
domena.com użytkownik2:hasło2
domena.com użytkownik3:hasło3

 

Restartujemy postfix’a i sasl’a.

sudo /etc/init.d/postfix restart
sudo /etc/init.d/saslauthd restart

Jeśli ten artykuł pomógł Ci, masz co do niego jakieś wątpliwości lub pytania „Zostaw komentarz”, a na pewno na niego odpowiem.


Wszelkie pozyskane fundusze idą na opłacenie miesięcznego abonamentu za sprzęt na, którym stoi serwer.

Dodaj komentarz

Twój adres email nie będzie publikowany.