Hardening Sistema Linux (CentOS) #Parte1
Estuve hace un tiempo trabajando en unas plantillas de aseguramiento para servidores CentOS las cuales estaré compartiendo con ustedes. ya que el tema y la información es algo extensa estaremos dividiéndolas en parte.
Este es el indice que he realizado para este sistema constando que el sistema como aplicativos o servicios posee APACHE ó NGINX
3 Remoción de paquetes no usados
Este es el indice que he realizado para este sistema constando que el sistema como aplicativos o servicios posee APACHE ó NGINX
Plantilla de aseguramiento S.O Centos
INDICE
1 Introducción
2 Desactivar servicios no necesarios
3 Remoción de paquetes no usados
4 Permisos de archivos del sistema
5 Remoción de usuarios y grupos no necesarios
6 Hardening de Sysctl.conf
7 Hardening de Apache
8 Hardening de Nginx
9 Hardening SSH
1 Introducción
El Hardening o aseguramiento es el proceso de configuración de seguridad de sistemas, para reducir la mayor cantidad de riesgos y minimizar la cantidad de vulnerabilidades sobre dichos sistemas.
Esta técnica es compuesta por un conjunto de acciones para reforzar al máximo posible la seguridad de los servidores y así protegerlos contra los ataques, cerrando brechas de seguridad y asegurando los controles de acceso.
Este proceso incluye la evaluación de la arquitectura de seguridad del servidor y la auditoria de la configuración de sus sistemas con el fin de desarrollar e implementar procedimientos de consolidación para asegurar sus recursos críticos.
2 Desactivar servicios no necesarios
Este procedimiento permite determinar si se desea que un servicio se inicie o no automáticamente después de iniciado (boot) el sistema operativo.
Revisamos los servicios que están corriendo y enlistamos todos los servicios que se inician con chkconfig
Revisamos los servicios que están corriendo y enlistamos todos los servicios que se inician con chkconfig
1: netstat -putan | grep listen
2: chkconfig --list
Para deshabilitarlos, utilizaremos el comando chkconfig:
1: chkconfig --level off
Es muy importante determinar el runlevel de arranque del sistema
si no se desea especificar el runlevel puede deshabilitarlo directamente con:
1: chkconfig --del ip6tables
3 Remoción de paquetes no usados
La gestión de paquetes se realiza de una manera más detallada, tomando en cuenta algunos conceptos que son considerados como la procedencia del paquete, servidores dedicados de paquetes (repositorios) y dependencias.Para remover los paquetes debemos hacer uso del gestor con que fue instalado si fue por RPM o YUM.
Ejemplo con YUM:
1: yum remove nmap
Ejemplo con RPM:
1: rpm -e ftp-0.17-33.fc6
4 Permisos de archivos del sistema
En los sistemas operativos basados en UNIX cada elemento del sistema de archivos, como archivos, directorios, enlaces simbólicos, etc., tiene la característica de poseer permisos que lo ubican dentro del mismo. Éstos sirven como uno más de los niveles de seguridad del sistema operativo al impedir que cualquier usuario pueda leer, escribir, ejecutar o acceder a dichos archivos y directorios de manera arbitraria. Estos permisos vistos de manera básica son: lectura (r, read), escritura (w, write) y ejecución (x, execution) y se agrupan en bloques (rwx) para 3 diferentes clases (usuario, grupo y otros).
La asignación de permisos de acceso (de lectura, escritura y ejecución) pueden gestionarse a través de modos, los cuales consisten de combinaciones de números de tres dígitos (usuario, grupo y otros) y los mandatos chmod y setfacl.
Es muy importante dar los permisos adecuados a nuestros archivos y carpetas. No usar chmod 777 para todos los casos que se requieran permisos.
En los sistemas operativos basados en UNIX cada elemento del sistema de archivos, como archivos, directorios, enlaces simbólicos, etc., tiene la característica de poseer permisos que lo ubican dentro del mismo. Éstos sirven como uno más de los niveles de seguridad del sistema operativo al impedir que cualquier usuario pueda leer, escribir, ejecutar o acceder a dichos archivos y directorios de manera arbitraria. Estos permisos vistos de manera básica son: lectura (r, read), escritura (w, write) y ejecución (x, execution) y se agrupan en bloques (rwx) para 3 diferentes clases (usuario, grupo y otros).
La asignación de permisos de acceso (de lectura, escritura y ejecución) pueden gestionarse a través de modos, los cuales consisten de combinaciones de números de tres dígitos (usuario, grupo y otros) y los mandatos chmod y setfacl.
Es muy importante dar los permisos adecuados a nuestros archivos y carpetas. No usar chmod 777 para todos los casos que se requieran permisos.
No doy una recomendación como tal ya que los permisos difieren de acuerdo a su contenido y propietarios.
5 Remoción de usuarios y grupos no necesarios
La administración de usuarios y grupos solamente puede realizarlas el usuario root utilizando los comandos de gestión de usuarios. Las tareas y los comandos para realizarlas son:
• Creación de usuarios / useradd
• Modificación de usuarios / usermod
• Eliminación de usuarios / userdel
• Creación de grupos / groupadd
• Modificación de grupos / groupmod
• Eliminación de grupos / groupdel
• Añadir usuarios a un grupo / adduser
• Quitar usuarios de un grupo / deluser
La idea de esta tarea es depurar los usuarios o grupos no usados o modificar los usuarios que no requieran shell.