linux 03 practica 15

16
Administración de sistemas de software libre. Práctica 15 1 Práctica 15 Configuración de firewall mediante iptables Configuración del firewall 1. Conéctate a tu máquina virtual Centos y utiliza la cuenta de root. 2. Crea una nueva cadena llamada PERSONALIZADO. 3. Haz que todos los paquetes que lleguen a la cadena INPUT vayan a la cadena PERSONALIZADO. 4. Agrega una regla en la cadena PERSONALIZADO para que todos los paquetes sean rechazados con el motivo icmp-host-unreachable. Si estabas conectado por putty a centos comprobarás que te has quedado sin conexión. Comprueba que no puedes hacer un ping a tu máquina centos desde ubuntu y comprueba que el mensaje que obtienes es el que nosotros hemos establecido. 5. Muestra las reglas del firewall con el número de línea asociado. Elimina la regla que acabamos de añadir y en su lugar añade una en PERSONALIZADO que haga que se descarten todos los paquetes sin dar ningún motivo. Prueba a hacer ping ahora desde la máquina ubuntu a centos. Salva las reglas del firewall. 6. Añade una regla encima de la que acabamos de configurar de tal forma que todas las conexiones que se vayan a rechazar desde la máquina centos se registren en el log. Prueba a hacer un telnet desde ubuntu al puerto 22 de centos y comprueba en el log de la máquina centos (/var/log/messages) que se están registrando los intentos de conexión. 7. Intenta conectarte desde centos al puerto 25 de tu propia máquina centos. Comprobarás que no es posible realizar la conexión. Crea una nueva regla en PERSONALIZADO para permitir todas las conexiones que utilicen la interfaz de red de loopback (lo), es decir, todas las conexiones que se produzcan desde la propia máquina y vayan a la propia máquina. Prueba a hacer el telnet ahora. Salva las reglas del firewall. 8. Añade las reglas necesarias a la cadena PERSONALIZADO de tal forma que se permitan las conexiones por ssh a la máquina centos desde cualquier equipo de tu red. Para crear las reglas necesitarás saber los puertos utilizados por el servicio ssh así como el protocolo que utilizan. Comprueba que funciona correctamente intentando conectarte por ssh a tu máquina centos. 9. Añade una regla a la cadena PERSONALIZADO de tal forma que se permita hacer ping a la máquina centos a todos los equipos. Comprueba que puedes hacer ping desde tu equipo físico. Salva las reglas del firewall.

Upload: felipe-vs

Post on 08-Aug-2015

90 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 1

Práct ica 15

Configuración de f i rewal l mediante iptables

Configuración del firewall

1. Conéctate a tu máquina virtual Centos y utiliza la cuenta de root.

2. Crea una nueva cadena llamada PERSONALIZADO.

3. Haz que todos los paquetes que lleguen a la cadena INPUT vayan a la

cadena PERSONALIZADO.

4. Agrega una regla en la cadena PERSONALIZADO para que todos los

paquetes sean rechazados con el motivo icmp-host-unreachable. Si estabas

conectado por putty a centos comprobarás que te has quedado sin conexión.

Comprueba que no puedes hacer un ping a tu máquina centos desde ubuntu

y comprueba que el mensaje que obtienes es el que nosotros hemos

establecido.

5. Muestra las reglas del firewall con el número de línea asociado. Elimina la

regla que acabamos de añadir y en su lugar añade una en PERSONALIZADO

que haga que se descarten todos los paquetes sin dar ningún motivo.

Prueba a hacer ping ahora desde la máquina ubuntu a centos. Salva las

reglas del firewall.

6. Añade una regla encima de la que acabamos de configurar de tal forma que

todas las conexiones que se vayan a rechazar desde la máquina centos se

registren en el log. Prueba a hacer un telnet desde ubuntu al puerto 22 de

centos y comprueba en el log de la máquina centos (/var/log/messages) que

se están registrando los intentos de conexión.

7. Intenta conectarte desde centos al puerto 25 de tu propia máquina centos.

Comprobarás que no es posible realizar la conexión. Crea una nueva regla

en PERSONALIZADO para permitir todas las conexiones que utilicen la

interfaz de red de loopback (lo), es decir, todas las conexiones que se

produzcan desde la propia máquina y vayan a la propia máquina.

Prueba a hacer el telnet ahora. Salva las reglas del firewall.

8. Añade las reglas necesarias a la cadena PERSONALIZADO de tal forma que

se permitan las conexiones por ssh a la máquina centos desde cualquier

equipo de tu red. Para crear las reglas necesitarás saber los puertos

utilizados por el servicio ssh así como el protocolo que utilizan. Comprueba

que funciona correctamente intentando conectarte por ssh a tu máquina

centos.

9. Añade una regla a la cadena PERSONALIZADO de tal forma que se permita

hacer ping a la máquina centos a todos los equipos.

Comprueba que puedes hacer ping desde tu equipo físico. Salva las reglas

del firewall.

Page 2: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 2

10. Añade las reglas necesarias a la cadena PERSONALIZADO de tal forma que

se permita hacer ftp a la máquina centos desde cualquier equipo.

Comprueba que puedes hacer ftp desde tu equipo físico.

11. Añade las reglas necesarias a la cadena PERSONALIZADO de tal forma que

se permitan las conexiones al servicio samba desde cualquier equipo de tu

red. Necesitarás consultar los puertos en los que está escuchando samba

(smb) y (nmb). Comprueba que puedes acceder desde tu máquina ubuntu

mediante smbclient -U pedro //centos/rrhh. Si no recuerdas la contraseña

del usuario pedro puedes asignarle otra mediante smbpasswd. Salva las

reglas del firewall.

12. Añade las reglas necesarias a la cadena PERSONALIZADO de tal forma que

puedas acceder desde cualquier equipo de la red al servicio cups de la

máquina centos. Necesitarás comprobar los puertos que utiliza cups.

Comprueba que funciona correctamente intentando acceder a la interfaz web

de cups desde tu equipo físico.

13. Añade las reglas necesarias a la cadena PERSONALIZADO para permitir el

acceso a cualquier equipo a los puertos utilizados por apache. Comprueba

que funciona correctamente intentando acceder desde el navegador a

https://www.cursosl.com. Salva las reglas del firewall.

14. Añade una regla a la cadena PERSONALIZADO para permitir a cualquier

equipo de tu red acceder al servicio dns de tu equipo centos. El servicio

utiliza el puerto 53/tcp y 53/udp. Para comprobar que funciona

correctamente prueba a preguntar por dns.cursosl.com desde tu máquina

centos.

15. Comprueba el puerto utilizado por squid y permite el acceso al mismo a

todos los equipos de la red añadiendo una regla a la cadena

PERSONALIZADO. Comprueba que funciona intentando visualizar cualquier

página desde tu máquina centos. ¿te ha dejado? No debería dejarte. Para

solucionar el problema deberás añadir una regla a la cadena

PERSONALIZADO para que se acepten todas las conexiones con estado

ESTABLISHED y RELATED. Comprueba que funciona. Asegúrate de que esta

regla permanece como la primera del firewall a partir de ahora. Salva las

reglas del firewall.

16. Añade las reglas necesarias a la cadena PERSONALIZADO de tal forma que

se permita la conexión desde cualquier equipo de la red a los puertos

utilizados por postfix (master) y dovecot. Para comprobar que funciona

correctamente prueba a hacer telnet a cualquiera de los puertos.

17. Crea una regla de tal forma que cuando cualquier equipo de la red intente

acceder a través del navegador a la ip de la máquina centos al puerto 80/tcp

se le redirija al puerto 631 y vea por lo tanto la interfaz web de cups.

Averigua a qué tabla y a qué cadena debes añadir la regla para que funcione

correctamente. Comprueba que funciona correctamente.

Guarda las reglas del firewall.

18. Añade una regla para rechazar todas las conexiones que se produzcan desde

la máquina centos y tengan como destino el puerto 80/tcp de cualquier

equipo. Comprueba que no puedes acceder a ninguna página web desde tu

máquina centos.

