CORREO POSTFIX
Integrantes:
root@regocorreo:~# cd /etc/bind/
root@regocorreo:~# nano named.conf (Editaremos el archivo de
configuracion)
Zona directa
zone "lucas.com" {
type master;
file "/etc/bind/directa.db";
};
Zona inversa
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/inversa.db";
};
root@regocorreo:~# cd /etc/bind/
root@regocorreo:~# touch directa.db
root@regocorreo:~# nano directa.db
directa.db
root@regocorreo:~# cd /etc/bind/
root@regocorreo:~# touch inversa.db (Creamos el Archivo)
root@regocorreo:~# nano inversa.db
inversa.db
root@regocorreo:~# nslookup
Con esto ya tenemos listo nuestro servidor DNS...si usted desea tener
mas de un servidor de correo o un servidor de correo de respaldo, solo
debe agregar cuantas lineas necesite similares, y que cada una de estas
tenga diferente prioridad.
INSTALACION Y CONFIGURACION DE POSTFIX
Lo primero que realizaremos sera instalar nuestro servidor de correo,
que para nuestro caso sera Postfix.
root@regocorreo:~# cd /etc/postfix/
root@regocorreo:~# nano main.cf (Archivo principal de configuracion
donde definiremos los parametros que este servidor tendra)
myhostname regocorreo.lucas.com
(Nombre del host que tiene el servidor de correo, recuerde que este
nombre debe de ser el que hemos configurado en el DNS)
mydomain lucas.com
(Dominio para el cual recibiremos correos electronicos)
mydestination lucas.com
(Podremos recibir correos para la maquina local, donde realizaremos
nuestras primeras pruebas)
Estas son las opciones basicas , pero recuerde que son muchas las
variables que podremos definir que en el transcurso del manual iremos
agregando.
(Digitamos este comando, que nos indica que abrimos una seccion con este
servidor atraves del puerto 25, para verificar los modulos o soporte
que tiene cargados.)
Y el servidor debera de respondernos con los modulos que este maneja.
De igual manera nos damos cuenta que el servidor esta corriendo
perfectamente y que no hay errores en su configuracion.
En una consola
root@regocorreo:~# mutt
(Para abiri el software)
Alli esta el mensaje que escribimos desde root... con esto nos damos
cuenta de que el servidor de correo esta funcionando.
ALMACENAMIENTO Y TIPO DE CORREOS
El almacenamiento de los correos, es una parte importante que debemos de
tener en cuenta, ya que es la manera de como seran almacenados nuestros
correos, y como sera el proceso tanto de lecura como escritura de este.
Primero que todo, debemos saber que estos tipos de almacenamiento estan
ligados al servidor de Pop e Imap, que utilicemos.
Courier y Cyrus son 2 servidores de Pop e Imap que utilzan Maildir como
formato de almacenamiento.
Este formato, es muy diferente a Mailbox, ya que los correos no se
almacenan en un unico fichero, sino que se genera automaticamente un
fichero por cada correo que sea recibido.
Ahora lo que haremos sera instalar los protocolos de pop3 e imap, que
son los encargados de descargar los correos, desde un cliente atraves
del servidor.
Listen: *
(Por cual puerto escuchara. Si ponemos un asterisco* es porque tomara el
puerto por defecto)
disable_plaintext_auth: no
(Nos dice, que si queremos Deshabilitar la autenticacion es texto plano,
le decimos que no, porque utilizaremos la autenticacion en texto plano)
ssl_disable: yes
(Si queremos deshabilitar SSL Para transporte seguro ya que los datos
viajaran encriptados.)
mail_location: mbox:~/mail:INBOX=/var/mail/%u
(El lugar donde se alojaran los correos electronicos, que por defecto
seran en /var/mail. Y la %u quiere donde se almacenaran los correos a
determinado usuario)
AUNTENTICANDO DOVECOT ATRAVES DE PAM
ahora habilitaremos la autenticacion en texto plano.
Al final del archivo dovecot.conf agregaremos unas lineas que nos
permitiran autenticarnos.
auth default {
userdb passwd {
}
socket listen {
client {
Error!!!! Pero que paso?? Claro, lo que pasa es que agregamos estas
lineas al final, para entender mejor la sintaxis de como autentica
Dovecot contra pam, pero estas lineas se encuentras descomentadas a lo
largo de todo el archivo, por ende al tratar de reiniciar el servicio
nos saca un error que nos indica que existe duplicado en las lineas .
[fail]
Entonces lo que haremos sera comentar las lineas que se encuentran
repetidas a lo largo del archivo.
Lo primero que haremos sera instalar Courier con los protocolos pop e
imap.
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
Ahora que sabemos que ninguno de estos 2 protocolos esta funcionando,
procedemos con la instalacion de Courier-imap
root@regocorreo:~# cd /etc/postfix/
root@regocorreo:~# nano main.cf
home_mailbox = Maildir/g
mail_spool_directory = /var/spool/mail/
Ahora lo que haremos sera crear un fichero con las base de datos de los
usuarios del sistema, ya que la autenticacion que haremos sera contra
Pam...
root@regocorreo:~# cd /etc/courier
root@regocorreo:~# pw2userdb > userdb
esto creara un archivo donde se encuentran todos los usuarios del
sistema.
Y por seguridad borramos todos los usuarios, exeptos los del sistema.
root@regocorreo:~# cd /etc/courier
root@regocorreo:~# nano imapd
IMAP_MAILBOX_SANITY_CHECK=0
(Cambiamos el 1 por un 0)
authmodulelist="authpam"
Al abrirlo por primera vez, tendremos que llenar cada uno de los campos
requeridos
Responder a: regocorreo@lucas.com
Recepcion de Correo
Nota: Para esto debemos tener en cuenta que tendremos que instalar el
servidor para pop3 o imap(Dovecot), que lo realizamos en el paso
anterior.
Al seleccionar como servidor para la recepcion de correo a IMAP,
tendremos que llenar los campos de configuracion respectiva.
Configuracion:
Lo primero que nos pedira, sera que nos loguiemos, y esto sera atraves
del mecanismo de autenticacion PAM, que guarda los registros en el
sistema local.
El asunto del mensaje que viene siendo como el tema al que se refiere.
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =permit_sasl_authenticated,reject
smtpd_sasl_authenticated_header = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtp_sasl_auth_enable = no
smtpd_sasl_security_options =
smtpd_sasl_auth_enable = yes
(Permitiremos la autenticacion por medio de Sasl)
smtpd_recipient_restrictions =permit_sasl_authenticated,reject
(Esto quiere decir que permitiremos que se envien correos, despues de
que hallan sido validados a traves de Sasl)
smtpd_sasl_authenticated_header = yes
(Si queremos agregarle una cabezera a sasl)
smtpd_sasl_type = dovecot
(El tipo de servidor que tenemos para la recepcion de correo, con el
cual queremos que se auntentica para poder enviar/recibir correos)
smtpd_sasl_path = private/auth
(Modo cliente )
smtp_sasl_auth_enable = no
(Si soporta la auth en modo cliente, le decimos que NO, ya que dovecot
no soporta esta autenticacion)
Donde:
Con esto nos damos cuenta que el MTA (Postfix) Esta validando los
usuarios de una manera codificada atraves de sasl.
Lo primero que debemos de tener en cuenta es que postfix debe dede tener
soporte con TLS.
days = Dias que tedra vigencia nuestro certificado, ponemos los dias que
creamos pertinentes.
El certificado ha sido creado.
root@regocorreo:~# cd/etc/ssl/
certificado.pem cert openssl.cnf postfix.pem private
# TLS Parameters
smtpd_tls_cert_file=/etc/ssl/certificado.pem
smtpd_tls_key_file=/etc/ssl/postfix.pem
smtp_use_tls = yes
smtp_tls_loglevel = 0
smtp_tls_session_cache_timeout = 3600s
smtp_tls_note_starttls_offer = yes
smtp_starttls_timeout = 300s
Donde:
smtpd_tls_cert_file=/etc/ssl/certificado.pem
(Ruta donde se encuentra el certificado que anteriormente creamos)
situacion de la clave publica
smtpd_tls_key_file=/etc/ssl/postfix.pem
(Ruta donde se encuentra las claves .pem del certificado digital)
situación de la clave privada (en los ficheros .pem, ambas están juntas
smtp_use_tls = yes
(debemos utilizar TLS siempre que se pueda, le decimos que YES)
smtp_tls_loglevel = 0
nivel de log. Poner 2 hasta que todo funcione bien
smtp_tls_session_cache_timeout = 3600s
tiempo de validez de las claves
smtp_tls_note_starttls_offer = yes
aviso de conexión TLS
smtp_starttls_timeout = 300s
tiempo máximo del intercambio de claves
(Los parametros de los tiempos de conexión de TLS)
root@regocorreo:~# /etc/init.d/postfix restart
Y para mayor seguridad, podremos ver los paquetes como viajan, atraves
de un Snnifer que es un analizador de protocolos.
INSTALACION Y CONFIGURACION DE OPENLDAP
es un protocolo a que permite el acceso a un Servicio de Directorios
ordenado y distribuido para estructurar la información en un entorno de
red.
Le respondemos que no, para permitir que la base de datos quede presente
en el momento de eliminar el paquete de instalacion.
Le decimos que si, ya que no tenemos una base de datos configurada,
porque apenas la vamos a crear.
Nos preguntara que si queremos que instale LDAPV2. Le respondemos que
NO, ya que no sera necesario porque todos los protocolos y servicios que
tenemos instalados tienen soporte con ldapv3.
ldapi://127.0.0.1/
dc=lucas,dc=com
si
no
cn=admin,dc=lucas,dc=com
#############
Configuracion de ldap.conf
root@regocorreo:~# cd /etc/ldap.conf
root@regocorreo:~# nano ldap.conf
#host 127.0.0.1
host 192.168.1.1
base dc=lucas,dc=com
uri ldapi://127.0.0.1/
rootbinddn cn=admin,dc=lucas,dc=com
port 389
bind_policy_soft
root@regocorreo:~# cd /etc/auth-client-config/profile.d/
root@regocorreo:~# touch open_ldap
[open_ldap]
nss_passwd=passwd: compat ldap
nss_group=group: compat ldap
nss_shadow=shadow: compat ldap
pam_auth=auth required pam_env.so
auth sufficient pam_unix.so likeauth nullok
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
pam_account=account sufficient pam_unix.so
account sufficient pam_ldap.so
account required pam_deny.so
pam_password=password sufficient pam_unix.so nullok md5 shadow use_authtok
password sufficient pam_ldap.so use_first_pass
password required pam_deny.so
pam_session=session required pam_limits.so
session required pam_mkhomedir.so skel=/etc/skel/
session required pam_unix.so
session optional pam_ldap.so
http://www.ldapsoft.com/ldapadmintool.html
root@regocorreo:~# ./ldapAdminTool-2.4.x-Linux-x86-Install.bin
E iniciaremos la instalacion.
Lo primero que haremos sera crear una nueva conexión, entre este
software (Ldap Admin Tools) y OpenLdap.
Connection Name = conexión LDAP
(Este sera el nombre que le queremos dar a la conexión)
Hostname = 127.0.0.1
(En esta opcion podemos ingresar el nombre del equipo donde se encuentra
ldap, o la direccion IP de este. Para nuestro caso utilizaremos la
direccion 127.0.0.1 ya que ldap se encuentra instalado y configurado en
nuestro equipo local)
port = 389
(El puerto por el cual se realizara la conexión. 389 viene por defecto)
protocol = LDAP v3
(Este sera el protocolo que utilizara ldap... Podemos utilizar la
version2 o la version3.
Base DN = dc=lucas,dc=com
(Esta es la base de como esta conformado nuestro dominio, ya que es
lucas.com y se define como dc=lucas y el .com que sera dc=com)
por ultimo testeamos que se encuentre la conexión activa con ldap, para
poder ingresar y realizar los cambios que queramos.
Ahora definiremos los parametros de autenticacion.
• Simple Authentication
Bind DN = cn=admin,dc=lucas,dc=com
(El usuario administrador de ldap, sera admin y ponemos la base de
nuestro dominio.)
Password = **************
(Este sera el password que anteriormente habiamos definido para el
usuario admin)
root@regocorreo:/# cd /etc/ldap/
root@regocorreo:/# nano slapd.conf
Include /etc/ldap/schema/postfix.schema
root@regocorreo:/# cd /etc/ldap/schema/
root@regocorreo:/# touch postfix.schema
attributetype ( 1.3.6.1.4.1.15347.2.101
NAME 'mailRoutingAddress'
SUP mail )
attributetype ( 1.3.6.1.4.1.15347.2.100
NAME ( 'maildrop' )
DESC 'RFC1274: RFC822 Mailbox'
EQUALITY caseIgnoreIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
objectclass ( 1.3.6.1.4.1.15347.2.1
NAME 'mailUser'
DESC 'E-Mail User'
SUP top
AUXILIARY
MUST ( uid $ mail $ maildrop )
MAY ( cn $ mailbox $ maildest $ mailaccess )
)
objectclass ( 1.3.6.1.4.1.15347.2.2
NAME 'mailGroup'
DESC 'E-Mail Group'
SUP top
STRUCTURAL
MUST ( cn $ mail )
MAY ( mailRoutingAddress $ member $ description )
)
objectclass ( 1.3.6.1.4.1.15347.2.3
NAME 'transportTable'
DESC 'MTA Transport Table'
SUP top
STRUCTURAL
MUST ( cn $ transport )
)
Si comprendemos la sintaxis de este schema, podemos adicionar definiciones a
esta estructura.
# LDAP settings
ldapgroups_server_host = localhost
ldapgroups_server_port = 389
ldapgroups_search_base = ou=Groups,dc=lucas,dc=com
ldapgroups_bind = no
ldapgroups_timeout = 30
ldapgroups_query_filter = (&(mail=%s)(objectclass=mailGroup))
ldapgroups_special_result_attribute = member
ldapalias_server_host = localhost
ldapalias_server_port = 389
ldapalias_search_base = ou=Users,dc=lucas,dc=com
ldapalias_bind = no
ldapalias_timeout = 30
ldapalias_query_filter = (&(mail=%s)(objectclass=mailUser))
ldapalias_result_attribute = maildrop
transport_maps = ldap:ldaptransport
ldaptransport_server_host = localhost
ldaptransport_server_port = 389
ldaptransport_search_base = ou=Transport,dc=lucas,dc=com
ldaptransport_bind = no
ldaptransport_timeout = 30
ldaptransport_query_filter = (&(cn=%s)(!(cn=server.mydomain.com))
(objectclass=transportTable))
ldaptransport_result_attribute = transport
para que se haga una busqueda virtual del parametro mydestination quito el dns local y
dejamos el nombre de equipo una , y localhost: debajo de esta linea adicionamos el
parametros:
– virtual _mailbox_domains=lucas.com
– virtual_mailbox_base=/vmail/correos (aquí es donde almaceno los correos )
– virtual_mailbox_maps=ldap:/etc/postfix/ldap.conf (aquí es donde se hace las
consultas de ldap)
– virtual_uid_maps= stactics:5000
– virtual_gid_maps=stactics:5000 (en estas dos ultimas lineas estamos
especificando el usuario/grupo virtual admin y los buzones para estos).
Nota: Cada vez que reiniciemos algun servicio, verifiquemos en los Logs
pertinentes que no existen errores.
(Creamos un usuario llamado spamd que sera miembro del grupo spamd)
root@regocorreo:~# cd /etc/default/
root@regocorreo:~# nano spamassassin
ENABLED=0
ENABLED=1
Ahora lo que haremos sera dar una configuracion para el sistema anti-
spam, vamos al archivo principla de configuracion de spamassassin.
report_safe 1
(Le decimos que nos mande el correo de spam de manera adjunta)
required_score 5.0
(Esta es la puntuacion apartir de la cual Spamassassin reconocera un
correo como Spam o no. Por defecto viene en 5.0)
Ahora agregamos unas lineas, que evitaran que las cabeceras de los ISP
se tomen como spam.
bayes_ignore_header X-Upstream-Spamfilter
bayes_ignore_header X-Upstream-SomethingElse
??????????????????????????????????????????????????????????????????????
Ahora crearemos la ruta donde se encontrara el directorio de las
bayesianas, esta parte es de suma importancia
bayes_path /etc/spamassassin/bayes/bayes
Lo que haremos sera configurar postfix para que los correos sean
analizados por el filtro antispam.
root@regocorreo:~# cd /etc/postfix/
root@regocorreo:/etc/postfix# nano master.cf
#!/bin/sh
FROM='Sistema antivirus <antivirus@lomu.homelinux.org>'
TO=$RECIPIENTS
MAILER='/usr/sbin/sendmail -it'
SUBJECT=`/bin/echo "El correo contiene un virus" | /usr/bin/nkf -jMB`
$MAILER <<EOM
From: $FROM
To: $TO
Subject: =?ISO-2022-JP?B?$SUBJECT?=
Se ha detectado codigo malicioso en el adjunto que contenía el correo.
Pongase en
contacto con el administrador de su sistema LUKASCORPORATION si está
seguro/a de que no es un virus, pida
a la persona que le envía el fichero que por favor lo ponga en un
fichero comprimido
protegido por una contraseña. Disculpe las molestias.
[Virus]
$VIRUS
[De]
$SENDER
[Para]
$RECIPIENTS
EOM
exit 0
Esto lo que hara sera que en caso de que clamAV detecte algun virus,
notificara de inmediato con el administrador de la red, por medio de un
correo electronico, notificando que ha detectado virus, y seran
almacenados en una boveda especial.
root@regocorreo:/# cd /etc/postfix/
root@regocorreo:/# nano master.cf
## FILTRO ANTIVIRUS
## Filtro antivirus usado por content filter
scan unix - - n - 16 smtp
-o smtp_send_xforward_command=yes
-o smtp_enforce_tls=no
# Para inyectar el correo a postfix una vez analizado
127.0.0.1:10026 inet n - n - 16 smtpd
-o content_filter=
-o
receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks_style=host
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
Ahora iremos al archivo main.cf y agregaremos unas cuantas lineas del
filtro y el escaneo.
content_filter = scan:[127.0.0.1]:10025