Sei sulla pagina 1di 17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

Prctica 17: Servicio de Cortafuegos (NetFilter-IpTables)


Parte 2: Servidor Linux Ubuntu como Cortafuegos (Firewall)
Herramienta nmap para escaneo de puertos:
Vamos a instalar una herramienta que nos permitir estudiar la red y mquinas
individuales para salvaguardar posteriormente la seguridad.
Nmap implementa diversas tcnicas para extraer informacin de los equipos que
forman parte de una red y para identificar los puertos y servicios que estn disponibles
en distintas mquinas
1. Abre la mquina Servidor Ubuntu y elimina el puerto de escucha 8080 para el
servidor Squid. Qu parmetro has modificado?

2. Arranca el servidor Apache permanentemente.

3. Instala la herramienta nmap En la web tienes un manual de la herramienta:


http://nmap.org/man/es/
4. Vamos a identificar qu mquinas tenemos en este momento en nuestra red del
aula. Para ello vamos a utilizar nmap con la siguiente opcin.
nmap -sP 192.168.naula.0/24
Captura de pantalla con los hosts activos

Prctica 17

1/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

5. Identifica los hosts activos de otra aula que no sea la tuya. Captura de pantalla.

Prctica 17

2/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

6. Vamos a identificar los servicios activos de un host del aula. Elige la mquina
virtual de un compaero y realiza el escaneo de puertos mediante el comando:
nmap sT v Ip_compaero
Observa la informacin.
Qu servicios tiene arrancados?
Captura de pantalla

7. Indica los servicios que tiene arrancados tu mquina anfitrin.

8. Vamos a ir un poco ms lejos. Podemos intentar que nmap identifique el sistema


operativo(-O) y las versiones de los servicios(-sV) de la mquina. Ejecuta el
comando. Tarda unos segundos.
nmap sT O -sV Ip_compaero

Vamos a estudiar el cortafuegos integrado en el ncleo de linux llamado a netfilter.


Para manejarlo utilizaremos la herramienta Iptables, aunque existe otras que nos
permiten manejarlo de forma grfica.
Poltica por defecto en el Cortafuegos
Hay dos maneras de implementar un firewall:
1) Poltica por defecto ACEPTAR: en principio todo lo que entra y sale por el
firewall se acepta y slo se denegar lo que se diga explcitamente.
2) Poltica por defecto DENEGAR: todo est denegado, y slo se permitir pasar
por el firewall aquello que se permita explcitamente. Esta poltica es mucho ms
segura pero ms compleja de configurar
Prctica 17

3/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

Cuando configuramos el firewall es necesario decidirse por una poltica


9. Para comprobar el efecto que tiene una poltica u otra vamos realizar una serie
de modificaciones. Como indica el documento de ayuda, comprueba cual es el
contenido actual de iptables mediante. Captura de pantalla.
sudo iptables L -n

10. Como puedes observar por el momento las cadenas de la tabla FILTER:
a.

INPUT (paquetes de entrada)

b. OUTPUT (salida)
c. FORWARD(paquetes que pasan por la mquina)
Tienen como poltica por defecto el aceptar todo. Para que se entienda
vamos a cambiar la poltica de entrada.
11. Si accedis con el navegador se os mostrar alguna pgina web de prcticas
anteriores. Comprueba que puedes acceder al servidor web.
12. Vamos a cambiar la poltica de salida indicando que por defecto ningn trfico
saldr:
sudo iptables P OUTPUT DROP
-P: Indica que cambiamos la politica
OUTPUT: La cadena que modificamos es la de entrada. Podra ser para la tabla
filter: INPUT, OUTPUT y FORWARD
DROP: Elimina los paquetes. Podra ser ACCEPT( aceptar el paquete)
13. Lista el contenido de iptables como anteriormente para ver la poltica actual y
marca la poltica de OUTPUT. Captura de pantalla

Prctica 17

4/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

14. Vuelve a acceder al servidor WEB. No te tiene que dejar. Nuestro servidor se ha
convertido en un agujero negro del que nada sale. Realiza un ping localhost y
comprueba que tampoco responde.
15. Vuelve a cambiar la poltica para la cadena OUTPUT de la tabla filter a
ACCEPT. Qu comando has utilizado? Comprueba que todo vuelve a
funcionar. Lista la poltica actual.
sudo iptables -P OUTPUT ACCEPT

16. Abre la mquina Linux_DSL_NAT y Linux DSL_AULA. Configralas para que


