Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE TECNOLOGIA
SUCRE – BOLIVIA
2020
TABLA DE CONTENIDO
1. Introducción ..................................................................................................................................................4
2. Instalación endurecida .................................................................................................................................4
2.1. LVM .......................................................................................................................................................4
2.2. Particionamiento ..................................................................................................................................4
2.3. Cifrado de Datos ...................................................................................................................................5
3. Administración segura del sistema ..............................................................................................................6
3.1. Gestión y actualización de software ....................................................................................................6
3.1.1. Aplicando actualizaciones de seguridad......................................................................................6
3.1.2. Validación de integridad de los paquetes ...................................................................................7
3.1.3. Actualización del sistema .............................................................................................................7
4. Control de acceso a Consola .........................................................................................................................8
4.1. Asegurando GRUB Bootloaders ...........................................................................................................8
4.2. Desactivar la entrada de combinación Ctrl+Alt+Del ...........................................................................9
4.3. Visualización de notificaciones de uso aceptable ............................................................................ 10
5. Gestión de Cuentas de Usuario ................................................................................................................. 11
5.1. Envejecimientos de contraseñas ....................................................................................................... 11
5.2. Aplicando políticas de complejidad de contraseñas con PAM......................................................... 12
5.3. Bloqueo de cuentas con inicio de sesión fallidas .............................................................................. 13
5.4. Configuración del acceso administrativo mediante la utilidad su ................................................... 14
5.5. Deshabilitar acceso root usando cualquier dispositivo de consola (tty) ......................................... 14
5.6. Configuración de permisos de archivos predeterminados ............................................................... 14
6. Gestión de Controles de acceso................................................................................................................. 15
7. Servicios de Red Seguros ........................................................................................................................... 17
7.1. Servicios necesarios ........................................................................................................................... 17
7.2. Servicio SSH (Secure Shell)................................................................................................................. 18
7.2.1. Configuración endurecida ......................................................................................................... 18
7.3. Servicio SFTP ...................................................................................................................................... 19
7.3.1. Configuración endurecida ......................................................................................................... 19
7.4. HTTPS ................................................................................................................................................. 21
Eliminar Banner de la version del servidor: ...................................................................................... 21
Protección X-XSS: ............................................................................................................................... 22
Evitar Clickjacking: ............................................................................................................................ 23
MaxKeepAliveRequests: .................................................................................................................... 23
KeepAliveTimeout: ............................................................................................................................ 23
KeepAlive: .......................................................................................................................................... 23
Pruebas de carga con Apache Benchmark ....................................................................................... 24
8. Limitar recursos con limits.conf ................................................................................................................ 25
8.1. Limitar máximo de inicios de sesión ................................................................................................. 25
8.2. Limitar cantidad procesos ................................................................................................................. 25
9. Tuneo de kernel ......................................................................................................................................... 26
9.1. Evitar SYN ATACK .............................................................................................................................. 26
9.2. Bloqueo de ICMP (Ping) y broadcast ................................................................................................ 26
9.3. Deshabilitar IPV6 ............................................................................................................................... 26
9.4. Kernel Panic ....................................................................................................................................... 27
10. Monitoreo de Cambios en el sistema ................................................................................................... 27
10.1. Uso de software de detección de cambios en el sistema de archivos ......................................... 27
11. Auditoría, endurecimiento del sistema, pruebas de cumplimiento con Lynis ..................................... 27
12. Conclusiones .......................................................................................................................................... 28
13. Bibliografía ............................................................................................................................................ 28
1. Introducción
El presente trabajo involucra un proceso de hardening del sistema operativo. Todas las configuraciones
y procedimientos se aplicarán a CentOS 7.6 que es el sistema operativo con el que se trabajara, con
algunos servicios más comunes activos
2. Instalación endurecida
Si estamos realizando una instalación de un servidor de infraestructura, es aconsejable aplicar una
política de instalación segura, personalizada y planeada, porque es donde comienza todo; en esta
primera parte estaremos hablando algunos puntos importantes de seguridad.
2.1. LVM
LVM es un método de localización de espacio disco duro en volúmenes lógicos que pueden ser
fácilmente redimensionados en ves de particiones. En la actualidad LVM esta disponible en la
mayoría de los sistemas Linux
2.2. Particionamiento
La tabla de particionamiento depende mucho de lo que se quiere proteger dentro el sistema de
archivos del servidor, para este labotario de prueba se tomara la siguiente tabla de
particionamiento
Punto de Tamaño Sistema de Archivo
Montaje (GiB)
/ 10 Xt4
/home 5
/var 8
/var/log 3
/tmp 3
Swap 2
En caso de cifrar los datos, antes de ingresar a realizar el particionamiento manual debe marcar
la opción de cifrar datos
Después de terminar y aceptar los cambios de la tabla de partición le pedirá que introduzca una
frase
al iniciar o reiniciar el sistema se debe proporcionar la contraseña. Esto añade una capa de
seguridad al inicio del sistema operativo
Durante el reinicio si alguien trata de acceder a la línea de comando de GRUB se debe identificar
el usuario con su respectivo pasword.
NOTA.
El usuario root es el único que puede establecer contraseñas débiles par el o para otros
usuarios del sistema
5.3. Bloqueo de cuentas con inicio de sesión fallidas
Este punto puede ser importante para evitar si alguien esta tratando de realizar un ataque de
fuerza bruta. Para ellos vamos a hacer uso de un modulo PAM (pam_faillock.so). Esta configuración
se aplica a los dos archivo /etc/pam.d/{password,system}-auth
Y se puede ver que evidentemente funciona, el tiempo de bloqueo puede variar según políticas.
Y esto se puede apreciar de mejor manera con la utilidad faillock
La configuración más estricta seria que para todos los usuarios con un UID > 199 sea de
007. Esto quiere decir que los directorios creados mkdir tendrán los permisos de 770 y los
archivos con 660
Es muy importante volver a iniciar sesión para que umask puede hacer efecto. En el ejemplo siguiente
podemos ver los permisos aplicados por defecto
Se muestra de esta manera todos los permisos DAC aplicados a los directorios en cuestión
Aplicando las respectivas ACL, una ACL regulas y uno por default, a los mencionados directorios.
Recuerden que las reglas por default solo se aplicara directorios
Para hacer su respectiva comprobación de las ACL aplicadas crearemos un archivo en el directorios
/home/sftpserver/gilmersftp/files/ y ver las ACL que se aplicaron a dicho archivo.
Estos son simplemente unos ejemplos de como se puede aplicar reglas ACL en un proceso de control
de acceso a un recurso del sistema
- Restringir acceso Root: al denegar el acceso al usuario root cada vez que necesitemos
realizar tareas administrativas, accederemos con un usuario normal para luego elevar
el privilegio a root.
- Directriz LoginGraceTime: Se establece el tiempo en segundos, durante el cual la
pantalla de login estará disponible para que el usuario introduzca su usuario y
contraseña
- Banner o mensaje de uso aceptable: por medio de esta directriz podemos presentar
un mensaje de uso aceptable, exponiendo temas legales de un acceso no autorizado
antes de la autenticacion. Por defecto esta option esta deshabilitado por lo que hay
que habilitarlo y un PATH del mensaje que se quiere mostrar.
Y todas las configuraciones que incumben al servicio SSH también afectan al servicio
de sftp
7.4. HTTPS
Primeramente, el sitio web para esta práctica, es un website de Login sesillo con certificado SSL
autofirmado
Apache es un servidor web de código abierto potente y capaz, diseñado para proporcionar un
equilibrio de flexibilidad, portabilidad y rendimiento. La optimización de Apache es una tarea
importante para todos los administradores del sistema.
Describiremos algunas opciones de configuración de apache que se pueden utilizar para mejora el
rendimiento
Eliminar Banner de la version del servidor:
Una de las primeras cosas a considerar, ya que no desea exponer qué versión del servidor
web está utilizando. Exponer la versión significa que estamos ayudando a los piratas
informáticos a acelerar el proceso de reconocimiento.
La configuración predeterminada expondrá la versión de Apache y el tipo de sistema
operativo como se muestra a continuación. La siguiente imagen muestra el antes y el
después de la configuración de apache
MaxKeepAliveRequests:
Es el número máximo de solicitudes para servir en una conexión TCP. Limita el número de
solicitudes permitidas por conexión. Si se establece en 0, se permitirán solicitudes
ilimitadas. Puede establecer un valor alto para obtener el máximo rendimiento del servidor
KeepAliveTimeout:
define el número de segundos que Apache esperará la nueva solicitud de los clientes
conectados antes de cerrar la conexión. (Una vez que el servidor recibe una solicitud, la
directiva Timeout se aplica en su lugar.)
KeepAlive:
KeepAlive establece si el servidor permite más de una solicitud por conexión. Se puede
utilizar para evitar que cualquier cliente consuma demasiados recursos del servidor. De
forma predeterminada está deshabilitado en CentOS 7.
Pruebas de carga con Apache Benchmark
ab es una herramienta para comparar su servidor Apache Hypertext Transfer Protocol
(HTTP). Está diseñado para darle una impresión de cómo funciona su instalación actual de
Apache. Esto le muestra especialmente cuántas solicitudes por segundo su instalación de
Apache es capaz de servir.
Explicación del comando ejecutado
-k (KeepAlive). Realizar múltiples solicitudes dentro de una sesión HTTP, funcionalidad de los
navegadores por la naturaleza
-n (requests). Número de solicitudes que se deben realizar para la sesión de evaluación
comparativa
-c (concurrency). Número de solicitudes múltiples que se deben realizar a la vez.
-H ‘Accept-Encoding: gzip, deflate’ (custom-header). Anexar encabezados adicionales a la solicitud.
Imita la petición típica que un navegador enviará
También esta regla se puede aplicar a todo un grupo. El siguiente ejemplo muestra como los
usuarios del grupo sftp solo tiene solo un inicio de sesión
Estas configuraciones en CentOS ya vienen por defecto. La variable tcp_syn_retries indica al kernel
cuántas veces intentar retransmitir el paquete SYN inicial para un intento de conexión TCP activo.
La configuración de tcp_synack_retries indica al kernel cuántas veces se retransmite la respuesta
SYN, ACK a una solicitud SYN. En otras palabras, esto indica al sistema cuántas veces intentar
establecer una conexión TCP pasiva iniciada por otro host
Como mínimo, AIDE debe configurarse para ejecutar un análisis semanal. Como máximo, AIDE debe
ejecutarse diariamente.
13. Bibliografía
Guía base
https://access.redhat.com/documentation/en-
us/red_hat_enterprise_linux/7/html/security_guide/index
Tunning de kernel
https://www.frozentux.net/ipsysctl-tutorial/chunkyhtml/tcpvariables.html
https://www.mjmwired.net/kernel/Documentation/kernel-parameters.txt#1898
Configuración http
https://geekflare.com/apache-web-server-hardening-security/