166
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

Ingeniería en Ejecución en Computación e Informática ...docshare04.docshare.tips/files/7414/74141290.pdf · Capitulo 4 – Implementación de herramientas para s olucionar vulnerabilidades

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.

2

1. Capítulo 1: Análisis previo

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

12

2. Capítulo 2: Especificación

de Requerimientos

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

27

3. Capítulo 3: Aporte Ingenieril

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.

43

4. Capítulo 4:

Implementación de

herramientas

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:

49

Luego de instalar, se procede a actualizar su base de datos de la siguiente

manera:

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:

62

Plantilla de correo de muestra frente a una detección y/o ataque al sistema a través

de ssh:

63

Plantilla de correo de muestra frente a una detección y/o ataque al sistema a través

de exim:

64

Contenido del archivo de registros deny_host.rules

65

Contenido del archivo allow_host.rules

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

88

O sobre los últimos 30 días.

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

126

5. Capitulo 5: Creación de

Protocolos de Seguridad

y Soluciones a las

Vulnerabilidades

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.

146

Anexo 2

147

Anexo 3

148

Anexo 4

149

Anexo 5

150

Anexo 6

151

Anexo 7

152

Anexo 8

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