Endurecimiento del servidor Ubuntu 14.04

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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *