El endurecimiento es el proceso de reducir las vulnerabilidades y asegurar un sistema desde posibles puntos de ataque. La reducción de las vulnerabilidades incluye la eliminación de servicios, nombres de usuario e identificaciones innecesarios y la desactivación de puertos innecesarios. En este artículo vamos a mostrar cómo se puede endurecer un servidor Ubuntu.
Requisitos
Servidor Ubuntu 14.04 LTS con Open SSH instalado.
Comenzando: Actualizar el sistema
Es necesario mantener el sistema actualizado después de instalar cualquier sistema operativo. Esto reducirá las vulnerabilidades conocidas que se encuentran en su sistema.
Para Ubuntu 14.04 ejecuta lo siguiente:
sudo apt-get update sudo apt-obtener actualización sudo apt-get autoremove sudo apt-get autoclean
Habilitar actualizaciones de seguridad automáticas
Habilitar las actualizaciones automáticas puede ser muy importante para proteger su servidor. Para instalar las «desatendidas actualizaciones», ejecute
sudo apt-get install unattended-upgrades
Para habilitarlo, ejecute el siguiente comando:
sudo dpkg-reconfigure -plow unattended-upgrade
Esto creará el archivo»/etc/apt/apt.conf.d/20auto-upgrades» que se muestra a continuación.
APT::Periódico::Actualizar-Listas de Paquetes «1»;
APT::Periodic::Desatendida la actualización «1»;>
Crear un «usuario sombra» con poderes sudo
Por razones de seguridad, es necesario utilizar un «usuario alternativo» en lugar de la cuenta root. Puede crear un usuario que no será fácil de adivinar para otros usuarios. En este tutorial usaremos «maketech111» como nombre de usuario.
Para crear un usuario, ejecute el siguiente comando:
sudo useradd -d /home/maketech111 -s /bin/bash -m maketech111
Para dar acceso al usuario sudo, ejecute el siguiente comando:
sudo usermod -a -G sudo maketech111
Para establecer una contraseña, ejecute el siguiente comando:
sudo passwd maketech111
Nota: asegúrese de que su contraseña tenga al menos ocho caracteres y contenga una compleja combinación de números, letras y signos de puntuación.
Para eliminar la solicitud de contraseña de sudo, edite el archivo sudoers.
sudo nano /etc/sudoers
Añadir / editar como se describe a continuación.
maketech111 ALL=(ALL) NOPASSWD: ALL
Guarde el archivo y salga.
Desactivar cuenta de root
Deshabilitar la cuenta root es necesario por razones de seguridad.
Para desactivar la cuenta de root, utilice el siguiente comando:
sudo passwd -l root
Si necesita volver a habilitar la cuenta, ejecute el siguiente comando:
sudo passwd -u root
Agregar una partición SWAP
Algunos servidores Ubuntu no están configurados con SWAP . SWAP se utiliza cuando la cantidad de memoria física total (RAM) está llena.
Para comprobar si hay espacio SWAP, ejecute el siguiente comando:
sudo swapon -s
Si no hay ningún archivo SWAP, debería obtener la siguiente salida.
Filename Type Size Used Priority
Para crear el archivo SWAP de 4 GB necesitará utilizar el comando «dd».
sudo dd if=/dev/zero of=/swapfile bs=4M count=1000
Para configurar el archivo SWAP, ejecute el siguiente comando:
sudo mkswap /swapfile
Para activar el archivo swap, ejecute
sudo swapon /swapfile sudo swapon -s
>
Esto saldrá como se muestra a continuación:
Filename Type Size Used Priority
Archivo /swapfile 4096000 0 -1>
Para habilitarlo permanentemente, edite el archivo «/etc/fstab».
sudo nano /etc/fstab
Añada la siguiente línea:
/swapfile swap swap swap default 0 0
Mejorar el rendimiento de SWAP
Establezca el valor correcto swappiness para mejorar el rendimiento general del sistema.
Puede hacerlo con el siguiente comando:
sudo echo 0>> /proc/sys/vm/swappiness
sudo echo vm.swappiness = 0>> /etc/sysctl.conf
Reinicie el sistema para comprobar si SWAP se activa correctamente.
Desactivar IPv6
Se recomienda desactivar IPv6 porque causa problemas con la lentitud de la conexión a Internet.
Para desactivar IPv6, edite el archivo «/etc/sysctl.conf».
sudo nano /etc/sysctl.conf
Edite como se describe a continuación:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Para recargar la configuración, ejecute
sudo sysctl -p
Desactivar IRQBALANCE
IRQBALANCE se utiliza para distribuir interrupciones de hardware a través de múltiples CPU para aumentar el rendimiento del sistema. Se recomienda desactivar IRQBALANCE para evitar interrupciones de hardware en sus hilos.
Para desactivar IRQBALANCE, edite «/etc/default/irqbalance»
sudo nano /etc/default/irqbalance
y cambie el valor HABILITADO a 0:
ENABLED=0
Corregir el error de OpenSSL heartbleed bug
El El Heartbleed es una grave vulnerabilidad de OpenSSL. Permite a un usuario remoto filtrar la memoria en hasta 64k trozos. Los hackers pueden recuperar las claves privadas para descifrar cualquier dato como el nombre de usuario y las contraseñas del usuario.
El error más común se encontró en OpenSSL 1.0.1 y está presente en las siguientes versiones:
- 1.0.1
- 1.0.1a
- 1.0.1b
- 1.0.1c
- 1.0.1d
- 1.0.1e
- 1.0.1f
Para comprobar la versión de OpenSSL en su sistema, ejecute los siguientes comandos:
sudo openssl versión -v
sudo openssl version -b>
Esto producirá algo como lo siguiente:
OpenSSL 1.0.1 10 Mar 2012
sobre la que se construyó: mié 2 ene 18:45:51 UTC 2015
Si la fecha es anterior a «Mon Apr 7 20:33:29 UTC 2014,» y la versión es «1.0.1,» entonces su sistema es vulnerable al Heartbleed bug.
Para corregir este error, actualice OpenSSL a la última versión y ejecútelo
sudo apt-get update sudo apt-get upgrade openssl libssl-dev sudo apt-cache policy openssl libssl-dev
Ahora compruebe la versión y ejecute
sudo openssl version -b
Esto producirá algo como lo siguiente:
Proteja la Consola, la memoria compartida, /tmp y /var/tmp
Asegurar la Consola
Por defecto, muchos terminales están habilitados en su sistema. Sólo puede permitir un terminal y desactivar los otros terminales.
Para permitir sólo «tty1» y desactivar otros terminales, edite el archivo «/etc/securetty».
sudo nano /etc/securetty
Añada / Edite las siguientes líneas:
tty1
#tty2
#tty3
#tty4
# etc…
Para asegurar el archivo «/etc/securetty», cambie el permiso del archivo y ejecute los siguientes comandos:
sudo chown root:root /etc/securetty sudo chmod 0600 /etc/securetty
Memoria compartida segura
Cualquier usuario puede utilizar la memoria compartida para atacar contra un servicio en ejecución, como apache o httpd. De forma predeterminada, la memoria compartida se monta con permisos de lectura/escritura.
Para hacerlo más seguro, edite el archivo «/etc/fstab».
sudo nano /etc/fstab
Añada la siguiente línea:
tmpfs /run/shm tmpfs ro,noexec,nosuid 0 0
Para realizar los cambios sin reiniciar, puede ejecutar
montura del sudo -a
Asegurar /tmp y /var/tmp
Los directorios temporales como /tmp, /var/tmp y /dev/shm abren la puerta para que los atacantes proporcionen espacio para ejecutar scripts y ejecutables maliciosos.
Carpeta segura /tmp
Cree un archivo de sistema de archivos de 1 GB para la partición /tmp.
sudo dd if=/dev/zero of=/usr/tmpDSK bs=1024 count=1024000
sudo mkfs.ext4 /usr/tmpDSK
Cree una copia de seguridad de la carpeta /tmp actual:
sudo cp -avr /tmp /tmp /tmpbackup
Monte la nueva partición /tmp, y establezca los permisos correctos.
Sudo mount -t tmpfs -o loop,noexec,nosuid,rw /usr/tmpDSK /tmp
sudo chmod 1777 /tmp
Copie los datos de la carpeta de copia de seguridad y elimine la carpeta de copia de seguridad.
sudo cp -avr /tmpbackup/* /tmp/
sudo rm -rf /tmpbackup
Ajuste el /tmp en la pestaña fbtab.
sudo nano /etc/fstab
Añada la siguiente línea:
/usr/tmpDSK /tmp tmpfs loop,nosuid,noexec,rw 0 0
Pruebe su entrada de puñalada.
montura del sudo -a
Asegurar /var/tmp:
Algunos programas utilizan esta carpeta como una carpeta temporal, por lo que también deberíamos protegerla.
Para asegurar /var/tmp, cree un enlace simbólico que haga que /var/tmp apunte a /tmp.
sudo mv /var/tmp /var/tmpold
sudo ln -s /tmp /var/tmp
sudo cp -avr /var/tmpold/* /tmp/
Establecer límites de seguridad y desactivar los servicios no deseados
Establecer límites de seguridad
Para proteger su sistema de ataques con horquilla, debe establecer un límite de proceso para sus usuarios.
Para ello, edite el archivo «/etc/security/limits.conf»,
sudo nano /etc/security/limits.conf
y edite la siguiente línea:
user1 hard nproc 100 @group1 hard nproc 20
Esto evitará que los usuarios de un grupo específico tengan un máximo de veinte procesos y maximizará el número de procesos a cien por usuario1.
Desactivar servicios innecesarios
Muchos de los servicios de Ubuntu ocupan memoria y espacio en disco que podría necesitar. Desactivar o eliminar servicios innecesarios puede mejorar el rendimiento general del sistema.
Para averiguar qué servicios se están ejecutando actualmente, ejecute el siguiente comando:
lista de inicio de sudo | grep running
Puede desactivarlo ejecutando este comando.
sudo update-rc.d -f nombre_de_servicio eliminar sudo apt-get purge service_name
Arreglar la vulnerabilidad de Shellshock Bash:
La vulnerabilidad Shellshock permite a los hackers asignar variables de entorno Bash y obtener acceso no autorizado al sistema.
Para comprobar la vulnerabilidad del sistema, ejecute el siguiente comando:
sudo env i='() { :;}; echo Su sistema es Bash vulnerable' bash -c "echo Bash vulnerability test"
«.
Si ve la siguiente salida, significa que su sistema es vulnerable.
Su sistema es vulnerable a Bash
Prueba de vulnerabilidad de bash >.
Para corregir esta vulnerabilidad, ejecute el siguiente comando:
Si ejecuta el comando de nuevo, lo verá:
bash: advertencia: VAR: ignorar el intento de definición de la función
bash: definición de la función de importación de errores para `VAR
Prueba de vulnerabilidad de bash >.
Conclusión:
Aquí tenemos