su router sea Ubuntu. Qu comandos has utilizado?
Sudo route add default gw 172.16.247.50, de la practica anterior ya estaba
configurado de esta manera por eso ya se veian entre si pero el router ubuntu no
enrutaba por que estaba apagado para que el router vuelva a enrutar hay que editar
el archivo :/proc/sys/net/ipv4/ip_forward y aadirle un 1

Prctica 17

5/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

17. Comprueba que se hacen ping mutuamente. Captura de pantalla


Maquina dsl bridged a maquina dsl NAt

Maquina dsl Nat a Maquina dsl bridget

18. Cambia la poltica de FORDWARD (enrutar) a DROP, es decir, por defecto


impedimos enrutar por esta mquina Qu comando has utilizado?. Captura de
pantalla con el listado de polticas. marca la poltica de FORDWARD
sudo iptables P FORWARD DROP

Prctica 17

6/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

19. Vuelve a intentar hacer ping. Al impedir por defecto enrutar, las mquinas no se
han de ver, sin embargo, ubuntu sigue disponible con el resto de servicios.
Comprueba que puede acceder al servidor web.
20. Vamos a utilizar una poltica inicial de ACEPTAR. Crea un fichero llamado
/etc/cortafuegos y aade las siguientes lneas.
echo -n Aplicando Reglas de Firewall...
##Borrado de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat F
## Establecemos politica por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
echo " OK . Verifique que lo que se aplica con: iptables -L -n"
21. Ejecuta el script mediante sh.
Crear reglas en la tabla FILTER
22. Para los siguientes ejercicios voy a suponer que:
a. eth0: es la red NAT (ser nuestra supuesta red local).Ip 172.16.174.50
b. eth1: es la red del Aula (ser nuestra salida a Internet).IP 192.168.0.60
c. 172.16.174.0/24 (red local)
Tendris que adaptar los datos a las condiciones de vuestra mquina.
23. Vamos a crear reglas en las distintas cadenas de las tablas. Por ejemplo, vamos a
impedir el trafico desde la red del aula impidiendo que se acceda a ningn
servicio desde el aula. Aade al script la siguiente regla
iptables A INPUT -i eth1 j DROP
-A: Indica que aadimos regla
INPUT: es la cadena de entrada
-i: vamos a aplicar la regla sobre una interface de red. En nuestro caso eth1 que
corresponde a la del aula.
-j: Que vamos a hacer con el paquete. En nuestro caso lo eliminamos con DROP.
24. Ejecuta el script y comprueba que se ha aadido al igual que la imagen
Prctica 17

7/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

25. Accede al servidor web desde Linux_DSL_NAT la IP 172.16.174.50. Te tiene


que dejar acceder.
26. Accede ahora al servidor web desde Linux_DSL_Aula a la IP
192.168.naula.60. No te tiene que dejar, pero tampoco te dejar acceder a
ningn servicio, ni enrutar, ni salir a Internet desde la mquina
27. Esta regla es demasiado restrictiva y equivale a desconectar el cable de red. de
eth1
Borrar reglas en la tabla FILTER
28. Para eliminar una regla, se reescribe de nuevo pero se sustituye -A por -D.
sudo iptables D INPUT -i eth1 j DROP
29. Borra la regla anterior y lista las reglas de iptable como anteriormente. Captura
de pantalla

Prctica 17

8/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

30. Borra la regla del script tambin. Comprueba que ahora ya puedes acceder al
servidor web desde la red del aula.
Pero para que muchas reglas sean tiles no basta poder especificar el dispositivo sino
que es necesario poder afinar indicando qu protocolo y/o puertos definen una regla en
particular.
Como ya sabemos, el webmin es una herramienta que permite configurar Linux
completamente. No es conveniente que se pueda acceder desde cualquier lugar. En
estos momentos nuestra tarjeta externa permite que todos nuestros compaeros puedan
ver nuestro Linux y adems conocen el usuario y contrasea de acceso.
31. Vamos a suponer que el acceso al servidor webmin slo deseamos que se realice
desde la red local (172.16.174.0/24).
Ayudndonos de la siguiente pgina
http://doc.ubuntu-es.org/Iptables
Para ello ejecutaramos el siguiente:
sudo iptables -A INPUT -i eth1 -p tcp --dport 10000 -j DROP
-A: aade regla a la cadena indicada
-i : interface a la que se aplica
-p: protocolo a utilizar(tcp, udp,)
--dport: puerto destino
-j: accin
32. Adapta el comando a tu mquina, adelo al script y ejectalo. Indica el
comando. Lista el contenido de iptables. Captura de pantalla.
sudo iptables -A INPUT -i eth3 -p tcp --dport 10000 -j DROP

Prctica 17

