¿Qué es un Kernel ? El Kernel o núcleo, es una parte fundamental del sistema operativo que se encarga de conceder el acceso al hardware de forma segura para todo el software que lo solicita, el Kernel es una pequeña e invisible parte del sistema operativo, pero la más importante, ya que sin esta no podría funcionar. Todos los sistemas operativos tienen un Kernel, incluso Windows 10, pero quizá el más famoso es el Kernel de Linux, que ahora además está integrado en Windows 10 con sus últimas actualizaciones. Este núcleo de los sistemas operativos se ejecuta en modo privilegiado con acceso especial a los recursos del sistema para poder realizar las peticiones de acceso que le va pidiendo el software que lo necesita, además como los recursos no son ilimitados, también hace de arbitro a la hora de asignarlos, decidiendo el orden de las peticiones recibidas según la prioridad e importancia de estas. Una gestión muy importante y fundamental que en la mayoría de las ocasiones pasa desapercibida aun siendo un trabajo esencial para coordinar todo el hardware con el software. Características del Kernel El código binario del sistema operativo UNIX es llamado KERNEL (núcleo). El kernel reside permanentemente en memoria principal y alguna parte de él está ejecutándose a todo momento. El espacio reservado para el sistema operativo no es direccionable por el usuario. El código es guardado en un archivo ejecutable llamado /unix. De aprox. 1300 líneas de código fuente de kernel 1220 están escritas en lenguaje C, 800 están en assembler específico de máquina. Es altamente transportable a otros sistemas de hardware Combina herramientas básicas para crear comandos o procedimientos para realizar tareas específicas. Detección de intrusos y seguridad en el kernel de Linux clasificación de los IDSes Generalmente existen dos grandes enfoques a la hora de clasificar a los sistemas de detección de intrusos: o bien en función de qué sistemas vigilan, o bien en función de cómo lo hacen. Si elegimos la primera de estas aproximaciones tenemos dos grupos de sistemas de detección de intrusos: los que analizan actividades de una única máquina en busca de posibles ataques, y los que lo hacen de una subred (generalmente, de un mismo dominio de colisión) aunque se emplazen en uno sólo de los hosts de la misma. Esta última puntualización es importante: un IDS que detecta actividades sospechosas en una red no tiene porqué (y de hecho en la mayor parte de casos no suele ser así) ubicarse en todas las máquinas de esa red. IDSes basados en red. Un IDS basado en red monitoriza los paquetes que circulan por nuestra red en busca de elementos que denoten un ataque contra alguno de los sistemas ubicados en ella; el IDS puede situarse en cualquiera de los hosts o en un elemento que analice todo el tráfico (como un HUB o un enrutador). Esté donde esté, monitorizará diversas máquinas y no una sola: esta es la principal diferencia con los sistemas de detección de intrusos basados en host. IDSes basados en máquina. Mientras que los sistemas de detección de intrusos basados en red operan bajo todo un dominio de colisión, los basados en máquina realizan su función protegiendo un único sistema; de una forma similar - guardando las distancias, por supuesto - a como actúa un escudo antivirus residente en MS-DOS, el IDS es un proceso que trabaja en background (o que despierta periódicamente) buscando patrones que puedan denotar un intento de intrusión y alertando o tomando las medidas oportunas en caso de que uno de estos intentos sea detectado. Bitácoras de actividad en el sistema Linux Bitácoras básicas messages Este archivo contiene bastante información, por lo que debemos buscar sucesos inusuales, aquí podemos ver todos los mensajes que el sistema mando a la consola, por ejemplo, cuando el usuario hace el login, los TCP_WRAPPERS mandan aquí la información, el cortafuegos de paquetes IP también la manda aquí, etc. xferlog Si el sistema comprometido tiene servicio FTP, este archivo contiene el loggeo de todos los procesos del FTP. Podemos examinar que tipo de herramientas han subido y que archivos han bajado de nuestro servidor. wtmp Cada vez que un usuario entra al servidor, sale del mismo, la máquina resetea, este archivo es modificado. Este archivo al igual que el anterior esta en binario por lo que tendremos que usar alguna herramienta especial para ver el contenido de este archivo. Este archivo contiene la información en formato usuario, hora de conexión, e IP origen del usuario, Seguridad en los servicios de Linux Use scp, ssh , rsync o sftp para la transferencia de archivos. También puede montar el sistema de archivos del servidor remoto o su propio directorio de inicio utilizando herramientas especiales de sshfs y fusibles. GnuPG permite cifrar y firmar sus datos y comunicaciones, presenta un sistema de administración de claves versátil, así como módulos de acceso para todo tipo de directorios de claves públicas. OpenVPN es una VPN SSL ligera y rentable. Otra opción es probar tinc que utiliza túneles y cifrado para crear una red privada segura entre hosts en Internet o LAN privada insegura. Lighttpd SSL (Secure Server Layer) Configuración e instalación de HTTP Configuración e instalación de Apache SSL (Secure Server Layer) Https (mod_ssl) Cómo configurar Nginx con el certificado SSL Let’s Encrypt gratuito en Debian o Ubuntu Linux