Securizar Postfix: TLS+SASL+PAM
Nov 24, 08 by Juan Lebrijo about blog, e-mail, security
Queremos dejar nuestro puerto SMTP de postfix abierto a internet, sin correr el riesgo de espionajes, ni de que spammers utilicen nuestro servicio para enviar correos masivos. Para utilizar el servicio los usuarios deberán autenticarse user/pswd y además hacerlo mediante TLS (encriptando las conexiones hacia él). Para cumplir este requsito configuraremos las tres tecnologías siguientes:
  • TLS: Encriptación SSL de la conexión.
  • SASL: Sistema de autenticación.
  • PAM: Autenticación hacia el sistema de usuario de linux.
Podemos ver que en Etch el TLS viene completamente activado (cat /usr/share/doc/postfix/README.Debian):
  • Es importante notar (para un futuro cuando se compre un certificado real) que los certificados que toma por defecto en main.cf son:
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Instalamos Cyrus-sasl para autenticación:
elite:~# apt-get install libsasl2-modules sasl2-bin
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Paquetes sugeridos:
   libsasl2-modules-otp libsasl2-modules-ldap libsasl2-modules-sql libsasl2-modules-gssapi-mit
Se instalarán los siguientes paquetes NUEVOS:
   libsasl2-modules sasl2-bin
0 actualizados, 2 se instalarán, 0 para eliminar y 1 no actualizados.
Se necesita descargar 0B/271kB de archivos.
Se utilizarán 733kB de espacio de disco adicional después de desempaquetar.
  • Configuramos postfix para que autentique en SASL en main.cf:
  • # Configuración para que autentique en SASL
    ## Configuración de la Autentificación
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_local_domain = $myhostname
    broken_sasl_auth_clients = yes
    ## Acciones a seguir para autentificar:
    ## permit_sasl_autenticated: permitir mandar mail a los autentificados por sasl
    ## permit_mynetworks: permite saltear el control a los de mynetworks
    smtpd_recipient_restrictions =
    permit_sasl_authenticated,
    permit_mynetworks,
    reject_unauth_destination,
    check_relay_domains
Seguimos las instrucciones /usr/share/doc/sasl2-bin/README.Debian para configurar postfix:
  • Activamos el Demonio de SASL para que este avizor para autenticar cuando postfix se lo pida. Como postfix se ejecuta en una jaula, debemos decir que el demonio se ejecute en ella. En /etc/default/saslauthd ponemos:
  • START=yes
    OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
  • Para crear ese directorio ejecutamos este commando como root:
  • elite:~# dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd
  • Añadimos el usuario Postfix al grupo sasl, para que pueda mandar autenticaciones al demonio:
  • elite:~# adduser postfix sasl
Hacemos las conexiones postfix-sasl-pam
  • Decimos a Postfix como queremos que valide SASL, creamos /etc/postfix/sasl/smtpd.conf:
  • pwcheck_method: saslauthd
    mech_list: login plain
  • El método de autenticación de SASL es PAM, por tanto le tenemos que decir a PAM como tiene que reaccionar ante autenticaciones SMTP /etc/pam.d/smtp
  • #%PAM-1.0
    @include common-auth
    @include common-account
    @include common-session
  • Reiniciamos los servicios:
  • elite:~# /etc/init.d/saslauthd start
    elite:~# /etc/init.d/postfix restart
En /etc/postfix/main.cf
  • Solo tengo mi localhost como zona de confianza, fuera de ahí, todos a autenticarse.:
  • mynetworks = 127.0.0.0/8
Bacula, sistema de backup en red
Nov 17, 08 by Juan Lebrijo about backup, blog, Webmin
Bácula es un sistema de creación de copias de seguridad, no solo de nuestra máquina local, si no de las de nuestra red. Bacula se encargará de secuenciar los trabajos de copia, gestionar el medio de almacenamiento, etc. Un completo sistema de Backup distribuido y LIBRE. Que en nuestra distro favorita (Debian) se instala como un guante. Y además se gestiona vía web con nuestro "sistema gestor de sistemas" el Webmin. Origen http://www.bacula.org/ Paquete apt 3.0.24 Documentación (inglés) http://www.bacula.org/en/?page=documentation Ficheros Configuración: Webmin Características del software:
  1. Planificación tareas, simultaneas y secuenciadas.
  2. Uso de prioridad.
  3. Independencia del sistema operativo. Linux, Solaris, y Windows.
  4. Gestión de la restauración de ficheros.
  5. Gestión del medio de almacenamiento: HD, DVD, cinta,...
  6. Backup de base de datos directa.
Instalamos con apt:
elite:~# apt-get install bacula-common bacula-client bacula-console bacula-director-common bacula-director-mysql bacula-fd bacula-sd bacula-sd-mysql bacula-server
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Se instalarán los siguientes paquetes extras:
  dbconfig-common mtx
Paquetes sugeridos:
  bacula-doc dds2tar scsitools sg3-utils
Paquetes recomendados
  bacula-traymonitor mt-st bacula-sd-tools
Se instalarán los siguientes paquetes NUEVOS:
  bacula-client bacula-common bacula-console bacula-director-common bacula-director-mysql bacula-fd bacula-sd bacula-sd-mysql bacula-server dbconfig-common mtx
0 actualizados, 11 se instalarán, 0 para eliminar y 106 no actualizados.
Necesito descargar 3110kB de archivos.
Se utilizarán 7918kB de espacio de disco adicional después de desempaquetar.
Como somos unos chicos muy cómodos, y siempre tratamos de memorizar el menor número de comandos y de sistgaxix de ficheros de configuración posibles, instalaremos bácula para ser configurado desde Webmin:
ln -s /usr/bin/bconsole /etc/bacula/console
ln -s /usr/bin/bconsole /etc/bacula/bacula
Configuramos y tenemos integrada la adminstración e Bacula en Webmin:
webmin_bacula.JPG 41.2 KB
Instalación de Postfix
Nov 10, 08 by Juan Lebrijo about blog, e-mail
Postfix es un servidor de correo electrónico, concretamete es un MTA que implementa el protocolo SMTP. Es muy robusto y probado, y administrable mediante webmin. Si quereis ampliar información, os dejo la ficha siguiente: Origen http://www.postfix.org/ Repositorio http://www.postfix.org/download.html Paquete apt 2.3.8-2+b1 Documentación (Castellano) Documentación TLDP Documentación (Inglés) http://www.postfix.org/ Ficheros Configuración: /etc/postfix/main.cf Directorio del directorio: /var/lib/ldap Control demonio: /etc/init.d/postfix reload Log: /var/log/mail.* Puertos Servidor: 25 TCP Instalación con apt:
elite:~# apt-get install postfix postfix-ldap
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Paquetes sugeridos:
  postfix-mysql postfix-pgsql postfix-pcre sasl2-bin libsasl2-modules resolvconf postfix-cdb
Los siguientes paquetes se ELIMINARÁN:
  exim4 exim4-base exim4-config exim4-daemon-light
Se instalarán los siguientes paquetes NUEVOS:
  postfix postfix-ldap
0 actualizados, 2 se instalarán, 4 para eliminar y 1 no actualizados.
Necesito descargar 1132kB de archivos.
Se liberarán 1049kB después de desempaquetar.
Instalamos postfix-ldap para en un futuro artículo configurar la validación con LDAP. En la instalación tenemos que configurale como "Sitio de internet" para que escuche conexiones externas a localhost. Y nuestro nombre de dominio, que en mi caso sería lebrijo.com; para tener direcciones del tipo juanan@lebrijo.com