Você está na página 1de 19

Configurar el firewall gufw en Linux

Como continuacin del post de la semana pasada esta semana vamos a ver
como podemos configurar el firewall gufw en linux de forma fcil y rpida.
De esta forma en principio se cierra una serie de 2 post que son los
siguientes:
1. Qu son y para que sirven los Firewall.
2. Como configurar nuestro firewall adecuadamente.
INTRODUCCIN
Todos los sistemas GNU-Linux, a partir de la versin de kernel 2.4, disponen
de un firewall integrado en el Kernel que se llama Netfilter. Esto significa
que el firewall est integrado en el mismo corazn del sistema operativo.
Para la configuracin de Netfilter existe una herramienta que se
llama Iptables que servir para introducir las reglas de filtrado mediante una
serie de comandos.
Para crear las reglas de iptables deberamos abrir un fichero de texto con el
nombre iptables y crear un script que contenga la totalidad de reglas que
queremos que implemente nuestro firewall. Una vez creado el script tan solo
tendramos que darle los permisos correspondientes, guardarlo
en /etc/init.d y ejecutarlo con el siguiente comando:
/etc/init.d/iptables start
Pero para usuarios recin llegados a linux no hace falta complicarse tanto la
vida. Existen interfaces grficas para poder introducir las reglas ms
habituales. Como mnimo existen 2 interfaces que son Firestarter y Gufw.
Les recomiendo el uso de Gufw por su simplicidad. Adems Firestarter es un
proyecto que hoy en da est ms muerto que vivo.
INSTALAR GUFW
Como hemos comentado anteriormente las reglas del firewall las
configuraremos con Gufw. Lo primero que tenemos que hacer es instalar
Gufw. Para instalar Gufw abrimos una terminal y tecleamos:
sudo apt-get install gufw
Aunque hayamos instalado gufw el firewall an sigue inactivo ya que en la
mayora de distros GNU/Linux el firewall viene desactivado por defecto
permitiendo la totalidad de trfico tanto entrante como saliente. Para poner
un breve ejemplo de lo acabo de decir tan solo tenis que abrir una terminal
y teclear el siguiente comando:
sudo ufw status
El resultado que obtendris es el siguiente:

Como se puede leer en la captura de pantalla el estado del firewall ufw est
en inactivo.
Para reconfirmar que el firewall Netfilter no dispone de ninguna regla
predefinida podemos teclear el siguiente comando en la terminal:
sudo iptables -L
Y el resultado que obtendris ser el siguiente:

Como se puede ver en la captura de pantalla la totalidad de trfico existente
es aceptado tanto en direccin de entrada como en direccin de salida. Por
lo tanto en el estado actual en el caso que un atacante consiguiera acceso
root a nuestro equipo podra causar graves daos en nuestro equipo.
ACTIVAR EL FIREWALL
Una vez instalado ufw lo vamos a activar. Para activar ufw tan solo tenemos
que abrir una terminal e introducir el siguiente comando:
sudo gufw
Se abrir la siguiente pantalla:

Seguidamente tenemos que clicar sobre el botn desbloquear. Una vez
desbloqueado el sistema ya podemos Activar el firewall.

Para activar el firewall, como se puede ver en la captura de pantalla, tan solo
tenemos que clicar encima del botn Estado. Seguidamente el Firewall se
activar. Para comprobar que se ha activado tan solo tenemos que abrir una
terminal y teclear el siguiente comando:
sudo ufw status
El resultado obtenido ser el siguiente:

Como se puede ver el firewall ya est activado y protegiendo nuestro
equipo.
CONFIGURACIN
ESTNDAR DEL FIREWALL
Una vez se ha activado el firewall ufw este ya dispondr de una
configuracin predefinida que ser vlida para la gran mayora de usuarios
domsticos.

Como se puede ver en la captura de pantalla la configuracin standard
de ufw bloquea la totalidad de trfico entrante y permite la totalidad de
trfico saliente. Pero que quiere decir esto?
Bloquear el trfico entrante quiere decir que cuando alguien haga una
peticin a nuestra red , servidor u ordenador est ser rechazada. As por
ejemplo si intento establecer una conexin ssh a un ordenador que est
protegido por un firewall obtendr el siguiente resultado:

Como se puede ver en la captura de pantalla la conexin se ha rechazado
porqu el firewall del equipo al que me quiero conectar no admite
conexiones entrantes.
Aceptar el trfico saliente quiere decir que nosotros desde nuestro
ordenador podremos realizar cualquier tipo de peticin a servidores, redes u
ordenadores exteriores. Un tipo de peticin que podemos hacer es
conectarnos a una pgina web. As por lo tanto abrimos el navegador e
introducimos una pgina la pgina web:
http://geekland.hol.es
y el resultado obtenido es el siguiente:

