Postfix
Postfix
Postfix
Arquitectura de Postfix
Los procesos que conforman Postfix se comunican a través de sockets que se crean, por
razones de seguridad, en un directorio de acceso restringido. La información que intercambian los
diversos procesos es la mínima posible, limitándose en la mayoría de los casos a la referencia de la
entrada en una cola y la relación de destinatarios, o a un simple identificador de estado.
La siguiente figura proporciona una visión global de los elementos que componen Postfix:
Para conocer qué tipos de formato de base de datos soporta nuestra instalación, se puede
usar la directiva /usr/sbin/postconf –m
Para indicar a Postfix el método de acceso a un determinado fichero se antepone al nombre
del mismo el método de acceso. Así por ejemplo hash:/etc/postfix/tabla indica que /etc/postfix/tabla
es un fichero en formato db.
Para crear los ficheros binarios indexados, Postfix dispone de la directiva: postmap. Por
ejemplo, para generar el correspondiente binario del fichero anterior se usaría la directiva postmap
/etc/postfix/tabla, con lo que se crearía el fichero /etc/postfix/tabla.db .
En el caso particular de la tabla aliases, existe la directiva /usr/sbin/newaliases .
Los ficheros que contienen expresiones regulares se tratan directamente desde Postfix
(regexpr).
/etc/rc.d/init.d/postfix check
o bien
chkconfig postfix on
Comandos SMTP
#telnet ipservidor 25
HELO servername
MAIL FROM: correo_del_enviador
RCPT TO: dirección_destino
DATA
Fase de Establecimiento :
− El Emisor abre una conexión TCP con el Receptor
− El Receptor se identifica a sí mismo con “220 Service Ready”
− El Emisor se identifica a sí mismo con la orden HELO
Fase de Cierre :
− El Emisor envía QUIT , e inicia el cierre TCP
− El Receptor responde a QUIT, e inicia el cierre TCP
zone "inca.edu" IN {
type master;
zone "0.26.172.in-addr.arpa" IN {
type master;
file "inversa.zone";
allow-update { none; };
};
$TTL 86400
@ IN SOA ns1.inca.edu. root.inca.edu. (
2005103001 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns1
IN A 172.26.0.2
IN MX 10 smtp.inca.edu.
IN MX 20 smtp2.inca.edu.
ns1 IN A 172.26.0.2
smtp IN A 172.26.0.5
smtp2 IN A 172.26.0.6
correo IN CNAME smtp
pop3 IN CNAME smtp
imap IN CNAME smtp
correo2 IN CNAME smtp2
En la zona inversa se debe agregar los registros (según la configuración de named.conf será
el fichero /var/named/chroot/var/named/inversa.zone):
2 IN PTR ns1.inca.edu.
5 IN PTR smtp.inca.edu.
6 IN PTR smtp2.inca.edu.
myhostname= smtp.inca.edu
mydomain = inca.edu
myorigin=$mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.localdomain, $mydomain
mynetworks = 172.26.0.0/24
message_size_limit= 1024000
mailbox_size_limit = 5120000
Existe una directiva para chequear las cabeceras de los mensajes (antispam) y evitar que se
envíen ciertos mensajes:
header_checks = regexp:/etc/postfix/header_checks
Rechazan los correos con asunto “make money fast” o los que vayan a la dirección de correo
“[email protected]”.
Fichero aliases
nuevoalias: usuario
Ejemplo:
nuevo: root
• Ejecutar: 'postmap aliases' para crear la tabla de hash: 'aliases.db'.
• Ejecutar newaliases (no es necesario si utilizamos /etc/postfix/aliases en lugar de
/etc/aliases)
• Reiniciamos el servicio: 'service postfix restart'.
• Se puede enviar un correo a [email protected] y lo recibirá [email protected].
Fichero transport
inca.edu local:
localhost.localdomain local:
garcilaso.edu smtp:[smtp2.inca.edu]
postmap transport
sendmail [email protected]
Service pop3
{
flags = REUSE
sockect_type = stream
wait = no
user = root
server = /usr/local/sbin/popper
instances = 50
per_source = 10
log_on_failure += USERID
disable = no
}
• Tiene 3 estados:
1. Autorización: envío usuario y contraseña.
2. Transacción: bloquea el buzón para impedir su modificación. Espera comandos
usuario hasta QUIT
3. Actualización: Elimina los mensajes marcados para borrar. Finaliza conexión y
desbloquea buzón (se hace al pulsar QUIT)
Comandos POP3
• Comandos de autorización:
USER usuario
PASS contraseña
QUIT
• Comandos transacción
LIST [Nº de mensaje]
DELE nº de mensaje
NOOP : no operación. Mantiene conexión con el servidor.
RETR nº_mensaje: recuperar un mensaje.
RSET: anula marca borrado de mensajes
STAT: resumen del contenido del buzón
• Otros comandos
APOP usuario claveencriptada: conexión encriptada.
TOP nº_mensaje nº_líneas: ver las líneas de un mensaje.
UIDL [nº_mensaje]: ver identificador mensaje.
Servidor IMAP
DEFAULT_URL_HOST = 'smtp.inca.edu'
DEFAULT_EMAIL_HOST= 'smtp.inca.edu'
DEFAULT_SERVER_LANGUAGE='es'
• Poner una contraseña a todo el dominio, ejecutar desde el directorio donde están los binarios
de mailman:
Ángel Delgado Herrador 12
Instalación y mantenimiento de Servicios de Internet CFGM “Explotación de sistemas informáticos”
IES “Inca Gracilazo”
Montilla
mmsitepass
• Crear la lista mailman
newlist mailman
• Añadir la salida por pantalla al fichero /etc/postfix/aliases
• Ejecutar newaliases (no es necesario, sólo en caso de utilizar /etc/aliases)
• Reiniciar el servidor: service postfix restart
• Configurar apache:
• Cambiar en el fichero /etc/httpd/conf.d/mailman.conf el nombre de nuestro servidor en la
directiva RedirectMatch:
• Las últimas versiones de redhat tiene instalado un webmail por defecto y configurada
apache para acceder a él.
• Para comprobar si tenemos instalado squirrelmail
rpm -q squirrelmail
#
# SquirrelMail is a webmail package written in PHP.
#
<?php
/**
* SquirrelMail Configuration File
* Created using the configure script, conf.pl
Contiene opciones de las carpetas por defecto. Existen más opciones, pero normalmente no las
tocaremos.
• También podremos configurar nuestro sistema SquirrelMail mediante menús con el
comando ‘/usr/share/squirrelmail/config/conf.pl’.
• Se pueden utilizar muchos webmail, uno de ellos que admite servidores pop3 e imap
indistintamente es iloha. Es un servidor hecho en php y se puede encontrar en
http://ilohamail.org. Se puede instalar simplemente siguiendo los pasos de la instalación y
descomprimiendo los ficheros hechos en php en un directorio accesible desde apache. En
este caso se ha instalado en el directorio /var/www/html/ilo en el servidor y se accede a
través de http://localhost/ilo.
Cuando está habilitado el uso de SpamAssassin (SA), se llama a SA una sola vez por
mensaje (independientemente del número de destinatarios).
SpamAssassin es un filtro de correo que trata de identificar el spam mediante el análisis del
texto y el uso en tiempo real de algunas listas negras a través de Internet. A partir de su base de
datos de reglas, utiliza un amplio abanico de pruebas heurísticas en las cabeceras y el cuerpo de los
correos para identificar el spam, también conocido como correo electrónico comercial no solicitado.
Una vez identificado, el correo puede ser opcionalmente marcado como spam y más tarde filtrado
usando el cliente de correo del usuario. SpamAssassin normalmente identifica acertadamente entre
un 95 y un 99% del spam, dependiendo del tipo de correo que se reciba.
La mejor forma de proteger nuestra red frente a estos correos con virus, es que ni siquiera
lleguen a entrar. El que nuestro servidor de correo disponga un mecanismo de detección y
eliminación de virus nos protegerá de infinidad de peligros.
Para ello utilizaremos ClamAV, que es un detector de virus con licencia GPL y que
integraremos con nuestro agente de transporte de correo para rechazar los mensajes con virus.
El propósito principal de este software es tanto la integración con los servidores de correo
(escaneo de datos adjuntos) como el escaneo de sistemas de ficheros que puedan contener virus (p.
ej. un servidor samba para clientes windows).
Debemos instalar los paquetes de los tres servicios y configurarlos para que funcionen con
postfix, podéis obtener más información en los ficheros pdf del curso de thales (entrega 3 y 6). No
se comentan en este tema por no extenderlo excesivamente.