Page 3: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 3

19. Añade una regla para no permitir a la máquina centos realizar consultas dns.

Comprueba que al preguntar por la ip de www.google.es no se te da

respuesta. Guarda las reglas del firewall.

20. Modifica la política por defecto de la cadena OUTPUT de manera que se

descarten todos los paquetes. Prueba a hacer un ping a la máquina ubuntu.

21. Vuelve a cambiar la política por defecto de la cadena OUTPUT a ACCEPT.

Agrega una regla de tal forma que se rechacen todos los paquetes que

vayan a cualquier red distinta de la red en la que se encuentran las

máquinas virtuales. Asegúrate de que esta regla es la primera.

Prueba a hacer un ping a www.google.es y después a la ip de tu máquina

ubuntu. Guarda las reglas del firewall.

22. Elimina todas las reglas de la cadena OUTPUT. Prueba a hacer ping a

www.google.es ahora. Muestra todas las reglas de la tabla filter de forma

detallado y mostrando las ips en lugar de los nombres asociados a cada ip.

23. Elimina la regla de la cadena PERSONALIZADO que registra los

eventos(LOG). Vuelve a mostrar las reglas del firewall para comprobar que

ya no está. Guarda las reglas del firewall.

24. Deshabilita el servicio iptables y haz que no arranque con el inicio del

sistema.

Solución

1. Accedemos a la máquina vía putty o bien a través de la propia terminal que lleva incorporada y usamos la cuenta de root:

su -

2. Creamos la nueva cadena:

iptables -N PERSONALIZADO

3. Creamos la regla que haga que todo lo que vaya a INPUT se redirija a PERSONALIZADO:

iptables -A INPUT -j PERSONALIZADO

4. Agregamos la regla:

iptables -A PERSONALIZADO -j REJECT --reject-with icmp-host-unreachable

Page 4: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 4

Si probamos a hacer un ping desde ubuntu a centos:

ping centos

Comprobamos que efectivamente obtenemos la respuesta "host unreachable" tal y como habíamos configurado.

5. Mostramos las reglas existentes en el firewall:

iptables --line -L

Comprobamos que la regla añadida ocupa la posición 1 de la cadena PERSONALIZADO.

Eliminamos la regla que acabamos de añadir:

iptables -D PERSONALIZADO 1

A continuación añadimos una regla que haga que se descarten todos los paquetes en lugar de rechazarlos:

iptables -A PERSONALIZADO -j DROP

Probamos a hacer ping desde ubuntu a centos:

Comprobamos que no responde nada la máquina centos. De esta forma

conseguimos ganar seguridad y ancho de banda.

Page 5: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 5

A continuación salvamos las reglas del firewall:

/etc/init.d/iptables save

6. Insertamos la regla justo encima de la ya existente:

iptables -I PERSONALIZADO -j LOG

A continuación probamos a hacer un telnet desde la máquina ubuntu:

telnet centos 22

Si comprobamos el log en la máquina centos:

tail /var/log/messages

Comprobamos que se registra una conexión con origen ubuntu (SRC=10.0.0.72) y con destino centos (DST=10.0.0.71)

7. Si intentamos hacer un telnet a localhost:

telnet localhost 25

Comprobamos que no nos está permitido.

A continuación insertamos la nueva regla en el firewall:

iptables -I PERSONALIZADO -i lo -j ACCEPT

Asegúrate de que utilizas -I y no -A para insertarla encima o de

lo contrario no funcionará, el orden es importante

OJO

Page 6: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 6

Si probamos a hacer el telnet ahora:

telnet localhost 25

A continuación salvamos las reglas del firewall:

/etc/init.d/iptables save

8. Lo primero que hacemos es comprobar en qué puerto o puertos está escuchando el servicio ssh:

netstat -lnp | grep ssh

Comprobamos que utiliza el puerto 22/tcp.

A continuación, añadimos la regla al firewall para permitir realizar la conexión al servicio ssh a cualquier equipo de la red:

iptables -I PERSONALIZADO -s 10.0.0.0/255.255.255.0 -p tcp --

dport 22 -j ACCEPT

