Hanno detto:
Computer: cretino ad alta velocità in dotazione, spesso, a cretini molto lenti.
Argomenti nel blog
ArchLinux Small Business Server (25) - Mail Server (9)
Appendice alla saga Mail Server: abbiamo (anzi ho) tralasciato un aspetto importante: l'autenticazione SMTP. Se abbiamo utenti esterni "viaggiatori" che devono continuare ad usare la posta dobbiamo permettere loro di inviare posta con il nostro server come quando siedono in azienda con il loro notebook. Con la configurazione attuale vengono accettate solo email dirette al dominio interno, cosa non ottimale a cui ora poniamo rimedio.
SASL
Simple Authentication and Security Layer (SASL) è un framework di autenticazione usato spesso, supporta anche il Transport Layer Security (TLS), che però per ora tralasciamo accontentandoci della implementazione di un layer con password in chiaro (Plain). Magari ci torneremo su.
Installazione
Postfix è già compilato in modo da utilizzare SASL, installiamo i pacchatti aggiuntivi che ci interessano in particolare Cyrus SASL una libreria SASL portabile e opensource.
sudo pacman -Sy cyrus-sasl cyrus-sasl-plugins
Non ci serve altro.
Configurazione
Con ArchLinux la pappa non è mai pronta :) dobbiamo fare qualche sforzo per configurare l'autenticazione.
Postfix
Cominciamo da Postfix a cui dobbiamo dire di utilizzarla. Per farlo modifichiamo il solito file di configurazione:
sudo nano /etc/postfix/main.cf
e aggiungendo questi parametri :
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
smtpd_tls_auth_only = no
smtpd_sasl_local_domain = $mydomain
broken_sasl_auth_clients = yes
relay_domains = *
Ora cerchiamo la sezione smtpd_recipient_restrictions e aggiungiamo la direttiva permit_sasl_authenticated per fare in modo che Postfix permetta agli utenti autenticati di superare la restrizione. La sezione dovrebbe diventare così:
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_recipient_domain,
reject_unauth_destination,
## Postgrey
check_policy_service inet:127.0.0.1:10030
permit
Le possibilità sono molte, se volete approfondire potete leggere qui. Noi passiamo oltre.
saslauthd
SASL è controllato dal servizio saslauthd, configuriamo i parametri di avvio del servizio editando il file:
sudo nano /etc/conf.d/saslauthd
che dovrebbe già essere così:
SASLAUTHD_OPTS="-m /var/run/saslauthd -r -a pam"
Voglio porre l'attenzione sul parametro -a pam che indica a SASL di utilizzare PAM per l'autenticazione. Ricordiamoci che abbiamo "centralizzato" utenti e password sull'albero LDAP e vogliamo continuare su questa strada come abbiamo già fatto per Dovecot, SSH e gli altri. Per far questo dobbiamo dire a PAM come autenticare i nostri utenti creando il file :
sudo nano /etc/pam.d/smtp
facendolo diventare così :
#%PAM-1.0
auth sufficient pam_ldap.so
auth required pam_unix.so nullok
account sufficient pam_ldap.so
account required pam_unix.so
praticamente è come abbiamo già fatto per Dovecot (/etc/pam.d/dovecot).
Per ultima cosa configuriamo SASL perchè utilizzi questa configurazione. Per qualche arcano motivo (per me) il file lo dobbiamo creare qui :
sudo nano /usr/lib/sasl2/smtpd.conf
popolandono con :
pwcheck_method: saslauthd
mech_list: plain login
saslauthd_path: /var/run/saslauthd/mux
log_level: 7
Fatto!
Avvio del servizio
Non ci resta che rendere operativo tutto stò casino avviando il servizio
sudo /etc/rc.d/saslauthd start
e riavviando Postfix
sudo /etc/rc.d/postfix restart
Ricordiamoci del solito array DAEMONS in rc.conf per per in modo che il servizio venga riavviato automaticamente al boot:
DAEMONS=(... saslauthd ...)
Naturalmente non dimenticate di configurare i client di posta dei vostri utenti "mobili" affinchè utilizzino l'autenticazione SMTP! Per i client "fissi" aziendali non è necessario, continueranno a funzionare come prima.
Byez.
