Capitulos de este wiki
  1. 1 Cómo determinar qué asegurar y cómo asegurarlo
  2. 2 Instalación segura de Linux
  3. 3 Conceptos generales, servidores versus estaciones de trabajo, etc
  4. 4 Ficheros del sistema
  5. 5 Seguridad de Ficheros / Sistema de ficheros
  6. 6 Pam
  7. 7 Seguridad Física / de Arranque
  8. 8 Seguridad de contraseñas
  9. 9 Almacenamiento de Contraseñas
  10. 10 Seguridad basica de servicios de red
  11. 11 Ficheros basicos de configuración de red
  12. 12 TCP-IP y seguridad de redes
  13. 13 Seguridad PPP
  14. 14 Seguridad IP (IPSec)
  15. 15 Cifrado de servicios / datos
  16. 16 Rutado
  17. 17 Software de Proxy
  18. 18 Cortafuegos
  19. 19 Telnet
  20. 20 Ssh
  21. 21 Ftp
  22. 22 Http / https
  23. 23 Smtp
  24. 24 Pop
  25. 25 Imapd
  26. 26 Dns
  27. 27 Nntp
  28. 28 Dhcpd
  29. 29 Rsh, rexec, rcp
  30. 30 Nfsd
  31. 31 Tftp
  32. 32 Bootp
  33. 33 Snmp
  34. 34 Finger
  35. 35 Identd
  36. 36 Ntpd
  37. 37 Cvs
  38. 38 Rsync
  39. 39 Lpd
  40. 40 Samba
  41. 41 Servidores LDAP Linux
  42. 42 Sistema X Window
  43. 43 Conectividad SNA
  44. 44 Software de Autoridad de Certificación para Linux
  45. 45 El kernel de Linux
  46. 46 Parches de seguridad del kernel y del compilador
  47. 47 Herramientas administrativas
  48. 48 Gestión de Software
  49. 49 Herramientas de monitorización de Hosts
  50. 50 Ficheros de Log y otros métodos de monitorización
  51. 51 Limitación y monitorización de usuarios
  52. 52 Lista de comprobación para la conexión a Internet
  53. 53 Métodos de compartición de ficheros
  54. 54 Lectores de correo basados en WWW
  55. 55 Autentificación Basada en Red
  56. 56 Software de Listas de correo
  57. 57 Escaneo / herramientas de prueba de intrusos
  58. 58 Herramientas de escaneo y detección de intrusos
  59. 59 Sniffers de Paquetes
  60. 60 Normas de comportamiento / integridad de ficheros
  61. 61 Gestión de auditorías
  62. 62 Copias de Seguridad
  63. 63 Enfrentandose a los ataques
  64. 64 Ataques de Negación de Servicio
  65. 65 Ejemplos de ataques
  66. 66 Virus, Caballos de Troya y Gusanos
  67. 67 Distribuciones seguras de Linux
  68. 68 Información específica por Distribuidor / Vendedor
  69. 69 Información de contacto con vendedores
  70. 70 Programación segura
  71. 71 Apéndice A: Libros y Revistas
  72. 72 Apéndice B: Otra documentación de seguridad sobre Linux
  73. 73 Apéndice C: Documentación de seguridad en línea
  74. 74 Apéndice D: Sitios de seguridad en general
  75. 75 Apéndice E: Sitios de Linux en general

23 - Smtp

[editar]
Tutorial creado por Kurt Seifried. Extraido de: http://es.tldp.org/Manuales-LuCAS/GSAL/gsal-19991128-htm/
16 de Febrero de 2006
Simple Mail Transfer Protocol (SMTP), es uno de los servicios más importantes que proporciona Internet. Ahora casi todas las compañías tienen o dependen del correo, y por extensión todos los servidores SMTP. Se encuentran disponibles muchos paquetes SMTP, siendo el más viejo y el más probado el Sendmail (ahora con soporte comercial, etc.), y hay dos nuevos contendientes, Postfix y Qmail, ambos dos escritos desde cero teniendo en cuenta la seguridad. Filtrar con el cortafuegos el SMTP no tiene pérdida, se ejecuta en el puerto 25, tcp:

ipfwadm –I –a accept –P tcp –S 10.0.0.0/8 –D 0.0.0.0/0 25

ipfwadm –I –a accept –P tcp –S un.host.fiable –D 0.0.0.0/0 25

