14 noviembre 2015

Seguridad: Firewall UFW y su interfaz gráfica Guwf

Introducción

Nuestro sistema operativo dispone de una cortafuegos (firewall) que permite filtrar y reconducir el tráfico que viene del exterior (Internet) y también el que sale de nuestro equipo, si bien es menos preocupante.
Es evidente que los ordenadores configurados como servidores son más vulnerables a los ataques y por tanto deben adoptar mayores medidas de protección. Pero también nosotros, que disponemos de configuraciones de escritorio, debemos tomar nuestras medidas de seguridad, puesto que al estar conectados a Internet estamos expuestos a posibles ataques.
Las distribuciones de Ubuntu por tanto de Linux Mint disponen de un firewal, se instala con nuestra distribución. Disponemos además de un script llamado ufw para configurarlo y también de un interfaz gráfico llamado Gufw que nos permitirá configurar nuestro cortafuegos de una manera más sencilla.
Si bien nuestras distribuciones disponen de un cortafuegos por defecto, suele estar desactivado. Nos corresponde la tarea de activarlo y configurarlo, nada difícil por otra parte.
En definitiva, con un firewall activado, configurado con una serie de reglas, podemos analizar la totalidad de la información que llega a nuestro ordenador desde el exterior.

Nociones básicas: Servicios, protocolos y puertos.

Servicios
Internet ofrece a los usuarios diversos servicios, veamos algunos de los más utilizados:
  • email: Este servicio nos permite enviar y recibir correo y con él imágenes, vídeos, música y otros archivos.
  • wwww: Nos permite buscar y ver páginas web, blogs etcétera.
  • FTP: Este servicio se utiliza para transmitir archivos de una máquina a otra a través de internet.
  • News: Nos permite conectarnos a sitios específicos para recibir boletines de noticias.
  • Telnet: Este servicio permite a un usuario trabajar con el ordenador de otro usuario de forma remota.
La lista de servicios es muy numerosa, una vuelta por la www os puede dar una visión más precisa.
Protocolos
De forma general, muy general, podemos decir que un protocolo es un conjunto de reglas que permiten a dos dispositivos intercambiar información. El protocolo define las reglas para el intercambio de datos.
De alguna manera habrá que distinguir cuando recibimos un correo electrónico o el servidor nos envía la página web seleccionada.
Efectivamente, cada servicio tiene su protocolo. Veamos los protocolos de los servicios anteriores.
  • email: El correo que recibimos llega a un servidor remoto (servidor POP), y es el protocolo POP (Protocolo de oficina de correos) el que recoge este correo. Existe también otro protocolo llamado IMAP* (Protocolo de acceso a mensajes de Internet). Este protocolo permite gestionar el correo en el servidor. No necesitamos descargar los mensajes a nuestro ordenador. El usuario puede elegir entre uno u otro protocolo cuando instala el cliente de correro (programa encargado de la gestión: Gmail, Kmail, Thunderbird, Outlock, etc).
  • www : Utiliza el protocolo HTTP* (HiperText Transfer Protocol). Lo utiliza nuestro navegador (Firefox, Chrome), para recibir las páginas web.
  • FTP: File Transfer Protocol, El protocolo utilizado para la transmisión de archivos de una máquina a otra.
  • News: Utiliza el protocolo NNTP, (Network News Transport Protocolo). Existe un servidor/es donde se encuentran las noticias y nosotros nos conectamos a él para recibirlas.
  • Telnet: (Tekecommunication Network). Es el nombre del protocolo de red que nos permite controlar una máquina de forma remota. Por otra parte no es muy recomendable su uso
Insisto, existen más servicios en Internet y, por tanto, más protocolos.
Estos protocolos pertenecen a la familia TCP/IP que especifica como los datos deberían ser formateados, direccionados, transmitifos, enrutados y recibidos por el destinatario. El modelo TCP/IP y los protocolos relacionados con él (los anteriores), son mantenidos por la Internet Enginnering Task Force (IETF).
Puertos
Ya sabemos que en Internet disponemos de diversos servicios, cada servicio dispone de un protocolo y todo ello sirve para enviar y recibir distintos tipos de información a través de Internet.
Un ejemplo nos ayudará a entender este tema. Nosotros podemos tener nuestro navegador abierto y acceder a distintas páginas web, mientras estamos recibiendo correo electrónico. Ya sabemos que gracias a los protocolos el sistema distingue páginas web de e-mails, pero para facilitar esta comunicación a cada protocolo se le asigna un puerto. Estos puertos son virtuales y permiten ser utilizados y configurados por el usuario.
Contamos con 65536 puertos, sin embargo existen ciertas reglas sobre ellos:
  • Los puertos del 0 al 1023 se denominan puertos conocidos o reservados. Están reservados para procesos del sistema (deamons) o programas ejecutados por usuarios privilegiados.
  • Los puertos del 1024 al 49151 son los puertos registrados
  • Los puertos del 49152 al 65535 son los puertos dinámicos.
