Hola DAniel y demas listeros, no tengo un manual pero si un escrito que obtuve
aqui mismo y que explica bastante detallado sobre la instalacion, aqui te lo
dejo:
CONFIGURACION DE UN SERVIDOR POSTFIX CON SASL SSL MAILSCANNER CLAMAV
Version 2.0
1. INSTALACION DE LOS PAQUETES
2. CONFIGURAR POSTFIX
3. CONFIGURAR CYRUS-SASL
4. CIFRANDO EL CANAL
5. CONFIGURANDO MAILSCANNER y CLAMAV
Despues de tanto navegar por internet tratando de buscar una buena guia
para configurar mi servidor de correo con todos los hierros y no
encontrar un documento que realmente me diera los pasos detallados de
como hacerlo es que me decidi a realizar este pequeno manual para
configurar un potente servidor de correo con postfix. Esta guia es la
recoleccion de varios tutoriales consultados en internet y el trabajo de
varios meses SOBRE UN CENTOS 4.1. Pero pienso que se adapte a cualquier
sistema de la familia de los Red Hat.
1. INSTALACION DE LOS PAQUETES
Centos viene por defecto con sendmail, un MTA que actualmente sigue
siendo usado por muchos en el mundo, pero postfix es una alternativa
mucho mas flexible y facil de configurar.
Nos aseguramos de desinstalar sendmail
Instalamos postfix
yum install postfix
Instalamos PAM
yum install pam
Instalamos cyrus-sasl
yum install cyrus-sasl
Instalamos OpenSSL
yum install openssl
2. CONFIGURAR POSTFIX
A continuacion describire la configuracion que lleve a cabo con postfix,
comentare cada linea de mi fichero.
# NOMBRE DE LA MAQUINA QUE ALOJA EL SERVIDOR
myhostname = server.vn.pri.jovenclub.cu
#NOMBRE DEL DOMINIO
mydomain = vn.pri.jovenclub.cu
# UNA VARIABLE QUE ALMACENA EL SMARTHOST
relay = smtp.vn.pri.jovenclub.cu
# CONFIGURACION TLS (VER MAS ABAJO)
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_key_file = /etc/postfix/cert/newreq.pem
smtpd_tls_cert_file = /etc/postfix/cert/newcert.pem
smtpd_tls_CAfile = /etc/postfix/cert/cacert.pem
#TLS Miselaneos
smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
# CONFIGURACION SASL (Ver mas Abajo)
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
# UBICACION DE DIRECTORIOS
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
# PROPIETARIO DE COLAS Y PROCESOS
mail_owner = postfix
setgid_group = postdrop
# TRATAMIENTO DE ALIAS
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
# IDENTIFICACION DE USUARIOS LOCALES
#Evita que postfix busque el nombre de usuario y contrasena en los
usuarios del sistema
#Por eso lo dejo en blanco local_recipient_maps = $alias_maps
unix:passwd.byname
local_recipient_maps =
# OTROS PARAMETROS DE CONFIGURACION
# Hacemos que notifique al postmaster de los errores
notify_classes = resource, software, policy
#Tabla de Transporte, la cual nos permite saber cuales mensajes
# son locales y cuales externos
transport_maps = hash:/etc/postfix/transport
#No la conosco
disable_vrfy_command = yes
#Evitamos hacer uso de los registros MX del DNS para el envio y
#recepcion del mail
disable_dns_lookups = yes
#La maquina con la cual intercambiaremos el correo es la
#variable relay declarada arriba
relayhost = [$relay]
#Tamano maximo de los mensajes
message_size_limit = 10485760
#Tamano maximo de los buzones
mailbox_size_limit = 30000000
#Maximo de dias en cola de un correo
maximal_queue_lifetime = 5d
#CONTROL DE CORREO ENTRANTE / SALIENTE
#Aqui definimos unicamente el 127.0.0.1 porque si agrego my red
#local los correos pueden ser enviados sin poner password
#Importante este paramentro esto me mantuvo varias semanas
#investigando porque siempre escribia mi red interna y los
#correo se marchaban al descaro sin pedir password, hasta que
#encontre un buen tutorial donde me lo explicaba.
mynetworks = 127.0.0.1
# Dominios bajo los cuales el correo se considera local
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost
#Esta no la tengo bien clara, pero si la quito no me funciona
#en talla, agradesco que documentaran esta opcion.
smtpd_data_restrictions = reject_unauth_pipelining
# Establcemos que procmail se encarga de repartir el correo
mailbox_command = procmail -a "$EXTENSION"
# VERSION
mail_name = Postfix-TLS/MJ-1.08
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
3. CONFIGURAR CYRUS-SASL
SASL son las siglas de Simple Authentication and Security Layer, un
método para añadir soporte para la autenticación a protocolos basados en
la conexión que ha sido estandarizado por la IETF (Internet Engineering
Task Force). Se usa en servidores para manejar las peticiones de
autenticación de los clientes. Para ello, el protocolo incluye un comando
para identificar y autenticar un usuario contra un servidor y para,
opcionalmente, negociar la protección de las subsiguientes interacciones
del protocolo. Si se negocia su uso, una capa de seguridad es añadida
entre el protocolo y la conexión.
La librería SASL de Cyrus también usa la librería OpenSSL para cifrar los
datos. El lector encontrará más información en la página web de Cyrus
SASL.
Configuraremos Cyrus-Sasl utilizando PAM para autenticar contra los
propios usuarios Unix del sistema y asi tener los nombre de usuarios y
contrasenas centralizados, es decir utilizaremos el mismo nombre de
usuario y contrasena para el envio y recibo del correo electronico.
- Editamos el fichero /etc/sysconfig/saslauthd
- Comentamos la linea que dice MECH=shadow
- Escribimos debajo MECH=pam
de esta forma estamos estableciendo que se utilizara PAM para autenticar
los usuarios contra los usuarios UNIX del sistema.
- Editamos el fichero /usr/lib/sasl2.smtpd.con
- Nos aseguramos que que exista la siguiente linea :
pwcheck_method: saslauthd
mech_list: login
- Reiniciamos sasl:
service saslauthd restart
-A continuación vamos a activar el uso de SASL en Postfix. El objetivo es
autenticar los clientes smtp para que puedan hacer relay a través del
servidor de correo. Para ello se modifica la opción
smtpd_recipient_restrictions del fichero /etc/postfix/main.cf:
#Se utiliza para dar soporte a antiguos clientes de Microsoft
#que no soprtan la version estandar del protocolo AUTH.
broken_sasl_auth_clients = yes
#Se define el dominio de Busqueda, que en terminos de SASL se
#denomina REALM, este campo junto con el nombre de Usuario
#es lo que se utiliza para realizar la busqueda en el fichero /
#etc/sasldb, pero como no tilizaremos las bases de datos de
#SASL para autenticar a nuestro usuarios, sino PAM es necesario
#dejarlo en blanco.
smtpd_sasl_local_domain =
#Activa la Utilizacion del protocolo SMTP AUTH
smtpd_sasl_auth_enable = yes
#No Permitimo acceso a los usuarios anonimos
smtpd_sasl_security_options = noanonymous
#Aqui aplicamos las restricciones A SMTP permitimos los usuarios
#autenticados, nuestra red y rechazamos el resto
smtpd_recipient_restrictions = permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
3.1 Comprobamos
[root en server postfix]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 server.vn.pri.jovenclub.cu ESMTP Postfix-TLS/MJ-1.08 (2.1.5)
ehlo localhost
250-server.vn.pri.jovenclub.cu
250-PIPELINING
250-SIZE 10485760
250-ETRN
250-AUTH LOGIN
250-AUTH=LOGIN
250 8BITMIME
4. Cifrado del canal de comunicación usando TLS.
Cuando se está estableciendo una conexión TLS, la máquina que establece la
conexión tiene que validarse a sí mismo. Esto es debido a que alguien
podría interceptar la comunicación y establecer una conexión cifrada. La
máquina remota posiblemente no se daría cuenta y pasaría la información
con normalidad. Por ello, los certificados se usan para proporcionar
información única que prueba que la máquina que está cifrando la
comunicación es realmente aquella con la cuál nuestra máquina quiere
hablar.
Sería correcto pensar que cualquier servidor malicioso podría emitir un
certificado si no fuera por el pequeño detalle que falta mencionar: cada
certificado que es emitido proporciona información sobre una autoridad que
dará validez el certificado enviado al establecer una conexión TLS.
Añadir cifrado al canal de transmisión es muy sencillo una vez tenemos
Postfix configurado adecuadamente, según se ha descrito en los puntos
anteriores.
4.1. La generación de los certificados.
Si se pretende ofrecer servicios de correo electrónico a terceros, es más
que recomendable usar un certificado que esté firmado por una autoridad
certificadora (CA, del inglés Certificate Authority) reconocida, como
Verisign o Thawte. Pero si sólo se va a usar en la red local de una
empresa pequeña o mediana, o simplemente se quiere disfrutar de las
comunicaciones cifradas a título personal, posiblemente sea suficiente
crear una autoridad certificadora nosotros mismos y firmar con ella el
certificado. En cualquier caso, ambas soluciones son igual de seguras; es
una cuestión de formalidad ante el cliente o usuario. El proceso básico a
seguir se resume en los siguientes puntos:
1. Crear el certificado.
2. Una autoridad certificadora debe firmar el certificado.
3. Instalar el certificado.
Para crear los certificados pueden seguirse los pasos descritos en el
Lutz's very short course on being your own CA o en el Postfix SMTP AUTH
(and TLS) HOWTO. En estos tutoriales se explica, además, como actuar como
autoridad certificadora y poder firmar así los certificados. Básicamente,
los pasos a seguir son tres:
1. Crear una nueva autoridad certificadora:
/usr/share/ssl/misc/CA.pl -newca
2. Realizar la petición de un certificado:
/usr/share/ssl/misc/CA.pl -newreq-nodes
3. Firmar el certificado:
/usr/share/ssl/misc/CA.pl -sign
Con la salvedad de que no debemos añadir una palabra de paso al
certificado para que el servidor no se quede bloqueado esperándola al
iniciarse. Luego deberemos copiar tres de los ficheros resultantes del
proceso al subdirectorio
/etc/postfix/cert/: (Este directorio debe ser creado por el usuario root)
* cacert.pem: el certificado de la autoridad certificadora, al cual se
remitirá al cliente cuando quiera comprobar la
autenticidad del certificado que le ha enviado nuestro servidor
Postfix.
* newcert.pem: el certificado público que enviaremos al cliente para
establecer la comunicación segura.
* newreq.pem: el certificado privado que almacenaremos en el servidor
y del cual la parte realmente importante es la
clave, que debe permanecer secreta.
Ejecutaremos entonces los siguientes comandos:
mkdir /etc/postfix/cert
cp demoCA/cacert.pem /etc/postfix/cert/
cp newcert.pem /etc/postfix/cert/
cp newreq.pem /etc/postfix/cert/
chown root /etc/postfix/cert/newreq.pem
chmod 400 /etc/postfix/cert/newreq.pem
Una solución intermedia entre crear nuestra propia autoridad certificadora
y el pago de una ingente cantidad de dinero a una reconocida
comercialmente, es el uso de una llevada por la comunidad que emita
certificados al público de manera gratuita, por ejemplo CAcert.org. Si
solicitamos el alta en su página web, añadimos nuestro dominio y
solicitamos que nos firme el CSR (Certificate Signing Request), tan sólo
deberemos entonces instalar su certificado raíz en cada máquina para
evitar los mensajes de aviso de los clientes de correo.
4.2. Modificaciones en Postfix.
Tan sólo es necesario editar el fichero /etc/postfix/main.cf y agregar las
siguientes líneas:
#Activamos el uso de TLS
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
#La ruta donde estan ubicados los certificados
smtpd_tls_key_file = /etc/postfix/cert/newreq.pem
smtpd_tls_cert_file = /etc/postfix/cert/newcert.pem
smtpd_tls_CAfile = /etc/postfix/cert/cacert.pem
#MISELANEAS TLS
#Este parametro se puede cambiar a 1 una ves este
#funcionando correctamente el Servidor para evitar el
#crecimiento de logs
smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
De este modo restringimos que las autenticaciones al envío se puedan hacer
únicamente usando TLS. Además, obligamos a que todas las comunicaciones
con el demonio smtpd se hagan a través de TLS. Tras reiniciar el servidor
Postfix, ya podemos comprobar el correcto funcionamiento del mismo:
[root en server postfix]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 server.vn.pri.jovenclub.cu ESMTP Postfix-TLS/MJ-1.08 (2.1.5)
ehlo localhost
250-server.vn.pri.jovenclub.cu
250-PIPELINING
250-SIZE 10485760
250-ETRN
250-STARTTLS
250 8BITMIME
Nótese que el servidor no ofrece los métodos de autenticación antes de que
se haya establecido el canal seguro, es decir, primero se asegura el canal
y despues se procede a autenticar.
5. CLAMAV + MAILSCANNER
En esta seccion daremos soporte a nuestro servidor con MailScanner y ClamAV
5.1. Primeramente instalamos el Clamav con todas sus dependencias.
5.2. Posteriormente nos bajamos el MailScanner de su sitio Oficial y lo
desempaquetamos con:
tar -xvzf MailScanner-4.42.5-1.rpm.tar.gz
5.3. Posteriormente pasamos instalarlo del siguiente modo:
cd MailScanner-4.42.5-1
export LANG=C; ./install.sh
5.4. Paramos el postfix con
service postfix stop
5.5. Hacemos que postfix no se inicie cada ves que el servidor reinicie,
ya que sera MailScanner quien hara las llamadas a postfix con:
chkconfig postfix off
5.6. Hagamos el siguiente cambio en el main.cf o annada la linea
header_checks = regexp:/etc/postfix/header_checks
5.7 Edite el fichero /etc/postfix/header_checks, annada esta linea el
fichero:
/^Received:/ HOLD
5.8. Ahora configuraremos el fichero
/etc/MailScanner/MailScanner.conf, donde se establece la configuracion
para MailScanner. En este fichero edite los siguientes Valores:
%org-name% = yoursite
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
File Timeout = 120
Maximum Archive Depth = 20
Virus Scanners = clamav
Monitors for ClamAV Updates = /var/clamav/*.cvd
...ahora es necesario convertir a postfix en el duenno de los directorios
/var/spool/MailScanner/incoming y
/var/spool/MailScanner/quarantine con los comandos:
chown postfix.postfix /var/spool/MailScanner/incoming
chown postfix.postfix /var/spool/MailScanner/quarantine
...de esta forma postfix tiene acceso de escritura a estos directorios.
5.9. Actualizaremos ClamAV cada hora controlado por MailScanner (via
crond/etc/cron.hourly/update_virus_scanners).
Editemos el fichero /etc/MailScanner/virus.scanners.conf. busque la
siguiente linea:
clamav /usr/lib/MailScanner/clamav-wrapper /usr/local
Cambiela a
clamav /usr/lib/MailScanner/clamav-wrapper /usr
5.10 Ahora solamente falta iniciar MailScanner y hacer que se inicie cada
ves con el sistema:
service MailScanner start
chkconfig MailScanner on
Esto es todo, miramos los log y veremos todo en accion.
Espero que les funcione a todos, de existir algun error comentarlo
directamente a traves de mi direccion roylan04012 en pri.jovenclub.cu para
corregir fallas.
> Hola listeros he visto que se conoce bastante (no me incluyo) en nuestra
> comunidad sobre la instalación y autentificación de POSTFIX, ahora alguien
> tiene algún manual que me pueda facilitar de cómo instalar un server de
> correo con POSTFIX, con todas las de la ley.
> PD. Haa!!! NO TENGO INTERNET, por favor no me remitan a paginas
> internacionales.
> Espero su ayuda, de antemano muchas gracias.
>
> ______________________________
> Lic. Daniel Montañez Brioso
> J´ Dpto. Inf. ELAM3
> "Reinaldo Naranjo Leiva"
> Prov. Cienfuegos.
>
> _______________________________________________
> Cancelar suscripción
> https://listas.softwarelibre.cu/mailman/listinfo/linux-l
> Buscar en el archivo
> http://listas.softwarelibre.cu/buscar/linux-l
>
> --
> Este mensaje ha sido analizado por MailScanner del Nodo Finlay, Camaguey, Cuba
> en busca de virus y se considera que está limpio.
>
>
--
Tec. Informatica Ernesto Torres
Administrador de Red
Hospital Pediatrico Eduardo Agramonte Piña
Camaguey
--
Este mensaje ha sido analizado por MailScanner del Nodo Finlay, Camaguey, Cuba
en busca de virus y se considera que está limpio.
_______________________________________________
Cancelar suscripción
https://listas.softwarelibre.cu/mailman/listinfo/linux-l
Buscar en el archivo
http://listas.softwarelibre.cu/buscar/linux-l