ipfwadm –I –a deny –P tcp –S 0.0.0.0/0 –D 0.0.0.0/0 25

o bien con ipchains:

ipchains –A input –p tcp –j ACCEPT –s 10.0.0.0/8 –d 0.0.0.0/0 25

ipchains –A input –p tcp –j ACCEPT –s un.host.fiable –d 0.0.0.0/0 25

ipchains –A input –p tcp –j DENY –s 0.0.0.0/0 –d 0.0.0.0/0 25



Sendmail

Sendmail es otro de esos servicios con los que la mayoría de nosotros hemos tenido relaciones. Odiamos administrarlo y nos encantaría reemplazarlo (en realidad he empezado a eliminar el Sendmail de las máquinas que administro y lo estoy reemplazando con el Postfix).

Sendmail se ha ganado por sí mismo una muy mala reputación en cuanto a seguridad, sin embargo es difícil echarle la culpa al software cuando te encuentras con sistemas ejecutando versiones antiguas del sendmail. La raíz del problema (si se me permite el mal juego de palabras) es que casi todo el mundo ejecuta el sendmail como root (y algo así como el 70% del correo de Internet se maneja mediante máquinas con Sendmail, de modo que hay un montón de ellas), de forma que tan pronto se encuentra un bug, encontrar un sistema que explotar no es tan difícil. Las últimas versiones de sendmail han sido bastante buenas, sin hacks del root, etc, y con las nuevas características anti spam finalmente ha alcanzado la mayoría de edad. Más información en Sendmail y su código fuente está disponible en: http://www.sendmail.org/

Hacer un chroot del sendmail es una buena opción, pero lleva demasiado trabajo, y puesto que se ejecuta como root, algo bastante discutible en cuanto a su efectividad (puesto que el root se puede escapar de una cárcel chroot). Personalmente pienso que es mejor invertir el esfuerzo en cambiarse a Postfix o a Qmail.

Mantener actualizado el sendmail es relativamente simple, recomendaría como mínimo la versión 8.9.3 (la serie 8.9 tiene más características anti-spam, la 8.8.x tiene la mayoría de estas características, suponiendo que se ha configurado correctamente el sendmail.cf). La mayoría de las distribuciones vienen con la 8.8.x, aunque las versiones más recientes suelen venir con la 8.9.x. Se puede conseguir el código fuente desde ftp://ftp.sendmail.org/, pero compilar el sendmail no es algo para el débil de corazón o para aquellos que no tengan un montón de tiempo para dedicárselo.

Sendmail sólo tiene que estar accesible desde el mundo exterior si se está utilizando para recibir correo de otras máquinas y repartirlo localmente. Si sólo se quiere ejecutar sendmail de forma que funcione el reparto local (p. ej., una estación de trabajo autónoma, un servidor de prueba u otros) y que se pueda enviar con facilidad el correo a otras máquinas, simplemente filtra con el cortafuegos el sendmail, o mejor, no lo ejecutes en modo demonio (en el cual escucha conexiones). Sendmail se puede ejecutar en la cola de refresco de un nodo, donde simplemente se "despierta" cada cierto tiempo y procesa el correo local, ya sea distribuyéndolo localmente o enviándolo a través de la red. Para configurar la ejecución del Sendmail en modo cola:

edita el script de inicio del Sendmail y cambia la línea que contiene:

sendmail –bd –q1h

por:

sendmail –q1h

Ten en cuenta que: si utilizas el sistema para enviar mucho correo quizás prefieras disminuir el tiempo de refresco, quizás "-q15m" (refrescar la cola cada 15 minutos), ahora el correo saliente y el correo interno del sistema se comportarán bien, lo cual a menos que se ejecute un servidor de correo, es perfecto.

Ahora vienen todas esas maravillosas características anti-spam del sendmail. Los ficheros de configuración del Sendmail consisten en (se aplica al Sendmail 8.9.x):

/etc/sendmail.cf

El fichero de configuración principal, también dice dónde se encuentran el resto de ficheros de configuración.

/etc/mail/

Se puede definir la localización de los ficheros de configuración en sendmail.cf, generalmente la gente los coloca en /etc/ o en /etc/mail (lo cual lo lía menos).

access

La base de datos de la lista de accesos, permite rechazar el correo proveniente de ciertas fuentes (IP o dominio), y controlar con facilidad las transmisiones. Mi fichero de acceso es así:

    1. RELAY

spam.com REJECT

