Upload
vokhuong
View
218
Download
0
Embed Size (px)
Citation preview
Implementación de Seguridad y Creación de Protocolos
Para un Sistema de Webhosting
Informe de Actividad Terminal para optar al título de
Ingeniería en Ejecución en Computación e Informática
Integrante:
Rodrigo Sanhueza Pontoni
Docente:
Héctor Salazar Robinson
02 / 08 / 2011
Sumario
Capitulo 1 – Análisis Previo.
En el presente, se realiza la presentación de la empresa en estudio, así como
también el área en el cual se aplicará el estudio y la reforma ingenieril, de igual
manera se presentará la alternativa para proveer una solución al problema detectado
en el análisis crítico de la situación actual.
Capitulo 2 – Especificación de Requerimientos.
En el presente, se procede a determinar los usuarios de la implementación así
como también los objetivos tanto como generales y específicos del proyecto, se
determinan los requerimientos basados mediante entrevista y una auditoria al
departamento en estudio.
Capitulo 3 – Aporte Ingenieril
En el presente, se procede en la búsqueda e investigación de herramientas
para implementar una seguridad razonable en los servidores, esta búsqueda será
tanto reactiva para algunos objetivos como proactiva según lo amerite el caso.
Capitulo 4 – Implementación de herramientas para solucionar vulnerabilidades
En el presente, se realizará la instalación de cada una de las herramientas
elegidas según sus meritos y se procederá a evaluar si son eficaces en el medio en
donde trabajaran.
Capitulo 5 – Creación de protocolos y soluciones a las vulnerabilidades
En el presente, se crearán protocolos de seguridad y políticas, donde se
delegarán responsabilidades tanto como para el departamento de Soporte y el cliente
o usuario del servicio de hosting
Anexo 1: Notas y detalles de la instalación
En el presente, se detallarán notas y/o detalles de algunas herramientas que
surgieron luego de la instalación de estas.
Anexo 2: Formularios y Entrevista
En el presente, se indexarán todos los formularios y la entrevista utilizada en
el proyecto.
1
Introducción
Los problemas de seguridad van desde distintos ámbitos y especialmente en
la informática, donde personas tienen un acceso libre sin restricciones a sistemas de
información vulnerables en todo aspecto, bien es sabido que la gran cantidad de
problemas de esta índole se generan dentro de la empresa por la poca habilidad a
veces de los usuarios o la mínima capacitación que deberían tener estos, pero el
peor daño que afecta a la empresa es cuando personas que no son parte de esta,
acceden a sus equipos y se apropian de información que no les corresponde o
simplemente hacen mal uso de los servicios/hardware de los equipos, quedando la
empresa en mal pie frente a su mercado.
El presente proyecto consta en implementar un sistema de seguridad y
creación de protocolos para el departamento de soporte técnico de una empresa de
Webhosting, que cuenta con una baja implementación de seguridad en cada uno de
los servidores, de forma global se realizara una toma de requerimientos al cliente y
una auditoria que arrojo las falencias que poseía el servicio para luego ofrecer una
lista nueva de protocolos y responsabilidades entre el oferente del servicio y el
usuario.
3
Introducción
En este capítulo se procederá a mostrar información sobre la empresa y el
área en estudio en donde está enfocado el proyecto. Se dará a conocer la
infraestructura de la empresa y en detalle el área en estudio dicho anteriormente.
Se reflejara mediante un diagrama de casos de uso la situación actual de la
empresa, donde se vera la problemática de seguridad y mediante una propuesta
ingenieril se procederá a solucionar el inconveniente encontrado, así mismo se
reflejara mediante otro caso de uso un nuevo modelo ofrecido.
4
1.1. Antecedentes Generales de la Organización
� Nombre: San Martin y Cía. Ltda. (Chileadmin).
� RUT: 7633430-2
� Rubro: Soluciones informáticas, Hosting y Diseño Web.
� Dirección: Almirante Pastene 70 Depto. 104, Providencia, Santiago
� Teléfono: 56 - 02- 891 1035
� Años de experiencia de la Empresa: 11
1.2. Misión de la organización
Aportar con nuestra experiencia y conocimiento de Internet a los clientes,
permitiendo asesorarlos de forma profesional y efectiva.
1.3. Historia de la organización
San Martin y Cía. Ltda. Conocida como ChileAdmin.cl es una Empresa
Visionaria y Emprendedora, dedicada a satisfacer las necesidades de Particulares,
Instituciones, Gremios y Empresas en materias de Internet.
Actualmente es indispensable contar con presencia en Internet y más aún
agregar valor a servicios o productos a través de este medio, en ChileAdmin.cl se
está consciente de esto y se enfoca todas las habilidades y conocimientos en ello.
5
Cuenta con 10 años de existencia, en este periodo han entregado soluciones
a particulares, instituciones, gremios y empresas. Actualmente son más de 6.000
Clientes los que han preferido sus servicios. Estaba ubicada en el centro de
Concepción hasta el terremoto del 27-F, luego se traslado a una oficina anexa en
Santiago transformándola en la Casa matriz. Con los años de experiencia ha sido
una de las empresas pioneras en Chile con el tema de Hosting.
Visión Ser reconocidos como una de las mejores empresas del rubro en
Chile.
Servicios Se presta el servicio de Hosting, Diseño y Programación,
Posicionamiento en la red, Asistencia Remota, creación de CRMs (Software para la
administración de la relación con los clientes), envió de información por correos
electrónicos (mail manager).
Responsabilidades Básicamente en la empresa se pueden destacar 3
grandes áreas, las cuales son la gerencia comercial y administración, gerencia
proyectos y la gerencia de operaciones. En la gerencia comercial y administración
se tienen el departamentos comercial que se encargan de atraer nuevos clientes y
ofrecer servicios y/o planes y el departamento de administración que gestiona el uso
del recurso monetario y las tareas de administración de la empresa, la gerencia de
proyectos tiene los departamentos de diseño web y de programación-desarrollo
quienes desarrollan desde soluciones informáticas para personas y
empresas(paginas web) hasta sistemas de gestión(CRMs), por último la gerencia de
operaciones contiene el departamento soporte quienes son los encargados de
atender a los clientes con inconvenientes y/o problemas con el sistema de Hosting
que van desde problemas con webs, bases de datos, transferencia de archivos,
problemas de correos, listas de spam entre otros servicios contratados con
Chileadmin.cl.
6
1.4. Infraestructura Computacional y de Software
Actualmente, la empresa cuenta con 11 servidores + 1 servidor de respaldos y
pruebas, El Uptime de los servidores fluctúa entre 99.4% y 100% lo que ha llevado a
ser una de las principales compañías de Web Hosting en Chile. Sus servidores se
encuentra la gran parte en Estados Unidos y uno de prueba en Santiago, en donde la
administración es completamente remota hacia ellos, los servidores son arrendados
a la empresa LiquidWeb, la cual presenta servicios del tipo servidor virtuales
privados, nubes de datos, servidores dedicados, servidores smarts server, centros de
datos tanto en la plataforma Linux como en Windows.
Las personas con accesos a los servidores son: Ceo de la empresa y personal
de Soporte de los cuales:
El Ceo de la empresa solo ingresa al sistema a chequear los sistemas y
realiza modificaciones en las zonas DNS de cada servidor.
Personal de Soporte tiene acceso full a los servidores y a las aplicaciones que
corren en estos, teniendo plena responsabilidad ante cualquier problema e
inconveniente presente en el sistema.
Dentro de los servidores dedicados a Webhosting se presentan los siguientes
servicios los cuales serán auditados según su importancia:
• Clamd: servicio demonio de antivirus.
• Cpdavd: servicio para tener una unidad física en un computador siendo una
unidad virtual, ya que es un enlace directo a una carpeta del Hosting.
7
• Exim: Servidor de correo SMTP. Esta es la parte del servidor de correo que se
encarga de enviar y recibir correo.
• Ftpd: Servidor de archivos ftp, para realizar transferencia de archivos en el
sistema.
• Httpd: Demonio del servidor web Apache. Este controla las solicitudes HTTP
de los visitantes.
• Imap: El Correo de IMAP/demonio Dovecot. Este maneja cómo los usuarios
descargan su correo.
• Ipaliases: La activación de esta función le permite añadir más de una dirección
IP para su adaptador de red. Utilizando esta configuración le permite ejecutar
múltiples conexiones en una sola red.
• Mysql: Servidor MySQL base de datos. Esta trata las consultas de base de
datos.
• Named: Demonio utilizado para resolver los nombre de dominio.
• Postgresql: Servidor Postgresql
• Spamd: Servidor de SpamAssassin. Este demonio intenta filtrar los mensajes
spam.
• Sshd: El Shell seguro (SSH) demonio que permite a los usuarios conectarse al
servidor en una sesión de terminal a través de SSH.
• Syslogd: Demonio para el sistema de registro. Este se encarga de seguimiento
y registro de información del sistema acerca de su servidor web.
• Tailwatchd: Registro del servicio de vigilancia. Esta función demonio como un
marco para la creación fácil de interpretar los registros.
8
Puertos y Protocolos habilitados en cada servidor
(Por orden numérico)
Puerto Protocolo Protocolo de
Aplicación
Nombre del servicio
20-21 TCP Control FTP Servicio de publicacion FTP
25-26 TCP-UDP Smtp Servicio de correo
53 TCP-UDP DNS Servidor DNS
80 TCP Httpd Servicio web
110 TCP Pop3 Servicio de correo
143 TCP Imap Servicio de correo
443 TCP Https Servicio web
465 TCP Smtps Servicio de correo
993 TCP Imap sobre ssl Servicio de correo
2082-2083 TCP cpanel Servicio Cpanel
2086-2087 TCP whm Servicio web host manager
2095-2096 TCP webmail Servicio Webmail
3306 TCP mysql Servicio bbdd mysql
5432 TCP postgresql Servicio postgres
6666 TCP Logs Servicio de registros y logs
9
7786 TCP Logs Servicio de registros y logs
49222 TCP Ssh Servicio ssh
1.5. Organigrama de la empresa
1.6. Descripción del área en estudio
El área o departamento en el cual se aplicara el estudio ingenieril y la
implementación de seguridad, será el departamento de Soporte.
Al día de hoy, El departamento de Soporte presenta nula seguridad en los
sistemas de cada uno de los servidores ofrecido hacia los clientes/usuarios, por lo
cual hace de carácter urgente implementar un sistema de protección.
Este departamento es el encargado de prestar ayuda a los clientes del servicio
de webhosting mediante Tickets de Soporte, Mails o asistencia remota en sus
equipos cuando lo requiera la situación, generalmente estos problemas son
causados por la inexperiencia del cliente/usuario
CEO
Área comercial y administración
Área Proyectos Área Operaciones
Departamento comercial
Departamento administración
Departamento Soporte
Departamento Diseño Web
Departamento Programación y
Desarrollo
10
1.7. Modelo del área en estudio
1.8. Análisis crítico de la situación actual
La falta de seguridad implementada en cada uno de los servidores, hace que
la empresa pierda prestigio y presencia en el mercado, ya que los clientes/usuarios
quedan disconformes con el servicio prestado, el análisis crítico se vera reflejado a
fondo en la toma de requerimientos y la auditoria al sistema, donde saldrán a flote
falencias e inconvenientes en el sistema actual.
1.9. Alternativas de solución y propuesta
Como solución a los inconvenientes de seguridad que a simple vista de
presencian en el sistema, se implementara una serie de herramientas que servirán
11
para mejorar notablemente la seguridad y llevar a cabo un sistema informático
seguro, tomando como referencia el costo vs la utilidad o eficiencia de cada
herramienta, se presentan como candidatas a ser estudiadas ya que es un sistema
basado en Linux herramientas del tipo software libre con licencia GNU GLP.
Esta decisión se pretende llevar a cabo debido a que la empresa no cuenta
con fondos para desembolsar una cantidad de dinero en herramientas de seguridad y
en la capacitación de estas mismas eleva aun más el costo, por tal razón se decidió
por aplicaciones de licencia libre ya que su costo es cero y existe gran material de
apoyo así como comunidades abiertas las cuales prestan ayuda a las personas que
las utilizan, cabe destacar que el nivel de estas herramientas no tiene nada que
enviar a las de pago ya que su utilidad y eficiencia en algunos ámbitos de la
seguridad satisfacen y cumplen su labor.
1.10. Nuevo modelo de la alternativa
13
Introducción
En este capítulo se definirá quien es el cliente y el usuario, así como también
la(s) necesidades del área en estudio
La necesidad parte por proteger los archivos, que corresponden a las páginas
web, bases de datos y correos electrónicos de un equipo que llamaremos servidor,
debido al amplio manejo de archivos que maneja la empresa se debe seguridad a
sus clientes, ya que un mal servicio ofrecido genera desconfianza y la no aceptación
del servicio ofrecido por tal.
Luego de haber obtenido los requerimientos realizados a través de la auditoria
del sistema y de la entrevista con el encargado del departamento de soporte, se
procederá a identificar los objetivos generales y los específicos así como también los
usuarios que gozaran de este conjunto de herramientas a implementar para
aumentar la seguridad en el servidor.
14
2.1. Nombre del Proyecto
Implementación de Seguridad y Creación de Protocolos para un sistema de
Webhosting
2.2. Objetivos del Proyecto
Implementar un bastión en el sistema de webhosting para proteger la
información mediante un aporte ingenieril, además de la creación de protocolos para
el mismo sistema.
2.2.1. Objetivos Generales
Analizar, generar e implementar un sistema de detección temprana de
individuos que intentan acceder y tomar el control del servidor de servicios, por lo
tanto el servidor tendrá un conjunto de aplicaciones actualizadas a los requerimientos
necesarios de hoy respecto a seguridad de la información, con lo que se pretende
frenar los ataques y posibles vulnerabilidades en el servidor.
Este objetivo se pretende llevar a cabo mediante una solución inteligente y de
bajo costo, ocupando herramientas de software libre quedando a disposición de
todas las personas la opción de protegerse mediante ciertos eventos informáticos.
Por lo cual, es posible hacer una lista de los siguientes objetivos generales:
15
� Identificar las fallas de Seguridad relacionadas en el sistema de prestación de
servicios referente al Hosting, que comprende archivos, correos, bases de
datos, DNS, entre otros.
� Determinar los requerimientos necesarios para implementar las aplicaciones
donde se chequearan las dependencias necesarias para cada aplicación que
se quiera implementar en el sistema.
� Analizar y buscar la mejor configuración disponible para estos servicios,
obteniendo un resultado óptimo, donde además de pretender implementar
seguridad se aplicara una mejora de servicios al implementar los servicios de
protección.
2.2.2. Objetivos Específicos
Para implementar un sistema de detección de intrusos, las actividades
necesarias para este proyecto son:
� Verificar que recursos se deben proteger.
� Control de accesos a los recursos.
� Estudio del sistema de registros en los servidores.
� Amenazas y Vulnerabilidades en el sistema.
� Amenazas y Vulnerabilidades en el cliente.
� Estudio de las políticas de seguridad actuales.
� Generar nuevas políticas de seguridad para complementar las actuales.
� Reacciones manuales y automáticas ante eventos de seguridad.
� Instalación y configuración de las aplicaciones de Seguridad para su trabajo
en conjunto.
16
� Generar reportes automáticos de avisos de detecciones para la realización de
auditorías previas.
2.3. Usuarios del Sistema
Primero que nada, se separara el cliente del usuario, ya que para este
proyecto, nuestro cliente será el Jefe y Encargado del departamento de soporte de la
empresa y los usuarios será todo personaje que trabaje entregando soporte en la
empresa, ya que ocuparan las herramientas de forma directa brindando un mejor
servicio, por lo tanto es posible determinar qué:
2.3.1. Los Usuarios Directos
Será el personal que brinde y entregue el servicio de soporte para los clientes de la
empresa.
2.3.2. Los Usuarios Indirectos:
Serán todas las personas llamadas clientes de la empresa las cuales gozaran de sus
archivos mejor protegidos y la estabilidad de los servicios.
2.4. Metodología del plan de trabajo
Etapas de ejecución de los objetivos específicos:
� Definir los alcances y límites del proyecto de titulo.
� Investigar sobre herramientas de seguridad.
17
� Averiguar limitaciones legales de las herramientas.
� Aplicar un sistema de alertas en caso de emergencia.
� Probar e implementar las herramientas.
� Explicar y detallar como instalar las herramientas
2.5. Toma de Requerimientos y Auditoria del sistema
Para empezar a analizar la situación actual de la problemática de Seguridad,
se realizara una toma de requerimientos en base a una entrevista con el Encargado
del Departamento de Soporte Técnico para determinar la necesidad puntual y de
cómo se encuentra el sistema actualmente y que hace falta. Además se pretende
auditar el sistema encontrando falencias que puedan aportar aun más en la toma de
requerimientos para la implementación de un sistema de seguridad en el sistema
actual.
2.5.1. Toma de Requerimientos mediante Entrevista
La entrevista se realizado escrita, la cual fue enviada por correo electrónico y
puede ser vista en el anexo 9.
18
2.5.2. Auditoria del sistema
Actualmente los servidores se encuentran corriendo con el mínimo de
seguridad, tal como vienen por defecto. En algunos solo se ha instalado la aplicación
APF+BFD para bloquear las direcciones ips que intenten acceder al sistema a través
de cualquier método con muchos intentos fallidos (más de 5 intentos fallidos se
cuenta como ataque fuerza bruta).
Como no se presenta mayor seguridad, los procesos y demonios presentan
caídas en el sistema por el excesivo uso tanto de memoria ram como de cpu por
causa del mal uso de los clientes y terceras personas, por lo que se realizara un
estudio del sistema a continuación:
2.5.2.1. Análisis de Logs
Se procederá a instalar la aplicación Logwatch en un servidor (host3 como
ejemplo), para recopilar y auditar los registros(logs) del sistema que son:
exim_mainlog, exim_paniclog, exim_rejectlog, lastlog, maillog, messages,
rkhunter.log, secure, apf_log, chkserv.log, clam-update.log. De los anteriores
obtenemos las siguientes alertas a tomar en consideración (toma de un día al azar
(10-mayo-2011):
• BFD: alerta de ban (bloqueo) 4 IPs por accesos no validos al sistema.
• Clamav: alerta de actualización de su base de datos.
• Courier mail: Logins: 39986 veces.
• Cron: todas las tareas programadas ejecutadas al día del evento.
• Alertas de kernel: 170 Time(s): ip_conntrack: table full, dropping packet.
19
• 3 Alertas Bind: client xxx.xxx.xxx.xxx error sending response: host
unreachable: 1 Time(s)
• Conecciones pop fallidas 934 de 35851
2.5.2.2. Análisis de Permisos
Problema ocurrente, es el uso de permisos no permitidos a los usuarios,
generalmente personas sin conocimientos adquieren los servicios en búsqueda de
una plataforma para mostrarse en internet, como es una página web. Al momento de
realizar la instalación algunas carpetas y archivos quedan con permisos 0777 o es el
mismo usuario que asigna estos permisos sin saber el riesgo que se corre, como
riesgos, se puede tener presente que una persona externa intentaría hacer mal uso
realizando las siguientes prácticas:
• Subir phpshell al Hosting del cliente, para hacerse dueño del espacio y con
esto tomar el control de la cuenta.
• Subir Bots-spammers, donde se realizaran envíos masivos de publicidad.
• Subir pagina web para demostrar el logro de haber encontrado una
vulnerabilidad al resto de los internautas.
• Subir y cambiar archivos del cliente, técnica usual que consiste en cambiar
todos los archivos llamados index.* en el directorio del cliente, con el cual se
pierde la pagina inicial del sitio.
• Subir exploits a la cuenta y utilizarlos dentro de esta para obtener permisos de
root en el servidor.
• Crear Cronjobs en la cuenta para ejecutar un exploit cada cierto tiempo o
simplemente realizar “carga” en el CPU del servidor para botarlo.
20
Estas actividades maliciosas son las más conocidas referente al Hosting y
espacio compartido de servidores.
2.5.2.3. Análisis de Seguridad de Contraseñas
El uso de servicios del Hosting trae asociado cuentas, las cuales los usuarios
pueden acceder a los distintos servicios, cada cuenta trae consigo por seguridad una
contraseña asociada para restringir el acceso al sistema, por lo cual solo las
personas que posean el usuario y la contraseña pueden acceder a los servicios del
sistema, el inconveniente generado por este sistema es que al usuario se le da la
posibilidad de cambiar la contraseña inicial entregada por el sistema( contraseña
alfanumérica) por una contraseña que el usuario encuentre fácil de recordar, como:
• Una contraseña basada solo en números, catalogada fácil utilizando un
diccionario numérico con un ataque de fuerza bruta.
• Una contraseña basada en palabras del diccionario común, como por ejemplo
casa, perro, etc.
• Una contraseña basada en fechas, festividades, celebraciones, teléfonos,
entregan fácil acceso a conocidos que quisieran tener acceso privilegiado a
los datos (aquí entra en juego la ingeniería social).
2.5.2.4. Análisis de Aplicaciones
La siguiente vulnerabilidad encontrada es el uso de aplicaciones y/o servicios
sin actualizar o con versiones antiguas, con la cual se facilita el acceso a personas
ajenas al sistema para poder tomar atribuciones de súper usuario y realizar malas
prácticas en el servidor ocupando un bug. Dentro de estas aplicaciones van la
versión del Sistema Operativo del mismo servidor, apache, mysql, exim entre otros
21
demonios que corren al servicio de los usuarios, aunque según históricos del
servidor, los accesos no autorizados por usuarios intrusos al sistema buscan y se
favorecen de fallas de seguridad o bugs en los sistemas de soluciones informáticas,
como por ejemplo:
• Blogs (word press, joomla, nucleus, etc).
• Manejadores de Contenido (drupal, geeklog, etc.).
• Foros (phpbb).
• E-commerce (oscommerce, cubecart, zencart).
• Galerías de imágenes (coppermine photogallery, 4images gallery).
• Gestión de cursos (moodle).
Se destacaran Wordpress, Joomla, Moodle y phpbb de los anteriores, por su
uso global, es fácil encontrar agujeros de seguridad en ellos y vulnerarlos, la
instalación y el uso e instalación de estos gestores es rápida y fácil en un ambiente
Hosting cualquiera, la materia difícil es hacerlos robustos y seguros.
Otra de las vulnerabilidades, aunque escapan del servidor, es el uso de
programas en el computador de los usuarios-clientes, con el que interactúan con:
• El servicio de correos, como por ejemplo: Microsoft Outlook 2003, 2007 y su
versión Express, Mozilla Thunderbird, Windows Livemail los más conocidos.
• El servicio ftp, como por ejemplo winscp, filezilla.
• El servicio web, como Internet Explorer, Mozilla firefox entre los más
conocidos.
22
El problema yace cuando el usuario guarda sus contraseñas y su terminal se
infecta con algún troyano o virus, que captura los datos y son obtenidos por intrusos
que terminaran por acceder al sistema vulnerado por tal acción.
2.5.2.5. Análisis de la Base de Datos
Cada servidor cuenta en sí mismo con el servicio de bases de datos php con
mysql y postgres, trae consigo una aplicación en cpanel para trabajar con mysql que
es el phpmyadmin y para postgres trae una aplicación llamada phppgadmin. Estas
aplicaciones corren dentro del mismo servidor y es posible tener acceso solo del
mismo servidor en sí, o sea no es posible acceder desde una ubicación particular
para editar la base de datos, como ejemplo es imposible ocupar un programa gestor
de bases de datos como es el navicat para mysql, ya que los puertos están cerrados
y no acepta conecciones fuera de la red, solo locales.
2.5.2.6. Análisis del servidor de correo
Los correos trabajan con Courier o Dovecot, dependiendo de algunos casos y
solicitudes de algunos clientes, las diferencias de estos son:
Mail Server Ventajas Desventajas
Courier • Servidor tradicional para cpanel
con imap y pop3
• Extremadamente fiable
• Mayor consumo de
memoria
Dovecot • Bajo consumo de memoria
• Altamente configurable
• IMAP con mejor rendimiento
• El buzón de correo
basura, no es
automáticamente
borrado su
23
• Apoyo de Fastmail para
Blackberrys
contenido.
Se recomienda el segundo, para servidores con memoria limitada o
restringida. Cabe destacar que a menos el servidor de correo se encuentre
desactualizado no existirán problemas de seguridad.
2.5.2.7. Análisis del servidor de nombres
El servidor de nombres puede trabajar con Bind o con NSD, los cuales sus
diferencias son:
Name server Ventajas Desventajas
BIND • Los archivos de conf. de
zonas se pueden editar
manualmente.
• Extremadamente
configurable.
• Proporciona un servidor de
nombres cache.
• Extremadamente tolerante
con errores de sintaxis en los
archivos de zona.
• Ocupa más memoria
que su competidor.
NSD • Muy bajo consumo de
memoria.
• La conf. se genera
automáticamente.
24
• Extremadamente ligero.
• No necesita configuración
adicional necesaria.
• No proporciona un
Nameserver cache,
solo sirven zonas
(requiere un
Nameserver externo).
• Es necesario reiniciar
cada vez que las zonas
sean alteradas.
• Limita a 512 las
direcciones ip.
Los servidores de nombres se encuentran protegidos y nunca se han visto
afectados por problemas de ataques ni vulnerabilidades, cabe destacar que siempre
se mantienen con la última versión estable presente en cpanel.
Los problemas que se tiene son externos a la seguridad del servidor de
nombres, como que los usuarios escriban de mala forma o con datos faltantes sus
DNS entregados en el correo de activación por la empresa en nic.cl al momento de
registrar su nombre de dominio o en alguna entidad de la ICANN.
2.5.2.8. Análisis del Servidor Web
Las vulnerabilidades del servidor web pueden ser las siguientes: DDOS, que
es cuando se encuentra una vulnerabilidad en un sistema web y este es explotado
para que realice un excesivo consumo de memoria, consumiendo la memoria ram
totalmente del servidor, botando los servicios de otra áreas. También son conocidas
las peticiones time out que dejan en tiempo de espera, creando una cola enorme de
procesos aumentando los procesos en ram y en la cpu, es muy parecido al problema
anterior pero se puede manejar con la configuración del apache.
25
2.5.3. Que recursos proteger, creación de la matriz de criticidades
Luego del estudio de las vulnerabilidades, se requiere de la etapa de
generación de criticidades en el sistema, por lo que se generara una matriz por
servicios.
Servicio Criticida
d
Periodo
Critico(día)
Parada Max.
Tolerada
Plataforma Usuarios
FTP Baja noche 5 horas CentOS Clientes
Bases de
Datos
Media -
Alta
Todo el día 1 Hora CentOS Clientes
Correos Alta Mañana y
Tarde
30 minutos CentOS Clientes
DNS Media -
Alta
Todo el día 1 hora CentOS Clientes
Apache Alta Todo el día 30 minutos CentOS Clientes
Ssh Alta Mañana y
Tarde
5 minutos CentOS Personal
Soporte
Cabe destacar que todos los servicios son importantes, ya que gran parte de
estos dependen entre si, como lo es el servicio de DNS, ya que si este cae, el
usuario final no podrá acceder a las cuentas de correos y/o sus web, Si cae el
sistema de bases de datos no se podrán ver algunas páginas que trabajen con este
26
servicio (como son las paginas creadas en joomla, Wordpress, drupal, etc.), con
excepción del servicio ftp. No obstante los servicios de Correos y Apache podríamos
catalogarlos como dependientes de otros, pero a su vez al tener una caída no
afectan a otros servicios.
2.6. Planificación y Carta Gantt del proyecto
28
Introducción
Con el estudio del área y la solución se procederá a aplicar un aporte ingenieril
a la empresa, además que dependiendo de cada caso se investigara la herramienta
precisa para medir su eficiencia.
29
3.1. Aporte Ingenieril
En esta etapa, se procederá en la búsqueda e investigación de herramientas
para implementar una seguridad razonable en los servidores, se tomaran en cuenta
los registros y eventos producidos en cada servidor auditado, tomando la
recopilación del estudio del sistema actual y la toma de requerimientos según el
cliente, así también se tomara en cuenta los scripts y/o herramientas que más se
implementan en servidores Linux y el alojamiento compartido.
De las siguientes herramientas se vera su comportamiento in-situ en el
sistema y de qué manera ayudara en el sistema actual, si los resultados no
satisfacen, se vera la opción de complementar con otra herramienta o simplemente
cambiarla.
Cabe destacar que como principio de este proyecto se tomo el principio que
todas las aplicaciones implementadas son liberadas bajo la licencia GNU GPL y
como tales son de libre uso y redistribución de acuerdo con ella.
(Extracto de http://es.wikipedia.org/wiki/GNU_General_Public_License)La
Licencia Pública General de GNU o más conocida por su nombre en inglés GNU
General Public License o simplemente sus siglas del inglés GNU GPL, es una
licencia creada por la Free Software Foundation en 1989 (la primera versión), y está
orientada principalmente a proteger la libre distribución, modificación y uso de
software. Su propósito es declarar que el software cubierto por esta licencia es
software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a
los usuarios.
Se procederá en búsqueda de herramientas que solucionen problemas
actuales en el sistema (búsqueda reactiva), luego en herramientas que fomenten la
30
seguridad y ayuden en la recopilación de datos e información para tomar medidas
precautorias (búsqueda proactiva) así como envíos de información al administrador
del sistema a asegurar.
Para la inclusión de nuevas herramientas se presentara un formulario el cual
debe tener cierta información como requisitos y permisos que se solicitaran al
encargado y/o supervisor de los servidores para proceder a evaluar y luego instalar
estas herramientas. El formulario tipo será así (Ver Anexo 1, presente en el capitulo
anexos)
Así mismo en la búsqueda de posibles bugs o fallas de seguridad, personal de
soporte estará suscrito a Newsletter o Boletines, foros de información o listas de
correos donde día a día salen a la luz fallas de seguridad y vulnerabilidades así como
también parches y modificaciones en el sistema necesarios para cubrir la brecha
expuesta en el sistema.
Algunos boletines, foros y listas de correos que se recomiendan a seguir y que
serán suscritos por el personal de soporte serán:
• Informativos seguridad CentOS:
http://lists.centos.org/mailman/listinfo
http://www.centos.org/modules/newbb
• Informativos seguridad Linux
http://www.segu-info.com.ar/foro
http://foro.elhacker.net/index.php
http://www.securityfocus.com
31
http://blogofsysadmins.com
• Informativos seguridad whm
http://forums.cpanel.net
http://www.cpanel.net/mailing-list.html
• Informativos seguridad phpmyadmin
http://www.phpmyadmin.net/home_page/support.php
• Informativos seguridad CMS
http://joomlaspanish.org/foros
http://www.wpsecuritylock.com/blog
• Otros de actualidad e informática
http://www.dataprotectioncenter.com
http://blog.dynamoo.com
http://www.creattiva.cl/hosting
http://wiki.centos.org
32
3.2. Búsqueda de herramientas para frenar y solucio nar problemas actuales
(búsqueda reactiva)
3.2.1. Búsqueda de registros en el servidor
(Extracto de http://www.rediario.es/logwatch) Logwatch es un servicio de
monitorización y detección de intrusiones basado en el análisis de logs. Con una
frecuencia determinada analiza los logs del sistema y realiza un reporte que es
enviado de inmediato al administrador.
Básicamente, esta aplicación Logwatch ayuda en la lectura de la gran cantidad
de logs que son generados por los procesos del servidor, aunque es posible
consultar periódicamente cada registro, la tarea consume bastante tiempo y no
siempre ayuda a identificar los problemas que ocurren.
Esta es una herramienta de corre bajo cualquier distribución de Linux, de
licencia libre, además permite personalizar el sistema de análisis de registros por lo
cual su lectura será mucho más amena.
El formulario de instalación para esta aplicación se encuentra en el anexo dos.
La instalación y configuración de esta herramienta se encuentra en el capítulo
cuatro.
3.2.1.1. Evaluación de la aplicación
El aporte a los procesos de gestión de registros por soporte fue valorada, ya
que gestiona de manera rápida, ordenada y efectiva un conjunto de registros y
33
reportes en un solo archivo el cual es enviado por correo electrónico y almacenado
en el servidor según la configuración dada, el cual se puede imprimir y tener
almacenado de forma ordenada para llevar un registro de los cambios y/o estados en
que se puede encontrar de un día a otro o de una semana a otra cada servidor, se
procederá a instalar en todos los otros servidores, debido al gran aporte que genero
la aplicación y al poco consumo de recursos que genero al enviar los reportes.
3.2.2. Frenar una denegación de servicio
Como introducción a un ataque de denegación es posible saber que: (Extracto
de http://es.wikipedia.org/wiki/Ataque_de_denegacion_de_servicio) En seguridad
informática, un ataque de denegación de servicio, también llamado ataque DOS (de
las siglas en inglés Denial of Service), es un ataque a un sistema de computadoras o
red que causa que un servicio o recurso sea inaccesible a los usuarios legítimos.
Normalmente provoca la pérdida de la conectividad de la red por el consumo del
ancho de banda de la red de la víctima o sobrecarga de los recursos
computacionales del sistema de la víctima.
Se genera mediante la saturación de los puertos con flujo de información,
haciendo que el servidor se sobrecargue y no pueda seguir prestando servicios, por
eso se le dice "denegación", pues hace que el servidor no dé abasto a la cantidad de
usuarios. Esta técnica es usada por los llamados Crackers para dejar fuera de
servicio a servidores objetivo.
Una ampliación del ataque Dos es el llamado ataque distribuido de
denegación de servicio, también llamado ataque DDos (de las siglas en inglés
Distributed Denial of Service) el cual lleva a cabo generando un gran flujo de
información desde varios puntos de conexión.
34
La forma más común de realizar un DDos es a través de una botnet, siendo
esta técnica el cibera taque más usual y eficaz.
En ocasiones, esta herramienta ha sido utilizada como un notable método
para comprobar la capacidad de tráfico que un ordenador puede soportar sin
volverse inestable y perjudicar los servicios que desempeña. Un administrador de
redes puede así conocer la capacidad real de cada máquina.
Bien es sabido que es imposible parar un DDos bien “formado”, si es posible
detener un Dos o un DDos pequeño, balanceando por ejemplo las cargas.
Una de las herramientas destacadas para frenar este ataque es el DDos Deflate que
nació gracias a que un trabajador de la empresa Medialayer. Esta empresa sufría
continuos ataques de denegación de servicio. Para atajar ese problema, se pensó en
crear una solución Open Source para mitigarlos.
Ese día nació DDos Deflate, un script en Bash bastante efectivo para mitigar
ataques de denegación de servicio.
El formulario de instalación para esta aplicación se encuentra en el anexo tres.
La instalación de DDos Deflate es bastante sencilla, así como también su
configuración. Esta y su configuración se encuentra en el capítulo cuatro.
35
3.2.2.1. Evaluación de la aplicación:
La aplicación instalada cumple con los requisitos y la funcionalidad requerida
en el objetivo fijado, ya que según pruebas obtenidas y alertas recibidas en correo
del personal de soporte es posible detectar y bloquear de manera automática las ips
que se conectan de manera recursiva al servidor intentando bloquear ciertos
servicios como lo son correos (puerto imap y pop) así como también peticiones web
(puerto http). La alta tasa de falsos positivos hacen que esta aplicación sea tal vez
excesiva para su uso, por lo cual se procederá a editar nuevamente el archivo de
configuración de manera de regular la cantidad de conecciones de una dirección ip
con el servidor.
3.2.3. Detener de manera automática y eficaz a intr usos
En la búsqueda de una herramienta ágil y que ocupe pocos recursos, en
comparación a otras en la red, se encuentra una herramienta de fácil uso, manejable
solo por consola (ssh), gratuita y que ayude a detectar y frenar ataques de fuerza
bruta, así mismo dar alerta a través de un correo electrónico los intentos y
movimientos realizados por extraños así mismo los detalles.
Descripción de APF (extraída de http://www.rfxn.com/projects/advanced-
policy-firewall) Política de firewall avanzadas (APF) es un sistema de seguridad
basado en iptables (netfilter) diseñado en torno a las necesidades esenciales de los
servidores Linux hoy en día.
El formulario de instalación para esta aplicación se encuentra en el anexo
cuatro.
La instalación y configuración de esta herramienta se encuentra en el capítulo
cuatro.
36
3.2.3.1. Evaluación de la aplicación
Potente y eficaz aplicación, es posible facilitarle una ip para que deniegue el
acceso a nuestro sistema, así como también blanquear una ip para que tenga acceso
libre y sin bloqueos a él, es de manera necesaria el complemento que se instalará de
manera próxima para que su funcionalidad aumente.
Luego de configurar la aplicación a nuestros propósitos, es necesario
reiniciarla para que los cambios empiecen a trabajar en el sistema. Luego se procede
a instalar el complemento BFD que lo hará una herramienta más autónoma para
actual frente a los futuros ataques.
Descripción de BFD (extraída de http://www.rfxn.com/projects/brute-force-
detection) BFD es un script Shell modular para el análisis de registros de aplicación y
comprobación de errores de autenticación. Para ello, utiliza un sistema de reglas,
donde las conexiones a las aplicaciones se almacenan, incluyendo expresiones
regulares para cada formato de autenticación única. Las expresiones regulares son
analizadas en base a los registros, donde se obtienen alertas de autentificación y son
enviadas a la aplicación APF.
El formulario de instalación para esta aplicación se encuentra en el anexo
cinco.
La instalación y configuración de esta herramienta se encuentra en el capítulo
cuatro.
3.2.3.2. Evaluación de la aplicación
Instalado el complemento es posible detectar que APF + BFD es el punto de
partida para la seguridad del servidor, obteniendo un piso y base firme para seguir
implementando un sistema de seguridad completo, ya que de forma automática es
37
posible detectar y filtrar accesos no validos a su vez de bloquear estos, generando
una alerta que es enviada por correo electrónico al personal de Soporte con los datos
necesarios para tomar una decisión en forma oportuna.
3.3. Búsqueda de herramientas para complementar y o btener información
(búsqueda proactiva)
Para complementar las herramientas se ha procedido a ejecutar ciertos
comandos para regular los permisos y propietario de los usuarios, con el fin de
prevenir problemas de accesos no deseados a través del servidor, con esto se
pretende prevenir la instalación de shells no permitidas en el servidor y también de
exploits.
Debido a la poca experiencia que poseen algunos usuarios, se ha buscado la
forma que de forma automática, mediante un simple comando corregir los permisos
en carpetas 0777 así como los archivos 0777, que son un grave problema y brecha
en cada cuenta para la carga de exploits.
También es posible rectificar los permisos de los clientes de cada uno de sus
archivos, ya que hay muchos de estos que suben archivos de mala forma/manera y
estos quedan seteados como propietario “nobody” para lo cual a través de la línea de
comando por ssh se procederá a cambiar.
Cambiar permisos de las carpetas de forma global en el sistema:
Find /home/*/public_html/ -type d –perm 0777 –exec chmod 755 {} \;
Cambiar permisos de los ficheros de forma global en el sistema:
Find /home/*/public_html/ -type f –perm 0777 –exec chmod 644 {} \;
38
Para corregir los permisos de los ficheros es necesario saber que cuenta se
rectificara, pero primero es necesario chequear estos de la siguiente forma:
Find /home/$user/public_html/ -type f –name “*.*” –user nobody
Si existen detecciones, se procede a rectificar de la siguiente manera desde la
raíz de cada cuenta:
chown –R $user:$user public_html/
Luego de que se cambian los permisos de todos los archivos de forma
recursiva, se debe corregir para que pueda visualizarse de forma correcta en un
navegador de la siguiente forma
chown $user:nobody public_html
3.3.1. Como detectar malware en el sistema con LMD (Linux malware
detect)
Este es un software gratuito, desarrollado con licencia open source.
Básicamente es un detector de malware de aplicaciones web creado para un sistema
CentOS con WHM (Cpanel), contiene una base de datos la cual es actualizable a
través de un comando en ssh, analiza y desinfecta de manera rápida, también puede
trabajar en conjunto con el antivirus para Linux ClamAV ocupando el motor de este
para realizar un análisis más exhaustivo en el sistema y de mejor performance.
Este software es posible utilizarlo de 2 maneras, permite realizar escaneos
manuales o dejarlo de forma monitor, siendo el último posible manejar reportes
enviados a través de correos electrónicos para tener informes del sistema.
El formulario de instalación para esta aplicación se encuentra en el anexo seis.
39
La instalación y configuración de esta herramienta se encuentra en el capítulo
cuatro.
3.3.1.1. Evaluación de la aplicación
Excelente aplicación, de poco consumo de memoria y procesador al momento
de la búsqueda de malware en el sistema, se integra de excelente manera con el
antivirus clamAV (en caso que este instalado en el sistema) ya que usa el motor de
búsqueda de este, además de su base de datos, detecta de manera eficaz archivos
maliciosos en la carpeta que se elija al momento de configurar la aplicación. Así
como detecta archivos maliciosos detecta también falsos positivos pero en menor
cantidad. Al terminar un análisis envía un informe del análisis al correo registrado en
la configuración de la aplicación.
3.3.2. Como detectar malware y rootkits en el siste ma con Rkhunter
Según la definición (Extracto de http://es.wikipedia.org/wiki/Rootkit) Un rootkit
es una herramienta o un grupo de ellas, que tiene como finalidad esconderse a sí
misma y esconder otros programas, procesos, archivos, directorios, claves de
registro, y puertos que permiten al intruso mantener el acceso a un sistema para
remotamente comandar acciones o extraer información sensible.
Según wikipedia (Extracto de http://es.wikipedia.org/wiki/Rkhunter) esta es una
herramienta de Unix que detecta los rootkits, los backdoors y los exploit locales
mediante la comparación de los hashes MD5 de ficheros importantes con su firma
correcta en una base de datos en línea, buscando los directorios por defecto (de
rootkits), los permisos incorrectos, los archivos ocultos, las cadenas sospechosas en
los módulos del kernel, y las pruebas especiales para Linux y FreeBSD.
40
Debido a la gran cantidad de exploits que se pueden almacenar en los
directorios de los usuarios del servidor, se pretende evaluar esta aplicación de la cual
se han observados muy buenos comentarios a través de la red, ya que su código
fuente ha sido liberado el año 2006 por el cual 8 personas lo han ido mejorando y
administrando para llegar a ser lo que es hoy un cazador de rootkit (Rootkit hunter).
Esta aplicación además verifica el sistema buscando archivos maliciosos por:
• Comparación de hashes MD5
• Busca por archivos comunes usados por rootkits
• Permisos equivocados para binarios
• Busca por cadenas de texto sospechosas en módulos LKM (Loadable Kernel
Modules) y KLD (Kernel Loadable Device)
• Busca por archivos ocultos
• Opciones de escaneo dentro de archivos binarios y planos
Este scripts o aplicación es bastante completo, ya que así como sus
desarrolladores se preocupan de actualizar las versiones(es posible actualizar como
un antivirus en Windows esta herramienta con un simple comando) los
administradores cuentan con una lista de correos con las cuales compartir
conocimientos y dudas sobre este. ( http://sourceforge.net/mailarchive/forum.php?
forum_name=rkhunter-users)
El formulario de instalación para esta aplicación se encuentra en el anexo
siete.
La instalación y configuración de esta herramienta se encuentra en el capítulo
cuatro.
41
3.3.2.1. Evaluación de la herramienta
A pesar de ser una herramienta que no cuenta con interfaz grafica, su interfaz
a través de línea de comando es bastante simple y fácil de manejar, además de
rápida, el consumo de recursos tanto como memoria y procesador es realmente
mínimo, muy ligera y eficaz, cumple el objetivo fijado antes de instalar la herramienta,
además es posible actualizarla con solo un comando a través de consola, además de
analizar ficheros, busca posibles puertos que puedan estar comprometidos en el
sistema. Esta herramienta también envía reportes por correo, los cuales deben ser
asignados como un cron diario o semanal (según sea el criterio del administrador),
debido a los objetivos cumplidos se pretende instalar en todos los servidores esta
aplicación.
3.3.3. Suite de Seguridad en Linux
La Suite de Seguridad CFS & LFD es una completa solución de seguridad,
que integra un script cortafuego basado en iptables, un proceso de control de inicio
de sesión de autentificación, un panel de control con interfaz de configuración en el
gestor WHM, aunque también es posible administrarlo a través de línea de comando
por ssh, además de detectar la configuración en nuestro sistema(Web Host Manager)
y detectar las posibles vulnerabilidades en el sistema basadas en la configuración
en el servidor en Firewall, Servidor, ssh/telnet, mail, apache, php, whm y servicios del
servidor.
El formulario de instalación para esta aplicación se encuentra en el anexo
ocho.
La instalación y configuración de esta herramienta se encuentra en el capítulo
cuatro.
42
3.3.3.1. Evaluación de la aplicación
Completa suite de seguridad, ya que mezcla la configuración del servidor y da
puntos a cada opción asegurada, según parámetros configurados en el sistema con
un demonio de accesos fallidos, que bloquea las direcciones ips que son detectadas
realizando intentos de acceso mediante fuerza bruta, así mismo genera informes que
son enviados por correos según la configuración que se indique. Esta aplicación
genera informes con gráficos de los cuales se puede obtener y extraer valiosa
información para tomar medidas de seguridad e implementar nuevas reglas frente
casos de urgencia.
44
Introducción
Se procederá a implementar las herramientas elegidas en el capitulo anterior,
explicando como se hizo y los pasos a seguir, generando un casi tutorial de cada
instalación.
45
4.1. Implementación de herramientas para soluciona r vulnerabilidades.
Este capítulo se basa en la instalación, implementación y configuración de las
herramientas elegidas en nuestro aporte ingenieril, en donde se instalaran paso a
paso las herramientas para luego implementar una configuración optima a nuestros
servicios, que servirá mejorar el sistema informático ofrecido por la empresa.
4.1.1. Logwatch
Instalación de la aplicación:
Gracias a gestores como yum y rpm, es posible instalar Logwatch de manera
rápida, limpia y eficaz, destinando tiempo completo para configurar nuestra
herramienta, los pasos a seguir para la instalación son:
1. A través de línea de comando, ejecutamos lo siguiente: yum install logwatch
46
2. Muestra el paquete Logwatch con la última versión hasta el momento,
pregunta si es ésta la que se desea descargar, se acepta la petición
47
3. Se procede de forma automática a instalar la aplicación Logwatch. Ahora solo
resta configurar el archivo Logwatch.conf situado en: /etc/log.d/Logwatch.conf
Configuración de la aplicación:
La configuración de Logwatch para su óptimo funcionamiento será más
o menos así, teniendo en cuenta que:
Yes = True = On = 1
No = False = Off = 0
# Directorio por defecto de registros.
LogDir = /var/log
# Se puede reemplazar el directorio temporal por defecto (/tmp) aquí
TmpDir = /tmp
# Enviar reporte a la siguiente dirección
MailTo = [email protected]
# Si selecciona “yes” el reporte será enviado a la salida stdout y luego enviado
por correo.
Print = No
# Si se establece, los resultados serán guardados en la siguiente ruta, en lugar
de enviados #por correo o mostrados
#Save = /tmp/logwatch
# Usar todos los archivos de registros? Incluidos los registros antiguos?
Range = Today
48
# El valor por defecto del nivel de detalle del informe, Bajo=0, Medio=5,
Alto=10
Detail = high
# La opción de servicio espera un nombre de un filtro
# (En /etc/log.d/scripts/servicios/*) o "All".
Service = All
# Algunos sistemas tienen diferentes ubicaciones para enviar correos
mailer = /bin/mail
Luego de guardar la configuración, se deja un proceso cron para su
ejecución diaria, ingresando la siguiente línea en el archive ubicado en
/etc/crontab: 0 6 * * * root /usr/sbin/logwatch
4.1.2. Rkhunter
Instalación de la aplicación:
Esta aplicación se ha procedido a instalar bajando el instalador comprimido en
tar.gz desde su página de creación, desde el siguiente link:
http://sourceforge.net/projects/rkhunter/files/rkhunter/1.3.8/rkhunter-
1.3.8.tar.gz/download. Luego de la descarga se procede a descomprimirlo.
Se procede la instalación como muestra la siguiente captura de pantalla:
50
Finalmente, con la opción –c realiza un escaneo muy completo en el
sistema, el archivo de registro está ubicado en la siguiente ruta /var/log/rkhunter.log
por defecto, de la misma forma puede cambiarse el registro con la siguiente línea de
comando: rkhunter -c --sk --logfile /root/archivo.txt
Un escaneo normal (con la opción –c) tendrá un final de esta manera,
generando un reporte simple pero completo:
51
4.1.3. DDos Deflate
Instalación del script
En nuestra consola ssh se ingresan las siguientes líneas de comando:
wget http://www.inetbase.com/scripts/ddos/install.sh
chmod 0700 install.sh
./install.sh
Configurando DDos Deflate
Se editan las rutas para que encajen con la estructura de nuestro sistema:
PROGDIR=”/usr/local/ddos”
PROG=”/usr/local/ddos/ddos.sh”
IGNORE_IP_LIST=”/usr/local/ddos/ignore.ip.list”
CRON=”/etc/cron.d/ddos.cron”
APF=”/etc/apf/apf”
IPT=”/sbin/iptables”
Posteriormente, tendremos que adecuar las opciones restantes según la
naturaleza de la situación en la que estemos inmersos:
FREQ=1
# Frecuencia en minutos en la que el script será ejecutado
NO_OF_CONNECTIONS=50
# Número de conexiones para proceder a banear una supuesta IP atacante
52
APF_BAN=1
# 1 indica que DDoS Deflate usara APF para banear, o 0 llama directamente a
Iptables
BAN_PERIOD=3600
# Tiempo durante el cual el atacante estará baneado. En segundos
EMAIL_TO=”[email protected]”
# Dirección a la cual se enviara un correo cuando alguien sea baneado
KILL=1
# Con la opción en 0, los atacantes no serán baneados. 1 está activo por defecto.
Eyectamos el script como un cron de la siguiente manera
/usr/local/ddos/ddos.sh –c
4.1.4. APF y BDF
4.1.4.1. Iniciando la instalación de APF:
1. Se procede desde una consola, a través del puerto ssh a trabajar, se
descarga a través de wget* el archivo tar.gz de la aplicación APF:
53
2. Se descomprime el archivo descargado y se procede a la instalación
como a continuación:
3. Por defecto, APF configura algunos parametros de forma automatica y
escucha ciertos puertos mas vulnerables, que es posible editar.
Editar el archivo apf.conf a nuestro proposito:
54
El archivo apf.conf, es el encargado de poseer toda la configuracion de APF,
por lo cual se configura de la siguiente manera:(solo se mostrara la variable y su
comentario, notas irrelevantes a la configuracion no seran puestas a continuacion)
# [Dev. Mode] Manejar la aplicación en estado desarrollador
DEVM = "0"
##[Main]
# Ruta de instalación del cortafuegos
FWPATH = "/etc/apf"
# Interfaz de red no de confianza, todo el tráfico en la interfaz definida queda #sujeta
a las reglas del cortafuegos. Esto se debe a su exposición a Internet.
SI = "venet0"
# Interfaz de red de confianza, todo el tráfico en la interfaz definida no se vera
#afectado por las reglas del firewall.
TIF = ""
#Puerta de enlace Local dirección MAC, cuando un valor está presente, sólo el
#tráfico de la puerta de enlace local será permitido. Es muy trivial forjar una
#dirección mac y, como tal, esta se presenta como otra capa de verificación de
#rutas.
LGATE_MAC = ""
# Habilitar el subsistema de red virtual
EN_VNET = "0"
# Soporte de kernel monolítico.
MONOKERN = "0"
# [Filtrado de paquetes / Manejo]
# Default tipo de servicio (TOS)
DEF_TOS = "4"
# ¿Cómo manejar el filtrado de paquetes TCP?
# RESET (envía un tcp-reset, por defecto de TCP/IP)
# DROP (descartar el paquete, el sigilo?)
# REJECT (rechazar el paquete)
55
TCP_STOP = "DROP"
# ¿Cómo manejar el filtrado de paquetes UDP?
# RESET (envía un paquete icmp inalcanzable, TCP/IP por defecto)
# DROP (descartar el paquete, el sigilo?)
# REJECT (rechazar el paquete)
# Prohibir (envíe un icmp-anfitrión-prohibido)
UDP_STOP = "DROP"
# ¿Cómo manejar el filtrado de paquetes de otros? (ICMP, ARP, IGMP)
# DROP (descartar el paquete)
# REJECT (rechazar el paquete)
DSTOP = "DROP"
# Establecer un plazo razonable de paquetes/hora relación a los paquetes ICMP,
#superando dicho ratio de flujo de paquetes se traducirá en pérdida de paquetes.
# Pkt/s (paquetes/segundo), Pkt/m (paquetes/minuto)
ICMP_LIM = "14 / s"
# Usar una rutina de descubrimiento dinámico para analizar y crear reglas #basadas
en los servidores de nombres locales definidos en /etc/resolv.conf.
RESV_DNS = "0"
# Con RESV_DNS habilitado; todo el tráfico de nombre de servidor no confiable
#puede llenar los registros de tráfico.
RESV_DNS_DROP = "1"
# Participar en Mbone, mas información: www-itg.lbl.gov/mbone/
BLK_MCATNET = "0"
# Bloquear todas las direcciones IPv4 privadas
BLK_PRVNET = "0"
# Bloquear todo el espacio de direcciones IPv4 marcado reservado para uso futuro
BLK_RESNET = "0"
# Este es el número máximo de "sesiones" (entradas de seguimiento de
#conexiones) que se puede manejar al mismo tiempo por el cortafuegos en la
#memoria del kernel.
SYSCTL_CONNTRACK = "34576"
56
# Este sistema de control (sysctl) deshabilita algunas opciones TCP para mejorar el
#servicio y reducir el abuso del mismo.
SYSCTL_TCP = "1"
# Funciona para mitigar ataques syn-flood.
SYSCTL_SYN = "1"
# Proporcionar protección contra falsos paquetes ip/arp/redirecciones de ruta
SYSCTL_ROUTE = "0"
# Registra todo el tráfico en busca de intentos de ataque y eventuales
#inconvenientes en la red interna.
SYSCTL_LOGMARTIANS = "0"
# Permitirá activar o desactivar el soporte ECN (notificación explicita de #congestión)
SYSCTL_ECN = "0"
# Permite activar o desactivar SynCookies
SYSCTL_SYNCOOKIES = "1"
# Permite cambiar el apoyo Abort_On_Overflow;
# esta característica le ayudará a mitigar las inundaciones si un servicio de #escucha
es demasiado lento para aceptar nuevas conexiones. Esta opción es #una alternativa
para SynCookies.
SYSCTL_OVERFLOW = "0"
# Caída de puertos comunes, son los puertos implícitos que no requieren sesión
# con las reglas por defecto (drop chains).
CDPORTS = "135_139, 111,513,445,1433,1434,1234,1524,3127"
## [Entrada]
# Detallar a continuación los puertos que serán monitoreados y abiertos
# Entrada común de puertos TCP
IG_TCP_CPORTS = "20,21,22,25,26,53,80,110,143,443,465,993,995,1433,2082,
2083,2084,2086,2087,2095,2096,3306,6666,7786, 5432"
# Entrada común de puertos UDP
IG_UDP_CPORTS = "20,21,26,53,6277"
# Entrada común ICMP
IG_ICMP_TYPES = "3,5,11,0,26,30,8"
57
## [Egreso]
# Configuración de servicios aceptados de salida.
EGF = "0"
# Salida común de puertos TCP
EG_TCP_CPORTS = "21,25,26,80,443,43"
# Salida común de puertos UDP
EG_UDP_CPORTS = "20,21,26,53"
# Salida común ICMP
EG_ICMP_TYPES = "all"
## [Coincidencia de salida User-ID]
# Función para limitar los flujos de paquetes salientes a través del UID
# Puertos de salida TCP con UID
EG_TCP_UID = ""
# Puertos de salida UDP con UID
EG_UDP_UID = ""
# [Las importaciones]
# Configurar las reglas importadas
# Ocupar reglas DShield.org
USE_DS = "0"
DS_URL = "feeds.dshield.org/block.txt"
# block.txt (no *://)
DS_URL_PROT = "http"
# Protocolo para el uso de wget
# Importar /etc/apf/ad/ad.rules a la lista de prohibición generada por antidos
USE_AD = "0"
# Este es una implementación de reglas de la confianza (permitir/denegar_hosts), #
Que los archivos glob_allow/deny.rules deben ser descargado todos los días.
USE_RGT = "0"
GA_URL = "yourhost.com/glob_allow.rules"
# glob_allow.rules url (no *://)
GA_URL_PROT = "http"
58
# Protocolo para su uso con wget
GD_URL = "yourhost.com/glob_deny.rules"
# glob_deny.rules url (no *://)
GD_URL_PROT = "http"
# Protocolo para su uso con wget
## [Registros] Registro y ajustes de control
# Estado de la ruta de registro
IPTLOG = "/var/log/firewall_log"
# Registra todo el tráfico de entrada
LGATE_LOG = "0"
# Registra cadenas DROP TCP / UDP (necesario para antidos)
DROP_LOG = "1"
# Información de registro extendida
EXLOG = "1"
# Eventos máximos registrados en el cortafuego por minutos
LRATE = "60"
## [Misceláneos]
# Archivo interno de variable
CNFINT = "$ FWPATH / / bajo internals.conf"
# Importar variable interna del archivo
. $ CNFINT
4.1.4.2. Iniciando instalación de BFD
1. A través de ssh, descargamos con wget* la última versión del script bfd,
desde el sitio rfxnetworks.com.
59
2. Se descomprime el archivo tar.gz y luego ingresamos a la carpeta bfd-
1.4 y ejecutamos la siguiente línea de comando ./install.sh
3. Luego de haber instalado BFD, ingresamos al archivo de configuración
de este, para que trabaje a nuestros requerimientos.
Configurar y editar el archivo conf.bfd a nuestro propósito:
# El número de eventos de error que una dirección debe tener antes de ser
#bloqueada? Se puede anular esta en cada regla en /usr/local/bfd/rules/
TRIG = "10"
# Enviar alertas de correo electrónico para todos los eventos
EMAIL_ALERTS = "1"
# Usuario local o dirección de correo electrónico donde enviar las alertas (múltiples
#separados por comas)
60
EMAIL_ADDRESS = "[email protected]"
# Asunto en el correo de alertas enviado
EMAIL_SUBJECT = "Advertencia de fuerza bruta de $ HOSTNAME"
# Comando ejecutable de bloquear máquinas que atacan
BAN_COMMAND = "/etc/apf/apf -d $ATTACK_HOST {bfd.$MOD}"
# Ruta de instalación
INSTALL_PATH = "/usr/local/bfd"
# Ruta de los archivos de regla
RULES_PATH = "$INSTALL_PATH/rules"
# Ruta de registros de escritura
TLOG_PATH = "$INSTALL_PATH/tlog"
# Ruta de registros
KERNEL_LOG_PATH = "/var/log/messages"
# Ruta registro syslog
AUTH_LOG_PATH = "/var/log/secure"
# Ruta de registro de la aplicación
BFD_LOG_PATH = "/var/log/bfd_log"
# Registrar todos los eventos de syslog
OUTPUT_SYSLOG = "1"
# Ruta de archivo del registro de syslog
OUTPUT_SYSLOG_FILE = "$KERNEL_LOG_PATH"
# Plantilla del cuerpo del mensaje de correo electrónico
EMAIL_TEMPLATE = "$INSTALL_PATH/alert.bfd"
# Contiene una lista de direcciones de IPs que se excluyen de las detecciones
IGNORE_HOST_FILES = "$INSTALL_PATH/exclude.files"
# Agarrar la zona horaria local
Time_zone = date +"%z “
# Agarrar la hora local de unix
TIME_UNIX = date +"%s "
# Lock ruta del archivo
LOCK_FILE = "$INSTALL_PATH/lock.utime"
61
# Tiempo de espera de bloqueo
LOCK_FILE_TIMEOUT = "300"
Luego de editar el archivo conf.bfd, se procede a reiniciar el sistema a través
de la siguiente línea de comando “bfd –s”.
Plantilla de correo de muestra frente a una detección y/o ataque al sistema a
través de webmail y cpanel:
66
4.1.5. LMD (Linux malware detect)
Como instalar MLD:
1. Nos situamos en la ruta /usr/local/src y descargamos con wget el
siguiente paquete con la siguiente línea de comando wget
http://www.rfxn.com/downloads/maldetect-current.tar.gz
2. Luego de descomprimir el paquete se procede a instalar con el
siguiente comando ./install.sh
3. Luego de instalar, se procede a comprobar que hemos instalado la
última versión disponible con la línea de comando maldet --update-ver
67
4. Con la última versión disponible ya en el sistema, procedemos a
configurar nuestra aplicación a gusto, según nuestro propósito el
archivo de configuración que es conf.maldet tendrá el siguiente
contenido:
Se suprimirán los encabezados y comentarios que no sean de utilidad en la
configuración del archivo.
# [0 = desactivado, 1 = activado]
# [Alertas de correo electrónico]
# Enviar alerta de correo electrónico
email_alert = 1
# La línea de asunto de alertas de correo electrónico
email_subj = "maldet alerta de $ (hostname)"
# Las direcciones de destino para alertas de correo electrónico
EMAIL_ADDR = "[email protected]"
# [Opciones de cuarentena]
# Acción que se llevara a cabo luego de una detección (Cuidado Falsos positivos!)
# [0 = solo alerta, 1 = mover a cuarentena y alerta]
quar_hits = 0
# Tratar de limpiar el malware basado en inyecciones de cadena
quar_clean = 1
# Suspender la cuenta a través de cpanel cuando sea detectado un
malwarequar_susp = 0
# ID de usuario mínimo de los que se puede suspender, tener precaución para no
#suspender usuarios del sistema
quar_susp_minuid = 500
# [Opciones de escaneado]
# La profundidad máxima del escáner en la búsqueda
68
maxdepth = 15
# El mínimo en bytes de un archivo que se incluyen en el análisis
minfilesize = 32
# El tamaño máximo de un archivo para ser incluido en exploración
maxfilesize = "768k"
# La profundidad máxima de bytes que el escáner busca en el contenido de los
#archivos
Hexdepth = 61440
# Usar método FIFO para pasar el contenido del archivo en lugar de por defecto
#stdin, para un mejor rendimiento y mayor escaneo de profundidad
hex_fifo_scan = 1
# La profundidad máxima de bytes que el escáner busca en el contenido de los
#archivos ocupando FIFO
hex_fifo_depth = 524288
#Asociar con clamAV la aplicación maldet para mejorar la heurística de búsqueda
clamav_scan = 1
# [ANÁLISIS ESTADÍSTICO]
# La prueba de longitud de la cadena se utiliza para identificar las amenazas
#basadas en la longitud de la cadena más larga ininterrumpida dentro de un #archivo
string_length_scan = "0"
string_length = "150000"
# [Opciones de supervisión]
# La base de número de archivos que pueden ser vistos en una ruta
inotify_base_watches = 15360
# El tiempo de retraso en segundos entre que el monitor va a analizar los archivos
# y estos se han creado/modificado/movido
inotify_stime = 30
# El identificador de usuario mínimos desde donde se empezara el monitoreo
69
inotify_minuid = 500
# Directorio raíz desde donde se empezara el análisis para cada usuario
inotify_webdir = public_html
# La prioridad que el proceso tendrá de ejecución
# [= -19 Prioridad alta, 19 = prioridad baja, por defecto = 10]
inotify_nice = 10
Se procede a guardar el archivo de configuración para luego proceder a
realizar un escaneo manual de
prueba.
70
El correo como ejemplo del reporte anterior es el siguiente:
Existen distintas formas de escanear el sistema, pero se procederá a dejar la
aplicación de modo monitor para prevenir futuros problemas con la siguiente
sentencia en la línea de comando maldet –monitor users, al declarar “users” se
define la ruta o directorio definido en la variable inotify_webdir en el archivo de
configuración. Para ver los eventos(log) de la aplicación se realiza de la siguiente
forma tail –f /usr/local/maldetect/event_log
De la alerta enviada por correo, fue posible determinar qué:
{HEX}php.cmdshell.cih.210 :
/home/mercanci/public_html/download/embalajes_interiores_a_pedido.pdf.php
{HEX}php.cmdshell.c100.205 :
/home/pacific/public_html/ereur.php
71
Era malware, así mismo en el usuario pacific se encontró una aplicación
pishing para facebook.
4.1.6. Suite de Seguridad CFS & LFD (ConfigServer S ecurity & Firewall)
Instalación de la Suite
Primero que nada es necesario saber si el script APF está corriendo en el
sistema, por lo cual si detectamos su demonio, procederemos a desinstalar este
cortafuegos de la siguiente manera (todo esto en línea de comando ssh):
Esta línea para el demonio y elimina la carpeta del apf, además de limpiar iptables,
también elimina los procesos cron asociados a él.
Luego con wget se descarga el paquete suite y se descomprime para
instalarlo.
72
Al terminar la instalación, deberíamos obtener lo siguiente:
Se verifica la instalación mediante una testing, como a continuación:
Obteniendo como resultado que CSF debe funcionar en este servidor. El
próximo paso es ingresar a WHM en la siguiente ruta Pluggins –> ConfigServer
Security&Firewall y activar la suite con FIREWALL ENABLE.
Cabe destacar que para una perfecta utilización es necesario tener algunos
módulos de iptables activados en el kernel de Linux, que no se encuentran en la
73
versión 4.7 de CentOS, por lo que se sugiere para su optimo uso y tener todas las
opciones habilitadas actualizar la versión del kernel de servidor a un CENTOS 5.6.
Configuración de la suite
Existen 5 secciones para la configuración de la suite en donde se tiene:
• Server Security Information
• Upgrade
• Csf – Configserver firewall
• Lfd – Login Failure Daemon
• Extra
La sección Upgrade o Actualizar:
:
Es simplemente un script que verifica que nuestra suite de seguridad sea la
última versión y en caso que se encontrase desactualizada, avisa con un alerta al
momento de ingresar al panel de administración.
La sección Extra:
Es un script que chequea los módulos necesarios que son requeridos para
que csf funcione a la perfección. (Es necesario tener en cuenta lo comentado
párrafos atrás sobre la versión del kernel).
La sección Server Security Information:
74
Nos entrega una performance básica de seguridad, estabilidad y configuración
del servidor, donde es posible determinar brechas de seguridad, como en el siguiente
ejemplo:
Firewall Check Status Comment
Check whether csf is enabled OK
Check csf is running OK
Check whether csf is in TESTING mode OK
Check csf AUTO_UPDATES option OK
Check whether lfd is enabled OK
Check incoming MySQL port OK
Check csf SMTP_BLOCK option OK
Check csf LF_SCRIPT_ALERT option OK
Check csf LF_SSHD option OK
Check csf LF_FTPD option OK
75
Check csf LF_SMTPAUTH option OK
Check csf LF_POP3D option OK
Check csf LF_IMAPD option OK
Check csf LF_HTACCESS option OK
Check csf LF_MODSEC option OK
Check csf LF_CPANEL option OK
Check csf LF_CPANEL_ALERT option OK
Check csf LF_DIRWATCH option OK
Check csf LF_INTEGRITY option OK
Check csf PT_SKIP_HTTP option OK
Check csf PT_ALL_USERS option OK
Check csf SAFECHAINUPDATE option OK
Server Check Status Comment
Check /tmp permissions OK
Check /tmp ownership OK
Check /tmp is mounted as a filesystem OK
76
Check /tmp is mounted noexec,nosuid OK
Check /etc/cron.daily/logrotate for /tmp noexec
workaround OK
Check /var/tmp permissions OK
Check /var/tmp ownership OK
Check /var/tmp is mounted as a filesystem OK
Check /var/tmp is mounted noexec,nosuid OK
Check /usr/tmp permissions OK
Check /usr/tmp ownership OK
Check /usr/tmp is mounted as a filesystem or is a
symlink to /tmp OK
Check /dev/shm is mounted noexec,nosuid OK
Check for DNS recursion restrictions OK
Check for DNS random query source port OK
Check server runlevel OK
Check nobody cron OK
Check Operating System support OK
77
Check perl version OK
Check MySQL version OK
Check MySQL LOAD DATA disallows LOCAL OK
Check SUPERUSER accounts OK
Check for cxs WARNI
NG
You should
consider using cxs
to scan web script
and ftp uploads and
user accounts for
exploits uploaded to
the server
Check for IPv6 OK
Check for kernel logger OK
SSH/Telnet Check Status Comment
Check SSHv1 is disabled OK
Check SSH on non-standard port WARNI
NG
You should
consider moving
SSH to a non-
standard port
[currently:22] to
evade basic SSH
port scans. Don't
78
forget to open the
port in the firewall
first!
Check SSH PasswordAuthentication WARNI
NG
For ultimate SSH
security, you should
consider disabling
PasswordAuthentic
ation and only allow
access using
PubkeyAuthenticati
on
Check SSH UseDNS OK
Check telnet port 23 is not in use OK
Check shell limits OK
Check Background Process Killer OK
Mail Check Status Comment
Check root forwarder OK
Check exim for extended logging (log_selector) OK
Check exim weak SSL/TLS Ciphers
(tls_require_ciphers) OK
Check for maildir conversion OK
79
Check dovecot weak SSL/TLS Ciphers
(ssl_cipher_list) OK
Apache Check Status Comment
Check apache version OK
Check suPHP OK
Check Suexec OK
Check apache for mod_security OK
Check apache for FrontPage OK
Check apache for RLimitCPU OK
Check apache for RLimitMEM OK
Check Apache weak SSL/TLS Ciphers
(SSLCipherSuite) OK
Check apache for TraceEnable OK
Check apache for ServerSignature OK
Check apache for ServerTokens OK
Check apache for FileETag OK
Check mod_userdir protection WARNI To prevents users
80
NG from stealing
bandwidth or
hackers hiding
access to your
servers, you should
check WHM >
Security Center >
mod_userdir Tweak
PHP Check Status Comment
Check php version (/usr/local/bin/php) OK
Check php for enable_dl or disabled dl() WARNI
NG
You should modify
/usr/local/lib/php.ini
and set:
enable_dl = Off
This prevents users
from loading php
modules that affect
everyone on the
server. Note that if
use dynamic
libraries, such as
ioncube, you will
have to load them
directly in the PHP
configuration
(usually in
/usr/local/lib/php.ini)
81
Check php for disable_functions OK
Check php for ini_set disabled WARNI
NG
You should
consider adding
ini_set to the
disable_functions in
the PHP
configuration as this
setting allows PHP
scripts to override
global security and
performance
settings for PHP
scripts. Adding
ini_set can break
PHP scripts and
commenting out
any use of ini_set in
such scripts is
advised
Check php for register_globals OK
Check php for Suhosin OK
Check php open_basedir protection OK
WHM Settings Check Status Comment
Check cPanel login is SSL only WARNI You should check
82
NG WHM > Tweak
Settings > Always
redirect users to the
ssl/tls ports when
visiting /cpanel,
/webmail, etc.
Check boxtrapper is disabled OK
Check max emails per hour is set OK
Check whether users can reset passwords via email OK
Check whether native cPanel SSL is enabled OK
Check compilers OK
Check Anonymous FTP Logins OK
Check Anonymous FTP Uploads OK
Check pure-ftpd weak SSL/TLS Ciphers
(TLSCipherSuite) OK
Check FTP Logins with Root Password WARNI
NG
Allowing root login
via FTP is a
considerable
security risk and
should be disabled
WHM > FTP Server
Configuration >
83
Allow Logins with
Root Password >
No
Check allow remote domains OK
Check block common domains OK
Check allow park domains OK
Check cPAddons update email to owner OK
Check cPAddons update email to root OK
Check cPanel tree OK
Check cPanel updates OK
Check package updates OK
Check security updates OK
Check melange chat server OK
Check Accounts that can access a cPanel user
account
WARNI
NG
You should
consider setting this
option to "user"
after use. WHM >
Tweak Settings >
Accounts that can
access a cPanel
84
user account
Check cPanel php for register_globals OK
Check cPanel php.ini file for register_globals OK
Check cPanel passwords in email OK
Check core dumps OK
Check Cookie IP Validation OK
Check MD5 passwords with Apache OK
Check Referrer Blank Security OK
Check Referrer Security OK
Check HTTP Authentication OK
Check Security Tokens OK
Check Parent Security OK
Check Domain Lookup Security OK
Check SMTP Tweak OK
Check nameservers OK
Server Services Check Status Comment
85
Check server startup for cups OK
Check server startup for xfs OK
Check server startup for atd OK
Check server startup for nfslock OK
Check server startup for canna OK
Check server startup for FreeWnn OK
Check server startup for cups-config-daemon OK
Check server startup for iiim OK
Check server startup for mDNSResponder OK
Check server startup for nifd OK
Check server startup for rpcidmapd OK
Check server startup for bluetooth OK
Check server startup for anacron OK
Check server startup for gpm OK
Check server startup for saslauthd OK
Check server startup for avahi-daemon OK
86
Check server startup for avahi-dnsconfd OK
Check server startup for hidd OK
Check server startup for pcscd OK
Check server startup for sbadm OK
Your Score: 125/134*
134 (max)
125 (score)
*This scoring does not necessarily reflect the security of your server or the relative
merits of each check
Es posible obtener un resultado segun las sumatorias de las brechas, en el
servidor se tiene un resultado de 125, frente a 134 como puntaje máximo. Cabe
destacar que si se obtiene el valor 134 en puntaje el servidor no funcionara como
deseamos, debido a que ciertas opciones restringen de manera negativa en el
funcionamiento del servidor, por lo que es necesario correr algunos riesgos para
ofrecer un servicio simple para usuarios inexpertos y de calidad.
87
En esta sección es posible ver las reglas iptables existentes en el servidor y
obtener un grafico de estadísticas sobre lfd referente a:
También los bloqueos de lfd sobre las últimas 24 horas
89
La sección csf - ConfigServer Firewall:
Muestra un panel donde es posible ingresar direcciones IPs para filtrar de
forma temporal o fija y/o eliminar direcciones IPs que han sido capturadas por el lfd,
así mismo es posible manejar el estatus del firewall, tanto como iniciarlo, reiniciarlo o
pararlo.
Dentro de esta sección, el botón “firewall configuration” gestiona la
configuración donde es posible determinar que puertos tener a escucha de peticiones
y cuáles no, se recomienda cambiar algunos puertos por defecto, como lo es el
puerto 22(ssh) ya que gran cantidad de ataques que son detenidos por scripts de
fuerza bruta se realizan a este puerto. Se puede detallar la configuración en el
siguiente contenido:
90
##################################################################
# SECCIÓN: Configuración del puerto
##################################################################
# listas de puertos separados con coma para permitir entrantes TCP
TCP_IN = 20, 21, 22, 25, 53, 80, 110, 143, 443 , 465, 587, 993, 995, 2077, 2078,
2082, 2083, 2086, 2087, 2095, 2096, 49222, 26, 3306
# Permitir puertos salientes TCP
TCP_OUT = 20,21,22,25,37,43,53,80,110,113,443,587,873,2087,2089,2703
# Permitir puertos entrantes UDP
UDP_IN = 20,21,53
# Permitir puertos salientes UDP
UDP_OUT = 20,21,53,113,123,873,6277
# Permitir ping entrante
ICMP_IN = 1
# Establezca la dirección IP entrantes por tipo de paquete ICMP, para desactivar la
#limitación de la tasa establecida en "0"
ICMP_IN_RATE =1/s
# Permitir PING saliente
ICMP_OUT 1
# Establezca la dirección IP por cada tipo de salida de paquetes ICMP (hits por
#segundo permitido), por ejemplo, "1 / s", Se recomienda deshabilitar en servidores
#cPanel, este utiliza como prueba de ping para determinar rápido espejos para
#diferentes funciones
# Para desactivar la limitación de la tasa establecida en "0"
ICMP_OUT_RATE = 0
91
###################################################################
SECCIÓN: configuración general
##################################################################
# Por defecto, csf auto configura iptables para filtrar todo el tráfico excepto en
# El dispositivo de loopback. Si sólo desea reglas de iptables aplicada a un
#determinado interface, a continuación, en la siguiente lista
ETH_DEVICE =
# Si no deseas que las reglas iptables se apliquen a tarjetas de red específicas
ETH_DEVICE_SKIP =
# Habilitar esta opción si no desea bloquear todas las IP que han sido
# autentificadas utilizando POP antes de SMTP (es decir, son clientes válidos).
RELAYHOSTS = 1
# Habilitar esta opción si quieres hacer caso omiso de LFD, las direcciones IP de la
#lista de csf.allow además de csf.ignore.
IGNORE_ALLOW = 0
# Habilita la siguiente opción si desea aplicar las reglas de iptables al tráfico DNS (es
#decir, basándose en el seguimiento de conexiones de iptables). Al habilitar esta
#opción podría causar problemas de resolución de DNS hacia y desde el servidor,
#pero puede ayudar a Prevenir el abuso del servidor DNS local
DNS_STRICT = 0
# Limite el número de IP que guarda en el archivo /etc/lfd/csf.deny, esto puede ser
# Importante como un gran número de direcciones IP crear un gran número de
#iptables. Establezca a 0 para desactivar la limitación
DENY_IP_LIMIT = 100
# Limite el número de IP que se guarda en la lista de prohibición temporal IP. Si el
# límite es alcanzado el más antiguo en la lista de prohibición será eliminado y se
#deja independientemente de la cantidad de tiempo restante para el bloque
# Establezca a 0 para desactivar la limitación
DENY_TEMP_IP_LIMIT = 100
# Habilitar acceso demonio de detección de fallos (LFD). Si se establece a 0
92
#ninguno de las siguientes opciones tendrá ningún efecto en el demonio y no se
#iniciará.
LF_DAEMON = 1
# Comprobar si CSF parece haber sido detenido y reiniciar si es necesario,
# A menos que este en fase de prueba es permitido detenerse. La comprobación se
#realiza cada 300 segundos
LF_CSF = Valor predeterminado: 1
# Si se habilita esta opción, cada vez que una solicitud por línea de comando sea
#para reiniciar lfd, (Es decir,-s, - de inicio,-r, - reiniciar,-q, - startQ) las reglas de cfs
#se iniciaran juntas con las de lfd.
# Esta función puede ser particularmente útil para (re) configuraciones de partida
#con un gran número de normas, por ejemplo, los que utilizan el bloquear/permitir
#listas. También puede acelerar los tiempos de arranque.
LF_QUICKSTART = 0
# Activa la salida detallada de los comandos iptables
VERBOSE = 1
# Habilitar el filtrado de paquetes para los mismos no deseados o ilegales. Esto
#disminuirá las líneas de Iptables de los paquetes que ha considerado no válido.
PACKET_FILTER = 1
# Realizar búsquedas inversas DNS en direcciones IP.
LF_LOOKUPS = 1
#Es posible trabajar con reglas en IPv6, pero el servidor no tiene instalado y no
#soporta actualmente este modulo, por lo cual no se mostrara la configuración.
##################################################################
SECCIÓN #: configuración SMTP
##################################################################
# Bloquear conexiones smtp salientes a excepción de root, exim y mailman. Esto
#sustituye a la protección WHM> Ajustes de Configuración> Ajustes SMTP. Esta
93
#opción utiliza iptables ipt_owner/xt_owner módulo y debe cargarse para que
#funcione, que puede no estar disponible en algunas plataformas VPS. Nota: Ejecute
#el archivo /etc/csf/csftest.pl para comprobar si esta opción funciona en este servidor.
SMTP_BLOCK = 0
#Si SMTP_BLOCK está habilitado, pero desea permitir las conexiones locales en el
#puerto 25, en el servidor a continuación, habilite esta opción para permitir
#conexiones SMTP salientes en el dispositivo de loopback
SMTP_ALLOWLOCAL = 0
# Esta es una lista separada por comas de los puertos que desea bloquear. Se
#deben poner todos los puertos de exim en donde está configurado para escuchar
SMTP_PORTS = 25,26
# Siempre que los usuarios de la coma después de separados y los grupos de
#bypass SMTP_BLOCK. Nota: root (UID: 0) siempre se le permite.
SMTP_ALLOWUSER = cpanel
SMTP_ALLOWGROUP = mail, mailman
##################################################################
# Sección: Configuración del Flodeo de puertos
##################################################################
# Habilitar la protección SYN Flood. Esta opción permite configurar iptables para
#ofrecer protección de paquetes SYN tcp en DOS.
SYNFLOOD = 0
SYNFLOOD_RATE = 100/s
SYNFLOOD_BURST = 150
#Conexión de Protección Límite. Esta opción permite configurar iptables para
#ofrecer más protección contra ataques DoS, contra los puertos específicos.
#también puede ser utilizado como una forma de limitar simplemente el uso de
#recursos mediante la dirección IP a los servicios del servidor específico.
# Esta opción limita el número de conexiones simultáneas por dirección IP
# que se puede hacer para puertos específicos. Esta función no funciona en los
94
#servidores que no cuentan con el módulo de iptables.
CONNLIMIT =
# Puerto de Protección contra Inundaciones. Esta opción permite configurar iptables
#para ofrecer protección de los ataques de denegación de servicio contra los puertos
#específicos. Esta opción limita el número de nuevas conexiones por intervalo de
#tiempo que se puede hacer para puertos específicos. Esta función no funciona en
#los servidores que no cuentan con el módulo de iptables Ipt_recent cargado, por lo
#general, esto será con los núcleos monolíticos.
PORTFLOOD =
##################################################################
# Sección: Configuración de registro
##################################################################
# Registra los mensajes de SYSLOG LFD, además de /var/log/lfd.log. Se debe
#tener el modulo Perl Sys:Syslog instalado para utilizar esta función
SYSLOG = 0
#rechazar objetivos de las reglas de iptables. Esto se puede establecer como
#DROP o REJECT, REJECT enviará de vuelta un paquete de error, DROP no
#responde en absoluto. RECHAZAR es más cortés, sin embargo, no proporciona
#información adicional a un hacker y les hace saber que un firewall está bloqueando
#sus intentos. DROP cuelga sus conexiones, con lo frustrados intentos de escaneo
#de puertos en el servidor.
DROP = DROP
# Habilitar el registro de conexiones bloqueadas a los puertos bloqueados a syslog,
#por lo general en /var/log/messages esta opción debe estar habilitada para usar el
#seguimiento de escaneo de puertos
DROP_LOGGING = 1
# Habilitar el registro de conexiones en direcciones IP bloqueadas en csf.deny o
# por lfd con bloques temporales de seguimiento de conexiones
# Esta opción estará desactivada si habilita el seguimiento de escaneo de puertos
95
#(PS_INTERVAL)
DROP_IP_LOGGING = 0
# Sólo registrar las conexiones reservadas.
DROP_ONLYRES = 0
# Puertos comúnmente bloqueados que no quieren el registro, ya que tienden a
#llenar sólo el archivo de registro. Estos puertos están bloqueados específicamente
“aplicado a TCP y UDP protocolos para las conexiones entrantes.
DROP_NOLOG = 67,68,111,113,135:139,445,500,513,520
# Registra los paquetes perdidos por la opción de filtrado de paquetes
#PACKET_FILTER
DROP_PF_LOGGING = 0
# Registra los paquetes perdidos por el límite de conexión CONNLIMIT. Si Esta
#opción está activada y el Puerto de seguimiento de exploración (PS_INTERVAL)
#está habilitada también, las direcciones ips que rompan el límite de conexión
#también podrían ser bloqueadas.
CONNLIMIT_LOGGING =
# Envía una alerta si el archivo de registro detecta que lfd se salta el registro.
LOGFLOOD_ALERT = 0
# Configurar CSF para ver las direcciones IP. Esta opción se agregará arriba para el
#recorrido del paquete a través de iptables y el registro de syslog.
WATCH_MODE = 0
####################################################################
# SECCION: Configuración de Reportes
####################################################################
#LFD enviará correos electrónicos de alerta con plantilla de alerta correspondiente a
LF_ALERT_TO =
# LFD enviará correos electrónicos de alerta con la plantilla de alerta desde
96
LF_ALERT_FROM =
# Además de las alertas por email LFD estándar, tiene la posibilidad de permitir el
# envío de informes X-ARF (véase http://www.x-arf.org/specification.html). sólo
# Bloqueos de alertas se enviaran.
# Estos informes se encuentran en un formato aceptado por los varios propietarios
#de Netblock y podría ayudar a investigar los abusos. Esta opción no está diseñado
#para habilitarse automáticamente por lo cual se previenen los falsos positivos
# Nota: Los bloques siguientes no se informan a través de esta función:
# LF_PERMBLOCK, LF_NETBLOCK, LF_DISTATTACK, LF_DISTFTP, RT_ *
#_ALERT
X_ARF = 0
# Por defecto, LFD enviará correos electrónicos a root. ajuste de la
# opción siguiente para anular el destinatario
X_ARF_FROM =
# Por defecto, LFD enviará correos electrónicos a la agente de la raíz.
#Establecimiento de los siguientes
# Opción anulará esta
X_ARF_TO =
# El bloqueo de reportes, LFD puede ejecutar un script externo cuando se lleva a
#cabo el bloqueo de dirección IP, por ejemplo, un fallo de inicio de sesión. La
#siguiente configuración es para dar la ruta completa del script externo a correr
# Deje en blanco esta opción para deshabilitar
BLOCK_REPORT =
##################################################################
# SECCIÓN: Temporal a Permanente / Configuración Netblock
##################################################################
# Lo siguiente habilita esta característica para Bloquear permanentemente las
#direcciones IP que se han bloqueado temporalmente más que
97
# LF_PERMBLOCK_COUNT veces en el segundo LF_PERMBLOCK_INTERVAL
#segundos. Elegir LF_PERMBLOCK a "1" para activar esta función
# Necesita ser tomado con cuidado al establecer el valor
#LF_PERMBLOCK_INTERVAL que tiene que ser Por lo menos mayor que
#LF_PERMBLOCK_COUNT (TTL) de IP bloqueadas, para ser efectivo.
# Establezca LF_PERMBLOCK a "0" para desactivar esta función
LF_PERMBLOCK = 1
LF_PERMBLOCK_INTERVAL = 86400
LF_PERMBLOCK_COUNT = 4
LF_PERMBLOCK_ALERT = 1
# Permanentemente bloquear IPs de clase de red. Lo siguiente habilita esta
#característica Para bloquear permanentemente las clases de dirección IP en
#direcciones IP individuales Dentro de la misma clase LF_NETBLOCK_CLASS ya
#se han bloqueado más de LF_NETBLOCK_COUNT veces en
#LF_NETBLOCK_INTERVAL segundos. Elegir LF_NETBLOCK a "1" para activar
#esta función esto puede ser una manera afectiva para bloquear los ataques DDoS
#lanzado desde el interior de la red validas configuraciones para
#LF_NETBLOCK_CLASS son "A", "B" y "C", atención y consideración es necesario
#tener cuando se bloquea las clases A o B de la red Establezca LF_NETBLOCK a
#"0" para desactivar esta función
LF_NETBLOCK = 0
LF_NETBLOCK_INTERVAL = 86400
LF_NETBLOCK_COUNT = 4
LF_NETBLOCK_CLASS = C
LF_NETBLOCK_ALERT = 1
##################################################################
# Sección: Global / Listas DYNDNS / Listas negras
##################################################################
# Actualización de la cadena Segura. Si se activa, todas las cadenas de
98
#actualización dinámica GALLOW*, GDENY*, SPAMHAUS, DSHIELD, BOGON,
#CC_ALLOW, CC_DENY, ALLOWDYN*) se creará una nueva cadena en la
#actualización y la insertara en la correspondiente cadena
#LOCALINPUT/LOCALOUTPUT, luego se reemplaza la vieja cadena y se reemplaza
#por la nueva.
# Esto previene que se cree una pequeña ventana de oportunidades en la
#actualización y reemplazo de las reglas.
# Esta opción no debe estar habilitado en los servidores con largas cadenas
#dinámicas (por ejemplo, CC_DENY/listas CC_ALLOW) y baja memoria. Tampoco
#debe ser habilitado en servidores VPS Virtuozzo con un valor restringido. Esto es
#porque cada cadena efectivamente se duplicará, mientras que la actualización se
#produce, duplicando el número de reglas de iptables.
SAFECHAINUPDATE = 1
# Si desea permitir el acceso a los registros de DNS dinámico (por ejemplo si tu IP
# Cambia de dirección cada vez que se conecte a Internet, pero usted tiene un
#registro de DNS dinámico de dyndns.org), entonces usted puede mostrar el
#nombre completo de registros en csf.dyndns y luego establecer el siguiente con el
#número de segundos en el rango por un cambio en la dirección IP. Si la dirección IP
#ha cambiado iptables será actualizado.
# Un valor de 600 significa comprobar si hay actualizaciones IP cada 10 minutos.
#Establecer el valor en 0 para desactivar esta función
DYNDNS = 0
# Para ignorar siempre las direcciones IP en el bloqueo de DYNDNS LFD,
#establecer las siguientes opción en 0
DYNDNS_IGNORE = 0
# Las opciones de seguimiento global le permite especificar una dirección URL en
#donde CSF puede tomar una copia centralizada de una IP para permitir o denegar
#en la lista de bloqueo de su cuenta. Es necesario especificar la URL completa en
#las siguientes opciones, como por ejemplo: Http://www.somelocation.com/allow.txt
# La recuperación real de estos IP es controlado por LFD, por lo que es necesario
99
#establecer LF_GLOBAL en el intervalo (en segundos) cuando desee que LFD
#recupere. LFD llevará a cabo la recuperación cuando se ejecute y luego otra vez a
#la hora especificada según el intervalo. Un intervalo razonable sería
#probablemente cada 3600 segundos (1 hora).
# No es necesario utilizar la función permitir y denegar desde un archivo.
# También se puede configurar un patrón global para IPs a ignorar.
LF_GLOBAL = 0
GLOBAL_ALLOW =
GLOBAL_DENY =
GLOBAL_IGNORE =
# Proporciona la misma funcionalidad que DYNDNS pero con un archivo URL
#GLOBAL. Conjunto a esto la URL del archivo contiene entradas DYNDNS
GLOBAL_DYNDNS =
# Establezca la siguiente acción en números de segundos para sondear un cambio
#de IP
GLOBAL_DYNDNS_INTERVAL = 600
# Para ignorar siempre las direcciones IP en el bloqueo de GLOBAL_DYNDNS
#LFD, establecer con 1 la siguiente opción
GLOBAL_DYNDNS_IGNORE = 0
# Habilitar el bloqueo de rango de direcciones IP usando la Lista de bloqueo
#DShield en Http://feeds.dshield.org/block.txt Para activar esta función, establezca
#lo siguiente para el intervalo en segundos que se desea en la lista de bloqueo
#actualizada. La lista es bastante estática durante la duración de un día, por lo que
#sería conveniente actualizar sólo una vez cada 24 horas, por un valor de "86400"
#que se recomienda.
LF_DSHIELD = 0
# La lista URL del bloque DShield. Si cambia esta lista a otra cosa, debe estar
#seguro de que está en el mismo formato que la lista de bloqueo
LF_DSHIELD_URL = http://feeds.dshield.org/block.txt
# Habilitar el bloqueo de rango de direcciones IP utilizando la lista Spamhaus en
100
# Http://www.spamhaus.org/drop/index.lasso para activar esta función, establezca lo
#siguiente para el intervalo en segundos que se desea la lista de bloqueo
#actualizada. La lista es bastante estática durante la duración de un día, por lo que
#sería conveniente actualizar sólo una vez cada 24 horas, por lo un valor de
#"86400" se recomienda
LF_SPAMHAUS = 0
# La lista Spamhaus de bloqueo. Si cambia esta a otra cosa, debe estar seguro de
#que está en el mismo formato que la lista
LF_SPAMHAUS_URL = http://www.spamhaus.org/drop/drop.lasso
# Habilitar el bloqueo de rango de direcciones IP utilizando la lista de Bogon en
# Http://www.cymru.com/Bogons/ para activar esta función, establezca lo siguiente
#para el intervalo en segundos que se desea la lista de bloqueo actualizada. La lista
#es bastante estática durante la duración de un día, por lo que sería conveniente
#actualizar sólo una vez cada 24 horas, por un valor de "86400" se recomienda.
# No utilice esta opción si el servidor utiliza IPs en la lista Bogon (por ejemplo, este
# Es a menudo el caso con los servidores detrás de un firewall NAT con
#enrutamiento IP)
LF_BOGON = Valor predeterminado: 0
# La lista URL Bogon. Si cambia esta a otra cosa debe estar seguro de que
# Está en el mismo formato que la lista
LF_BOGON_URL = http://www.cymru.com/Documents/bogon-bn-agg.txt
##################################################################
#SECCIÓN #: Listas Código de País y Configuración
##################################################################
# Código de país para CIDR permitir / bloquear. En las siguientes dos opciones se
#pueden permitir o negar toda rangos CIDR de un país. Los bloques CIDR se
#generan a partir de la base de datos Maxmind Geolite
#http://www.maxmind.com/app/geolitecountry y todo se basa en que el servicio está
#disponible.
101
# Especifica de dos letras “ISO Country Code”. Las reglas de iptables son solo para
#Conexiones entrantes.
# Advertencia: Estas listas no son 100% exactas y algunos utilizan ISP (por
#ejemplo, AOL) No designaciones geográficas de direcciones IP para sus clientes
# Advertencia: Algunas de las listas de CIDR son enormes y cada una requiere una
#regla en la cadena de iptables entrante. Esto puede resultar en un rendimiento
#significativo de gastos generales y podría hacer que el servidor este inaccesible en
#algunas circunstancias. Para esta razón (entre otras), no recomendamos el uso de
#estas opciones.
# Advertencia: Debido a las limitaciones de recursos en los servidores VPS esta
#función no se debe utilizar en sistemas, a menos que usted elija zonas muy
#pequeñas
# Advertencia: CC_ALLOW permite el acceso a través de todos los puertos en el
#firewall. Por esta razón CC_ALLOW probablemente tiene un uso muy limitado
# Cada opción es una lista separada por comas de Country Code, por ejemplo,
#"EE.UU., GB, DE"
CC_DENY =
CC_ALLOW =
# Una alternativa a CC_ALLOW es sólo permitir el acceso de los siguientes
# Países, pero aún filtro basado en el puerto y las reglas de paquetes. Todas las
#demás conexiones se caen
CC_ALLOW_FILTER =
# Esta lista Código de país evitará LFD desde el bloqueo de accesos dirección IP
#de la CC cotizada
CC_IGNORE =
# Informar código de País y País de las direcciones de reportes. Esta opción puede
#ser configurada para usar la base de datos o el País en MaxMind (más detallado y
#mucho más grande y más lento por lo tanto).
# "0" - desactivar
# "1" - Informes: código de país y país
# "2" - Informes: Código de país y país y región y la ciudad
102
CC_LOOKUPS = 1
# Esta opción le indica la frecuencia con la que LFD recuperara Códigos de la base
#de datos de Maxmind GeoLite para CC_ALLOW, CC_ALLOW_FILTER,
#CC_DENY, CC_IGNORE y CC_LOOKUPS (en Días)
CC_INTERVAL = 7
##################################################################
# SECCIÓN: Bloqueo de Accesos de Fallas y alertas
##################################################################
# La siguiente [*] Los factores desencadenantes son de aplicación específica. Si se
#establece a LF_TRIGGER
# "0" el valor de cada disparo es el número de fallos en contra de que
# Aplicación que dará lugar a LFD para bloquear la dirección IP
# Si se establece LF_TRIGGER a un valor mayor que "0", entonces lo siguiente [*]
# Desencadena la aplicación son simplemente activar o desactivar ("0" ó "1") y el
#valor de LF_TRIGGER es que el número total de fallos que dará lugar a LFD
# Para bloquear la dirección IP Configuración de la aplicación de disparo a "0" se
#desactiva
LF_TRIGGER = 0
# Si se LF_TRIGGER> "0", entonces LF_TRIGGER_PERM se puede ajustar a "1" de
#manera permanente bloquear la dirección IP, o LF_TRIGGER_PERM se puede
#ajustar a un valor mayor que "1" y la dirección IP será bloqueada temporalmente
#para que el valor en cuestión de segundos. Por ejemplo: LF_TRIGGER_PERM = "1"
#=> la IP está bloqueada de forma permanente LF_TRIGGER_PERM = "3600" => la
#IP está bloqueada temporalmente por una #hora Si LF_TRIGGER es "0", entonces
#la aplicación LF_ [aplicación] valor _PERM #obras de la misma manera que el
#anterior y LF_TRIGGER_PERM no tiene ninguna función.
LF_TRIGGER_PERM = 1
# Para bloquear sólo el acceso a la solicitud no en lugar de un bloque completo
# Para obtener una dirección IP, se puede establecer lo siguiente a "1", pero se debe
103
#LF_TRIGGER A "0" con aplicación específica [*] niveles de activación también un
#valor apropiado
LF_SELECT = 0
# Enviar una alerta por e-mail si una dirección IP está bloqueada por una de las [*]
#activa
LF_EMAIL_ALERT = 1
# [*] Activar la detección de inicio de sesión el fracaso de las conexiones de sshd
LF_SSHD = 5
LF_SSHD_PERM = 1
# [*] Activar la detección de inicio de sesión el fracaso de las conexiones ftp
LF_FTPD = 10
LF_FTPD_PERM = 1
# [*] Activar la detección de inicio de sesión SMTP falta de conexiones AUTH
LF_SMTPAUTH = 5
LF_SMTPAUTH_PERM = 1
# [*] Activar la detección de inicio de sesión el fracaso de las conexiones POP3
LF_POP3D = 10
LF_POP3D_PERM = 1
# [*] Activar la detección de inicio de sesión el fracaso de las conexiones IMAP
LF_IMAPD = 10
LF_IMAPD_PERM = 1
# [*] De inicio de sesión Activar la detección de fallos de Apache. Conexiones
#htpasswd debido a la frecuencia alta tasa de registro en el registro de errores de
#Apache, es posible que desee activar esta opción sólo si sabe que está sufriendo
#de ataques contra directorios protegidos contraseña
LF_HTACCESS = 5
LF_HTACCESS_PERM = 1
# [*] De inicio de sesión Activar la detección de fallos de cpanel, webmail y whm
#conexiones
LF_CPANEL = 5
LF_CPANEL_PERM = 1
104
# [*] Activar la detección de fallos de gobierno repite Apache mod_security dispara
# Debido a la frecuencia alta tasa de registro en el registro de errores de Apache, es
#posible que desee activar esta opción sólo si sabe que está sufriendo de ataques
#contra scripts web
LF_MODSEC = 5
LF_MODSEC_PERM = 1
# [*] Activar la detección de BIND negó repetidas peticiones esta opción debe estar
#habilitada con precaución ya que evitará que IPs bloqueadas resolver los dominios
#en el servidor. Es posible que desee establecer el valor de disparo razonablemente
#alto para evitar este. Ejemplo: LF_BIND = "100"
LF_BIND = 0
LF_BIND_PERM = 1
# [*] Activar la detección de repetidas alertas suhosin
# Ejemplo: LF_SUHOSIN = "5"
LF_SUHOSIN = 0
LF_SUHOSIN_PERM = 1
# Enviar una alerta por correo electrónico si los registros de cualquiera de éxito a
#través de SSH
LF_SSH_EMAIL_ALERT = 1
# Enviar una alerta por email si alguien usa su para acceder a otra cuenta. Esto
# Enviar un correo electrónico de alerta si el intento de usar su tuvo éxito o no
LF_SU_EMAIL_ALERT = 1
# Esta opción se mantendrá un registro del número de "El archivo no existe" errores
#en la HTACCESS_LOG. Si el número de visitas es más que LF_APACHE_404 en
#LF_INTERVAL segundos, entonces la dirección IP será bloqueada
#Cuidado debe utilizarse con esta opción, ya que podría generar muchos
# Falsos positivos, especialmente en Motores de Búsqueda (uso csf.rignore hacer
#caso omiso de robots de este tipo) Por lo que sólo utilice esta opción si usted sabe
#que está en este tipo de ataque un valor razonable para esto sería muy alto, tal vez
#200 Para desactivar a "0"
105
LF_APACHE_404 = 0
# Si esta opción se establece en 1 de los bloques será permanente
# Si esta opción es> 1, los bloques serán temporales para el número especificado
# De segundos
LF_APACHE_404_PERM = 3600
# Enviar una alerta por email si alguien tiene acceso a WHM/cPanel a través de una
#cuenta que aparece en
# LF_CPANEL_ALERT_USERS. Una dirección IP se informó de nuevo una hora
#después de la
# Acceso a la última de seguimiento (o si se reinicia LFD)
LF_CPANEL_ALERT = 1
# Esta es una lista separada por comas de las cuentas para enviar alertas. Para
#enviar un alerta para todas las cuentas se configura en "todos", Compruebe que
#está utilizando la plantilla más cpanelalert.txt si se establece este Para otra cosa
#que la "raíz" para evitar confusión en los informes por correo electrónico
# (Es decir, cambiar el nombre de /etc/lfd/cpanelalert.txt.new a /etc/lfd/cpanelalert.txt)
LF_CPANEL_ALERT_USERS =
# Esta configuración se vuelve a activar las cadenas de ancho de banda cPanel
#después de iptables es
# Configurado. Si bandmin no está funcionando, o no utiliza las estadísticas bandmin
# Se puede deshabilitar esta opción
LF_CPANEL_BANDMIN = 1
# Activar el análisis de mainlog exim para los correos electrónicos enviados desde
#scripts.
LF_SCRIPT_ALERT = 0
# El límite after which el correo electrónico de alerta para los scripts de correo
#electrónico se envía. Se debe tomarse con este valor si permiten a los clientes a
#utilizar los scripts web para mantener correo pseudo-listas que hayan grandes
#receptores
LF_SCRIPT_LIMIT = 100
# Si se habilita esta opción, el directorio identificado por LF_SCRIPT_ALERT se
106
# Chmod ser 0 y chattr + i para evitar que se accede. Establecer la opción de una
# Habilitar. AVISO: esta opción puede causar serios problemas si el sistema
#identifica Directorio se encuentra dentro de la jerarquía de directorios del sistema
#operativo. Por esta razón, no Recomendar lo que le permite a menos que sea
#absolutamente necesario.
LF_SCRIPT_PERM = 0
# Comprueba la longitud de la cola de exim y envía un correo electrónico de alerta si
#el valor de Configuración se excede. Si la configuración ConfigServer MailScanner
#se utiliza entonces, tanto la espera y las colas de entrega serán verificadas.
# Nota: Si hay problemas de envío de correo electrónico, esta alerta no se puede
#recibir Para desactivar a "0"
LF_QUEUE_ALERT = 2000
# El intervalo entre los controles de cola de correo en cuestión de segundos. Esto no
#debe ser demasiado Baja en los servidores que suelen tener largas colas que el
#binario exim puede utilizar Importantes recursos al checking la longitud de la cola
LF_QUEUE_INTERVAL = 300
# Sistema de Verificación de Exploit. Esta opción está diseñada para llevar a cabo
#una serie de pruebas Para enviar una alerta en caso de que un compromiso de
#servidor posibles se detecta Para activar esta función se configura lo siguiente a la
#comprobación de intervalo en segundos (Un valor de 300 parece razonable).
# Para desactivar a "0"
LF_EXPLOIT = 300
# Esta lista separada por comas le permite (de) seleccionar las pruebas F_EXPLOIT
#Realiza Para la comprobación de súper usuario, puede lista de nombres de usuario
#en csf.suignore tenerlos Ignorada para esa prueba Pruebas válidas son: súper
#Usuario
LF_EXPLOIT_CHECK =
# Establezca el intervalo de tiempo para realizar un seguimiento de inicio de sesión y
#otras fallas en LF_ (segundos), Es decir, fallas en el segundo LF_TRIGGER
#LF_INTERVAL última
107
LF_INTERVAL = 300
# Este es el tiempo que el proceso de LFD duerme (en segundos) antes de procesar
#el Entradas de registro de archivos y comprobar si otros eventos necesidad de ser
#activado
LF_PARSE = 5
# Este es el intervalo que se utiliza para eliminar los informes de los nombres de
#usuario, archivos y PIDs a fin de que los problemas persistentes se denuncien, en
#cuestión de segundos.
# Un valor de 3600 parece razonable
LF_FLUSH = 3600
##################################################################
SECCIÓN #: Directorio de observación e integridad
##################################################################
# Habilitar el Directorio de observación. Esto permite a LFD para ver /tmp y /dev/shm
#que son directorios de archivos sospechosos, es decir, exploits de script. Si un
#archivo sospechoso se encuentra, una alerta por correo electrónico #se envía. Una
#alerta por archivo según intervalo LF_FLUSH se envía.
# Para activar esta función se configura lo siguiente a la comprobación de intervalo
#en segundos. Para desactivar a "0"
LF_DIRWATCH = 300
# Para eliminar todos los archivos sospechosos encontrados en el directorio,
#habilitar lo siguiente, esto permitirá que a los archivos se añadirán a un archivo
#comprimido en /etc/lfd/suspicious.tar
LF_DIRWATCH_DISABLE = 0
# Esta opción le permite tener el privilegio a LFD ver un archivo o directorio en
#particular por cambios y en caso de que el cambio exista, se envía la alerta por
#correo electrónico utilizando watchalert.txt
# Para activar esta función se configura un intervalo en segundos (Un valor de 60
#parece razonable) y se agregaran las entradas a csf.dirwatch. Establezca para
108
#“inhabilitar a "0"
LF_DIRWATCH_FILE = 0
#Sistema de integridad de control. Esto permite a LFD comparar md5sums de las
#aplicaciones de los archivos binarios de los SO de los servidores desde el
#momento en que LFD inicia. Si el Md5sum de un archivo vigilado cambia, se
#enviara una alerta. Esta opción está destinada como un IDS (Intrusion Detection
#System) y es la última línea de la detección en caso que este el usuario root sea
#comprometido.
# Es posible de constante falsos positivos, si es que el sistema operativo se
#actualiza o sistemas de monitoreos se actualizan. Sin embargo, los cambios
#inesperados deben inspeccionarse cuidadosamente.
# Archivos modificados sólo se informaran a través de correo electrónico una vez.
# Para activar esta función se configura lo siguiente a la comprobación de intervalo
#en segundos (Un valor de 3600 parece razonable). Esta opción puede aumentar la
#carga de E/S en el servidor, por las comprobaciones del sistema binario.
# Para desactivar a "0"
LF_INTEGRITY = 3600
##################################################################
SECCIÓN #: ataques distribuidos
##################################################################
# Ataque distribuido a la cuenta. Esta opción mantendrá un registro de errores de
#entrada en base a direcciones IPs distribuidas a una cuenta específica. Si el
# Número de fallos coincide con el valor de activación anterior, todas las direcciones
#IPs involucradas en el ataque serán bloqueadas de acuerdo con las reglas
#temporales/permanente por encima de se aplican al seguimiento a LF_SSHD,
#LF_FTPD, LF_SMTPAUTH, LF_POP3D, #LF_IMAPD, LF_HTACCESS
#LF_DISTATTACK = 0
# Establecer el siguiente número mínimo de direcciones IP únicas que provocan un
#LF_DISTATTACK
109
LF_DISTATTACK_UNIQ = 2
#Sesiones de inicio ftp distribuidos. Esta opción realizar un seguimiento de éxito de
#inicios de sesión FTP. Si el número de inicios de sesión con éxito a una #cuenta
#individual tiene al menos LF_DISTFTP en LF_INTERVAL de por lo menos
#LF_DISTFTP_UNIQ direcciones IPs, Todas las direcciones IP serán bloqueadas.
# Esta opción puede ayudar a mitigar los ataques comunes con compromiso FTP,
#usando una red distribuida de zombies a los sitios web.
# Un valor razonable para esto podría ser de 5, dependiendo de las múltiples
#cuentas de una cuenta individual en LF_INTERVAL. Para desactivar a "0"
LF_DISTFTP = 0
# Establecer el siguiente número mínimo de direcciones IPs únicas que provocan
#LF_DISTATTACK. LF_DISTFTP_UNIQ debe ser <= LF_DISTFTP para que esto
#funcione
LF_DISTFTP_UNIQ = 3
# Si esta opción se establece en 1 los bloques serán permanente.
# Si esta opción es> 1, los bloques serán temporales para el número especificado
# De segundos
LF_DISTFTP_PERM = 1
##################################################################
# SECCIÓN: Seguimiento de login
##################################################################
# Si el bloqueo de conexiones POP3 es mayor que LT_POP3D veces por hora
#dirección (0 = desactivado). Este es un bloqueo temporal para el resto de la hora,
#transcurrido el tiempo la IP será desbloqueado.
LT_POP3D = 60
# Si el bloqueo de conexiones IMAP es superior a LT_IMAPD veces por hora y por
#cuenta por IP. Dirección (0 = desactivado) - no se recomienda para las conexiones
#IMAP, debido a la ética dentro del cual funciona IMAP. Si desea utilizar este, el
#establecimiento es bastante alto, probablemente una buena idea
110
#de este es un bloqueo temporal para el resto de la hora, transcurridos los tiempos
#de la IP será desbloqueado.
LT_IMAPD = 0
# Enviar una alerta por e-mail si una cuenta supera los inicios de sesión
#LT_POP3D/LT_IMAPD por hora por IP.
LT_EMAIL_ALERT = 1
# Si LF_PERMBLOCK está activada, pero no se quiere que se aplique
#LT_POP3D/LT_IMAPD, entonces active esta opción
LT_SKIPPERMBLOCK = 0
##################################################################
# SECCIÓN: Seguimiento Relé
##################################################################
# Enlace de seguimiento. Esto permite hacer un seguimiento de correo electrónico
#que se transmite a través del servidor. También hay opciones para enviar alertas y
#bloqueos a direcciones IPs externas.
# Si el número de mensajes de correo electrónico transmitido por hora supera los
#límites configurados. Los bloqueos pueden ser permanentes o temporales.
# La siguiente información se aplica a cada uno de los siguientes tipos de relés,
# Verifica:
# RT_ [relay type] _ALERT: 0 = desactivar, 1 = activar
# RT_ [relay type] _LIMIT: el límite por hora una alerta por correo electrónico será
#enviado
# RT_ [relay type] _BLOCK: 0 = no hay un bloqueo, un bloqueo permanente o
#temporal de nn segundos.
# Esta opción activa para correos electrónicos externos
RT_RELAY_ALERT = 1
RT_RELAY_LIMIT = 100
RT_RELAY_BLOCK = 0
111
# Esta opción activa de correo electrónico autenticado por SMTP AUTH
RT_AUTHRELAY_ALERT = 1
RT_AUTHRELAY_LIMIT = 100
RT_AUTHRELAY_BLOCK = 0
# Esta opción activa de correo electrónico autenticado por POP antes de SMTP
RT_POPRELAY_ALERT = 1
RT_POPRELAY_LIMIT = 100
RT_POPRELAY_BLOCK = 0
# Esta opción activa de correo electrónico enviados a través de /usr/sbin/sendmail o
#/usr/sbin/exim
RT_LOCALRELAY_ALERT = 1
RT_LOCALRELAY_LIMIT = 100
# Esta opción activa para el correo electrónico enviado a través de una dirección IP
#local
RT_LOCALHOSTRELAY_ALERT = 1
RT_LOCALHOSTRELAY_LIMIT = 100
##################################################################
# SECCIÓN: Seguimiento de conexiones
##################################################################
# Seguimiento de conexiones. Esta opción permite realizar un seguimiento de todas
#las conexiones desde un dirección IP en el servidor. Si el número total de
#conexiones es mayor que este valor, la dirección IP del ofensor estará bloqueada.
#Esto puede ser usado para ayudar a prevenir algunos tipos de #ataques DoS.
#Cuidado se debe tomar con esta opción. Es muy posible que usted vea
#los falsos positivos. Algunos protocolos pueden caer por conexión de tiempo en
#espera, por ejemplo, FTP, IMAPD y HTTP. Sin embargo, para un servidor que es
#propenso a ataques DOS esto puede ser muy útil. Un ajuste razonable para esta
#opción podría ser de alrededor de 300.
112
# Para desactivar esta característica, establezca este valor a 0
CT_LIMIT = 0
# Seguimiento de conexiones de intervalo. Ponga esto en número de segundos
#entre exploraciones de seguimiento de conexiones
CT_INTERVAL = 30
# Enviar una alerta por e-mail si una dirección IP está bloqueada debido a el
#seguimiento de conexiones
CT_EMAIL_ALERT = 1
# Si desea realizar bloqueos de IP permanente, entonces setear a 1, de lo contrario
#los bloques serán de forma temporal y se borraran después de unos segundos
CT_BLOCK_TIME
CT_PERMANENT = 0
# Si se opta por bloqueos temporales de IP para TC, entonces el seguimiento del
#intervalo en segundos que la ip podría ser bloqueada
CT_BLOCK_TIME = 1800
# Si no desea contar el estado TIME_WAIT contra el número de conexiones
# A continuación setear el valor siguiente a "1"
CT_SKIP_TIME_WAIT = 0
# Si sólo desea contar con estados específicos (por ejemplo, SYN_RECV) a
#continuación, agregar los estados siguientes como una lista separada por comas.
#Por ejemplo "SYN_RECV, TIME_WAIT".
# Deja esta opción vacía para contar todos los Estados contra CT_LIMIT
CT_STATES =
# Si sólo desea contar con puertos específicos (por ejemplo, 80443) y luego añadir
#los puertos a la siguiente como una lista separada por comas. Por ejemplo
#"80443". Deja esta opción vacía para contar todos los puertos contra la CT_LIMIT
CT_PORTS =
113
##################################################################
SECCIÓN #: Proceso de Seguimiento
##################################################################
# Proceso de Seguimiento. Esta opción permite realizar un seguimiento de los
#usuarios y los procesos del usuario nobody, examina los ejecutables sospechosos o
#los puertos de red abiertos. Su finalidad es la identificación de posibles procesos de
#explotación que se ejecutan en el servidor, incluso si están ocultos para aparecer
#como los servicios del sistema. Si un proceso sospechoso se encuentra, una alerta
#por correo electrónico se enviara con la información pertinente. Es entonces la
#responsabilidad del receptor investigar el proceso de
#el script para que no realice ninguna acción adicional.
# El siguiente es el número de segundos que un proceso tiene que estar activa
#antes de que es inspeccionado. Si se establece demasiado bajo, entonces es
#probable activar falsos positivos con scripts CGI o PHP.
# Establezca el valor a 0 para desactivar esta función
PT_LIMIT = 60
# ¿Con qué frecuencia se revisan los procesos en cuestión de segundos
PT_INTERVAL = 60
# Si desea que el proceso de seguimiento ponga atención a scripts PHP o Perl #que
se ejecutan a través de apache continuación, deshabilite la siguiente,
#es decir, ponerlo a 0.
# Mientras que habilitar esta opción se reduce los falsos positivos, que se pone a 0
# Proporciona un mejor control de las hazañas que se ejecutan en el servidor.
PT_SKIP_HTTP = 0
# Si desea realizar un seguimiento todas las cuentas de linux en un servidor de
#cPanel, no sólo a los usuarios que forman parte de cPanel, entonces active esta
#opción. Esto se recomienda para mejorar la seguridad de las cuentas
#comprometidas.
# Establece en 0 para desactivar la función, 1 para activarlo
PT_ALL_USERS = 0
# LFD informará procesos, incluso si están enumerados en csf.ignore, si están
114
# Etiquetados como (eliminado) por Linux. Esta información se proporciona bajo
#Linux en /proc/PID/exe. Un proceso (eliminado) es uno que este ejecutando un
#binario que el inode del archivo eliminado desde el directorio de sistema de
#archivos. Esto por lo general sucede cuando el binario ha sido reemplazado por
#una actualización por el vendor del sistema operativo o un tercero (por ejemplo,
#cPanel). Es necesario investigar si este es el caso para asegurarse de que el
#binario original no ha sido reemplazado por un rootkit o se está ejecutando un
#exploit.
# Para detener el proceso de reporte de LFD es necesario reiniciar el demonio al
#que pertenece y por lo tanto ejecutar el proceso mediante el reemplazo de binarios
#(suponiendo si existe). Esto normalmente significa ejecutar el script de arranque
#asociados en /etc/init.d/
# Si no desea que LFD reporte los procesos borrados de binario, setear el valor 0
PT_DELETED = 1
# Si un evento PT_DELETED se activa, entonces si el siguiente contiene la ruta
#de un script, que se llevará a cabo en un proceso hijo y se pasa el ejecutable, pid
#y cuenta del proceso.
# El script de acción debe tener el bit de ejecución e intérprete (shebang)
#establecido. Un ejemplo se proporciona en el archivo /etc/csf/pt_deleted_action.pl
# AVISO: Asegúrese de leer y entender las implicaciones potenciales para la
#seguridad de estos procesos en el PT_DELETED anterior antes de simplemente
#reiniciando estos procesos con un script.
PT_DELETED_ACTION =
#Proceso de Seguimiento de usuario. Esta opción permite el seguimiento del
#número de procesos de cualquier cuenta corriendo en el momento. Si el número
#de procesos excede el valor de la siguiente configuración una alerta por e-mail se
#envía con detalles de estos procesos. Si se especifica un usuario en csf.pignore
#este será ignorado. Establece en 0 para desactivar esta función.
PT_USERPROC = 10
# Esta opción de seguimiento de proceso de usuario envía una alerta si cualquier
#proceso de usuario cPanel excede el uso de memoria (MB). Hace caso omiso de
115
#los procesos específicos o usuarios utilizan csf.pignore. Establece en 0 para
#desactivar esta función.
PT_USERMEM = 200
# Esta opción de seguimiento de proceso de usuario envía una alerta si cualquier
#proceso de usuario cPanel excede el uso del tiempo (en segundos). Hace caso
#omiso de los procesos o usuarios específicos use csf.pignore. Establece en 0 para
#desactivar esta función.
PT_USERTIME = 1800
# Si esta opción se establece a continuación, los procesos detectados por
#PT_USERMEM, PT_USERTIME o PT_USERPROC mueren.
# Advertencia: No se recomienda activar esta opción a menos que sea
#absolutamente necesario, Ya que puede causar problemas inesperados cuando
#los procesos se van a cerrar. También puede conducir a procesos de sistema que
#se están terminado lo que podría causar problemas de estabilidad. Es mucho
#mejor dejar esta opción desactivada e investigar cada caso, ya que se presenta
#cuando los factores desencadenantes no se cumplen.
# Nota: Los procesos que están corriendo como ejecutables eliminados (ver
#PT_DELETED) no serán destruidos por LFD.
PT_USERKILL = 0
# Si desea desactivar las alertas de correo electrónico creadas por PT_USERKILL,
#a continuación establecer esta opción a 0.
PT_USERKILL_ALERT = 1
# Si un evento PT_* se activa, entonces si la siguiente ruta contiene un script,
#podría correr un proceso hijo y pasar el PID de una proceso, separado en una
#lista por comas.
# El script de acción debe tener el bit de ejecución e intérprete (tinglado) establece
PT_USER_ACTION =
# Verifique el promedio de carga en minutos PT_LOAD_AVG (se puede configurar a
#1, 5 o 15 y 5 por defecto si se ha configurado de otra manera) en el servidor cada
#segundo PT_LOAD. Si el promedio de carga es mayor o igual a PT_LOAD_LEVEL
#entonces una alerta por e-mail será enviada. LFD entonces no informara carga
116
#posterior alta hasta PT_LOAD_SKIP segundos pasado para evitar las
#inundaciones de correo electrónico.
# Establezca PT_LOAD a "0" para desactivar esta función
PT_LOAD = 30
PT_LOAD_AVG = 5
PT_LOAD_LEVEL = 6
PT_LOAD_SKIP = 3600
# Si un evento PT_LOAD se activa, entonces si la siguiente ruta contiene un script,
#que se llevará a cabo en un proceso hijo. Por ejemplo, el script podría
# Contienen comandos para finalizar y reiniciar httpd, php, exim, etc en caso de
# procesos bucle. La escritura de la acción debe tener el bit de ejecución de un
# Intérprete (shebang)
PT_LOAD_ACTION =
##################################################################
# SECCIÓN: Seguimiento de escaneo de puertos
##################################################################
# Seguimiento de escaneo de puertos. Esta función bloquea los puertos registrados
#por iptables a syslog. Si una dirección IP genera un bloque de puerto se registra
#en PS_LIMIT en cuestión de PS_INTERVAL segundos la dirección IP será
#bloqueada.
# Esta función podría, por ejemplo, ser útil para bloquear a los hackers para
#acceder al puerto estándar SSH si lo ha movido a un puerto que no sea 22
#y lo ha quitado de la lista TCP_IN a fin de que los intentos de conexión a la
#puerta vieja se están registrando(22)
# Esta función bloquea todos los bloques de iptables desde los logs de iptables,
#incluyendo los intentos repetidos a un puerto o floods SYN, etc.
# Nota: Esta función podría solo rastrear bloqueos iptables desde un archivo log en
#IPTABLES_LOG y se activa si se ha activado DROP_LOGGING. Sin embargo, se
#puede causar un bloqueo redundante con DROP_IP_LOGGING habilitado.
117
# Advertencia: Es posible que un DDoS elaborado (es decir, a partir de múltiples IP)
#Podría muy rápidamente llenar la cadenas de reglas de iptables y causar un DOS
#en sí mismo.
# DENY_IP_LIMIT debería ayudar a mitigar los problemas de este tipo con
#bloqueos permanentes y DENY_TEMP_IP_LIMIT con bloqueos temporales
# Establezca PS_INTERVAL a "0" para desactivar esta función. Un valor de entre
#60 y 300 sería sensato para activar esta función.
PS_INTERVAL = 300
PS_LIMIT = 10
# Se puede especificar los puertos y/o rangos de puertos que deben ser seguidos
#por el seguimiento de escaneo de puertos. La configuración siguiente es una lista
#separada por comas de los puertos y utiliza el mismo formato que TCP_IN. La
#configuración por defecto es 0:65535, ICMP cubre todos los puertos
PS_PORTS =
# Se puede seleccionar si los bloques IPs para el seguimiento de puerto debe ser
#temporal o permanente. Establecer PS_PERMANENT a "0" de carácter temporal
#y "1" para un bloqueo permanente. Si se pone a "0" PS_BLOCK_TIME es la
#cantidad de tiempo en segundos que bloquean temporalmente la dirección IP de
PS_PERMANENT = 0
PS_BLOCK_TIME = 3600
# Establecer el siguiente a "1" para activar el puerto de escaneo de seguimiento en
#alertas de correo electrónico, establecer en "0" para desactivar
PS_EMAIL_ALERT = 1
##################################################################
SECCIÓN #: Seguimiento de cuenta
##################################################################
# Seguimiento de cuenta. Las siguientes opciones permiten el seguimiento de las
#modificaciones a las cuentas en un servidor. Si alguna de las opciones activadas
#se activan por modificaciones a una cuenta, una alerta por correo electrónico se
118
#envía. Sólo la modificación se informa. La causa de la modificación tendrá que ser
#investigado de forma manual.
#Puede establecer AT_ALERT a lo siguiente:
# 0 = desactivar esta función
# 1 = activar esta función para todas las cuentas
# 2 = activar esta función sólo para las cuentas de superusuario (UID = 0, por
#ejemplo, root, etc)
# 3 = activar esta función sólo para la cuenta de root
AT_ALERT = 2
# Esta opción es el intervalo entre los controles en cuestión de segundos
AT_INTERVAL = 60
# Enviar alerta si una nueva cuenta se crea
AT_NEW = 1
# Enviar alerta si una cuenta existente se elimina
AT_OLD = 1
# Enviar alerta si una contraseña de la cuenta ha cambiado
AT_PASSWD =: 1
# Enviar alerta si la uid de la cuenta ha cambiado
AT_UID Default = 1
# Enviar alerta si la gid de la cuenta ha cambiado
AT_GID = 1
# Enviar alerta si el directorio de acceso de una cuenta ha cambiado
AT_DIR = 1
# Enviar alerta si el acceso Shell de una cuenta ha cambiado
AT_SHELL = 1
119
##################################################################
# SECCIÓN: Servicio de mensajería
##################################################################
# Servicio de mensajería. Esta característica permite la visualización de un mensaje
#a un bloqueo de dirección IP para informar al usuario de que está bloqueado en el
#firewall. Esto puede ayudar a conseguir cuando los usuarios se auto bloquean, por
#ejemplo, debido a múltiples errores de entrada. El servicio es proporcionado por dos
#demonios que se ejecutan en puertos proporcionados ya sea un mensaje de texto o
#HTML.
# Esta función no funciona en los servidores que no cuentan con el módulo de
#iptables Ipt_REDIRECT cargado. Por lo general, esto será con los núcleos
#monolíticos. Administradores de servidores vps deben consultar con su proveedor
#de alojamiento vps si el modulo iptables está incluido.
# Para más información sobre las características y limitaciones se refieren en el
#archivo readme.txt de CSF
# Nota: Ejecute el archivo /etc/csf/csftest.pl para comprobar si esta opción en este
#servidor.
# 1 para habilitar, 0 para deshabilitar
MESSENGER = 0
# Ofrecer este servicio a los bloqueos temporales de direcciones IP
MESSENGER_TEMP = 1
# Ofrecer este servicio a los bloqueos de direcciones IP permanentes
MESSENGER_PERM = 1
# Una cuenta de usuario para ejecutar un servicio bajo el servidor. Se recomienda
#crear un non-priv, sin Shell para estos efectos.
MESSENGER_USER = csf
# Este es el número máximo de conexiones simultáneas permitidas para cada
#servicio del servidor
MESSENGER_CHILDREN = 10
# Ponga esto en el puerto que recibirá el mensaje HTML. Usted debe configurar
# Este puerto para ser> 1023 y diferentes de los puertos de texto. NO permitir el
120
#acceso a este puerto por TCP_IN
MESSENGER_HTML = 8888
# Esta lista separada por comas son los puertos HTML que será dirigido por el
# Bloqueo la dirección IP. Si está utilizando por el bloqueo de aplicaciones
#(LF_TRIGGER) luego sólo el puerto de bloque en cuestión va a ser redirigido
#hacia el puerto de mensajería
MESSENGER_HTML_IN = 80,2082,2095
# Ponga esto en el puerto que recibirá el mensaje de texto. Usted debe configurar
# Este puerto para ser> 1023 y diferente del puerto de HTML. NO permitir el #acceso
a este puerto por TCP_IN
MESSENGER_TEXT = 8889
# Esta lista separada por comas son los puertos de texto que será redirigido a la
# dirección de bloqueo IP. Si está utilizando por el bloqueo de aplicaciones
#(LF_TRIGGER) y luego sólo el puerto de bloque en cuestión va a ser redirigido
#hacia el puerto de mensajería
MESSENGER_TEXT_IN = 21
# Estos valores limitan la velocidad a la que se pueden hacer conexiones a los
# Servicio de mensajería de los servidores. Su intención es proporcionar #protección
contra ataques o conexiones excesivas a los servidores. Si la tasa se #excede,
iptables volverá a la duración de la actividad normal de bloqueo
# Lea el “man” de iptables para la correcta sintaxis de limitar la velocidad
MESSENGER_RATE = 30/m
MESSENGER_BURST = 5
##################################################################
SECCIÓN #: Clustering(agrupación) LFD
##################################################################
# LFD clustering. Esto permite la configuración de un entorno clúster de LFD
# donde un grupo de servidores pueden compartir los bloques y los cambios de
#opciones de las configuraciones. Se incluyen CLI y las opciones de la interfaz de
121
#usuario para enviar solicitudes a la agrupación.
# Vea el archivo readme.txt para obtener más información y detalles sobre la
#configuración y riesgos de seguridad.
#Lista separada por comas de IPs miembros del clúster para enviar las solicitudes
CLUSTER_SENDTO =
#Lista separada por comas de IPs miembros del clúster para recibir las solicitudes
#de
CLUSTER_RECVFROM =
# Dirección IP del nodo principal del clúster permite enviar cambios
#CLUSTER_CONFIG
CLUSTER_MASTER =
# Si se trata de un servidor NAT, ponga esto en la dirección IP pública de este
#servidor
CLUSTER_NAT =
# Si un miembro del clúster debe enviar las solicitudes en una IP que no sea la IP
#por defecto, ponerlo aquí
CLUSTER_LOCALADDR =
# puerto de comunicación del clúster (debe ser el mismo en todos los servidores
#miembros). No hay necesidad de abrir este puerto en el firewall, se añade
#automáticamente dentro y fuera.
CLUSTER_PORT = 7777
# Esta es una clave secreta utilizada para cifrar las comunicaciones del clúster
#mediante el algoritmo Blowfish. Debe estar entre 8 y 56 caracteres de longitud,
# Preferiblemente> 20 caracteres aleatorios y 56 caracteres:
#012345678901234567890123456789012345678901234567890123456
CLUSTER_KEY =
# Esta opción permite habilitar y deshabilitar la configuración del clúster
# Opciones de cambio --cconfig, --cconfigr, --cfile, --ccfile enviados desde el
# servidor CLUSTER_MASTER. Establezca esta opción en 1 para permitir que las
#configuraciones de clúster se reciban
122
CLUSTER_CONFIG = 0
# Número máximo de procesos hijo a escucha. Las altas tasas de bloqueo o de
#grandes clúster puede ser necesario aumentar este valor.
CLUSTER_CHILDREN = 10
##################################################################
# SECCIÓN: Port-knocking
##################################################################
# Puerto de toque. Esta característica permite que el puerto escucha esté disponible
#en un número variable de múltiples puertos de escucha con un tiempo de espera.
#Tiene que haber un mínimo de 3 puertos de llamada para una entrada válida.
# Lea la siguiente información con respecto al port-knocking:
# http://www.portknocking.org
# Esta función no funciona en los servidores que no cuentan con el módulo de
#iptables ipt_recent cargado. Por lo general, esto será con los vps de núcleos
#monolíticos. administradores de servidores deben consultar con su proveedor de
#alojamiento VPS si el modulo iptables se incluye. Para más información se refieren
al port-knocking en la sección csf del readme.txt
# Nota: Ejecute el archivo /etc/csf/csftest.pl para comprobar si esta opción funciona
#en este servidor.
# OpenPort; protocolo; tiempo de espera; kport1; kport2; kport3 [...; kportn° ];...
# Por ejemplo: 22;TCP;20;100;200;300;400
PORTKNOCKING =
# Habilitar el registro de PORTKNOCKING por iptables
PORTKNOCKING_LOG = 1
# Enviar una alerta por e-mail si el puerto PORTKNOCKING está abierto.
#PORTKNOCKING_LOG debe estar habilitado.
PORTKNOCKING_ALERT = 1
123
##################################################################
# SECCIÓN: Ajuste de Estadísticas
##################################################################
# Estadísticas. Algunas de las estadísticas de salida requiere gráficos gd y la
#biblioteca de gráficos GD:: modulo Graph de perl con todos los módulos
#dependientes de que se instalen en la interfaz de usuario para que se muestren
# Esta opción habilita la recolección de datos estadísticos
ST_ENABLE =: 1
# Esta opción determina la forma en que han entrado líneas iptables para
#almacenar los informes
ST_IPTABLES = 100
# Esta opción indica si rdns y las búsquedas de CC se llevan a cabo en el momento
#que la línea de registro se registra (esto no se lleva a cabo durante la visualización
#de los informes)
# Advertencia: Si DROP_IP_LOGGING está habilitado y son frecuentemente
#golpeadas las iptables, luego habilitar esta opción puede causar serios problemas
#de rendimiento
ST_LOOKUP = 0
##################################################################
# Sección: Configuración especificas del sistema operativo
##################################################################
# localizaciones de los binarios
IPTABLES = /sbin/iptables
ip6tables = /sbin/ip6tables
modprobe = /sbin/modprobe
ifconfig = /sbin/ifconfig
SENDMAIL = /usr/sbin/sendmail
PS = /bin/ps
vmstat = /usr/bin/vmstat
LS = /bin/ls
124
MD5SUM = /usr/bin/md5sum
TAR = /bin/tar
chattr = /usr/bin/chattr
UNZIP = /usr/bin/unzip
GUNZIP = /bin/gunzip
# Ubicaciones de los archivos de registros
HTACCESS_LOG = /usr/local/apache/logs/error_log
MODSEC_LOG = /usr/local/apache/logs/error_log
SSHD_LOG = /var/log/secure
SU_LOG = /var/log/secure
FTPD_LOG = /var/log/messages
SMTPAUTH_LOG = /var/log/exim_mainlog
SMTPRELAY_LOG = /var/log/exim_mainlog
POP3D_LOG = /var/log/maillog
IMAPD_LOG = /var/log/maillog
CPANEL_LOG = /usr/local/cpanel/logs/login_log
CPANEL_ACCESSLOG = /usr/local/cpanel/logs/access_log
SCRIPT_LOG = /var/log/exim_mainlog
IPTABLES_LOG = /var/log/messages
SUHOSIN_LOG = /var/log/messages
BIND_LOG = /var/log/messages
CUSTOM1_LOG = /var/log/messages
CUSTOM2_LOG = /var/log/messages
CUSTOM3_LOG = /var/log/messages
CUSTOM4_LOG = /var/log/messages
CUSTOM5_LOG = /var/log/messages
CUSTOM6_LOG = /var/log/messages
CUSTOM7_LOG = /var/log/messages
CUSTOM8_LOG = /var/log/messages
CUSTOM9_LOG = /var/log/messages
125
# Si usted encuentra un número cada vez mayor de procesos zombie LFD es
#posible que necesite volver al viejo código y activar esta opción
OLD_REAPER = 0
# Sólo para uso interno. No debe habilitar esta opción, ya que podría causar
# Inestabilidad en el LCR y la LFD
DEBUG = 0
127
Introducción
Luego de haber implementado las herramientas correspondientes, es de gran
utilidad y ayuda complementar este estudio con la creación de protocolos para
mantener segura la información la cual se quiere proteger.
128
5.1. Creación de Protocolos de Seguridad y Solucio nes a las
Vulnerabilidades,
5.1.1. Qué es la seguridad de la información?
La información es un recurso que, como el resto de los importantes activos
comerciales, tiene valor para una organización y por consiguiente debe ser
debidamente protegida. La seguridad de la información protege ésta de una amplia
gama de amenazas, a fin de garantizar la continuidad comercial, minimizar el daño al
mismo y maximizar el retorno sobre las inversiones y las oportunidades.
La información puede existir en muchas formas. Puede estar impresa o escrita
en papel, almacenada electrónicamente, transmitida por correo o utilizando medios
electrónicos, presentada en imágenes, o expuesta en una conversación. Cualquiera
sea la forma que adquiere la información, o los medios por los cuales se distribuye o
almacena, siempre debe ser protegida en forma adecuada.
La seguridad de la información se define aquí como la preservación de las
siguientes características:
Confidencialidad : se garantiza que la información sea accesible sólo a aquellas
personas autorizadas a tener acceso a ella.
Integridad : se salvaguarda la exactitud y totalidad de la información y los métodos
de procesamiento.
129
Disponibilidad : se garantiza que los usuarios autorizados tengan acceso a la
información y a los recursos relacionados con ella toda vez que se requiera.
La seguridad de la información se logra implementando un conjunto adecuado
de controles, que abarca políticas, prácticas y procedimientos.
5.1.2. Por qué es necesaria la seguridad de la info rmación
La información y los procesos, sistemas y redes que le brindan apoyo
constituyen importantes recursos de la empresa. La confidencialidad, integridad y
disponibilidad de la información pueden ser esenciales para mantener la ventaja
competitiva, el flujo de fondos, la rentabilidad, el cumplimiento de las leyes y la
imagen comercial.
Las organizaciones y sus redes y sistemas de información, se enfrentan en
forma creciente con amenazas relativas a la seguridad, de diversos orígenes,
incluyendo el fraude asistido por computadora, espionaje, sabotaje, vandalismo,
incendio o inundación. Daños tales como los ataques mediante virus informáticos,
"hacking" y denegación de servicio se han vuelto más comunes, ambiciosos y
crecientemente sofisticados.
La dependencia de los usuarios respecto de los sistemas y servicios de
información denota que ellos son más vulnerables a las amenazas concernientes a
seguridad. La interconexión de las redes públicas y privadas y el uso compartido de
los recursos de información incrementa la dificultad de lograr el control de los
accesos. La tendencia hacia el procesamiento distribuido ha debilitado la eficacia del
control técnico centralizado.
130
Muchos sistemas no han sido diseñados para ser seguros. La seguridad que
puede lograrse por medios técnicos es limitada y debe ser respaldada por una
gestión y procedimientos adecuados. La identificación de los controles que deben
implementarse requiere una cuidadosa planificación y atención a todos los detalles.
La administración de la seguridad de la información, exige, como mínimo, la
participación de todos los empleados de la organización. También puede requerir la
participación de proveedores y clientes. Asimismo, puede requerirse el
asesoramiento experto de organizaciones externas.
Es importante llevar a cabo revisiones periódicas de los riesgos de seguridad y
de los controles implementados a fin de:
• reflejar los cambios en los requerimientos y prioridades de la empresa.
• considerar nuevas amenazas y vulnerabilidades.
• corroborar que los controles siguen siendo eficaces y apropiados.
5.1.3. Factores críticos del éxito
La experiencia ha demostrado que los siguientes factores, a menudo resultan
críticos para la implementación exitosa de la seguridad de la información, dentro de
una organización:
• política de seguridad, objetivos y actividades que reflejen los objetivos de la
empresa.
• una estrategia de implementación de seguridad.
• apoyo y compromiso por parte de la gerencia.
131
• un claro entendimiento de los requerimientos de seguridad, la evaluación de
riesgos y la administración de los mismos.
• comunicación eficaz de los temas de seguridad a todos empleados.
• distribución de guías o correos sobre políticas y estándares de seguridad de la
información a todos los empleados y clientes.
• instrucción y entrenamiento adecuados.
• un sistema integral y equilibrado de medición que se utilice para evaluar el
desempeño de la gestión de la seguridad de la información y para brindar
sugerencias tendientes a mejorarlo.
5.1.4. Detalles de un Ataque
Para poder identificar las amenazas que pueden correr en los sistemas, es
necesario primero conocer brevemente los tipos de ataques o su metodología, las
formas de acceso, el objetivo del mismo y la forma en la que opera.
La siguiente figura puede detallar fases en la que se divide un ataque y el
cómo vulnera el sistema, la herramienta utilizada, el método y los resultados y/o
objetivos que espera obtener
132
5.1.5. Situación Actual
En la actualidad no se tienen protocolos de seguridad, solo se “recomienda” al
cliente seguir estas actividades:
1.- Tenga mucho cuidado al asignar Permisos CHMOD a sus carpetas y archivos,
trate en lo posible de no trabajar con permisos 777.
2.- Cambie sus contraseñas, nosotros solamente mantenemos la contraseña inicial,
usted puede cambiar su contraseña desde el panel de control en el momento que
usted quiera, nosotros no tenemos acceso a su nueva contraseña de modo que si
necesita Soporte, tendrá que indicarnos los usuarios y contraseñas.
3.- Al solicitar Soporte por nuestra Mesa, si su consulta es algún inconveniente con
133
un E-mail favor indíquenos los accesos para dicho Mail
4.- Mantenga siempre un respaldo de sus archivos en su PC o algún medio Externo.
5.- No realice Envíos masivos de correos electrónicos para evitar suspensiones en su
cuenta.*
* Lo anteriormente expuesto, es un extracto de la norma actual.
5.2. Protocolos y/o Políticas de Seguridad para los clientes de Hosting
5.2.1. Política de correo electrónico
Por parte del Área Soporte:
1. Ataques al correo electrónico.
Se implementara un sistema de protección frente a virus, troyanos y
bots que vulneren y afecten el sistema de correos
2. Controles adicionales para examinar mensajes electrónicos.
Se vera la posibilidad y se estudiara si es que escapa de las normas de
privacidad, la auditoria de ciertos correos electrónicos que sean
sospechosos y cumplan ciertos requerimientos previamente
establecidos.
3. Protección de archivos adjuntos de correo electrónico (Webmail).
Se determinara que tipo de archivos será posible adjuntar en un correo
electrónico y también el peso de este, para prevenir la carga de bots,
troyanos y la transferencia de estos mismos mediante correo
electrónico.
134
Por parte del Cliente:
1. No comprometer la integridad de su cuenta.
Los usuarios que posean cuentas de correos, deberán velar por la integridad
de esta cuenta, no realizando malas prácticas, por ejemplo: enviando correos
electrónicos difamatorios, llevando a cabo prácticas de hostigamiento o
realizando publicidad no autorizadas más conocido como spam, ya que pone
en juego el status de la ip compartida.
2. Habilitar los registros de autenticación de e-mail en cpanel.
La autenticación de correo es el esfuerzo para equipar mensajes del sistema
de transportación del correo con suficiente información verificable, de esta
manera los recipientes pueden reconocer la naturaleza de cada uno de los
mensajes recibidos automáticamente.
• DomainKeys: es un sistema de autenticación de correo diseñado para
verificar el dominio de DNS de la persona que envía el correo y la
integridad del mensaje. La especificación de DomainKeys ha adoptado
aspectos de Identified Internet Mail para crear un protocolo mejorado
llamado DomainKeys Identified Mail (DKIM).
• SPF: permite que el software pueda identificar y rechazar direcciones
forjadas en el SMTP MAIL FROM (Return-Path), algo típico en lo
referente a spam de correo.
3. Uso de Contraseñas que cumplan el parámetro de seguridad.
Los usuarios deben seguir buenas prácticas de seguridad en la selección y
uso de contraseñas.
135
Las contraseñas constituyen un medio de validación de la identidad de un
usuario y consecuentemente un medio para establecer derechos de acceso a los
correos. Se debe notificar a los usuarios que deben cumplir con los siguientes
puntos:
• mantener las contraseñas en secreto.
• evitar mantener un registro en papel de las contraseñas, a menos que este
pueda ser almacenado en forma segura.
• cambiar las contraseñas siempre que exista un posible indicio de compromiso
del sistema o de las contraseñas.
• seleccionar contraseñas de calidad, con una longitud mínima de seis
caracteres que: sean fácil de recordar, no estén basadas en algún dato que
otra persona pueda adivinar u obtener fácilmente mediante información
relacionada con la persona, por ej. nombres, números de teléfono, fecha de
nacimiento, etc.
• no tengan caracteres idénticos consecutivos o grupos totalmente numéricos o
totalmente alfabéticos.
• cambiar las contraseñas a intervalos irregulares o según el número de acceso,
evitar reutilizar o reciclar viejas contraseñas.
• cambiar las contraseñas provisorias en el primer inicio de sesión (“log on”)
• no recordar contraseñas en gestores de correos y/o navegadores.
• no compartir las contraseñas de correo.
Si múltiples usuarios necesitan acceder a una misma cuenta se requiere un
responsable de la cuenta, ante cualquier eventualidad que acontezca.
136
5.2.2. Política sobre ssh
Por parte del Área Soporte:
1. Desconexión de terminales por tiempo muerto.
Las terminales tendrán una duración de 3 minutos en caso de estar inactivas,
esto quiere decir que si no se percibe movimiento desde la consola de conexión, esta
de desconectara de forma automática en 3 minutos.
2. Manejar el uso del “Manage Shell Access”.
Es posible que clientes necesiten tener acceso ssh al servidor, obteniendo
los siguientes privilegios:
• Sin Shell (deshabilitada).
• Shell enjaulada (solo acceso a su directorio).
• Shell normal (acceso total al servidor).
Dependiendo de la necesidad y previo requerimiento formal se procederá a
solo entregar privilegio de Shell enjaulada, Nunca normal.
Por parte del cliente
1. Uso de Contraseñas que cumplan el parámetro de seguridad.
En caso de tener habilitada y privilegios de acceso a Shell, el uso de
contraseñas es el mismo que en la política de correos electrónicos.
137
5.2.3. Política de Servidor Web y Archivos (permiso s + aplicaciones +
web)
Por parte del Área Soporte
1. Implementar componentes firewall de aplicación mod_security
Firewall que se ocupa dentro de un servidor web, el principal objetivo es
proveer protección contra diversos ataques y permite monitorear trafico
http, así como realizar análisis en tiempo real sin necesidad de hacer
cambios a la infraestructura existente.
2. Implementar scripts “verificadores”
Creación e implementación de scripts que detecten problemas como por
ejemplo permisos mal asignados o detección de PHP-Shell mediante un
proceso Cron.
3. Prevenir el desbordamiento del buffer por procesos Httpd
Crear limitaciones de consumo a un numero de real de peticiones por hora
es decir si se tiene un numero exagerado de peticiones se puede catalogar
como un ataque de tipo DOS, provocando que tire todos los servicios del
servidor, este procedimiento mejora notablemente el rendimiento y
estabilidad del servidor.
4. Implementar detección de intentos fallidos de Ingresos
Instalación de una herramienta del tipo detector de fuerza bruta para
prevenir este tipo de ataques.
Por parte del cliente
1. Chequear permisos en Carpetas y Ficheros
138
El cliente debe ser responsable sobre los efectos que produce tener
permisos incorrectos en el sistema, se recomienda que las carpetas
tengan como máximo permisos 0755 y para los archivos 0644.
2. Actualizar aplicaciones(CSS o CMS)
Se considerara una alta falla de seguridad el uso de administradores de
contenidos que estén con versiones desactualizadas instaladas en el
sistema, esto por el alto conocimiento de Bugs y fallas de seguridad.
3. Programar formularios de contactos seguros.
La creación de formularios seguros tiene por tarea, prevenir el envió de
spam de usuarios “nobody” en el sistema.
4. Programación de páginas con datos validados(validación antisamy):
Antisamy es un conjunto de librerías para validar la capa de
presentación, que ayuda a reforzar los puntos débiles en un ataque de
inyección de javascript CSS basándose en el uso de expresiones
regulares, este proyecto se encuentra disponible para diferentes
lenguajes de programación.
5. Eliminación de ciclos innecesarios.
Verificar que el código no tenga errores lógicos de programación, el
tener un ciclo infinito dentro de la aplicación gastaría los recursos del
CPU ineficientemente provocando un DOS, es necesario verificar las
partes del sistema que sean más solicitadas estén desarrolladas o
programadas de manera eficiente.
5.2.4. Política de Monitoreo del acceso y uso de lo s sistemas
5.2.4.1. Objetivo: detectar actividades no autoriza das
139
Los sistemas deben ser monitoreados para detectar desviaciones respecto de
la política de control de accesos y registrar eventos para suministrar evidencia en
caso de producirse incidentes relativos a la seguridad.
5.2.4.2. Registro de eventos
Deben generarse registros de auditoría que contengan excepciones y otros
eventos relativos a seguridad, y deben mantenerse durante un periodo definido para
acceder en futuras investigaciones y en el monitoreo de control de accesos. Los
registros de auditorías deben incluir:
• Usuario.
• Fecha y hora, si es posible.
• Dirección IP.
• Registros de intentos exitosos fallidos de acceso al sistema.
Podría requerirse que ciertos registros de auditoría sean archivados como parte
de la política de retención de registros o debido a los requerimientos de recolección
de evidencia.
5.2.4.3. Factores de riesgo
Se debe revisar periódicamente el resultado de las actividades de monitoreo. La
frecuencia de la revisión debe depender de los riesgos involucrados. Entre los
factores de riesgo que se deben considerar se encuentran:
140
• la criticidad de los procesos de aplicaciones.
• el valor, la sensibilidad o criticidad de la información involucrada.
• la experiencia acumulada en materia de infiltración y uso inadecuado del
sistema.
5.2.4.4. Registro y revisión de eventos
Una revisión de los registros implica la comprensión de las amenazas que
afronta el sistema y las maneras que surgen. Frecuentemente, los registros del
sistema contienen un gran volumen de información, gran parte de la cual es ajena al
monitoreo de seguridad. Para asistir en la identificación de eventos significativos, a
fin de desempeñar el monitoreo de seguridad, se debe considerar la posibilidad de
copiar automáticamente los tipos de mensajes adecuados a un segundo registro, y/o
utilizar herramientas de auditoría o utilitarios adecuados para llevar a cabo el examen
de archivo.
Al asignar la responsabilidad por la revisión de registros, se debe considerar
una separación de funciones entre quien/es emprende/n la revisión y aquellos cuyas
actividades están siendo monitoreadas.
5.2.4.5. Sincronización de relojes
La correcta configuración de los relojes de las computadoras es importante
para garantizar la exactitud de los registros de auditoría, que pueden requerirse para
investigaciones o como evidencia en casos legales o disciplinarios. Los registros de
auditorías inexactos podrían entorpecer tales investigaciones y dañar la credibilidad
de la evidencia.
141
Cuando una computadora o dispositivo de comunicaciones tiene la capacidad
de operar un reloj en tiempo real, este se debe configurar según un estándar
acordado, por ej. Tiempo Coordinado Universal (UCT) o tiempo estándar local. Como
se sabe que algunos relojes se desajustan con el tiempo, debe existir un
procedimiento que verifique y corrija cualquier variación significativa.
142
6. Anexo 1: Notas y detalles de la implementación
Detalles de la implementación
En este capítulo se pretende explicar los eventos y detalles ocurridos a lo
largo del proyecto, además de problemas de implementación que hayan surgido
durante la instalación de las herramientas. También se explicara algunos cambios
generados en el sistema Web Host Manager para mejorar la seguridad en el
servidor.
Estos eventos de dividirán en tres ítems que serán:
• Eventos en la implementación.
• Eventos de la puesta en marcha.
• Eventos de otra índole.
Eventos en la implementación:
Problema con CSF+LFD
Al momento de chequear los requisitos para instalar la suite de seguridad
CSF+LFD se encontró el inconveniente de que faltaban algunos módulos iptables en
el servidor, por lo cual existía que algunas funciones de la herramienta no
funcionaran, esto se soluciona actualizando el servidor con el modulo completo de
iptables, pero existe el problema que no es posible realizar esta tarea ya que el
servicio estaría un periodo de tiempo caído por lo cual, si se desea ocupar esta
143
herramienta de toda maneras existirá el problema que no se podrán ocupar ciertas
funciones, pero para los requisitos puestos por el cliente este cumple su labor.
Eventos de la puesta en marcha:
Problema con DDos Deflate
Una herramienta mal configurada genera soluciones no deseadas, o más que
una solución un problema, esto fue lo ocurrido con la aplicación DDos Deflate, ya que
mientras se elegía la mejor configuración y la mas optima en el servidor de pruebas,
el demonio que regula las conecciones y descarta entre conecciones fiables y falsos
positivos empezó a banear las conecciones debido al bajo valor asignado en el
archivo de configuración de la herramienta, esto sucedió ya que algunas aplicaciones
como los gestores de archivos al momento de realizar transacciones de archivos
generan más de una conexión para acelerar la subida o bajada del archivo, esto era
tomado por la herramienta de seguridad como un ataque por lo tanto fue necesario
subir el valor asignado para no banear a los usuarios del servicio.
Problema con APF
Problema ocurrente al momento de ingresar y/o eliminar direcciones IPs
baneadas por el sistema bfd en el archivo de configuración deny_host.rules fue el
mensaje “Unable to load iptables module (ip_tables), abortin g” que era mostrado
cada vez que se reiniciaba el proceso apf, este inconveniente fue solucionado
asignando el valor al parámetro del archivo de configuración MONOKERN=”0” a “1”.
144
Eventos de otra índole:
Eliminar zonas dns en caso de ataque:
Durante el periodo de implementación de las herramientas, se produjo un
ataque distribuido en el servidor (host11.chileadmin.com) al servicio de correos
(intentos de ingreso (login) no validos a 2 cuentas de correos de 2 dominios distintos
con distintas ips). Se procedió como medida para mitigar el ataque distribuido,
eliminar las zonas dns de los dos sitio para no aceptar las peticiones de paquetes en
el servidor, esta medida se tomo para no eliminar la cuenta completa y tener la
precaución de perder ciertos datos como son correos, bases de datos y su página
web del cliente. Luego del cese de este, se volvió a crear la zona mediante el WHM.
Cphulk (Brute Force Protection)
en caso de no poder implementar alguna herramienta en el servidor, el
servicio whm trae para habilitar Cphulk, que básicamente previene eventos
maliciosos generados por accesos no validos (passwords incorrectas) en el servidor,
es posible configurar la forma de actuar de este servicio así como también tener una
lista blanca y negra de direcciones ip y poder administrarla.
145
7. Anexos 2: Formularios y Entrevistas.
Anexo 1
Formulario tipo de registro para instalación de aplicaciones en un servidor,
necesario para realizar pruebas.
153
Anexo 9 (Entrevista)
Vinculación de la persona con la problemática:
1. Identificación del problema
1.1 Cuáles son los principales problemas que posee el sistema? R. La caída
de los servidores debido a los constantes ataques que se presentan en el
día a día, por lo tanto la seguridad nula que existe en los equipos. También
es necesario el manejo de los registros que no se llevan por lo que es
necesario atacar ese problema, es necesario limitar además las
responsabilidades entre el personal de soporte y el usuario es decir el
alcance que tiene este en el sistema y hasta qué punto se puede llegar.
1.2 De donde provienen dichos problemas? R. Generalmente los problemas
provienen de la poca seguridad que mantienen los usuarios con sus
carpetas y archivos, ya que una gran parte de las filtraciones provienen por
la subida de exploits en el servidor gracias a los permisos mal asignados,
las contraseñas “básicas” son otro problema, ya que los usuarios como son
novatos o simples clientes sin un conocimiento informático creen que una
contraseña segura es “12345” o el mismo usuario de cpanel o de correo.
1.3 Se realiza un análisis y/o auditoria de registros? R. Casi nunca se realiza
un estudio de registros, ya que por un tema de espacio en el servidor los
registros son eliminados para aumentar el espacio en el disco, tampoco se
sacan copias de los registros ni se descargan, solo se chequean cuando
ocurre algún problema para saber que puede estar ocurriendo, no existen
históricos.
154
2. Postura frente la problemática
2.1 Existe algún reglamento o protocolos frente a problemáticas de seguridad y
las responsabilidades? R. No, no existe dicho documento, se necesita pero
por falta de tiempo no se ha confeccionado.
2.2 Cuales serian las mejoras que se podrían realizar para mejorar el
funcionamiento del sistema? R. La idea es implementar un conjunto de
herramientas que aumenten la seguridad de los servidores, filtrando los
accesos, de fácil uso para el personal. También es necesario regular el
tema de los registros en cada servidor, una aplicación que rescate esto y lo
envíe por correo o se pueda imprimir como un simple informe sería lo ideal.
2.3 Porque no se han realizado? R. Como se comento anteriormente, la falta
de tiempo y la poca disponibilidad del personal para hacer esta compleja
tarea.
2.4 Quienes tienen y/o poseen la atribución para modificar el sistema actual?
R. El Ceo de la empresa, el encargado del departamento de soporte y el
personal que entrega el servicio de soporte.
3. Detalles de la problemática
3.1 Cuál es el proceso con más falencia? R. El proceso con mas caídas es
apache, la sobrecarga hace que el servidor tome este proceso y lo “mate”
cada vez que este queda sin memoria por algún motivo, generalmente el
proceso que consume más memoria es mysql por la mala configuración de
las bases de datos por parte de los usuarios, además los exploits que son
cargados en los servidores o el malware así también las tareas cron mal
hechas son los que consumen bastante memoria, cuando se genera un
ataque a algún servidor este empieza a consumir gran cantidad al
155
responder las peticiones de los atacantes y se generan caídas, lo típico de
un ataque Dos.
3.2 Cuál es el servicio por el cual mas se contactan los usuarios con el
personal de Soporte? R. Las páginas webs que no se ven por el apache
caído y los correos que no son recepcionados o enviados por un tema de
spam o configuración del gestor de correos.
3.3 Es posible escalar la infraestructura actual? R. Solo es posible realizar
upgrades de memoria ram y aumentos de espacio en disco, pero trae por
consiguiente un aumento del costo el cual es crítico y no bien mirado por la
gente del área comercial y finanzas.
3.4 Cuál es el periodo máximo de tolerancia de una caída de algún servicio?
R. Al caerse apache, los clientes llaman porque sus páginas no están
accesibles, los correos son críticos de igual manera pero los llamados son
un poco menos referente a apache, ya que no todos se conectan a cada
momento, sino que cada 3 minutos o 5 minutos el gestor de correos
rescata estos mismos y al detectar un error lo muestra al usuario, ahí es
cuando este llama para saber que ocurre y para que se solucione
prontamente.
3.5 Existen herramientas actualmente que puedan prevenir los problemas
actuales? R. En algunos servidores se encuentra la herramienta APF con
el complemento BFD, no muy bien configurada, ha servido bastante ya que
ha frenado accesos no validos, la única herramienta instalada es el
antivirus clamAV, pero consume bastante recursos al realizar una
búsqueda y al estar ejecutándose en cada momento, por lo cual
generalmente se mata el proceso para que libere memoria y sea ocupada
156
en otras cosas. Es una mala práctica pero ha debido hacerse para prevenir
caídas de otros servicios.
4. Restricciones
4.1 Existe alguna restricción para la implementación? R. Lo ideal es que se
ocupe software libre, no de pago ya que no existen fondos para
implementar una herramienta de pago. Además es necesario que las
herramientas sean ligeras(no ocupen demasiada memoria ram de forma
permanente) y fáciles de ocupar para el personal obviamente.
4.2 Es posible realizar cambios en la estructura inicial? R. No, no es posible
actualizar el S.O. de los servidores, ya que conllevaría a bajar el sistema
durante el tiempo que demora el proceso, además de tener sumo cuidado,
es crítico, solo se pueden actualizar los servicios y aplicaciones que no
traigan riesgos de caídas, perdidas de datos y bajas del sistema.
157
8. Conclusión
Con las herramientas de seguridad implementadas y los protocolos creados
delegando responsabilidad entre el cliente y el usuario se ha pretendido aumentar la
seguridad y la seriedad del servicio ofrecido, bien se puede suponer que el sistema
sigue vulnerable ya que la informática y la computación es algo con lo cual uno debe
actualizarse cada día, por lo tanto una implementación, una toma de decisión o una
simple acción puede que no sea la misma de un día para otro ya que los requisitos
también cambian debido a la rápida evolución de los sistemas computacionales y las
actitudes de los usuarios.
De lo que se puede estar seguro, es que se ha generado una base solida para
seguir realizando estudios y análisis así como también upgrades de los sistemas
implementados, se podrá llevar un control de los registros que antes no se obtenía
que ayudara bastante a la toma de decisiones al momento de adquirir otro nuevo
servidor para ofrecer los servicios prestados.
158
9. Bibliografía y/o Fuentes de Información
• http://www.grupobabel.com/metodologia-implementacion.html
• http://www.encuentroalternativo.com/
• http://www.creattiva.cl/hosting/datacenter/cpanel/
• http://www.dataprotectioncenter.com/
• http://sectools.org/index.html
• http://blog.dynamoo.com/
• http://systemadmin.es/
• http://linuxtopia.org/index.html
• http://foro.elhacker.net/index.php
• http://foro.el-hacker.com/index.php
• http://www.phantom-lord.com.ar/
• http://www.portalhacker.net/index.php
• http://rkhunter.sourceforge.net/
• http://www.comunidadhosting.com
• http://www.linuxtotal.com.mx
• http://www.chkrootkit.org/faq/
• http://www.masmetros.com/servidores-dedicados/
• http://es.wikipedia.org
• http://www.vicolinker.net
• http://www.leopoldomaestro.com
• http://www.countryipblocks.net/proxies/
159
• http://www.cordobyte.com
• http://kezhong.wordpress.com
• http://www.nosolocodigo.com
• http://www.g33kinfo.com
• http://www.thesystemadministrator.net/cpanel
• http://www.encuentroalternativo.com
• http://linuxamartillazos.blogspot.com
• http://www.internetlab.es
• http://www.sourceforge.net/projects
• http://www.mysql-apache-php.com
• http://www.carlosegea.es
160
Índice
Introducción …………………………………………………………………………………1
1. Capítulo 1: Análisis previo .................................................................................... 2
1.1. Antecedentes Generales de la Organización ................................................ 4
1.2. Misión de la organización .............................................................................. 4
1.3. Historia de la organización ............................................................................ 4
1.4. Infraestructura Computacional y de Software ............................................... 6
1.5. Organigrama de la empresa ......................................................................... 9
1.6. Descripción del área en estudio .................................................................... 9
1.7. Modelo del área en estudio ......................................................................... 10
1.8. Análisis crítico de la situación actual ........................................................... 10
1.9. Alternativas de solución y propuesta........................................................... 10
1.10. Nuevo modelo de la alternativa ................................................................. 11
2. Capítulo 2: Especificación de Requerimientos .................................................... 12
2.1. Nombre del Proyecto .................................................................................. 14
2.2. Objetivos del Proyecto ................................................................................ 14
2.2.1. Objetivos Generales .............................................................................. 14
2.2.2. Objetivos Específicos ............................................................................ 15
2.3. Usuarios del Sistema .................................................................................. 16
2.3.1. Los Usuarios Directos ............................................................................ 16
2.3.2. Los Usuarios Indirectos: ........................................................................ 16
2.4. Metodología del plan de trabajo .................................................................. 16
2.5. Toma de Requerimientos y Auditoria del sistema ....................................... 17
2.5.1. Toma de Requerimientos mediante Entrevista ...................................... 17
2.5.2. Auditoria del sistema ............................................................................. 18
2.5.2.1. Análisis de Logs .............................................................................. 18
2.5.2.2. Análisis de Permisos ....................................................................... 19
2.5.2.3. Análisis de Seguridad de Contraseñas ........................................... 20
2.5.2.4. Análisis de Aplicaciones .................................................................. 20
161
2.5.2.5. Análisis de la Base de Datos ........................................................... 22
2.5.2.6. Análisis del servidor de correo ........................................................ 22
2.5.2.7. Análisis del servidor de nombres .................................................... 23
2.5.2.8. Análisis del Servidor Web ............................................................... 24
2.5.3. Que recursos proteger, creación de la matriz de criticidades ................ 25
2.6. Planificación y Carta Gantt del proyecto ..................................................... 26
3. Capítulo 3: Aporte Ingenieril ............................................................................... 27
3.1. Aporte Ingenieril .......................................................................................... 29
3.2. Búsqueda de herramientas para frenar y solucionar problemas actuales (búsqueda reactiva) ............................................................................................... 32
3.2.1. Búsqueda de registros en el servidor .................................................... 32
3.2.1.1. Evaluación de la aplicación ............................................................. 32
3.2.2. Frenar una denegación de servicio ........................................................ 33
3.2.2.1. Evaluación de la aplicación: ............................................................ 35
3.2.3. Detener de manera automática y eficaz a intrusos ................................ 35
3.2.3.1. Evaluación de la aplicación ............................................................. 36
3.2.3.2. Evaluación de la aplicación ............................................................. 36
3.3. Búsqueda de herramientas para complementar y obtener información (búsqueda proactiva) ............................................................................................. 37
3.3.1. Como detectar malware en el sistema con LMD (Linux malware detect) 38
3.3.1.1. Evaluación de la aplicación ............................................................. 39
3.3.2. Como detectar malware y rootkits en el sistema con Rkhunter ............. 39
3.3.2.1. Evaluación de la herramienta .......................................................... 41
3.3.3. Suite de Seguridad en Linux .................................................................. 41
3.3.3.1. Evaluación de la aplicación ............................................................. 42
4. Capítulo 4: Implementación de herramientas ..................................................... 43
4.1. Implementación de herramientas para solucionar vulnerabilidades. ........... 45
4.1.1. Logwatch ............................................................................................... 45
4.1.2. Rkhunter ................................................................................................ 48
4.1.3. DDos Deflate ......................................................................................... 51
162
4.1.4. APF y BDF ............................................................................................. 52
4.1.4.1. Iniciando la instalación de APF: ...................................................... 52
4.1.4.2. Iniciando instalación de BFD ........................................................... 58
4.1.5. LMD (Linux malware detect) .................................................................. 66
4.1.6. Suite de Seguridad CFS & LFD (ConfigServer Security & Firewall) ...... 71
5. Capitulo 5: Creación de Protocolos de Seguridad y Soluciones a las Vulnerabilidades ...................................................................................................... 126
5.1. Creación de Protocolos de Seguridad y Soluciones a las Vulnerabilidades, 128
5.1.1. Qué es la seguridad de la información? .............................................. 128
5.1.2. Por qué es necesaria la seguridad de la información .......................... 129
5.1.3. Factores críticos del éxito .................................................................... 130
5.1.4. Detalles de un Ataque ......................................................................... 131
5.1.5. Situación Actual ................................................................................... 132
5.2. Protocolos y/o Políticas de Seguridad para los clientes de Hosting .......... 133
5.2.1. Política de correo electrónico............................................................... 133
5.2.2. Política sobre ssh ................................................................................ 136
5.2.3. Política de Servidor Web y Archivos (permisos + aplicaciones + web) 137
5.2.4. Política de Monitoreo del acceso y uso de los sistemas ...................... 138
5.2.4.1. Objetivo: detectar actividades no autorizadas ............................... 138
5.2.4.2. Registro de eventos ...................................................................... 139
5.2.4.3. Factores de riesgo ........................................................................ 139
5.2.4.4. Registro y revisión de eventos ...................................................... 140
5.2.4.5. Sincronización de relojes .............................................................. 140
6. Anexo 1: Notas y detalles de la implementación .............................................. 142
Detalles de la implementación ............................................................................. 142
Eventos en la implementación: ......................................................................... 142
Problema con CSF+LFD .............................................................................. 142
Eventos de la puesta en marcha: ..................................................................... 143
Problema con DDos Deflate ......................................................................... 143
163
Problema con APF........................................................................................ 143
Eventos de otra índole: ..................................................................................... 144
Eliminar zonas dns en caso de ataque: ........................................................ 144
Cphulk (Brute Force Protection) ................................................................... 144
7. Anexos 2: Formularios y Entrevistas................................................................. 145
Anexo 1 ................................................................................................................ 145
Anexo 2 ................................................................................................................ 146
Anexo 3 ................................................................................................................ 147
Anexo 4 ................................................................................................................ 148
Anexo 5 ................................................................................................................ 149
Anexo 6 ................................................................................................................ 150
Anexo 7 ................................................................................................................ 151
Anexo 8 ................................................................................................................ 152
Anexo 9 (Entrevista) ............................................................................................. 153
8. Conclusión ........................................................................................................ 157
9. Bibliografía y/o Fuentes de Información............................................................ 158