(modificar la ip de la red por la de tu red)

A continuación si probamos a conectarnos desde el equipo físico usando putty a la máquina centos comprobaremos que no hay ningún problema.

9. Añadimos una regla que permita todos los paquetes de tipo icmp:

iptables -I PERSONALIZADO -p icmp -j ACCEPT

(modificar la ip de la red por la de tu red)

Page 7: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 7

A continuación, si probamos a hacer ping desde nuestra máquina física:

Comprobamos que no tenemos ningún problema.

A continuación salvamos las reglas del firewall:

/etc/init.d/iptables save

10. Comprobamos los puertos usados por ftp:

netstat -lnp | grep ftp

A continuación introducimos la regla:

iptables -I PERSONALIZADO -p tcp --dport 21 -j ACCEPT

Comprobamos que podemos hacer ftp a la máquina centos después del cambio:

ftp 10.0.0.71

(modifica la ip por la de tu máquina centos)

11. Consultamos los puertos utilizados por el servicio samba:

netstat -lnp | grep smb

Page 8: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 8

netstat -lnp | grep nmb

Una vez que sabemos los puertos en los que está escuchando el servicio, incorporamos las reglas al firewall:

iptables -I PERSONALIZADO -s 10.0.0.0/255.255.255.0 -p tcp --dport 139 -j ACCEPT

iptables -I PERSONALIZADO -s 10.0.0.0/255.255.255.0 -p tcp --dport 445 -j ACCEPT

iptables -I PERSONALIZADO -s 10.0.0.0/255.255.255.0 -p udp -

-dport 137 -j ACCEPT

iptables -I PERSONALIZADO -s 10.0.0.0/255.255.255.0 -p udp --dport 138 -j ACCEPT

(modifica los valores con los de tu red)

Ahora si intentamos acceder a centos usando el cliente samba comprobaremos que no tenemos ningún problema:

smbclient -U pedro //centos/rrhh

A continuación salvamos las reglas del firewall:

/etc/init.d/iptables save

Page 9: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 9

12. Comprobamos los puertos en los que está escuchando cups:

netstat -lnp | grep cups

A continuación establecemos las reglas en el firewall:

iptables -I PERSONALIZADO -s 10.0.0.0/255.255.255.0 -p tcp --dport 631 -j ACCEPT

iptables -I PERSONALIZADO -s 10.0.0.0/255.255.255.0 -p udp --dport 631 -j ACCEPT

(modifica los valores con los de tu red)

A continuación si pruebas a acceder a la interfaz web de cups desde tu equipo físico comprobarás que no tienes ningún problema:

(modifica la ip por la de tu máquina centos)

13. Comprobamos los puertos utilizados por apache:

netstat -lnp | grep http

Page 10: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 10

Añadimos las reglas en cuestión:

iptables -I PERSONALIZADO -p tcp --dport 200 -j ACCEPT

iptables -I PERSONALIZADO -p tcp --dport 443 -j ACCEPT

Probamos a acceder a la web configurada en apache a través del navegador https://www.cursosl.com:

Salvamos las reglas del firewall:

/etc/init.d/iptables save

14. Añadimos las reglas:

iptables -I PERSONALIZADO -s 10.0.0.0/255.255.255.0 -p tcp --dport 53 -j ACCEPT

iptables -I PERSONALIZADO -s 10.0.0.0/255.255.255.0 -p udp -

-dport 53 -j

ACCEPT

(modifica las ips por las de tu red)

Comprobamos que las reglas funcionan correctamente:

ping dns.cursosl.com

Page 11: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 11

15. Comprobamos el puerto utilizado por squid:

cat /etc/services | grep squid

Añadimos la regla a la cadena PERSONALIZADO:

iptables -I PERSONALIZADO -s 10.0.0.0/255.255.255.0 -p tcp --dport 3128 -j ACCEPT

Si probamos a visualizar cualquier web desde centos comprobaremos que no

es posible.

Añadimos la regla para permitir las conexiones con estado ESTABLISHED O RELATED:

iptables -I PERSONALIZADO -m state --state ESTABLISHED,RELATED -j ACCEPT