En el caso que la totalidad de trfico saliente estuviera bloqueado
obtendramos un resultado parecido al siguiente:

Por lo tanto la configuracin estndar es la apropiada para la gran mayora
de usuarios. Es la ms apropiada porqu permitir la totalidad de conexiones
entrantes es ms que imprudente mientras que tener el trfico saliente
bloqueado y aplicar reglas puede representar una autntica pesadilla a la
hora de simplemente navegar por pginas web.
CONFIGURAR EL FIREWALL
DEFINICIN DE LA POLTICA
GENERAL
A estas alturas ya tenemos funcionando el firewall y adems hemos visto que
la configuracin estndar es la adecuada para una gran mayora de usuarios.
Pero est claro que en funcin de nuestras necesidades podemos modificar
la configuracin estndar del firewall.

Como se puede ver en la captura de pantalla, si queremos modificar el
comportamiento del trfico entrante en nuestra red, servidor u ordenador
podemos seleccionar 3 opciones.Las tres opciones de configuracin para
el trfico entrante son las siguientes:
DENY: Si elegimos la opcin Deny simplemente se deniegan la totalidad
de conexiones entrantes. A priori considero que para un usuario normal
esta es la opcin ms adecuada ya que nadie en principio tiene que acceder
a nuestro ordenador. En el caso que nuestra mquina funcionar como
servidor entonces el tema seria distinto.
REJECT: Si elegimos la opcin Reject se rechazaran la totalidad de
conexiones entrantes. En el momento que se rechace la conexin se enviar
un paquete ICMP al cliente que ha realizado la peticin indicndole que la
conexin se ha rechazado. Esta opcin es menos adecuada que la primera ya
que estamos dando informacin al cliente que intenta acceder a nuestro
equipo. La informacin que le estamos dando es que nuestro servidor est
operativo y que esta protegido el acceso mediante un firewall.
ALLOW: Si elegimos la opcin Allow entonces se aceptaran la totalidad de
conexiones entrantes. Esta opcin no es aconsejable ni para un usuario
estndar ni para un servidor.

Como se puede ver en la captura de pantalla, en el caso que decidamos o
necesitamos actuar sobre el trfico saliente tambin tenemos tres
opciones. Las tres opciones de configuracin para el trfico trfico
saliente son las siguientes:
DENY: Si elegimos la opcin Deny estaremos denegando la totalidad de
peticiones exteriores que estemos realizando como clientes. Este opcin
no es la ms adecuada para un usuario domstico ya que se nos har
prcticamente imposible navegar.
REJECT: Si elegimos la opcin Reject estaremos denegando la totalidad
de peticiones exteriores que estemos realizando como clientes. Si
elegimos Reject, en el momento que se rechace la conexin exterior se
informar al cliente que la conexin es rechazada por estar detrs de un
firewall.
ALLOW: Si elegimos la opcin Allow estaremos aceptando la totalidad de
conexiones salientes. A priori para un usuario domstico habitual est es la
mejor opcin.
DEFINICIN DE EXCEPCIONES
Y DE REGLAS
Una vez definida la poltica general respecto al trfico entrante y saliente, en
el caso que lo necesitemos, podemos establecer excepciones y reglas.
Supongamos que tenemos un ordenador que acta de servidor ssh y en el
firewall hemos definido que rechazamos la totalidad de trfico entrante a
nuestro ordenador. Por lo tanto a priori nadie podr acceder al servidor ssh
de nuestro ordenador. En el caso que alguien se intente conectar al servidor
ssh obtendr el siguiente resultado:

Para solucionar este problema y que un determinado rango de usuarios
puedan conectarse al servidor ssh podemos aplicar reglas/excepciones a
nuestro firewall. Para aplicar las reglas, como podemos ver en la siguiente
captura de pantalla, vamos al firewall del servidor y apretamos el botn +:

Una vez apretado el botn + vamos clicamos sobre la pestaa opciones
avanzadas y en vuestra pantalla podris ver una imagen parecida a la
siguiente:

Una vez estamos en esta pantalla tenemos que definir las reglas. Los
parmetros a definir son los siguientes:
PUNTO 1- Tipo de conexin
Las 2 opciones que podemos elegir en este apartado son:
In: Si queremos aplicar una regla sobre el trfico entrante tenemos que
seleccionar la opcin IN.
Out: Si queremos aplicar una regla sobre el trafico saliente tenemos que
seleccionar la opcin OUT.
El objetivo del problema planteado es dar acceso a un determinado
nmero de usuarios a nuestro servidor ssh. Por lo tanto tenemos que
seleccionar la opcin IN.
PUNTO 2- Tipo de accin
La totalidad de opciones disponibles en este campo son:
Allow: Si elegimos la opcin Allow estaremos permitiendo las conexiones
entrantes o salientes para la serie de usuarios que se especificaran en el
punto 4 o 5.
Deny: Si elegimos la opcin Deny estaremos denegando las conexiones
entrantes o salientes para la serie de usuarios que se especificaran en el
punto 4 o 5.
Reject: Si elegimos la opcin Reject estaremos rechazando las conexiones
entrantes o salientes para la serie de usuarios que se especificaran en el
punto 4 o 5. En el momento que se rechace la conexin se enviar un
paquete ICMP al cliente que ha realizado la peticin indicndole que la
conexin se ha rechazado.
Limit: Si elegimos la opcin Limit se denegar la conexin de entrada o
salida a una ip determinada. Se denegar el acceso en el caso que se hagan
6 o ms peticiones en el intervalo de menos de 30 segundos. Esta opcin es
para evitar ataques de fuerza bruta.
Como nuestra intencin es permitir la entrada a un servidor ssh a un
determinado nmero de usuarios elegiremos la opcin Allow. En este
caso tambin seria posible elegir la opcin Limit.
PUNTO 3 Tipo de protocolo:
El siguiente punto a elegir es el tipo de protocolo. Las opciones disponibles
en este apartado son las siguientes:
TCP: Si el servicio el cual queremos permitir o denegar a un determinado
rango de usuarios trabaja con el protocolo TCP tenemos que elegir la opcin
TCP. Para quien tenga curiosidad solo apuntar que el protocolo TCP trabaja
orientado a la conexin. Esto quiere decir que una mquina A enviar los
datos/paquetes a una mquina B. A medida que la mquina B vaya
recibiendo los paquetes ir analizando su integridad. Si los paquetes
recibidos no son corruptos se informar a la mquina A que la recepcin se
ha realizado correctamente. En el caso que la mquina B detecte que hay
algn paquete corrupto lo que pasar es que la mquina B solicitar de
nuevo este paquete a la mquina A.
UDP: Si el servicio el cual queremos permitir o denegar a un determinado
rango de usuarios trabaja con el protocolo UDP tenemos que elegir el
protocolo UDP. Contrariamente al protocolo TCP, UDP no est orientado a la
conexin. Por lo tanto las aplicaciones o servicios que trabajan con el
protocolo UDP simplemente se limitaran a enviar paquetes a un destinatario.
En ningn caso este protocolo realizar una verificacin de los paquetes se
han recibido correctamente ni se establecer un flujo bidireccional entre el
destinatario y el emisor.
Both: En el caso que exista algn servicio que pueda trabajar con los 2
protocolos, TCP y UDP, o en el caso que tengamos dudas o no sabemos con
que protocolo trabaja el servicio en el que queremos aplicar la regla
seleccionaremos la opcin Both.
El objetivo del problema planteado es dar acceso a un servidor ssh.
Sabemos que el servidor ssh trabaja con el protocolo TCP. Por lo tanto
en este caso tenemos que elegir la opcin TCP.
Nota: En el siguiente enlace encontraran los
protocolos que usan los servicios ms habituales.
http://es.wikipedia.org/wiki/Anexo:N%C3%BAmeros_de_puerto
PUNTO 4 Seleccin de los clientes al que se aplican las reglas

Desde: En esta celda tenemos que ingresar la IP del cliente/s que queremos
permitir, rechazar o limitar la conexin de entrada o de salida.
En el caso que estamos presentando queremos permitir la entrada a un
nmero de usuarios concretos a nuestro servidor ssh. Por lo tanto en la
celda Desde introduciremos la IP de los clientes que queramos que
tengan acceso a nuestro servidor.
As por ejemplo podemos introducir la siguiente IP:
192.168.2.18
Al introducir esta IP estaremos dando acceso al cliente con IP 192.168.2.18 al
servidor ssh.
Port Number: Este campo hace referencia al puerto de salida que el cliente
usa para acceder al servidor.
En el ejemplo que estamos viendo este campo aconsejo dejarlo en
blanco o escribir any. El hecho de dejar el campo en blanco o poner any
significa que el cliente puede usar cualquier puerto de salida para
conectarse al servidor ssh.
PUNTO 5 Seleccin del servidor al que se aplican las reglas

