1
Informe Proyecto Final
Vianney Esteban Escobar Calle. Corporación Universitaria Minuto de
Dios. [Link]@[Link]
I. CONTEXTO III. PROCESO DE HARDENING
Para aplicar el proyecto se eligió un contexto, este contexto 1) Actualización del Sistema
se centra en una empresa que requiere una configuración base
solida para evitar vulnerabilidades en sus sistemas operativos, Lo primero es garantizar que todos los componentes del
en este caso Kali Linux. sistema estén actualizados a su última versión, una
actualización trae consigo mejores principalmente en cuanto a
La empresa requiere que se creen tres roles, rendimiento y seguridad.
administradores, programadores y diseñadores, en donde cada
uno pueda acceder a una carpeta global y luego cada rol tenga A continuación, los comandos usados:
una carpeta especifica. Un rol no puedo acceder a carpetas de
otros roles, por ejemplo, el administrador no puede ingresar a sudo apt update: Actualiza la lista de paquetes disponibles y
carpeta de programadores y viceversa. sus versiones.
sudo apt upgrade -y: Instala las versiones más recientes de
La solución que se implementó para el sistema operativo todos los paquetes instalados en el sistema.
fue realizar una rutina de hardening modificando diferentes sudo apt full-upgrade -y: Realiza una actualización completa
configuraciones en Kali Linux. También se va a integrar una del sistema, incluyendo la instalación de paquetes adicionales
configuración para usuarios y grupos, y permisos. si es necesario.
sudo apt autoremove -y: Elimina los paquetes instalados
Hardening o endurecimiento es un proceso que se lleva automáticamente que ya no son necesarios.
acabo para asegurar un sistema operativo reduciendo las sudo apt clean: Elimina los archivos de paquetes descargados
vulnerabilidades que se presentan en los sistemas operativos que ya no se necesitan.
recién instalados.
2) Configuración Firewall
Este proyecto se centra en trabajar sobre Kali Linux
haciendo uso de varias técnicas seguras para el sistema UFW (Uncomplicated Firewall): Es una herramienta de
operativo, estas se van a ver explicitas en este informe. Con la firewall diseñada para simplificar el proceso de configuración
ayuda de una herramienta de Kali Linux como es Lynis se de un firewall en sistemas Linux. Esta herramienta permite
podrá auditar el sistema operativo. controlar el acceso, proteger el sistema contra amenazas
externas y seguridad al sistema.
II. ESCANEO INICIAL A continuación, los comandos usados:
Se debe realizar un primer escaneo para ver las
condiciones antes de hacer todos los pasos para reforzar el sudo apt install ufw -y: Instala el paquete ufw.
hardening en el sistema operativo. sudo ufw default deny incoming: Configura ufw para denegar
por defecto todas las conexiones entrantes.
Como se menciona en el anterior item, con ayuda de la sudo ufw default allow outgoing: Configura ufw para permitir
herramienta lynis se va a auditar el sistema, esto con el por defecto todas las conexiones salientes.
comando lynis audit system. sudo ufw allow ssh: Permite las conexiones SSH (puerto 22)
para el acceso remoto seguro.
Luego de ejecutar el comando y hacer el escaneo muestra sudo ufw enable: Habilita el firewall ufw con las reglas
el siguiente resultado: configuradas.
3) Instalar Antivirus
La instalación de un antivirus es esencial en todo sistema
operativo para resguardar los datos contra posibles ataques o
atacantes, es por esto por lo que es uno de los pasos más
El indice de endurecimiento se encuentra en 59 puntos. importantes a la hora de configurar el sistema. Esta
herramienta es un malware scanner, su nombre es clamAV, es
2
un antivirus de código abierto que se puede utilizar para
detectar malware en tu sistema. apt-listbugs se integra automáticamente con apt y apt-get,
por lo que no se requiere configuración adicional para su uso
A continuación, los comandos usados: básico. Sin embargo, puedes configurarlo para personalizar su
comportamiento.
sudo apt install clamav clamav-daemon -y: Instala la
herramienta junto con sus dependencias necesarias. Una vez instalado, apt-listbugs se ejecutará automáticamente
sudo freshclam: Actualiza la base de datos de virus. cada vez que utilices apt o apt-get para instalar o actualizar
sudo clamscan -r: Realiza un escaneo recursivo en todo el paquetes. Si encuentra informes de errores críticos en los
sistema. paquetes que estás instalando o actualizando, te lo notificará
antes de proceder.
4) Resguarda Directorios Temporales
6) Instalar listchanges
Libpam-tmpdir es una biblioteca PAM, ayuda a crear
directorios temporales privados para cada usuario, mejorando Es una herramienta que te permite ver las noticias de
la seguridad del sistema. Libpam-tmpdir es un módulo PAM cambios (changelogs) de los paquetes antes de instalarlos o
que asegura que cada usuario tenga sus propios directorios actualizarlos, lo que puede ayudarte a estar al tanto de las
temporales privados en /tmp y /var/tmp. Esto mejora la nuevas características, correcciones de errores y cambios
seguridad al evitar que los usuarios puedan ver o interferir con importantes en el software.
los archivos temporales de otros usuarios.
A continuación, los comandos usados:
A continuación, los comandos usados:
sudo apt install apt-listchanges -y: Instalar herramienta.
sudo apt install libpam-tmpdir -y: Instala la herramienta en
el sistema operativo. apt-listchanges se integra automáticamente con apt y apt-get,
sudo nano /etc/pam.d/common-session -> session optional por lo que no se requiere configuración adicional para su uso
pam_tmpdir.so: Con sudo nano se abre el archivo de gestión y básico. Sin embargo, puedes configurarlo para personalizar su
se debe verificar que la línea se encuentre en el archivo, en comportamiento.
caso de que no se encuentre se agrega al archivo, esto para que
se configuren de manera correcta. Lo mismo pasa con la Una vez instalado y configurado, apt-listchanges se ejecutará
siguiente línea. automáticamente cada vez que utilices apt o apt-get para
sudo nano /etc/pam.d/common-session-noninteractive -> instalar o actualizar paquetes. Te mostrará los changelogs antes
session optional pam_tmpdir.so de proceder con la instalación o actualización.
7) Instalar Needrestart
Es una herramienta útil que comprueba qué servicios del
sistema deben reiniciarse después de una actualización de
paquetes, ayudando a garantizar que todas las actualizaciones
se apliquen correctamente sin reiniciar todo el sistema.
A continuación, los comandos usados:
Sudo apt install needrestart -y: Instalar herramienta
Ejecución Automática
En la anterior figura se refleja un ejemplo, el usuario
escxnism tiene un directorio temporal diferente al del usuario Se puede configurar needrestart para que se ejecute
pablo. automáticamente después de cada actualización de paquetes
5) Instalar listbugs sudo nano /etc/apt/[Link].d/99needrestart
Es una herramienta que te permite ver informes de errores de Añade la siguiente línea para ejecutar needrestart
paquetes antes de instalarlos o actualizarlos, lo que puede automáticamente después de las actualizaciones:
ayudarte a evitar la instalación de software defectuoso o
problemático. DPkg::Post-Invoke {"if [ -x /usr/sbin/needrestart ]; then
/usr/sbin/needrestart -q; fi";};
A continuación, los comandos usados:
8) Process accounting, sysstat to collect accounting,
sudo apt install apt-listbugs -y: Instalar la herramienta. auditd
3
Estas tres herramientas permitirán un monitoreo y auditoría El módulo libpam-pwquality se configura a través del archivo
detallada de las actividades en tu sistema, mejorando la /etc/pam.d/common-password. Se edita para ajustar las
seguridad y el rendimiento. políticas de contraseñas según las necesidades del contexto
Process Accounting permite registrar información detallada sudo nano /etc/pam.d/common-password
sobre todos los comandos que se ejecutan en el sistema.
Una vez dentro del archivo, se identifica la línea para editar, en
sudo apt install acct -y: Instalar herramienta este caso:
sudo systemctl start acct: Iniciar herramienta
sudo systemctl enable acct: Activar herramienta
sudo systemctl status acct: Verificar estado de la herramienta
Sysstat es un paquete que incluye herramientas como sar,
iostat, y mpstat para monitorear el rendimiento del sistema.
sudo apt install sysstat -y: Instalar herramienta
sudo nano /etc/default/sysstat: Abrir archivo y dejar estado
“True”
sudo systemctl restart sysstat: Reiniciar herramienta
sudo systemctl enable sysstat: Activar herramienta
sudo systemctl status sysstat: Verificar estado de la
herramienta
auditd registra eventos de seguridad.
sudo apt install auditd audispd-plugins -y: Instalar
herramienta
password requisite pam_pwquality.so
sudo systemctl start auditd: Iniciar herramienta
retry=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1
sudo systemctl enable auditd: Activar herramienta
ocredit=-1 difok=3
sudo systemctl status auditd: Verificar estado de la
herramienta
retry=3: Permite 3 intentos antes de fallar.
9) Configurar Tiempo Mínimo y Máximo de Contraseña
minlen=8: La longitud mínima de la contraseña es 8
caracteres.
Controla la cantidad mínima de días que deben pasar antes
ucredit=-1, lcredit=-1, dcredit=-1, ocredit=-1: Al menos un
de que un usuario pueda cambiar su contraseña.
carácter en mayúscula, minúscula, dígito y carácter especial es
Controla la cantidad máxima de días que una contraseña puede
requerido.
ser válida antes de que el sistema requiera que el usuario la
difok=3: Al menos 3 caracteres diferentes son requeridos.
cambie.
En este caso se cambian las configuraciones para tener un
mínimo de 10 días y un máximo de 90 días.
Para configurar esto, se accede al archivo:
sudo nano /etc/[Link]
Una vez accedido al archivo se buscan los parámetros:
PASS_MAX_DAYS = 90
PASS_MIN_DAYS = 10
10) Verificación Políticas de Contraseñas
Validación de contraseña
Esta verificación se va a impementar con la herramienta
libpam-pwquality, para evaluar la fortaleza de las contraseñas.
sudo apt install libpam-pwquality -y: Instalar herramienta.
4
Configurar las rondas de hashing de contraseñas en
/etc/[Link] en Kali Linux es una medida importante para
aumentar la seguridad de las contraseñas almacenadas en el
sistema. Este archivo permite definir varias configuraciones
relacionadas con la seguridad y las políticas de contraseñas.
Con este comando se abre el archivo para editar las hasing
rounds de las contraseñas:
11) Bloquear drivers de almacenamiento externo USB
sudo nano /etc/[Link]
Primero se ingresa a la blacklist del sistema.
sudo nano /etc/modprobe.d/[Link] -> blacklist usb-
storage
Además de prohibir el módulo, se puede crear una regla de
udev para deshabilitar los dispositivos de almacenamiento
USB:
sudo nano /etc/udev/rules.d/[Link]
Esta línea de comando se agrega en el archivo para prohibir
este módulo directamente.
ACTION=="add", SUBSYSTEMS=="usb", KERNEL=="sd[a-
z][0-9]", RUN+="/bin/sh -c 'echo 1 >
/sys/block/%k/device/delete'"
12) Bloquear drivers de almacenamiento externo
FireWire
Se debe seguir un proceso similar al paso anterior, se ingresa
a la blacklist para que no se cargue el controlador FireWire
sudo nano /etc/modprobe.d/[Link] -> blacklist 14) Escaneo Final
firewire-core
blacklist firewire-ohci Después de hacer todos los anteriores pasos, se visualiza que
blacklist firewire-sbp2 el índice de hardening subió hasta 76 puntos. Esto podría ser
mayor si se tocan partes del sistema más a fondo y con mucha
Además de prohibir los módulos, puedes crear una regla de más técnica, pero por ahora para un contexto como este está a
udev para deshabilitar los dispositivos de almacenamiento la altura de los requerimientos.
FireWire:
sudo nano /etc/udev/rules.d/[Link]
Esta línea de comando se agrega en el archivo para prohibir
este módulo directamente.
ACTION=="add", SUBSYSTEM=="firewire",
IV. DIRECTIVAS DE GRUPO
RUN+="/bin/sh -c 'echo 1 > /sys/bus/firewire/drivers/firewire-
sbp2/unbind'" Para dar cumplimiento al requisito de crear grupos y
usuarios, se va a implementar gestión de usuarios y asignación
13) Hashing Rouds de permisos y roles en Kali Linux para la empresa.
Se refiere a la cantidad de veces que una función de hash se 1) Creación de Grupos.
aplica a los datos durante el proceso de hashing. Este concepto
Primero se crean los grupos a partir de los roles establecidos
es particularmente relevante en el contexto de las funciones de
en los requerimientos administradores, programadores y
hash criptográficas utilizadas para almacenar contraseñas de
diseñadores. Esto se logra mediante los siguientes comandos
manera segura.
5
sudo chown root:administradores /opt/administradores:
sudo groupadd administradores Los propietarios de la carpeta se asignan a root y
sudo groupadd programadores administradores
sudo groupadd disenadores sudo chmod 770 /opt/administradores: Se configuran los
permisos otorgando lectura, escritura y ejecución a propietarios
groupadd sirve para crear los grupos seguido del nombre del (7), al grupo (7) y se deniega cualquier acción a otros usuarios
grupo. (0).
2) Creación de Usuarios sudo mkdir /opt/programadores: Crear directorio para
programadores.
Se crean los usuarios correspondientes, para la empresa se sudo chown root:programadores /opt/programadores: Los
van a crear dos usuarios por cada rol. propietarios de la carpeta se asignan a root y programadores.
sudo chmod 770 /opt/programadores: Se configuran los
sudo adduser admin1 permisos otorgando lectura, escritura y ejecución a propietarios
sudo adduser admin2 (7), al grupo (7) y se deniega cualquier acción a otros usuarios
sudo adduser prog1 (0).
sudo adduser prog2
sudo adduser dis1 sudo mkdir /opt/diseñadores: Crear directorio para
sudo adduser dis2 diseñadores.
sudo chown root:disenadores /opt/disenadores: Los
adduser funciona para crear usuarios seguido del nombre del propietarios de la carpeta se asignan a root y diseñadores.
usuario, luego de ingresar el comando se requieren unos datos, sudo chmod 770 /opt/disenadores: Se configuran los
entre ellos la contraseña del usuario. permisos otorgando lectura, escritura y ejecución a propietarios
(7), al grupo (7) y se deniega cualquier acción a otros usuarios
3) Asignación de Usuarios (0).
Una vez con los grupos y los usuarios creados se pasa a 5) Validaciones
agregar a los usuarios a los grupos, administradores se asignan
a grupo de administrador y así con los otros usuarios. Para realizar las diferentes validaciones se van a verificar
por líneas de comando a que grupo pertenecen los usuarios,
sudo usermod -aG administradores admin1 creación de archivos e intentar acceder a otras carpetas.
sudo usermod -aG administradores admin2
sudo usermod -aG programadores prog1 groups admin1
sudo usermod -aG programadores prog2 groups prog1
sudo usermod -aG diseñadores dis1 groups dis1
sudo usermod -aG diseñadores dis2
Después de ejecutar esas líneas de comando nos debería
usermod se encarga de modificar las propiedades del usuario y mostrar de forma correcta a que grupo pertenece cada usuario.
-aG se encarga de asignarlo al grupo sin sacar de otros grupos
al usuario seguido del nombre del grupo y nombre del usuario. su - admin1: Cambio al usuario admin1.
cd /opt/global: Intenta entrar a la carpeta global.
4) Creación de Carpetas y Permisos touch document: Crear archive en el directorio global.
Se deben crear los directorios sobre los cuales los usuarios y cd /opt/administradores: Acceso al directorio administradores
grupos van a trabajar. touch documento_priv: Crear archivo en el directorio de
Primero se crea la carpeta global y se configuran los administradores.
permisos para que el usuario root sea el propietario ya que cd /opt/programadores: Intenta acceder al directorio de
todos los usuarios pueden ingresar. programadores.
cd /opt/disenadores: Intenta acceder al directorio de
sudo mkdir /opt/global: Permite crear el directorio diseñadores.
sudo chown root:root /opt/ global: Se asigna el propietario
del directorio.
sudo chmod 777 /opt/ global: Permite cambiar permisos del V. PROCESO DE HARDENING
directorio, en este caso, el 777 otorga permisos de lectura, En el siguiente video se explica y se muestra el paso a paso
escritura y ejecución al propietario (7), al grupo (7) y a otros de los descrito en este documento.
usuarios (7).
[Link]
Se crean las carpetas para cada rol y se configuran según los
requerimientos.
sudo mkdir /opt/administradores: Crear directorio para
administradores.