Escrito
por: Jorge Murga.
Aplicando seguridad a nuestro
Linux Debian 9 (Stretch).
Ahora vamos a realizar la practica, de lo que
explique en el Post anterior, les deje el enlace de donde descargaran el PUTTY
para hacer conexión remota a nuestro server Linux con la distribución Debian 9.
Yo cuando me conecto remotamente via el protocolo SSH
a un equipo con Linux para obtener una Shell utilizo BASH (Bourne Again Shell), ahora
si usted es un usuario que quiere aprender a usar otros interpretes de comandos
como CSH o ZSH queda bajo su
decisión.
La SHELL es la interface de linea de
comandos que usaremos en nuestro Linux Debian.
Paso 1
Una vez que tengamos abierto el PUTTY en el campo
Host Name ( or IP address) definiremos la dirección IP de nuestro computador
que instalamos Linux, en este ejemplo la computadora a lo que me conectare es
192.168.88.248 y en el campo Port dejaremos el puerto 22 que es el puerto que
utiliza SSH para sus conexiones, también dejaremos seleccionado el protocolo
SSH y damos clic en Open.
Paso 2
Aceptamos la negociacion de las llaves que realiza tanto el Cliente con el Servidor.
Paso 3
Una vez nos muestre la consola vamos a ingresar con el
usuario que creamos, en mi caso en el proceso de instalacion cree el usuario linuxitojr
con su respectiva contraseña, quiero mencionar que la configuracion de SSH
por defecto no deja que nos conectemos con el Super Usuario ROOT, a
nivel de configuracion podemos permitirlo pero por seguridad no es recomendable
ya que si un atancante intercepta esa comunicacion auque este encriptada no
corremos el riesgo que puedan saber el password del super usuario ROOT.
Paso 4
Una vez ingresamos
el usuario y password ya tendremos acceso a nuestra Shell de
linux donde podremos ejecutar los comandos que necesitemos.
Nota: para diferenciar un usuario mortal del super usuario
sera por que el prompt del bash de un user motal es el signo de $, y
cuando escalemos privilegios de super usuario el signo en el prompt sera #.
Paso 5
Ahora antes de instalar el paquete que tiene la herramienta ifconfig
vamos adquirir privilegio de super usuario, para ello escribimos la palabra su
y damos enter, veremos como en la grafica que nos pide un password, no debemos
olvidar la contraseña de root ya que deberia ser distinta que la del
usuario con el que ingresamos a nuestra shell de Linux.
Paso 6
Para instalar paquetes en debian usamos la herramienta apt-get,
podemos utilizar otro sistema de instalacion de paqueteria como aptitude,
pero no voy a explicar el uso de este, usted puede documentarse y ver con cual
se siente mas agusto, esa es una de las tantas ventajas de Linux que tiene
multiples de comandos o aplicaciones que pueden hacer lo mismo solo con algunas
variantes, esto es gracias a que Linux es un Sistema Operativo Open
Sourse.
apt-get install net-tools
Cuando comienza a descargar el paquete que
necesitamos el se conectara al server o repositorio que definimos en la
instalacion, hara la descarga, este sistema de instalacion de paquetes
descargara todas las librerias que requiera la aplicacion y luego hace la instalacion.
La siguiente grafica muetra que la instalacion fue
correcta de net-tools.
Si quereremos saber el uso de un comando en Linux
escribimos la palabra man (manual) y el nos mostrara una series de
opciones que podemos utilizar con la aplicacion que vamos a ejecutar.
Paso 7
La siguiente imagen muestra el comando ifconfig
y su resultado, como podemos ver obtenemos toda la info referente a nuestra
insterface loopback = lo y nuestra interface Ehternet = enp0s3
con IP 192.168.88.248, en caso de tener mas interfaces Ethernet o
una interface Wi-Fi aqui se reflejara la info de todas las tarjetas que
dispongamos en nuestro sistea Linux.
Paso 8
Ahora procedemos a
instalar el escaner nmap, antes de proceder con la descarga y la instalacion,
se nos pregunta si queremos continuar o salir de la descarga o instalacion.
Do you want to continue? [Y/n]: YES
Paso 9
Ahora vamos
auditar nuestro sistema Linux con la aplicacion nmap para ello podemos hacerlo
ejecutando lo siguiente:
nmap
localhost
nmap
192.168.88.248 <-- IP asignada por nuestro Router a Linux
Como resultado obtenemos que tenemos 2 puertos abiertos,
puerto 22 y puerto 25, aqui debemos preguntarnos, necesitamos
tener instalado un Server de Correo en nuestro Linux, si la respuesta es no,
entonces debemos identificar el Server de Correo que instalo Linux de manera
automatica en la instalacion y proceder a desintalarlo, ya que como dije el
puerto 25 es una puerta abierta para que un atacante pueda afectar nuestro
sistema o tomar control de tal por este puerto si el atacante encuenta una
vulnerabilidad sobre la version del servidor de correo electronico que se nos
intalo.
Paso 10
Yo se que Debian en la instalacion me instalo el
server de correo Exim4, en la siguiente imagen muestro como desitalar Exim4,
el nombre del paquete es exim4-base, para ello usamos el siguiente
comando.
apt-get remove --purge
exim4-base
apt-get = software para instalar,
remover, actualizar paquetes.
apt-get va precedido de varias banderas antes de escribir
el software a desintalar, agregamos remove, que desinstala el
paquete, y la bandera --purge sirve para hacer una desintalacion
limpia, es decir que si queda alguna libreria que no fue borrada, con esta
bandera estoy forzando a que las desintale.
luego audito nuevamente mi sistema con nmap y
listo, solo tenemos abierto a nuestro sistema el puerto 22 que es para las
conexiones seguras que hacemos al server de SSH.
Nota: Estas son las maravillas de Linux, usted puede auditar si Winsuck, Winbug, o bueno digamos su Windows y se dara cuenta cuantos puertos por defecto tiene abiertos, y para cerrarlos solo le sera posible con un firewall.
Paso 11
La siguiente grafica les muestro varios comandos
con los cuales usted puede obtener la version de su Debian, la version del
Kernel del Linux.
Comandos: uname, cat, lab_release
Paso 12
Si recordamos en nuestra instalacion de Linux no tenemos instalado ningun escritorio como es KDE, GNOME, al final nuestro sistema esta orientado a ser un servidor, no una commputadora para uso con ofimatica, asi que todo sera a puro comando desde nuestra consola.
Alguien podria decir pero me gustaria tener un Navegador en caso que requiera conectarme a Google, pero señores aqui no podremos instalar Chrome o Mozilla, etc, entonces se preguntan como hacemos?, bueno la respuesta es que si podemos instalar Navegadores para poder usar en la consola, podemos instalar w3m o lynx, yo personalmente he usado lo dos pero me siento mas comodo usando lynx asi que procederemos con la instalacion y veremos nuestro Browser en la consola, cada vez que hago una demo, me trae recuerdos de los inicios de Internet ya que en los browser solo podiamos visualizar texto, no esperen ver imagenes o videos, pero para navegar y buscar informacion son muy utiles.
Instalando lynx
Para ejecutar lynx escribimos #lynx www.google.com y
obtendremos la siguiente pantalla, para moverse a la barra de busqueda utilize
la tecla TAB, yo en mi caso quiero buscar sobre la plabra Linux y
luego damos Enter para que se lleva acabo la busqueda.
En la barra azul es posible que nos solite que la pagina a le que accederemos hay que aceptar las Cookies, asi que aparecera un menu con Y,N, All, una vez aceptemos listo ya tendremos en pantalla el resultado de nuestra busqueda.
Como vieron con Linux no tenemos limites, los limites nos los pondremos nosotros mismos, y hay tanta documentacion que al final podemos sobrepasar cualquier barrera que pensemos sea imposible.
Paso 13
Ahora les enseñare como ocultar nuestra version de Linux, ustedes diran y para que necesito esto, como estamos enseñando a dar pasitos en seguridad informatica esto es fundamental realizarlo, cuando un atacante quiere tener acceso a un servidor uno de los pasos que realiza es adquirir informacion de nuestro sistema que le sea util para luego buscar una vulnerabilidad que podamos tener por ejempo con una version antigua de una aplicacion que no utilizemos, es por ello que es muy importante desintalar todas aquellas aplicaciones que no utilizemos y que abren un puerto por el cual un atacante pueda tomar el contro de nuestro sistema.
un atacante realiza un escaner a nuestro sistema y dependiendo el tipo de escan que realize puede obtener mucha informacion y con esta poder afectarnos.
En la siguiente imagen yo auditare mi sistema Linux Debian desde otro computador en la red, al tirar el scan a la IP de la maquina Linux obtengo datos como.
Puertos Abiertos
Uptime de mi Sistema Operativo
Version de SSH
Version de mi Linux Debian y mucha mas informacion.
Para asustarse verdad.!!!!!! pero como dice el Guason Why So Serious!!!
Paso 14
Como podemos evitar que ante un ataque de este tipo no muestre la version de Sistema Operativo que tenemos?.
Bueno para ello nos iremos al fichero vi /etc/sysctl.conf, aqui vamos a usar nuestro editor de texto en consola con el que nos sintamos mas comodos, mi preferid es VI, si usted gusta y prefiere usar Emacs, perfecto, lo importante es que podamos editar los archivos desde la consola.
Yo en la linea 25 escribi un comentario con la idea de saber
que hago con lo que escribire en la linea 26.
net.ipv4.ip_default_ttl = 199
Luego salvamos el documento con el cambio que hicimos, les recomiendo reinicar nuestro Sistema Operativo, si no sabe reiniciar su Linux desde consola ejecute el comando init 6 y listo.
Paso 15
Nuevamente
auditamos nuestro servidor Linux y nos encontramos que el Scan que lanzamos no
detecta nuestra versión de Sistema Operativo, en la siguiente imagen encierro
en color rojo las veces que inicia el proceso de detección de Sistema Operativo
y no adquiere información alguna como la obtuvimos en el primer scan antes de
modificar el fichero sysctl.conf.
Bueno espero que con lo que escribí en este post
les sea de mucha ayuda, pueden dejar sus comentarios, escribirme a mi correo
para hacerme cualquier consulta, y pueden solicitar sobre qué tema les gustaría
que escribiera, yo por ahora me voy a dormir porque son las 4:10 AM, pero el
escribir algo que pueda ser un aporte es de mi agrado es por ello el sacrificio.