lo que quiere decir que a 10.0.0.* (los hosts de mi red interna) se les permite utilizar el servidor de correo para enviar correo donde quieran, y el correo de *.spam.com se rechaza. Hay listas en línea de spammers conocidos, generalmente suele tener entre 5-10.000 entradas, lo cual puede afectar seriamente el rendimiento del sendmail (pues cada conexión se comprueba contra esta lista), por otra parte, tener una máquina sendmail para enviar spam es incluso peor.

aliases

El fichero de alias, te permite controlar el reparto del correo local al sistema, es útil para hacer una copia de seguridad del correo entrante de un usuario a un spool por separado. La mayoría del software de servidores de listas utiliza este fichero para enviar el correo que recibe a los programas que realmente procesan las listas. Recuerda ejecutar el comando "newaliases" después de editar este fichero, y después reiniciar el sendmail.

domaintable

la tabla de dominios (añadir dominios) que se maneja, útil para hacer hosting virtual.

majordomo

fichero de configuración de majordomo, personalmente recomendaría SmartList a Majordomo.

sendmail.cw

fichero que contiene nombres de hosts de los que se recibe correo, útil si se alberga más de un dominio.

sendmail.hf

situación del fichero de ayuda (telnet al puerto 25 y escribir "HELP")

virtusertable

Tabla de usuario virtual, mapea usuarios entrantes, p. ej., mapear ventas@ejemplo.org a john@ejemplo.org

Sendmail 8.9.x (y versiones anteriores) en realidad no tienen soporte para hacer un log de todo el correo de una forma agradable (un requisito indispensable por muchas compañías por motivos legales). Esta es una de las características sobre las que se trabaja en la versión de Sendmail 8.10.x. Hasta entonces, hay dos formas de hacer log del correo, la primera es algo agraciada, y registra un log de los correos entrantes a usuarios según cada usuario. El segundo método no es agraciado, e implica un simple log de todas las transacciones SMTP a un fichero, habría que escribir algún tipo de procesador (probablemente en perl) para que el log fuese útil.

El correo (o las conexiones SMTP para ser más precisos) primero se filtra con el fichero access, y es aquí donde se pueden RECHAZAR correos de ciertos dominios/IP’s, y TRANSMITIR correo de ciertos hosts (p. ej. tu red interna de máquinas windows). Cualquier dominio local para el que se hospeda el correo tendrá que ir al sendmail.cw. Suponiendo que el correo cumple con las reglas y va a la cola para reparto local, el siguiente fichero que se comprueba en virtusertable, que es una lista de direcciones de correo mapeadas al nombre de la cuenta/otra dirección de correo. p.ej.:

seifried@seifried.org alias-seifried

listuser@seifried.org usuariolista

@seifried.org correos-estropeados

La última regla es para evitar que reboten los correos estropeados, y que en lugar de eso se envíen a un buzón. Después se comprueba el fichero de alias, si se encuentra una entrada se hace lo que dice, y si no, se intenta entregar el correo a un buzón de un usuario local, mi entrada seifried del fichero de alias es:

alias-seifried: seifried, "/var/backup-spool/seifried"

De esta forma mi correo se reparte a mi buzón normal, y a un buzón de copia de seguridad (por si acaso he borrado un correo que no quisiera), o en el peor de los casos, Microsoft Outlook decide cascar un día y cargarse mis buzones. Esto también sería útil en empresas, puesto que ahora se tiene una copia de seguridad de todo el correo entrante según cada usuario, y se les puede permitir ( o no) acceder al fichero que contiene el correo en la copia de seguridad.

Una advertencia, cuando se esté usando una regla general para un dominio ( p. ej. @seifried.org) hay que crear un alias para CADA cuenta, y para las listas de correo. Si no, cuando se examina la lista y no se encuentra una entrada específica (para, digamos, lista-correo@seifried.org) lo enviará al buzón especificado por la regla general. Ya sólo por este motivo no se debería utilizar una regla general.

El segundo método es muy simple, sencillamente se arranca el sendmail con la opción –x y se especifica un fichero para hacer un log de todas las transacciones. Este fichero crecerá con enorme rapidez, NO recomendaría utilizar este método para hacer log del correo, al menos que sea absolutamente necesario.



Qmail