a: En esta celda tenemos que ingresar la IP del servidor que queremos
permitir, rechazar o limitar la conexin de entrada o de salida.
Por lo tanto en el caso que estamos poniendo como ejemplo tenemos
que escribir la ip de nuestro servidor o simplemente escribir Any. Se
escribimos Any el cliente con IP 192.168.2.18 podr acceder a cualquier
servidor ssh que est detrs del firewall. Si elijamos la opcin de poner
la IP del servidor entonces el cliente con IP 192.168.2.18 tan solo podr
acceder a este servidor ssh.
Port Number: Este campo hace referencia al puerto de escucha del servidor
o servidores que queremos permitir o denegar el acceso.
En el caso que estamos estudiando queremos permitir el acceso de
usuarios a un servidor ssh. Sabemos el que puerto de escucha estndar
de un servidor ssh es el 22. Por lo tanto en esta celda escribiremos el
nmero 22.
Nota: En el siguiente enlace se puede encontrar una
recopilacin extensa de los puertos de escucha
estndar acostumbran a usar habitualmente los
distintos tipos de servidores existentes.
http://es.wikipedia.org/wiki/Anexo:N%C3%BAmeros_de_puerto
Una vez vistas y comentadas la totalidad de opciones disponibles tan solo
queda nos queda ver el resultado final. Si habis seguido el ejemplo paso
por paso tendremos una situacin parecida a la siguiente:

Ahora tal y como se puede ver en la captura de pantalla tan solo nos resta
clicar al botn aadir. En estos momentos el cliente con IP 192.168.2.18 ya
tiene acceso a nuestro servidor ssh. Para demostrar lo que acabo de decir
tan solo hay que abrir una terminal y teclear:
ssh -p22 joan@192.168.2.155
El resultado obtenido es el siguiente:

Como se puede ver en la captura de pantalla ahora podemos acceder sin
problema dentro de nuestro servidor ssh.
OTROS EJEMPLOS DE
REGLAS QUE PODEMOS
USAR
Acabamos de ver como dar acceso a un usuario a nuestro servidor ssh. En el
caso que lo necesitemos podemos introducir muchas ms reglas dentro de
nuestro firewall. Algunos ejemplos de reglas que podemos introducir son las
siguientes:
1- Dar acceso a la totalidad de usuarios de una red al servidor ssh:

Con las opciones definidas en la captura de pantalla estaremos permitiendo
que la totalidad de usuarios de la red local se conecten a cualquier servidor
ssh.
2- Dar acceso a la totalidad de usuarios de una red a los servidor ssh y
ftp:

Con las opciones definidas en la captura de pantalla estaremos permitiendo
que la totalidad de usuarios de la red local se conecten a cualquier servidor
ssh y ftp.
3- Hacer que un usuario/cliente determinado no se pueda conectar a
pginas web que no dispongan de cifrado ssl:

Con las opciones definidas en la captura de pantalla prohibiremos que el
cliente con IP 192.168.2.155 se pueda conectar a pginas que no dispongan
cifrado ssl (http).
4- Hacer que un usuario/cliente determinado no se pueda conectar a
pginas web que dispongan de cifrado ssl:

Con las opciones definidas en la captura de pantalla prohibiremos que el
cliente con IP 192.168.2.155 se pueda conectar a pginas que contengan
cifrado ssl. (https)
5- Prohibir a un cliente que se conecte a cualquier servidor ftp o ssh:

Con las opciones definidas en la captura de pantalla prohibiremos que el
cliente con IP 192.168.2.155 se pueda conectar a servidores ssh y ftp.
6- Prohibir que una red local que se conecte a cualquier servidor ftp o
ssh:

Con las opciones definidas en la captura de pantalla prohibiremos que
nuestra red local se pueda conectar a servidores ssh y ftp.
Nota: Con las explicaciones realizadas y con los
ejemplos que se exponen, en principio cualquier
usuario debera ser capaz de configurar
adecuadamente un firewall.
Nota: En este post solo cito como trabajar con las
opciones avanzadas de Gufw. La razn es simple. Si
dominis las opciones avanzadas el resto de
opciones carecen de importancia.
REGISTRO DE EVENTOS
Gufw nos permite registrar los eventos que van sucediendo. Para habilitar
esta opcin en el men de Gufw tenemos que seleccionar la opcin
editar/preferencias. Una vez seleccionada la opcin veremos la siguiente
pantalla:








Como se puede ver en la captura de pantalla podemos habilitar el registro
de acciones clicando sobre registro. Para ello en el apartado Opciones de
ufw tenemos que fijar el alcance del registro. Seguidamente en opciones de
Gufw tenemos que clicar la muesca Registro. A partir de este momento se
registraran la totalidad de eventos que se producen en el cortafuegos. En el
hipottico caso que se necesite revisar los eventos, como se puede ver en la
captura de pantalla, tan solo tenemos que ir al men Archivo/registro.
Como se puede ver en la anterior captura de pantalla tambin tenemos una
opcin denominada informe de escucha. Si la activamos cuando estemos en
la pantalla general del firewall podemos observar que aparece un nuevo
apartado que se llama informe de escucha:

Activando esta opcin. Como podemos ver en la captura de pantalla
podremos ver informacin del tipo que el puerto 22 que es el del SSH est
activado y en escucha a la espera de una conexin entrante.

Você também pode gostar