Seguridad por oscuridad en Apache y SSH
Basado en Linux Debian 10
Ahora que sabemos cómo instalar Linux Debian Base y tenemos instalado el Servidor Web Apache tenemos dos servicios a los que remotamente se puede acceder. Tanto si estas siguiendo el proyecto P4 como no, seria ideal que aplicaras esta técnica a tu servidor.
Para mejorar la seguridad en nuestro servidor además de protegernos con diversas aplicaciones podemos esconder cosas. La seguridad por oscuridad en Apache y OpenSSH trata de ocultar todo lo que podamos de nuestro sistema ante un posible escaneo externo el cual puede dar varias pistas a quien quiera atacar nuestro sistema y para ello vamos a ver unos ejemplos.
Si quieres atacar una maquina lo primero que hay que hacer es escanearla y ver qué puertos tiene abiertos y qué servicios ofrece. Si encontramos la versión de los programas que ofrecen servicios podemos buscar agujeros de seguridad sobre ese programa y versión especifica.
Antes de comenzar a retocar los programas vamos a instalar el que para mí es el mejor escáner de puertos. El no es otro que nmap y con él vamos a hacer la primera práctica.
Escaner de puertos con Nmap
Para comenzar nos identificamos en nuestro servidor como root con …
su
Una vez identificados instalamos nmap con …
apt install nmap
Ahora vamos a escanear nuestro servidor con …
nmap -sV localhost
Cómo podemos ver una vez finalizado el escaneo tenemos el puerto 22/80 abiertos y se ven las versiones que usan nuestros programas.
Esto es algo que si lo modificamos y ponemos otras versiones que no sean las reales simplemente conseguiremos despistar al atacante y en esto de la seguridad informática todo suma.
Seguridad por Oscuridad en el Servidor Web Apache
De serie Apache muestra la versión del servidor como podemos ver a continuación …
Puedes ver esto si dejas un directorio sin ficheros y lo cargas desde tu navegador web.
Si dejamos esto tal cual quien quiera atacarnos tendrá datos para empezar a buscar fallos de seguridad en la versión y como explotarlos.
Si borramos esto no es que estemos seguros del todo pero se lo ponemos más difícil a quien tenga ganas de jugar con nuestro sistema.
Para ello editamos el fichero de configuración de se seguridad de Apache con …
vi /etc/apache2/conf-available/security.conf
Ahora buscamos las directivas …
ServerTokens OS
ServerSignature On
Y las modificamos dejándolas así …
ServerTokens Prod
ServerSignature Off
Seguidamente guardamos los cambios y reiniciamos el servidor web Apache con …
systemctl reload apache2
Ahora si volvemos a cargar la dirección web veremos que todo ha desaparecido…
Seguridad por Oscuridad en el Servidor OpenSSH
Para borrar la versión de OpenSSH por completo hay que editar con un editor hexadecimal el paquete pero desde su archivo de configuración podemos no borrar la versión por completo pero si algunos datos valiosos …
Cómo podemos ver se ve la versión que usamos de OpenSSH y la versión del sistema operativo.
Podemos borrar la versión del sistema operativo editando el siguiente fichero …
vi /etc/ssh/sshd_config
Agregamos al final del archivo lo siguiente …
DebianBanner no
Guardamos el fichero y reiniciamos el servicio para que coja los cambios …
systemctl restart sshd
Ahora aun podemos ver la versión de OpenSSH que tenemos pero la versión del sistema operativo ya la tenemos escondida …
Si no nos quedamos agusto y lo que queremos es eliminar la versión por completo vamos a hacerlo.
Para poder editar el archivo del servidor OpenSSH necesitamos un editor hexadecimal que se pueda ejecutar en una terminal, para ello instalaremos el programa Hexedit con …
apt install -y hexedit
Una vez instalado vamos a hacer una copia de seguridad del fichero …
cp /usr/sbin/sshd /usr/sbin/sshd.ORIGINAL
Ahora hacemos una copia que será la que editemos …
cp /usr/sbin/sshd /usr/sbin/sshd.MOD
Ahora con el editor hexadecimal editamos el fichero …
hexedit /usr/sbin/sshd.MOD
Veremos una pantalla como esta …
La columna que nos interesa es la de la derecha que es la ASCII, con la tecla TAB puedes pasar de una columna a otra.
Nos situamos en la de la derecha y buscamos la versión que SSH muestra con la tecla CTRL + S y buscamos la versión, en mi caso es la 7.9 …
Como se puede ver aquí la tenemos …
Modificamos la versión y ponemos lo que queramos siempre y cuando no alteremos el orden de caracteres …
Ahora guardamos el fichero pulsando CTRL + X y la tecla Y para aceptar.
Con esto ya tenemos modificada la versión, ahora borramos el original …
rm /usr/sbin/sshd
Copiamos el fichero editado a la ruta donde debe de estar instalado …
cp /usr/sbin/sshd.MOD /usr/sbin/sshd
Finalizamos reiniciando el servicio sshd para que coja los cambios …
systemctl restart ssh
Escaneo de versiones con Nmap
Ahora si escaneamos el servidor con el escáner de puertos nmap …
nmap -sV IP
Veremos que ahora la versión ha cambiado por la que le pusimos …
Con estas medidas de seguridad que acabamos de tomar no estamos salvo porque nada que esté conectado a internet lo está pero por lo menos las cosas no se las ponemos fácil a quien quiera hacer de las suyas con nuestro sistema.