Manual de fortificación Linux
Short Description
Download Manual de fortificación Linux...
Description
Manual de Fortificación Equipos Linux (Ubuntu) Eduardo Bayón Cascajo Seguridad Informática 15/03/2012
Eduardo Bayón Cascajo
Seguridad Informática
Índice Introducción ........................................................................................................ 2 Instalación y configuración básica ...................................................................... 2 Instalación mínima y comprobación de la misma ........................................... 3 Ojo con el particionado ................................................................................... 5 El gestor de arranque .................................................................................. 6 Conocer siempre la procedencia del software ................................................ 6 Mantener siempre el sistema actualizado ....................................................... 7 Eliminar software innecesario ......................................................................... 7 Colocar nuestra máquina detrás de un firewall ............................................... 8 Filtrado básico de paquetes con UFW ........................................................ 8 Filtrado de paquetes con Netfilter(Iptables)............................................... 10 Shorewall .................................................................................................. 12 Verificar la seguridad de los archivos clave del sistema ............................... 17 Limitar el acceso root con sudo .................................................................... 17 Proteger nuestras contraseñas ..................................................................... 18 Asegurar la memoria compartida .................................................................. 19 Eliminar kernels obsoletos ............................................................................ 20 Copias de seguridad ..................................................................................... 21 Bloquear los ataques SSH: DenyHosts ........................................................ 22 Desactivar logueo root mediante SSH ...................................................... 23 Activar la carpeta Private para guardar datos confidenciales ....................... 24 Rootkits en nuestro equipo ........................................................................... 27 Antivirus en Linux ......................................................................................... 29 Herramientas específicas ................................................................................. 32 Ubuntu Tweak............................................................................................... 32 WireShark: Control del tráfico de la red ........................................................ 34 BASTILLE ..................................................................................................... 36 Administrador de servicios BUM ................................................................... 41 Lista de herramientas para seguridad .............................................................. 43 Bibliografía y Webgrafía ................................................................................... 46
Página 1 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Introducción Vamos a realizar en este documento un manual con una serie de medidas necesarias para la fortificación de sistemas Linux, especialmente basándonos en Ubuntu. No será una guía de referencia general, si no que intentaremos basarnos en aspectos de fortificación específicos para estos sistemas.
Instalación y configuración básica Antes de comenzar una instalación debemos plantearnos una serie de preguntas que nos permitan realizarla de modo efectivo: ¿Qué hardware vamos a emplear (arquitectura, tarjetas de red, etc.)?, ¿Qué versión del sistema operativo?, ¿Cómo vamos a instalar? ¿Desde disco flexible, CD-ROM, vía red, ...?, ¿Cómo vamos a configurar la BIOS?, ¿Cómo vamos a particionar los discos?, ¿Qué sistemas de ficheros vamos a emplear? ¿Cuál es la configuración de la red? (en principio no deberíamos emplear DHCP para un servidor): Dirección IP Máscara de red Dirección de la puerta de enlace (Gateway) Nombre y dominio del equipo Direcciones de los servidores de nombres ¿Qué sistemas de autentificación vamos a emplear? ¿Contraseña del administrador? ¿Qué gestor de arranque vamos a emplear? Estas preguntas anteriores parecen sencillas y básicas, que lo son, pero las debemos tener todas muy claras antes de dar comienzo a nuestra instalación. Todas ellas son genéricas y nos las plantearemos siempre que vayamos a realizar una instalación de cualquier sistema.
Página 2 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Instalación mínima y comprobación de la misma No voy a explicar cómo realizar una instalación mínima en Ubuntu ya que la instalación que hagamos en cada momento es diferente dependiendo los servicios que necesitemos o se nos pidan, pero la filosofía de estar clara: Únicamente debemos instalar los servicios que necesitemos, es decir nuestra instalación debe ser mínima. Es muy poco recomendable instalar servicios que no van a ser usados, mucho de ellos abren puertos en nuestro firewall que nunca se usarán, pero si que podrán ser aprovechados por un atacante que esté buscando fallos en nuestro sistema. Además puede que los servicios que no usemos “pasemos” de ellos y no les actualicemos y a la larga constituyan una vulnerabilidad evidente sobre nuestro sistema al no estar al día en la seguridad. Si accedemos a una consola en nuestra máquina Ubuntu y especificamos el siguiente comando, veremos todos los procesos que tenemos activos en nuestra máquina:
También debemos comprobar el estado de nuestros puertos abiertos con:
Página 3 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Si visualizamos el contenido del fichero /etc/rc5.d/ del siguiente modo, veremos todos los scripts que se ejecutan al iniciarse nuestro sistema:
También podemos usar el paquete chconfig para comprobar el estado de todos los programas y procesos de inicio. Antes tendremos que instalarlo:
Y simplemente listamos el contenido que recupera esta aplicación:
Estos son solo ejemplos de cómo comprobarlos, pero evidentemente no se puede decir cuales o no se tienen que tener abierto, como ya he dicho cada sistema debe valorar que puerto o proceso debe estar operativo.
Página 4 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Ojo con el particionado Este es un aspecto que muchas veces se omite y se deja por defecto, y es que debemos tener mucho cuidado en como particionamos nuestro sistema a la hora de realizar la instalación, de aquí el tener claro todas las preguntas que realizamos al principio y es que lo primero es tener claro es esquema de particiones a realizar en la cabeza. Independientemente del sistema Unix a instalar tendremos que decidir como particionamos el disco y qué tipo de sistema de archivos vamos a emplear. Supondremos que todo el disco está disponible para nuestro sistema operativo, de modo que no nos tendremos que preocupar de mantener particiones para otros S.O. En el caso más simple lo normal es definir 1 partición para la memoria de intercambio swap y otra para el sistema de archivos raiz. Además de estas dos particiones es habitual incluir otra partición dedicada exclusivamente a la información de los usuarios, /home en Linux. En sistemas Linux también es común definir una pequeña partición donde se instala el núcleo del sistema operativo y todo lo que necesita para arrancar (partición /boot).
Página 5 de 46
Eduardo Bayón Cascajo
Seguridad Informática
El gestor de arranque Para arrancar un sistema Linux se pueden emplear diversos medios: instalar un cargador de arranque en el disco duro o en un disco flexible, arrancar desde otro sistema operativo, etc… En este caso hablaremos sólo de los sistemas de arranque que se instalan en disco duro, en concreto sobre GRUB que es el sistema de arranque que se usa por defecto en los sistemas operativos Ubuntu: GRUB GRUB (GRand Unified Bootloader) es un sistema de arranque más potente que el anterior. Una vez instalado en un sector de arranque o en el Master Boot Record (MBR) del disco duro, ejecuta un intérprete de comandos cada vez que iniciamos el sistema que nos permite arrancar prácticamente cualquier sistema operativo actual. Este intérprete se puede usar de modo interactivo o puede leer un fichero de configuración almacenado en el disco (que por defecto estará en /boot/grub/menu.lst). Una característica importante de GRUB es que es capaz de reconocer gran cantidad de sistemas de ficheros, de modo que no es necesario reinstalarlo cuando cambiamos ese fichero de configuración, que es simplemente un fichero de texto plano.
Conocer siempre la procedencia del software Otro concepto que siempre debemos cumplir. Solo debemos instalar paquetes en nuestro sistema que vengan de repositorios oficiales o que nos faciliten las claves públicas de los ficheros en la descarga, para luego comprobarla nosotros mismos.
Página 6 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Mantener siempre el sistema actualizado Esta es otra de esas normas que siempre deben cumplirse por muy pesadas que sean a veces las actualizaciones, y es que tener al día nuestro sistema con todos sus parches y actualizaciones, es quizás, el primer método de fortificación. En Linux, Ubuntu en mi caso, lo tenemos muy fácil para tener actualizado siempre nuestro sistema y sus componentes. Abrimos una consola de comandos y especificamos, por este orden: 1. 2. También, si existe una nueva versión de nuestro sistema y queremos implantarla en él, podemos usar el comando:
Eliminar software innecesario Ya hemos comentado que nuestra instalación debe ser mínima, y que debemos deshabilitar procesos que no usemos. Lo mismo nos pasa con el software que instalamos y no usamos. Lo mejor es tenerlo siempre al día solo con aquellos programas que vayamos a utilizar. Para eliminar de nuestro sistema programas que ya no deseemos tener, desde una línea de comandos especificamos: 1. sudo apt-get remove “nombre-del-paquete” 2. sudo apt-get purge “nombre-del-paquete” 3. sudo apt-get clean “nombre-del-paquete” Además, es recomendable que eliminemos los ficheros que estos paquetes que hemos instalado han copiado a nuestro sistema.
Página 7 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Colocar nuestra máquina detrás de un firewall Debemos siempre que podamos, proteger nuestra máquina con un sistema de cortafuegos que filtre todo lo posible los ataques que vengan del exterior. Dentro de Ubuntu tenemos varias posibilidades, a continuación veremos un par de ellas. Filtrado básico de paquetes con UFW UFW (Uncomplicated FireWall) es la herramienta de configuración de firewall por defecto en Ubuntu. Desarrollado para facilitar la configuración del firewall Netfilter (Iptables), UFW proporciona una manera fácil de crear un firewall basado en host IPv4 o IPv6. UFW por defecto está deshabilitado inicialmente, no pretende proporcionar una completa funcionalidad de firewall vía comandos, pero en su lugar proporciona una modo fácil de añadir y eliminar reglas simples. En la actualidad se utiliza principalmente para cortafuegos basados en host. [1] Si deseamos usar ufw lo primero que debemos hacer es activarlo mediante:
Con la opción –h podemos ver todas las opciones que tiene para usar, y los diferentes comandos, decir que este sistema de filtrado es muy sencillo y que si tenemos más experiencia con firewalls lo mejor es que utilicemos Netfilter. UFW, en las nuevas versiones, dispone de un entorno gráfico GUFW para tener aún mayor facilidad a la hora de establecer las reglas en nuestro cortafuegos:
Página 8 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Y tendremos un entorno gráfico muy sencillo para administrar el firewall de nuestro equipo decidiendo, como ya hemos visto antes que puertos deseamos que estén abiertos y cuales queremos que estén cerrados:
Página 9 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Filtrado de paquetes con Netfilter(Iptables) Es quizás el cortafuegos por excelencia de los sistemas Linux, es más potente que el anterior que hemos visto (UFW), ya que sus reglas son más específicas, pero también debemos tener en cuenta que es más complicado usar, en principio. A base de usarlo y hacerse con sus sintaxis podemos acostumbrarnos sin problemas. Este sistema es muy potente y permite hacer gran cantidad de cosas con los paquetes que entran, salen y atraviesan nuestros sistemas. Si especificamos sudo iptables –L veremos todas las reglas que tienes presentes nuestro cortafuegos:
Y se nos irán mostrando las diferentes tablas (INPUT, FORDWARD, OUTPUT) junto con la política que usen (ACCEPT, DROP). En mi caso, tengo abierto y permitido todo el tráfico en mi sistema, muy inseguro.
Página 10 de 46
Eduardo Bayón Cascajo
Seguridad Informática
A continuación voy a mostrar un documento, que ejecutaré, con una serie de reglas de configuración básica para nuestro firewall:
Lo ejecutamos como sudo y comprobamos de nuevo el estado de nuestro firewall:
Página 11 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Shorewall Por último, dentro de nuestros programas para conseguir el filtrado de paquetes seguro y proteger nuestra máquina, vamos a ver Shorewall. Se trata de una herramienta de alto nivel para configurar Netfilter. Debemos especificar el cortafuegos o gateway con los requisitos de las entradas en un conjunto de archivos de configuración. Shorewall lee los archivos de configuración y con la ayuda de la utilidad iptables, configura Netfilter según las necesidades que tengamos. Shorewall se puede utilizar en un sistema de servidor de seguridad, en un router o servidor o en un host Linux independiente. Shorewall no usa el modo de compatibilidad de netfilter (iptables). Este programa no viene por defecto instalado en nuestro sistema por lo que lo primero que debemos hacer es instalarlo mediante:
(El segundo paquete es opcional, aunque es recomendable ya que tiene la documentación pertinente sobre el paquete) Una vez instalado vamos a comenzar con su configuración. Al igual que con Netfilter (Iptables) vamos a ver cómo realizar una configuración básica del paquete. 1. Configuramos shorewall para que se inicie al arrancar nuestro sistema, por lo que iremos al fichero /etc/default/shorewall y realizaremos la siguiente modificación: Antes:
Después:
Los archivos de configuración de Shorewall se almacenan en /etc/default/shorewall y en /usr/share/shorewall están los ficheros de apoyo y los que realizan las acciones que le estipulemos.
Página 12 de 46
Eduardo Bayón Cascajo
Seguridad Informática
2. Ahora necesitaremos copiar los ficheros de configuración básicos de shorewall del fichero /usr/share/doc/shorewall/default-config al fichero de configuración /etc/shorewall:
Y comprobamos que se han copiado todos correctamente:
3. El siguiente paso es configurar las zonas, por lo que editaremos el fichero zones dentro de /etc/shorewall para que nuestra única zona sea la de IPV4.
Y añadimos la siguiente línea al final del archivo:
Página 13 de 46
Eduardo Bayón Cascajo
Seguridad Informática
4. Vamos a ver ahora como configurar las interfaces, para ello editaremos el fichero /etc/shorewall/interfaces, de este modo definiremos las zonas especificadas antes con una interfaz real. Debemos comprobar que interfaz es la que escucha en nuestro equipo o cuáles son las que tenemos para ver de qué manera tenemos que filtrar el tráfico en cada una:
Y ahora podemos editar el archivo:
5. El siguiente paso es configurar nuestra política por defecto, esta entra en acción cuando no hay reglas especificadas para un puerto o protocolo concreto, por lo que debemos elegirla bien. A menudo se establece la política por defecto REJECT (rechazar) o DROP por defecto, y luego configuraremos específicamente los puertos y servicios que deseemos estén permitidos, y aquellos que no se configuran por defecto son rechazados. Editaremos el fichero /etc/shorewall/policy, un ejemplo de esta política (en base a las zonas e interfaces que hemos utilizado anteriormente) sería la siguiente:
Página 14 de 46
Eduardo Bayón Cascajo
Seguridad Informática
6. Por último vamos a ver como configurar reglas, en el que especificaremos aquellos puertos que deseemos que nuestro sistema tenga abierto o cerrado. El fichero de configuración de reglas es /etc/shorewall/rules
En este ejemplo estaremos aceptando cualquier ping (ICMP) desde Internet a la máquina, además acepta cualquier conexión TCP desde Internet sobre los servicios ssh, www, https, etc.. Además se acepta a través de Internet las conexiones UDP a https. 7. Por último, activaremos nuestro firewall, para ello nos dirigimos al directorio con los scripts de iniciación de programas, que es /etc/init.d/ y arrancamos (start) el correspondiente a shorewall:
Página 15 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Debemos comprobar el estado de nuestros puertos ahora que hemos activado y configurado shorewall:
Y si lo paramos…
…y lo volvemos a comprobar, veremos que nuestro cortafuego shorewall estaba correctamente configurado y actuando correctamente según las opciones configuradas:
Página 16 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Verificar la seguridad de los archivos clave del sistema Nuestro sistema Ubuntu, tiene una serie de ficheros y directorios los cuales es importantísimo que protejamos con los permisos específicos y sobre todo que no tengan permisos “absolutos” sobre ellos y que cualquier usuario pueda acceder. El fichero /etc/fstab: Debemos asegurarnos que el propietarios y el grupo sea root para ambos y que los permisos que tenga sean del tipo 664 (-rw-r--r--) Comprobaremos que los siguientes ficheros tienen como propietario el usuario root: o /etc/passwd o /etc/shadow o /etc/group Verificaremos los siguientes ficheros tienenlos permisos 664 (rw-r--r--) o /etc/passwd o /etc/group Comprobamos que los permisos del fichero /etc/shadow son 400 (r--------)
Limitar el acceso root con sudo Sudo permite a un administrador proporcionar a diferentes usuarios la posibilidad de ejecutar algunos comandos como root. El archivo sudoers controla el acceso de comandos que controla sudo. Es importante, muy importante, que nunca realicemos tareas de administración como root y si que lo hagamos como sudo o como un usuario que especifiquemos en el fichero de sudoers. Por ejemplo, de la siguiente manera permitiremos solo a los usuarios administradores ver y usar su y sudo:
Página 17 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Proteger nuestras contraseñas También debemos tener en cuenta de que manera especificamos o creamos nuestras contraseñas, es decir, el número de caracteres, la longitud de la misma, la combinación de caracteres numéricos y alfanuméricos…. Pero es cierto que a veces todo esto no vale y tenemos que realizar una encriptación de nuestras contraseñas. Podemos hacerlo en Ubuntu, dese la línea de comandos, de la siguiente manera:
Dependiendo del tipo de encriptación que deseemos usar, sha1 es mejor. Podemos intenar desencriptarlas, por ejemplo desde un servicio online como es: http://md5.rednoize.com/ y comprobamos que no las consigue adivinar:
También podemos usar algún programa específico para encriptar nuestros passwords, como por ejemplo Entropy Password Generator.
Página 18 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Asegurar la memoria compartida El directorio /dev/shm/ contiene una serie de ficheros:
Los cuales pueden ser usados en un ataque para arrancar un servicio, como por ejemplo httpd. De modo que vamos a ver una sencilla manera de proteger este directorio, que no es más que editar el fichero /etc/fstab e introducir la siguiente línea:
Página 19 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Eliminar kernels obsoletos La limpieza de los kernels obsoletos, es una tarea que solemos hacer cuando tenemos el GRUB cargado de entradas, o simplemente cuando nos damos cuenta de que tenemos unas cuantas actualizaciones atrasadas y están cargando el sector de arranque, y necesitamos ese espacio para otros nuevos o simplemente para otras aplicaciones. Lo más sencillo es limpiarlo mediante herramientas gráficas, como Tweak, pero debemos saber hacerlo también “a mano” desde la línea de comandos: 1. Abrimos un terminal y listamos todos los kernels que tenemos instalados en nuestro sistema:
2. Listamos el nombre del kernel que tenemos en uso actualmente, evidentemente debemos saber cual debemos borrar:
3. Borramos de forma manual el kernel o kernels sobrantes:
Continuaremos para liberar el espacio que ocupa dicho kernel. Comprobamos que se ha eliminado de manera correcta:
Página 20 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Otra opción que tenemos para eliminar kernels obsoletos y que nos suele aparecer cuando vamos a instalar algún paquete desde los repositorios de Ubuntu en línea de comandos es apt-get autoremove:
Copias de seguridad Debemos tener siempre una buena política de copias de seguridad. Si lo hemos realizado, podremos guardar las copias y reinstalar el sistema. También es muy aconsejable el crear imágenes del sistema (Drive Image, partimage) para poder restaurarla y con ella los datos de las copias de seguridad. Si no hemos hecho esto, entonces deberemos de crear una copia exacta (dd) del disco vulnerado con un CDLive o disco de rescate y reinstalar el sistema. De forma que podemos usar éste para investigar la intrusión mientras el otro se reinstala. Debemos de asegurarnos que todas las contraseñas sean distintas a la última vez, ya que si alguien consiguió hacerse root, seguramente sepa la contraseña de éste.
Página 21 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Bloquear los ataques SSH: DenyHosts Vamos a usar denyhosts para intentar de bloquear la mayoría, ya que todos es prácticamente imposible, de los ataques SSH. Si estamos preocupados por la seguridad relacionad con los ataques de fuerza bruta ya sea por medio de diccionarios o “a mano”, debemos utilizar esta herramienta. DenyHosts es una apliación que nos permitirá detectar posibles ataques antes de que estos tengan efecto. La manera en que funciona DenyHosts es monitoreaando el archivo /var/log/auth.log (en el caso de Ubuntu) para detectar errores de autentificación al sistema y después bajo ciertas reglas bloquea la IP o servicio que queramos mediante el archivo /etc/hosts.deny Para instalar esta herramienta desde una consola especificamos:
De forma automática, cuando termine la instalación, el paquete ya estará activo:
Después procedemos con la configuración que se encuentra en /etc/denyhosts.conf e algunos de los parámetros importantes como los siguientes:
Página 22 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Reiniciaremos el servicio para que los cambios tomen efecto:
Si hemos configurado el correo de manera correcta, yo lo he hecho para Gmail, cuando alguien intente acceder a nuestra máquina, si DenyHosts lo detecta nos debería de llegar un mensaje electrónico con el siguiente formato: Added the following hosts to /etc/hosts.deny: 192.168.1.4
Desactivar logueo root mediante SSH Como apunte, es muy recomendable, en el caso de tener el acceso root activado en nuestra máquina, desactivarlo para que no se pueda acceder vía SSH como root. Para ello editamos el fichero /etc/ssh/sshd_config y especificamos como no el parámetro PermitRootLogin:
Página 23 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Activar la carpeta Private para guardar datos confidenciales No hay que ser un usuario experto para acceder a los datos almacenados en un ordenador con GNU/Linux. De hecho, si compartes el ordenador con otra persona, para que esta persona pueda ver tus archivos, sólo tiene que abrir Nautilus y buscar tu carpeta home. Sin embargo, imaginemos que alguien llega a acceder a nuestro servidor físicamente. Cualquiera podría iniciarlo con un LiveCD y acceder a toda nuestra información privada sin que nadie se lo impidiera. Ubuntu tiene previsto, desde la versión 8.10 un mecanismo fácil de usar, con el que se puede crear una carpeta especial, que recibe el nombre de Private y que en realidad es un archivo cifrado con ecryptfs. Todo lo que almacenemos dentro de esa carpeta permanecerá invisible para quien pretenda acceder sin iniciar sesión con nuestro nombre de usuario y contraseña. De modo que realizaremos la instalación de los componentes necesarios, en este caso el ya comentado ecryptfs:
Cuando se complete la instalación, necesitaremos crear la propia carpeta, para ello escribiremos en un terminal:
Lo primero que hará será preguntarnos por el login, que se refiere a la contraseña de nuestro usuario actual. Nos solicitará a continuación un mount password que se trata de una frase de “paso”, que puede estar formada de varias palabras, si pulsamos into se generará una de manera automática.
Página 24 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Como nos indica el texto que aparecerá a continuación en la pantalla, es importante que la anotes y no la pierdas porque, aunque el proceso de montaje del archivo cifrado es automático y no se te volverá a pedir la clave, si hubiese un problema futuro que impidiera dicho montaje automático, sin la contraseña no podrías montar el archivo de forma manual y perderías los datos definitivamente:
Una vez realiazdos estos pasos, vamos a comprobar que nuestra carpeta privada Private se ha creado dentro de nuestro directorio /home/usuario:
Y el contenido inicial de la misma:
NOTA: Si no vemos la carpeta nada mas crearlo es probable que necesitemos cerrar la sesión del usuario y volver a entrar o incluso reiniciar el sistema.
Página 25 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Para acabar con esta sencilla pero muy útil aplicación, vamos hacer un pequeño “truco” para que se guarde todo el contenido de una carpeta que deseemos dentro del directorio prívate de manera automática. Por ejemplo, deseamos que la carpeta documentos, sea siempre privada. Para ello movemos el directorio documentos dentro de prívate:
Y comprobamos que ya no aparece. A continuación crearemos un enlace para que la carpeta siga disponible en el mismo lugar donde lo estaba anteriormente, así no se notará la diferencia:
Podemos comprobar de nuevo como se muestra nuestra carpeta Documentos, pero en diferente color, lo que indica que es un enlace simbólico y que apunta a la carpeta Documentos que hay dentro de Private:
Página 26 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Rootkits en nuestro equipo Es un programa que se maneja mediante consola. Permite localizar rootkits conocidos, realizando múltiples pruebas en las que busca entre los binarios modificados por dicho software, archivos PHP sospechosos, etc. Es una herramienta muy simple pero eficaz en cuanto a detección. Tecleamos en una consola la siguiente orden para realizar la descarga e instalación:
Una vez instalado podemos ejecutar Chkrootkit introduciendo en un terminal:
Chkrootkit nos presentará un completo informe con el resultado del análisis y probablemente hará alguna sugerencia. Debemos confirmar que los resultados obtenidos son del tipo “not infected” (no infectado) o “not found” (no encontrado, también puede mostrar “nothing found”)
Página 27 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Si lo deseamos, podemos arrancar Chrootkit en modo “experto” especificando la opción –x al lanzarlo. Lo normal es que esta opción nos devuelva un informe bastante largo, por lo que al visualizarlo desde un terminal probablemente se “desborde” y no lo podamos analizar entero, recomiendo que lo guardemos en un fichero de texto plano, como se ve a continuación, para luego revisarlo:
Si entramos a analizar el archivo podemos comprobar el tamaño de este, en la siguiente imagen podemos ver el tamaño de la barra de navegación y hacernos una idea de la extensión del mismo:
De todos modos, es recomendable usar la opción de escaneo de rootkits básica, ya que la información, aunque es mas reducida, también es mas sencilla de entender y analizar.
Página 28 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Antivirus en Linux Este es uno de esos temas que mucha gente omite en sus sistemas Linux. Se repite una infinidad de veces: “Ubuntu no necesita antivirus”, pero tenemos que saber que esta afirmación es del todo incierta. En este caso, para ver como actúa de manera breve un antivirus dentro de Ubuntu, voy a instalar seguramente el antivirus, de código abierto, mas conocido que se llama ClamAV. ClamAV está disponible para sistemas operativos Ubuntu y Kubuntu y para poder usarlo correctamente debemos también descargar el paquete que instala Clamtk que es el entorno gráfico (GUI) que necesita este programa par trabajar. Por lo que para instalarlo desde una línea de comandos, realizamos la siguiente instrucción:
Cuando termine la instalación, para lanzarlo tenemos que especificar clamtk en una consola:
Página 29 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Como vemos nuestro antivirus está activo desde el momento de la instalación y podemos, entre otras acción, analizar el contenido de una carpeta o directorio, todo el home del usuario (de maneara mas o menos exhaustiva) o el contenido de un dispositivo:
Por ejemplo vamos a ver de que manera realizar un escaneo rápido de nuestro directorio home:
Página 30 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Al igual que el resto de antivirus, con este podemos aislar archivo en cuarentena…
…o planificar cuando y sobre que directorios debe nuestro antivirus actuar:
Página 31 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Herramientas específicas A continuación vamos a ver una serie de herramientas específicas que nos ayudaran a administrar nuestro sistema Ubuntu y tenerlo al día, y lo más protegido que nos sea posible.
Ubuntu Tweak Ubuntu Tweak es una aplicación que se encarga de facilitar el acceso a estos parámetros gráficamente y de ayudar en su configuración. Cada parámetro está dividido temáticamente en cuatro secciones:
arranque escritorio sistema seguridad
Cada sección contiene diversos apartados que muestran las distintas opciones con su correspondiente descripción. Este software os ayudará, entre otras muchas acciones, a borrar de manera sencilla kernels inutilizados existentes en nuestro sistema o limpiar de manera segura la partición /boot de nuestro disco duro. Para instalar Ubuntu Tweak haremos los siguientes pasos desde la línea de comandos: 1. 2. 3. NOTA: Estos son los pasos necesarios para la distribución de Ubuntu 11.04, se deben revisar si vamos a realizar la instalación de este paquete sobre otro sistema. De modo que ya podremos acceder a él y comprobar cómo esta sencilla herramienta nos ayuda gráficamente a tener al día nuestro sistema:
Página 32 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Como ya he dicho, este programa buscará en el sistema paquetes sobrantes y podemos decidir si eliminarlos o no:
También nos da la posibilidad de configurar opciones básicas de seguridad, como deshabilitar la opción de ejecutar comandos desde el entorno gráfico entre otras:
Página 33 de 46
Eduardo Bayón Cascajo
Seguridad Informática
WireShark: Control del tráfico de la red Wireshark es un analizador de paquetes de red, una utilidad que captura todo tipo de información que pasa a través de una interfaz. Wireshark es gratis y de código abierto (open source), y se puede usar para diagnosticar problemas de red, efectuar auditorías de seguridad y aprender más sobre redes informáticas. Uno de los usos más principales de Wireshark es la captura de paquetes, cuyos contenidos (mensajes, código, o contraseñas) son visibles con un clic. Los datos se pueden filtrar, copiar al portapapeles o exportar. [2]
Pros Análisis de datos en tiempo real o guardados Compatible con más de 480 protocolos Abre más de 20 formatos de captura Abundante documentación en línea Contras Curva de aprendizaje muy elevada
Lo instalaremos desde una línea de comandos mediante:
Y configuraremos para no tener que ejecutarlo como root: 1. Editamos el archivo group… …y creamos un grupo llamado Wireshark, y dentro del mismo colocamos el nombre de nuestro usuario en el equipo de la siguiente manera: 2. Volvemos a la consola ejecutamos: Para cambiar el grupo de Wireshark. 3. En la misma consola, ejecutamos: De este modo le estamos cambiando los permisos que teníamos sobre la carpeta dumcap para tener pleno control sobre ella.
Página 34 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Tras estos pasos comprobamos, vamos a comprobar que está correctamente instalado y configurado, por lo que cerramos sesión y volvemos a entrar con el mismo usuario. Abrimos Wireshark desde el modo gráfico o desde consola sin escribir sudo y vemos como Wireshark escucha correctamente sobre la interfaz que elijamos sin necesidad de arrancarlo con privilegios de root. Lanzaré de nuevo un simple scan con nmap para comprobar que Wireshark captura correctamente el tráfico:
Página 35 de 46
Eduardo Bayón Cascajo
Seguridad Informática
BASTILLE Se trata de una herramienta interactiva de fortificación. Ayuda a implementar una política de seguridad guiando al administrador a través de distintas preguntas. Portable y robusta. Para instalar Bastille, lo haremos como de costumbre desde una línea de comandos, especificando:
Podemos ver todos los paquetes extras que necesita esta aplicación y que algunos de ellos tendremos que ir configurando durante la instalación de bastille. La primera que deberemos configurar en la del correo Postfix:
En principio especificaremos Sitio de Internet ya que enviaremos y recibiremos correos directamente usando SMTP.
Página 36 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Seguiremos con la configuración de Postfix y a continuación especificamos una dirección de correo, que no tiene porque ser real:
Una vez terminada la instalación lazamos bastille:
NOTA: Es necesario tener Perl instalado en nuestra máquina, si no lo tenemos debemos instalarlo mediante la siguiente instrucción:
Lo primero tras iniciarlo será aceptar los términos de uso:
Página 37 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Según los aceptemos se lanzará la interfaz gráfica del programa:
Como vemos la pantalla está dividida en dos apartados, a la izquierda aparecen en una lista todos los módulos disponibles, si vamos eligiendo cada uno de ellos, el que nos interese, en el apartado de la derecha veremos una explicación explanation y se nos realizará una pregunta sobre que queremos hacer con dicho módulo, que debemos responder en la parte de debajo de la pantalla, apartado answer.
Página 38 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Por ejemplo podemos elegir de qué modo se arranca el filtrado de nuestros paquetes en el cortafuegos:
Seleccionamos Yes y pulsamos OK para continuar.
Página 39 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Del mismo modo, tareas sencillas como activar o desactivar el servicio web apache también se pueden hacer desde Bastille de manera segura:
Este software para hardening tiene más posibilidades y ciertamente es bastante sencillo de usar, además de contar con buenas explicaciones.
Página 40 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Administrador de servicios BUM BUM es una aplicación Perl-Gtk2 que nos ayuda a configurar los niveles de ejecución de nuestro sistema. Con este programa un usuario puede fácilmente iniciar o parar los scripts de arranque, sin tener necesidad de manejar comandos o permisos. Digamos que es la manera sencilla de parar y arrancar aquellos procesos que simplemente debemos y queremos tener activados en nuestro sistema. BUM está disponible en los repositorios de Ubuntu, y para descargarlo e instalarlo introducimos en un terminal:
Una vez instalado, tendremos una nueva entrada con el programa sobre Sistema>Administración>BootUp-Manager:
Nada mas abrirlo comprobará el estado de nuestro sistema (puede tardar un poco en analizarlo) y nos mostrará una interfaz gráfica con todos los servicios que tenemos en nuestro equipo actualmente:
Página 41 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Nos informará si están o no en ejecución (si puede), además algo que es de gran ayuda, nos muestra una línea sobre cada uno de los procesos para identificarlos siempre de manera correcta. Por ejemplo, podemos probar a desactivar, “desticando” sobre el apartado Activar aquel proceso que deseemos parar y pulsando sobre Aplicar:
En este caso voy a para el servicio web apache, que podemos ver de fondo que actualmente está activo, y podremos elegir si hacerlo ahora o cuando se reinicie el sistema. Una vez parado comprobamos que efectivamente nos ha parado dicho proceso y así nos lo marca la bombilla apagada que muestra BUM:
Página 42 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Lista de herramientas para seguridad Vamos a ver una lista de herramientas que pueden sernos útiles en nuestro sistema Linux, para protegerlo todo lo que deseemos o podamos: 1. Bastionado: a. Bastille Linux b. Makejail c. Jailer d. SElinux e. Grsecurity f. Firewall: i) Watchguard ii) Dante iii) Sinus iv) Firewal v) Uso de IP firewalling chains (netfilter): a. Ipfwadm (kernel 2.0) b. Ipchains (kernel 2.2) c. Iptables (kernel 2.4), utilidades: d. Terminal: (1) Uso de scripts propios iptables. (2) ferm (3) zorp (4) ipac-ng (5) gfcc (6) firewall-easy (7) fwctl (8) Pcxfirewall (9) shorewall e. Gráficas: (1) EasyFw (2) Knetfilter (3) FirewallBuilder (fwbuilder) (4) KMyFirewall (5) Firestarter (6) Firewall Monitor (Fwmon) f. Web: (1) bastion-firewall (2) mason (3) Desde Webmin (módulo)
Página 43 de 46
Eduardo Bayón Cascajo
Seguridad Informática
g. Comerciales: (1) Smoothwall (2) Smoothguard (3) Securepoint Firewall2 2. Auditoría a. Tiger b. Nikto c. John d. Crack e. Flawfinder f. Rats 3. Protección del terminal a. Block 4. Monitorización de integridad a. Aide b. Integrit c. Tripwire d. fcheck. e. Monitorización: i. Logcheck ii. syslog-ng iii. ucd-snmp iv. fwlogwatch v. fwctl 5. Evaluación de vulnerabilidad remota. a. nessus b. raccess c. whisker d. nikto (reemplazo de whisker) e. bass (no libre) f. satan (no libre) g. Herramientas de revisión de redes: i. nmap ii. xprobe iii. queso iv. knocker v. hping2 vi. isic vii. icmpush viii. nbtscan Página 44 de 46
Eduardo Bayón Cascajo
Seguridad Informática
6. Detección de intrusos: a. Snort b. Tiger c. Ippl d. Chkrootkit e. psad f. portsentry. g. Iftop h. Tcpdum i. Tcpwrappers
7. Análisis forense a. Tct b. Strace c. Ltrace d. fenris.
8. Antivirus a. ClamAV Antivirus b. Sanitizer c. Amavis-postfix d. Open antivirus e. Comerciales (Panda, Jvirus, TrendM icro, Sophos…)
Página 45 de 46
Eduardo Bayón Cascajo
Seguridad Informática
Bibliografía y Webgrafía [1]”Uncomplicated Firewall” http://doc.ubuntu-es.org/UFW [Consulta el día 14 de marzo de 2012] [2]”Wireshark, Captura y analiza información de cualquier red” http://wireshark.softonic.com/ [Consulta el día 14 de marzo de 2012]
Página 46 de 46
View more...
Comments