Qmail (al igual que Postfix) fue creado como una respuesta directa a los fallos percibidos en Sendmail. Qmail es GPL con una cláusula sin distribución binaria que obliga a instalarlo desde el código fuente. Muy poco del código del Qmail se ejecuta como root, y es muy modular comparado con el sendmail (el cual es un trozo de código monolítico). Se puede descargar de: http://www.qmail.org/



Postfix

El Postfix es un agente de transferencia de correo (MTA) orientado a la seguridad, velocidad, y facilidad de configuración, cosas en las que Sendmail suele fallar por lo general. Recomendaría encarecidamente reemplazar el Sendmail por el Postfix. La única parte de Postfix que se ejecuta como root es un programa de control maestro, llamado "master", que llama a otros programas para procesar el correo a la cola ("pickup"), un programa para gestionar la cola, espera conexiones entrantes, repartos de correo retrasados, etc. ("qmgr"), un programa que en realidad envía y recibe el correo ("smtpd") etc. Cada parte de Postfix está muy bien pensada, y generalmente hace una o dos tareas, muy bien. Por ejemplo, en lugar del modelo de sendmail, donde el correo simplemente se volcaba a /var/spool/mqueue, en Postfix existe un directorio accesible por el mundo llamado "maildrop" el cual se comprueba mediante "pickup", el cual alimenta los datos a "cleanup", el cual mueve el correo (si está correctamente formateado, etc.) a un directorio seguro de cola para el procesado real.

Los ficheros primarios de configuración están en /etc/postfix, y existen varios ficheros primarios de configuración que es necesario tener:

master.cf

Controla el comportamiento de varios programas de "ayuda", están hechos chroot, el máximo número de procesos que pueden ejecutar, etcétera. Probablemente sea mejor dejar las configuraciones por defecto en la mayoría de los servidores de correo, a menos que se necesite ajustar algo por altas cargas o asegurar el servidor (p. ej. haciéndolo chroot).

main.cf

Este fichero está muy próximo al sendmail.cf (en cuanto a propósito, en cuanto al diseño es bastante diferente). Está bien comentado y configura todas las variables principales, y las situaciones y formato de diferentes ficheros que contienen información tal como los mapeos a usuarios virtuales e información relativa.

He aquí una lista de variables y localización de ficheros que se suele tener que configurar, el fichero /etc/postfix/main.cf por lo general suele estar comentado densamente. Ten en cuenta que los siguientes ejemplos de entradas main.cf no son un main.cf completo.

# ¿cuál es el nombre de la máquina?

myhostname = correo.ejemplo.org

# ¿cuál es el nombre de dominio?

mydomain = ejemplo.org

# ¿cómo etiqueto el "from" del correo?

myorigin = $mydomain

# ¿en qué interfaces lo ejecuto? Por lo general, en todas.

inet_interfaces = all

# un fichero que contiene una lista de nombres de hosts y nombres de

# dominio cualificados desde los cuales recibo correo,

# generalmenteestán listados así:

# mydestination = localhost, $myhostname, etc

# pero prefiero mantener el listado en un fichero.

mydestination = /etc/postfix/mydestination

# mapa de nombres de usuarios entrantes. "man 5 virtual"

virtual_maps = hash:/etc/postfix/virtual

# mapeo de alias (como /etc/aliases en sendmail), "man 5 aliases"

alias_maps = hash:/etc/postfix/aliases

# base de datos de alias, se pueden tener diferentes configuraciones.

# "man 5 aliases"

alias_database = hash:/etc/postfix/aliases

# dónde repartir el correo, formato Mailbox o Maildir

# (el tradicional /var/spool/mail).

home_mailbox = Maildir/

# dónde guardar el correo, generalmente en /var/spool/mail/ pero se

# puede cambiar con facilidad

mail_spool_directory = /var/spool/mail

# ¿qué comando utilizamos para repartir el correo? /usr/bin/procmail

# es el comando por defecto, pero yo utilizo scanmail que es el sello

# del software antivirus AMaViS

mailbox_command = /usr/sbin/scanmails

# para quién retransmito el correo, de nuevo se pueden listarlos o

# guardarlos en un fichero (uno por línea).

relay_domains = /etc/postfix/relaydomains

# lista de redes locales (por defecto se retransmite el correo de

# estos hosts).

mynetworks = 10.0.0.0/24, 127.0.0.0/8

# ¿qué se le muestra a la gente que conecte al puerto 25? Por defecto

# muestra el número de versión, lo cual yo no hago.

smtpd_banner = $myhostname ESMTP $mail_name

