Implementacion De Seguridad Y Creacion De Protocolos Para Un Sistema De Webhosting

Comparto a la web, mi proyecto de titulo donde se crean protocolos de comportamiento y de responsabilidad compartida en un entorno webhosting, adicionalmente de una implementacion de seguridad con herramientas de software libre.
View more...
   EMBED

Share

Preview only show first 6 pages with water mark for full document please download

Transcript

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 Aplicación 20-21 25-26 53 80 110 143 443 465 993 2082-2083 2086-2087 2095-2096 3306 5432 6666 TCP TCP-UDP TCP-UDP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP Control FTP Smtp DNS Httpd Pop3 Imap Https Smtps Imap sobre ssl cpanel whm webmail mysql postgresql Logs Servicio de publicacion FTP Servicio de correo Servidor DNS Servicio web Servicio de correo Servicio de correo Servicio web Servicio de correo Servicio de correo Servicio Cpanel Servicio web host manager Servicio Webmail Servicio bbdd mysql Servicio postgres Servicio de registros y logs de Nombre del servicio 9 7786 49222 TCP TCP Logs Ssh Servicio de registros y logs Servicio ssh 1.5. Organigrama de la empresa CEO Área comercial y administración Área Proyectos Área Operaciones Departamento comercial Departamento administración Departamento Diseño Web Departamento Programación y Desarrollo Departamento Soporte 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 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 Courier Ventajas • Servidor tradicional para cpanel con imap y pop3 • Extremadamente fiable Dovecot • Bajo consumo de memoria • Altamente configurable • IMAP con mejor rendimiento • El buzón de correo basura, no es automáticamente borrado su Desventajas • Mayor consumo de memoria 23 • Apoyo de Fastmail para contenido. Blackberrys 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 BIND Ventajas • Los archivos de conf. de zonas se pueden editar manualmente. • Extremadamente configurable. • Proporciona un servidor de nombres cache. • Extremadamente archivos de zona. tolerante Desventajas • Ocupa más memoria que su competidor. con errores de sintaxis en los NSD • Muy bajo consumo de • La conf. se genera memoria. automáticamente. 24 • Extremadamente ligero. • No necesita configuración • No solo proporciona un Nameserver sirven cache, zonas un adicional necesaria. (requiere 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) noche Parada Max. Plataforma Tolerada 5 horas 1 Hora CentOS CentOS Usuarios FTP Baja Clientes Clientes Bases de Media - Todo el día Datos Correos Alta Alta Mañana Tarde DNS Media - Todo el día Alta Apache Ssh Alta Alta Todo el día Mañana Tarde y 30 minutos CentOS Clientes 1 hora CentOS Clientes 30 minutos y 5 minutos CentOS CentOS Clientes 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 solucionar 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 intrusos 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/advancedpolicy-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-forcedetection) 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 obtener 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 sistema 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 solucionar 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/rkhunter1.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 bfd1.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 prueba. un escaneo manual de 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 Security & 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 Check whether csf is enabled Check csf is running Check whether csf is in TESTING mode Check csf AUTO_UPDATES option Check whether lfd is enabled Check incoming MySQL port Check csf SMTP_BLOCK option Check csf LF_SCRIPT_ALERT option Check csf LF_SSHD option Check csf LF_FTPD option Status OK OK OK OK OK OK OK OK OK OK Comment 75 Check csf LF_SMTPAUTH option Check csf LF_POP3D option Check csf LF_IMAPD option Check csf LF_HTACCESS option Check csf LF_MODSEC option Check csf LF_CPANEL option Check csf LF_CPANEL_ALERT option Check csf LF_DIRWATCH option Check csf LF_INTEGRITY option Check csf PT_SKIP_HTTP option Check csf PT_ALL_USERS option Check csf SAFECHAINUPDATE option Server Check Check /tmp permissions Check /tmp ownership Check /tmp is mounted as a filesystem OK OK OK OK OK OK OK OK OK OK OK OK Status OK OK OK Comment 76 Check /tmp is mounted noexec,nosuid Check /etc/cron.daily/logrotate for /tmp noexec OK workaround Check /var/tmp permissions Check /var/tmp ownership Check /var/tmp is mounted as a filesystem Check /var/tmp is mounted noexec,nosuid Check /usr/tmp permissions Check /usr/tmp ownership Check /usr/tmp is mounted as a filesystem or is a symlink to /tmp Check /dev/shm is mounted noexec,nosuid Check for DNS recursion restrictions Check for DNS random query source port Check server runlevel Check nobody cron Check Operating System support OK OK OK OK OK OK OK OK OK OK OK OK OK OK 77 Check perl version Check MySQL version Check MySQL LOAD DATA disallows LOCAL Check SUPERUSER accounts OK OK OK OK You should consider using cxs WARNI NG to scan web script and ftp uploads and user accounts for exploits uploaded to the server Check for IPv6 Check for kernel logger SSH/Telnet Check Check SSHv1 is disabled OK OK Status OK You consider Check SSH on non-standard port WARNI NG SSH to should moving a nonport to Comment Check for cxs standard [currently:22] evade basic SSH port scans. Don't 78 forget to open the port in the firewall first! For ultimate SSH security, you should consider Check SSH PasswordAuthentication WARNI NG disabling PasswordAuthentic ation and only allow access using PubkeyAuthenticati on Check SSH UseDNS Check telnet port 23 is not in use Check shell limits Check Background Process Killer Mail Check Check root forwarder Check exim for extended logging (log_selector) Check exim weak SSL/TLS Ciphers OK OK OK OK Status OK OK Comment (tls_require_ciphers) Check for maildir conversion OK OK 79 Check dovecot weak SSL/TLS Ciphers (ssl_cipher_list) Apache Check Check apache version Check suPHP Check Suexec Check apache for mod_security Check apache for FrontPage Check apache for RLimitCPU Check apache for RLimitMEM Check Apache weak SSL/TLS Ciphers OK Status OK OK OK OK OK OK OK Comment (SSLCipherSuite) Check apache for TraceEnable Check apache for ServerSignature Check apache for ServerTokens Check apache for FileETag Check mod_userdir protection OK OK OK OK OK WARNI To prevents users 80 NG from bandwidth hackers access to stealing or hiding your servers, you should check WHM > Security Center > mod_userdir Tweak PHP Check Check php version (/usr/local/bin/php) Status OK You should modify /usr/local/lib/php.ini and enable_dl = set: Off Comment This prevents users from loading php modules that affect WARNI NG everyone on the Check php for enable_dl or disabled dl() 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 You consider ini_set to should adding the disable_functions in the PHP configuration as this setting allows PHP scripts to override Check php for ini_set disabled WARNI NG global security and performance settings scripts. for PHP Adding ini_set can break PHP scripts and out commenting any use of ini_set in such advised Check php for register_globals Check php for Suhosin Check php open_basedir protection WHM Settings Check Check cPanel login is SSL only OK OK OK Status Comment scripts is 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 Check max emails per hour is set Check whether users can reset passwords via email Check whether native cPanel SSL is enabled Check compilers Check Anonymous FTP Logins Check Anonymous FTP Uploads Check pure-ftpd weak SSL/TLS Ciphers OK OK OK OK OK OK OK (TLSCipherSuite) OK Allowing root login via Check FTP Logins with Root Password WARNI NG 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 Check block common domains Check allow park domains Check cPAddons update email to owner Check cPAddons update email to root Check cPanel tree Check cPanel updates Check package updates Check security updates Check melange chat server OK OK OK OK OK OK OK OK OK OK You should consider setting this Check Accounts that can access a cPanel user WARNI account NG option to "user" after use. WHM > Tweak Settings > Accounts that can access a cPanel 84 user account Check cPanel php for register_globals Check cPanel php.ini file for register_globals Check cPanel passwords in email Check core dumps Check Cookie IP Validation Check MD5 passwords with Apache Check Referrer Blank Security Check Referrer Security Check HTTP Authentication Check Security Tokens Check Parent Security Check Domain Lookup Security Check SMTP Tweak Check nameservers Server Services Check OK OK OK OK OK OK OK OK OK OK OK OK OK OK Status Comment 85 Check server startup for cups Check server startup for xfs Check server startup for atd Check server startup for nfslock Check server startup for canna Check server startup for FreeWnn Check server startup for cups-config-daemon Check server startup for iiim Check server startup for mDNSResponder Check server startup for nifd Check server startup for rpcidmapd Check server startup for bluetooth Check server startup for anacron Check server startup for gpm Check server startup for saslauthd Check server startup for avahi-daemon OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK 86 Check server startup for avahi-dnsconfd Check server startup for hidd Check server startup for pcscd Check server startup for sbadm OK OK OK 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 Soluciones 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 informació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, crecientemente sofisticados. ambiciosos y 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 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. y cumplan ciertos requerimientos previamente 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 (permisos + 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 los sistemas 5.2.4.1. Objetivo: detectar actividades no autorizadas 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), aborting” 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. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.8. 1.9. 1.10. Antecedentes Generales de la Organización ................................................ 4 Misión de la organización.............................................................................. 4 Historia de la organización ............................................................................ 4 Infraestructura Computacional y de Software ............................................... 6 Organigrama de la empresa ......................................................................... 9 Descripción del área en estudio .................................................................... 9 Modelo del área en estudio ......................................................................... 10 Análisis crítico de la situación actual ........................................................... 10 Alternativas de solución y propuesta........................................................... 10 Nuevo modelo de la alternativa................................................................. 11 2. Capítulo 2: Especificación de Requerimientos.................................................... 12 2.1. 2.2. Nombre del Proyecto .................................................................................. 14 Objetivos del Proyecto ................................................................................ 14 Objetivos Generales .............................................................................. 14 Objetivos Específicos ............................................................................ 15 2.2.1. 2.2.2. 2.3. Usuarios del Sistema .................................................................................. 16 Los Usuarios Directos ............................................................................ 16 Los Usuarios Indirectos: ........................................................................ 16 2.3.1. 2.3.2. 2.4. 2.5. Metodología del plan de trabajo .................................................................. 16 Toma de Requerimientos y Auditoria del sistema ....................................... 17 Toma de Requerimientos mediante Entrevista ...................................... 17 Auditoria del sistema ............................................................................. 18 Análisis de Logs .............................................................................. 18 Análisis de Permisos ....................................................................... 19 Análisis de Seguridad de Contraseñas ........................................... 20 Análisis de Aplicaciones .................................................................. 20 2.5.1. 2.5.2. 2.5.2.1. 2.5.2.2. 2.5.2.3. 2.5.2.4. 161 2.5.2.5. 2.5.2.6. 2.5.2.7. 2.5.2.8. 2.5.3. 2.6. Análisis de la Base de Datos........................................................... 22 Análisis del servidor de correo ........................................................ 22 Análisis del servidor de nombres .................................................... 23 Análisis del Servidor Web ............................................................... 24 Que recursos proteger, creación de la matriz de criticidades ................ 25 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 Evaluación de la aplicación ............................................................. 32 3.2.1.1. 3.2.2. Frenar una denegación de servicio........................................................ 33 Evaluación de la aplicación: ............................................................ 35 3.2.2.1. 3.2.3. Detener de manera automática y eficaz a intrusos ................................ 35 Evaluación de la aplicación ............................................................. 36 Evaluación de la aplicación ............................................................. 36 3.2.3.1. 3.2.3.2. 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 Evaluación de la aplicación ............................................................. 39 3.3.1.1. 3.3.2. Como detectar malware y rootkits en el sistema con Rkhunter ............. 39 Evaluación de la herramienta .......................................................... 41 3.3.2.1. 3.3.3. Suite de Seguridad en Linux .................................................................. 41 Evaluación de la aplicación ............................................................. 42 3.3.3.1. 4. Capítulo 4: Implementación de herramientas ..................................................... 43 4.1. Implementación de herramientas para solucionar vulnerabilidades. ........... 45 Logwatch ............................................................................................... 45 Rkhunter ................................................................................................ 48 DDos Deflate ......................................................................................... 51 4.1.1. 4.1.2. 4.1.3. 162 4.1.4. APF y BDF ............................................................................................. 52 Iniciando la instalación de APF: ...................................................... 52 Iniciando instalación de BFD ........................................................... 58 4.1.4.1. 4.1.4.2. 4.1.5. 4.1.6. LMD (Linux malware detect) .................................................................. 66 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 Qué es la seguridad de la información? .............................................. 128 Por qué es necesaria la seguridad de la información .......................... 129 Factores críticos del éxito .................................................................... 130 Detalles de un Ataque ......................................................................... 131 Situación Actual ................................................................................... 132 5.1.1. 5.1.2. 5.1.3. 5.1.4. 5.1.5. 5.2. Protocolos y/o Políticas de Seguridad para los clientes de Hosting .......... 133 Política de correo electrónico............................................................... 133 Política sobre ssh ................................................................................ 136 Política de Servidor Web y Archivos (permisos + aplicaciones + web) 137 Política de Monitoreo del acceso y uso de los sistemas ...................... 138 Objetivo: detectar actividades no autorizadas ............................... 138 Registro de eventos ...................................................................... 139 Factores de riesgo ........................................................................ 139 Registro y revisión de eventos ...................................................... 140 Sincronización de relojes .............................................................. 140 5.2.1. 5.2.2. 5.2.3. 5.2.4. 5.2.4.1. 5.2.4.2. 5.2.4.3. 5.2.4.4. 5.2.4.5. 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