A continuación si probamos a visualizar cualquier web desde la máquina centos comprobaremos que no tenemos ningún problema:

Guardamos las reglas del firewall:

/etc/init.d/iptables save

16. Comprobamos los puertos en los que están escuchando los servicios:

netstat -lnp | grep master

Page 12: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 12

netstat -lnp | grep dovecot

Una vez que sabemos los puertos que debemos desbloquear, añadimos las

reglas al firewall asegurándonos de que se insertan debajo de la regla que

comprueba el estado de las conexiones:

iptables -I PERSONALIZADO 2 -s 10.0.0.0/255.255.255.0 -p tcp

--dport 25 -j ACCEPT

iptables -I PERSONALIZADO 2 -s 10.0.0.0/255.255.255.0 -p tcp --dport 995 -j ACCEPT

iptables -I PERSONALIZADO 2 -s 10.0.0.0/255.255.255.0 -p tcp --dport 993 -j ACCEPT

(cambia las ips por las correspondientes para tu red)

Si probamos a hacer telnet al puerto 25 por ejemplo comprobamos que funciona correctamente:

telnet 10.0.0.71 25

(modifica la ip por la de tu máquina centos)

17. Para que funcione correctamente deberemos añadir la regla a la cadena PREROUTING:

iptables -t nat -A PREROUTING -s 10.0.0.0/255.255.255.0 -p tcp --dport 80 -j DNAT --to :631

Si probamos a acceder a la ip de la máquina centos desde un navegador

comprobaremos que se nos redirige a la interfaz web de cups:

Page 13: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 13

Guardamos las reglas del firewall:

/etc/init.d/iptables save

18. Añadimos la regla en cuestión a la cadena OUTPUT:

iptables -A OUTPUT -p tcp --dport 80 -j REJECT

Ahora si probamos a acceder a través del navegador a cualquier página web comprobaremos que no nos es posible.

19. Añadimos las reglas a la cadena OUTPUT:

iptables -A OUTPUT -p tcp --dport 53 -j REJECT

iptables -A OUTPUT -p udp --dport 53 -j REJECT

A continuación, si probamos a hacer un ping a www.google.es desde la

máquina centos comprobaremos que no nos resolverá:

ping www.google.es

/etc/init.d/iptables save

20. Modificamos la política por defecto de la cadena OUTPUT:

iptables -P OUTPUT DROP

Ahora si probamos a hacer un ping a la máquina ubuntu comprobaremos que no somos capaces:

ping 10.0.0.72

(modifica la ip por la de tu máquina Ubuntu)

Page 14: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 14

21. Volvemos a modificar la política por defecto:

iptables -P OUTPUT ACCEPT

A continuación agregamos la regla especificada:

iptables -I OUTPUT ! -d 10.0.0.0/255.255.255.0 -j REJECT

A continuación si probamos a hacerle un ping a www.google.es no obtendremos respuesta:

ping www.google.es

Si hacemos el ping a la máquina ubuntu no tendremos problemas:

ping 10.0.0.72

(modifica la ip por la de tu máquina Ubuntu)

Guardamos las reglas del firewall:

/etc/init.d/iptables save

22. Eliminamos todas las reglas de la tabla OUTPUT:

iptables -F OUTPUT

Probamos a hacer ping a www.google.es ahora:

ping www.google.es

Page 15: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 15

Mostramos las reglas del firewall con los parámetros especificados:

iptables -nvL

23. Mostramos las reglas con el número de línea:

iptables -nvL --line

Ahora borramos la regla del LOG que ocupa la línea 20:

iptables -D PERSONALIZADO 20

Page 16: Linux 03 Practica 15

Administración de sistemas de software libre. Práctica 15 16

Mostramos las reglas de nuevo y comprobamos que la cadena en cuestión

ya no está:

iptables -nvL

Guardamos las reglas del firewall:

/etc/init.d/iptables save

24. Deshabilitamos el servicio iptables:

/etc/init.d/iptables stop

Lo dejamos deshabilitado por defecto:

chkconfig iptables off