Appunti Postfix e SASL/LDAP su Debian Sarge

E’ giunto il momento di usare il blog per prendere appunti. 🙂

L’argomento è di quelli tosti (soprattutto se si ha poca dimestichezza con l’inglese). Si tratta di rendere obbligatoria l’autenticazione (per capirci user/password) a tutti quelli che vogliono spedire email utilizzando il nostro Mail Server.

Chi usa il nostro Server per spedire email sono gli spammer per inviare spam in giro per internet :-|. Se blocchiamo l’uso del nostro server non corriamo il rischio di trovarci bloccato la consegna dei nostri messaggi su server che utilizzano il servizio RBL (Realtime Blackhole List) e libero.it è uno di quei server che usano il servizio RBL 8-).

Presupposto per continuare con la lettura e di avere, già funzionante sul Server, il servizio LDAP e Postfix.

Ora installiamo i packages relativi a SASL con Postfix (usiamo apt-get install):

postfix-tls sasl2-bin libsasl2 libsasl2-modules

modifichiamo il file /etc/default/saslauthd nel seguente modo:

START=yes
MECHANISMS="ldap"

fate attenzione che il package saslauthd non parte automaticamente dopo l’installazione.

Adesso modifichiamo il file /etc/postfix/sasl/smtpd.conf (molto probabilmente lo dovete creare):

pwcheck_method: saslauthd
mech_list: plain login

Perfetto, aggiungiamo ora queste linee su /etc/postfix/main.cf per abilitare SASL:

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination

Postfix, su Debian, funziona in modalità protetta chiamata chroot (la spiegherò in un prossimo post). Questa modalità non permette di comunicare con saslauthd (che funziona fuori chroot). Per riuscirci dovete fare in modo che saslauthd venga visto anche dall’ambiente Postfix che funziona in chroot:

rm -r /var/run/saslauthd/
mkdir -p /var/spool/postfix/var/run/saslauthd
ln -s /var/spool/postfix/var/run/saslauthd /var/run
chgrp sasl /var/spool/postfix/var/run/saslauthd
adduser postfix sasl

Ora possiamo riavviare Postfix e SASL:

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

Abbiamo finito. A questo punto è necessario fare un test 😉 per verificare che tutto funzioni.

Prima di tutto dobbiamo generare la stringa per l’autenticazione con SASL (ad esempio user: username, pass: password):

perl -MMIME::Base64 -e ‘print encode_base64(”usernameusernamepassword”);’

Se eseguiamo il comando il risultato è la stringa di connessione SASL:

dXNlcm5hbWUAdXNlcm5hbWUAcGFzc3dvcmQ=

Ottenuta la stringa di connessione SASL proviamo a collegarci al nostro server con telnet:

root@calore:~$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost ESMTP Mailserver
ehlo calore
250-localhost
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH NTLM LOGIN PLAIN
250-AUTH=NTLM LOGIN PLAIN
250 8BITMIME
AUTH PLAIN dXNlcm5hbWUAdXNlcm5hbWUAcGFzc3dvcmQ=
235 Authentication successful

Ci siamo collegati e il server ci ha autenticato… quindi è finita bene :-).

Ora mi posso rollare la sigaretta…

Annunci

2 thoughts on “Appunti Postfix e SASL/LDAP su Debian Sarge

  1. Colpa del blog software WP… allora quello che WP non mi permette di scrivere è simbolo (backslash) \ seguito da (zero) 0 … quindi sostiuisci 00 con la stringa \ e 0 (senza spazi tra \ e lo 0):

    ovvero sostituisci la stringa dentro la encode_base64(‘…’):

    username00username00password

    Se non riesci…  no problem, faro una immagine con la stringa corretta da utilizzare 😐

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...