En términos generales, cualquier fichero que simplemente liste un elemento por línea (como /etc/postfix/mydestination o /etc/postfix/relaydomains) se suelen almacenar como simple texto llano. Los ficheros que contienen mapeados (p. ej. alias, donde se tienen entradas como "root: cualquierusuario") deberían transformarse en ficheros hash de base de datos por velocidad (se puede especificar el tipo de fichero como hash, dbm, etc.).

Al igual que la mayoría de productos de IBM, Postfix tiene una licencia bastante curiosa, pero parece que la mayoría es código abierto y libre. Postfix se encuentra disponible en: http://www.postfix.org/. Se pueden conseguir los rpm’s de postfix en: ftp://contrib.Redhat.com/, y aparentemente SuSE ahora viene con Postfix.



Sendmail Pro

Sendmail Pro es una versión comercial de Sendmail con soporte, y se encuentra disponible en: http://www.sendmail.com/. No me ha sido posible conseguir una demo o encontrar a alguien que lo utilice, de modo que no estoy seguro al 100% de lo cercano que se encuentra al Sendmail "original", aunque la compañía me ha dicho que utiliza el mismo código de base.



Zmailer

Zmailer es un gestor de correo GPL disponible en: http://www.zmailer.org/. Tiene ganchos criptográficos y por lo general parece bien construido.



DMail

DMail es un servidor de correo comercial, y no es código abierto. Se puede descargar una versión de prueba de: http://netwinsite.com/dmail_first.htm




nullmailer

El nullmailer envía correo a hosts inteligentes (relays) de forma que la máquina local no tenga que ejecutar ningún software de servidor. Está en: http://em.ca/~bruceg/nullmailer/.




MasqMail

El MasqMail manda el correo a una cola mientras está offline y después lo envía cuando conectas a tu ISP. Se puede configurar para múltiples ISP’s, con dirección de respuesta, etc. Se puede descargar en: http://merlin.uni-sw.gwdg.de/~okurth/masqmail/

Dynamic Relay Authorization Control

El Dynamic Relay Authorization Control (DRAC) se une a tu servidor POP/IMAP para garantizar temporalmente acceso de reenvío SMTP a los hosts que se han autentificado con éxito y recogen correo (asumiendo que estos hosts enviarán correo, y no van a abusar de este privilegio. Se puede conseguir en: http://mail.cc.umanitoba.ca/drac/index.html.
[editar]

8 opiniones

Tecnico.

Super completo, me va a tomar un tiempo repasar cada apartado. Me tome el trabajo de re-edicion y transformacion a documento de open-office (extension odt) de esta forma lo tengo en mi server y lo puedo usar con consultas en todo momento. Muchas gracias. Ahora tengo lectura por un buen rato. Bye bye.
Pdf?.

Hola, es muy interesante, habéis trabajado mucho y es una lástima que tenga que guardar todas las páginas en caché o en otro formato. Por favor, ¿podéis subir o enviar una versión actualizada de este pedazo de manual en pdf?

gracias mil.
Aprende mas.

Bueno creo que puede ser mejor.
Identificarse con los buenos comportamientos.

La verdad, siempre en la cultura debemos de tener unas normas de conducta para cumplirlas así pues, este recurso ayudan a informarnos a cerca de lo q esta bien o mal y llevar a cabo todas esas reglas q solo implementan la regulación de el comportamiento de las actitudes.
Buscando solucion.

Es oportuno para abocar conocimiento sobre linux, tenemos linux en cabinas con varios dias fuera de servicio porque se desconfiguro, pide clave de mantenimiento y no lo sabemos. Eperamos este recurso ayude.
1 2 | siguiente >

Tutoriales relacionados con 'Guía de Seguridad del Administrador de Linux'

Esta guía no es un documento general de seguridad. Esta guía está específicamente orientada a... Más »
Esta es la primerísima edición del Linux en Castellano COMO. La audiencia a la que... Más »
Este documento describe el soporte de sonido para Linux. Enumera el hardware de sonido soportado,... Más »
Este documento describe la puesta en marcha y mantenimiento de noticias de Usenet bajo Linux.... Más »
El objetivo de este documento es enseñar las bases de la instalación de un cortafuegos... Más »

Autor y licencia de 'Guía de Seguridad del Administrador de Linux'


Tutorial de Kurt Seifried. Extraido de: http://es.tldp.org/Manuales-LuCAS/GSAL/gsal-19991128-htm/ CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.