9/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

33. Comprueba que puedes acceder desde la red local a webmin del servidor y no
desde la red externa.
34. Crea una regla en el script para que tu servidor web pueda verse desde la red
exterior pero no desde la red local. Recuerda que http utiliza el puerto 80. Qu
comando has utilizado?
sudo iptables -A INPUT -i eth2 -p tcp --dport 80 -j REJECT
35. Borra la regla anterior.
36. Nuestro servidor ubuntu tiene actualmente instalados varios servicios (web,dns,
Proxy). Si ejecutis el comando :
sudo netstat -ln | grep ESCUCHAR
os aparece en que puertos se encuentra nuestra mquina escuchando
37. Comprueba que puertos/servicios tenemos en estado de ESCUCHAR. Captura
de pantalla.

38. Vamos a ir ms lejos, queremos que solamente pueda accederse a webmin desde
localhost y desde la mquina 172.16.174.1 (anfitrin en Nat). Elimina la regla
anterior que se permita slo el acceso a nuestra red en el script

Prctica 17

10/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

39. Teniendo en cuenta que con la opcin -s ip_a_configurar configuramos reglas


para ips en vez de para interface. Realiza lo siguiente:
a. Crea una regla para que la ip 172.16.174.1 pueda acceder a webmin
b. Crea una regla para que desde la interface lo (loopback) se pueda acceder
a webmin.
c. Crea una regla para que nadie pueda acceder a webmin.
qu reglas has creado?
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 172.16.247.1 -p tcp --dport 10000 -j ACCEPT
iptables -A INPUT -p tcp --dport 10000 -j DROP

Comprueba que puedes acceder a webmin desde el anfitrin y localhost,


pero no desde Linux-DSL-Nat
40. Lista el contenido de iptables. Captura de pantalla.

Prctica 17

11/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

Limpiar la tabla de reglas


41. Mediante el comando
sudo iptables F
borramos todas las reglas de la tabla filter. Ejecuta el comando y comprueba que no
tenemos reglas.
42. Normalmente se ejecuta un script con todas las reglas del cortafuegos, y las
primeras lneas limpian las tablas de reglas mediante los siguientes comandos:
iptables F #borramos todas las cadenas de la tabla FILTER
iptables X #borra las cadenas definidas por el usuario
iptables Z #pone a 0 el contador de bytes de la cadenas
iptables -t nat F #borra las cadenas de la tabla NAT
Orden de las reglas
El orden en el que se encuentran las reglas es muy importante, ya que la primera
regla que encuentre que cumpla el paquete, se aplica sobre el paquete y no continua.
43. Vuelve a crear las reglas del ejercicio 39 pero en el orden siguiente:
a. Crea una regla para que nadie pueda acceder a webmin.
b. Crea una regla para que la ip 172.16.174.1 pueda acceder a webmin
Captura de pantalla con el listado de reglas

Prctica 17

12/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

44. Intenta acceder a webmin desde cualquier mquina. No debera dejarte acceder
ya que nunca llegara a la segunda regla.
45. Ayudndote del siguiente documento:
http://doc.ubuntu-es.org/Iptables
y de
http://www.pello.info/filez/firewall/iptables.html
Interpreta las siguientes reglas de IpTables:
a. iptables F
Borra la tabla filter

b. iptables -P FORWARD DROP


cambiamos la politica por defecto a rechazar
c. iptables P OUTPUT ACCEPT
cambiamos la politica por defecto de la tabla filter output a aceptar
d. iptables -A INPUT -p tcp --dport 1:1024 -j DROP
deniega la entrada al puerto 1 al 1024
nota: se puede indicar un conjunto de puertos continuos mediante
puertoinicio : puertofin
e. iptables -A INPUT -s 231.45.134.23 -p tcp --dport 3306 -j ACCEPT
f. iptables -A INPUT -p tcp --dport 3306 -j DROP
todo lo que vaya al puerto 3306 lo rechace
g. sudo iptables -A OUTPUT -p tcp -d www.upv.es --dport 80 -j DROP
rechaza la salida por el puerto 80 por el protocolo tcp destino a la
direccion www.upv.es
nota: -d tiene significado de destino.
h. iptables -A INPUT -i lo -j ACCEPT
permite la entrada por loopback a todo
i. iptables L n
Lista la tabla filter

Prctica 17

13/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

46. Configura el script para que:


