Continuando con la quinta parte de nuestro tutorial, añadiremos soporte para smtp-auth a nuestra configuración con motivo de evitar el spam.
El primer paso es instalar el paquete libpam-mysql:
sudo apt-get instal libpam-mysql
Luego crearemos el siguiente fichero con ciertos parámetros:
sudo nano /etc/pam.d/smtp
El contenido del fichero será el siguiente:
auth required pam_permit.so pam_mysql.so
host=127.0.0.1
db=postfix
user=postfix
passwd=mi_pass
table=mailbox
usercolumn=username
passwdcolumn=password
crypt=y
Una vez hecho esto, instalamos los paquetes que se encargarán de hacer la autenticación por medio de pam.
sudo apt-get install libsasl2 libsasl2-modules libsasl2-modules-sql sasl2-bin
Creamos el directorio en el que ira el pid del saslauth
sudo mkdir -p /var/spool/postfix/var/run/saslauthd
Luego guardamos el fichero de configuración /etc/default/saslauthd con otro nombre y creamos uno nuevo de la siguiente forma:
sudo nano /etc/default/saslauthd
Y lo dejamos únicamente con este texto:
START=yes
MECHANISMS="pam"
OPTIONS="-m /var/spool/postfix/var/run/saslauthd -r"
Modificaremos el archivo /etc/init.d/saslauthd
sudo nano /etc/init.d/saslauthd
y cambiaremos la linea PIDFILE por la siguiente;
PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"
Como siguiente paso, crearemos el fichero de configuración para el servidor smtp.
sudo nano /etc/postfix/sasl/smtpd.conf
con el siguiente contenido:
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
allow_plaintext: true
auxprop_plugin: sql
sql_verbose: yes
sql_engine: mysql
sql_hostnames: 127.0.0.1:
sql_user: postfix
sql_passwd: mi_pass
sql_database: postfix
sql_select: select password from mailbox where username = '%u@%r'
y añadiremos las siguiente líneas al fichero main.cf para que los usuarios deban autenticarse para enviar correo:
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,reject_unauth_destination
smtpd_tls_auth_only = no
smtpd_use_tls = yes
smtp_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_received_header = yes
tls_random_source = dev:/dev/urandom
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
Crearemos los certificados y la llave para smtp:
mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
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 3650 -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
finalmente reiniciamos postfix e intentamos enviar un correo para verificar que se necesita usuario y password para hacerlo.
No hay comentarios:
Publicar un comentario