Decíamos que existen diferencias entre tener un ordenador configurado como servidor y un ordenador personal o de escritorio. El administrador del servidor, que ofrece servicios, cuenta con números de puertos fijos y debe de tomar muchas más precauciones.
Nosotros, los usuarios de escritorios o clientes debemos preocuparnos de nuestros puertos de entrada, por donde recibimos la información y, por tanto los posibles ataques.
Firewall en Linux
Desde la versión de kernel 2.4 todos los sistemas Linux disponen de un firewall integrado en el Kernel llamado Netfilter. La configuración de Netfilter se puede realizar con una utilidad llamada iptables, donde se establecen las reglas a seguir. La verdad es que se trata de una herramienta que requiere conocimientos un poco avanzados.
Por ello se creo un script llamado ufw, que podemos utilizar desde la consola y que no reviste muchas complicaciones. También disponemos de un interfaz gráfico para utilizar ufw, su nombre es Gufw, sencillo e intuitivo.
Gufw se encuentra en el Gestor de Software de Ubuntu y Linux Mint, desde donde lo podemos instalar. También lo podemos instalar desde Terminal, como es habitual:
sudo apt-get install gufw
Una vez instalado, sin salir del terminal, vamos a determinar el estado de ufw, es decir si está activado o desactivado. Para ello escribimos:
sudo ufw status 
 
Configuración de Cortafuegos
Ya tenemos instalado Gufw, cuando iniciemos el programa lo primero que nos aparece es una ventana solicitando nuestra clave de administrador. Una vez introducida aparece la siguiente ventana:


El interruptor de Estado indica que el cortafuegos está apagado, además vemos la imagen del escudo en blanco y negro. Activamos el firewall desplazando el interruptor de Estado hacia la derecha.
Veremos como el escudo cambia de blanco y negro a color. Comprobar su activación de manera más eficaz, abrimos el Terminal y escribimos el comando:
sudo ufw status
El terminal debería darnos el siguiente mensaje:

Ya tenemos activado nuestro cortafuegos.
Si volvemos a la ventana de inicio vemos que en la etiqueta Entrante aparece el mensaje Denegar y en la etiqueta Saliente, Permitir.
Esto significa que nuestro firewall bloqueará todo el tráfico entrante y permitirá todo el tráfico saliente. Esta es la configuración estándar del cortafuegos.
Al bloquear el tráfico entrante cuando ocurra una petición externa a nuestra red, servidor (si tenemos) u ordenador, esta será rechazada. Si un usuario X intentara establecer una conexión FTP a nuestro ordenador, el firewall la rechazaría.
Se Permite todo el tráfico saliente, lo que significa que desde nuestro equipo podemos realizar cualquier petición a redes, servidores u ordenadores exteriores.
Si Denegamos el tráfico saliente, (podéis hacer la prueba), cuando, desde nuestro ordenador, se intente acceder a una página web, aparecerá en nuestro navegador un mensaje parecido a este:
Fijaros que el último punto del aviso hace referencia a la protección por un cortafuegos.
Si habéis hecho la prueba, debemos entrar en el cortafuegos y volver a permitir el tráfico saliente.
Esta es la forma habitual y más sencilla de configurar un cortafuegos. Más adelante veremos como configurar filtros o reglas para limitar/permitir entradas/salidas a determinados usuarios, protocolos y puertos.
Os aseguro que con esta configuración básica, evitamos bastantes problemas ante ataques externos, si los hubiera.
Como siempre, muchas gracias por vuestra atención.
Cualquier duda, a través del correo, intentaré resolverla. Un cordial saludo.

No hay comentarios:

Publicar un comentario