a. Desde localhost se pueda acceder a todos los puertos
b. Desde tu mquina anfitrin se puede acceder a webmin
c. Desde la mquina del aula con ip 192.168.naula.101 puede acceder a
webmin
d. Nadie ms puede acceder a webmin.
e. Todo lo que venga al puerto 22(ssh) aceptar.
f. Todo lo que venga al puerto 80 (servidor web) aceptar.
g. Todo lo que vega de la red interna aceptar
h. Todo lo que venga del exterior al puerto tcp del 1 al 1024 rechazar
i. Todo lo que venga del exterior al puerto udp del 1 al 1024 rechazar
Cmo queda el script. Comprobar que funciona y pedir al profesor que lo
pruebe antes de continuar

Tabla NAT
Como se ha indicado, esta tabla, principalmente es la encargada de los paquetes
que se enrutan y permiten configurar las reglas de reescritura de direcciones o de
puertos de los paquetes. Por otro lado, nos va a permitir convertir a nuestro router
en un router NAT. Esta tabla trabaja con tres cadenas:
1. PREROUTING: Chequea la direccin de red antes de
reenviarla.
2. POSTROUTING: Tratamiento de la direccin IP despus del
enrutado
3. OUTPUT: Interpretacin de las direcciones de Red de los
paquetes que salen del firewall

Prctica 17

14/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

Nota: Hasta el momento, hemos trabajado con la tabla FILTER, pero sabemos que
hay otras tablas. Si en la regla no se indica la tabla (como en los ejercicios
anteriores), nos referimos a la tabla FILTER.
47. Para el listar el contenido de la tabla NAT tendremos que indicar la tabla como
sigue
sudo iptables -t nat -L -n
Ejecuta el comando. Captura de pantalla.

48. Vamos a comprobar el poder de la tabla NAT. Con ella podemos cambiar el
destino de los paquetes. Ejecuta la siguiente cadena:
sudo iptables -t nat -A OUTPUT -p tcp -d www.google.es --dport 80 -j DNAT --to
127.0.0.1:80
Intenta acceder a www.google.es desde el navegador. Como puedes ver, nos redirige
a nuestro servidor web local. Captura de pantalla del acceso a google.

Prctica 17

15/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

49. Elimina la regla anterior.


Router NAT mediante iptables
Mediante la tabla NAT, podemos conseguir que nuestro router realice NAT sobre la
red que est haciendo NAT. Para conseguirlo, tan solo necesitamos indicar la red a
la que se le va a hacer NAT y la tarjeta de red sobre la que sale el trfico e indicar
la accin MASQUERADE.

50. Abre la mquina Linux-DSL-Nat. Recuerda que la mquina tiene como router
por defecto nuestro Ubuntu y ya comprobamos en la prctica anterior que no
podemos navegar debido a que al salir al router del AULA, este router no conoce
nuestra red nat de Vmware y no es capaz de devolver los paquetes. Captura de
pantalla de Linux-DSL-Nat con el comando router

51. Para conseguir que el enrutamiento sea de tipo NAT, ejecutamos el comando
iptables -t nat -A POSTROUTING -s 192.168.61.0/255.255.255.0 -o eth1 -j
MASQUERADE
donde eth1 es la tarjeta externa.
52. Ejecuta el comando en ubuntu y comprueba que ahora si puedes navegar desde
Linux-DSL-Nat.
Proxy transparente mediante iptables. Redireccin de puertos
Hemos visto que para que los navegadores de nuestra red salgan al mundo WEB
utilizando nuestro Proxy squid, es necesario configurar cada navegador uno por
uno. Mediante la manipulacin de los puertos que nos permite hacer la tabla NAT
de iptables, podemos redirigir el trfico de la red que tiene como destino el puerto
80 (puerto http) al puerto 3128 de nuestro servidor Squid, consiguiendo con ello
que el usuario no tenga que configurar el navegador con salida por el Proxy.
53. Primero vamos a configurar en squid que acte como Proxy transparente. Para
ello es necesario edita squid.conf e indicar en el apartado del puerto lo siguiente:
http_port 3128 transparent
Prctica 17

16/17

UT05: Interconexin de redes privadas con redes pblicas: IpTables

SR

54. Vamos a redirigir el trfico que va dirigido a servidores web, es decir, con
destino el puerto 80 a nuestro servidor squid con puerto 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port
3128
donde
eth0: tarjeta interna
3128: puerto de squid
55. Supuestamente de la prctica de squid, no podemos acceder a la pgina de
www.elmundo.es. Prueba desde Linux-DSL-NAT que podemos acceder a
www.google.es pero no a www.elmundo.es. Vemos que no hemos configurado el
Proxy en el navegador pero salimos a travs de l. Captura de pantalla.

Prctica 17

17/17

Potrebbero piacerti anche