Diferència entre revisions de la pàgina «Pràctiques d'Instal·lació i configuració d'un tallafoc»
(→Exercici 4: Tallafoc IPCOP) |
(→Exercici 3 : Tallafoc en un servidor) |
||
(235 revisions intermèdies per 6 usuaris que no es mostren) | |||
Línia 1: | Línia 1: | ||
− | = Exercici 1 : | + | = Exercici 1: Investigació sobre tallafocs = |
− | + | Busca informació sobre aquests termes: | |
− | + | *1 UTM (Unified Threat Management). Avantatges i inconvenients. | |
− | * | + | *2 Payload (tant a nivell de TCP/IP com de seguretat). |
− | * | + | *3 Fes una comparativa de firewalls segons les seves distintes classificacions. Visita: |
− | * | ||
https://en.wikipedia.org/wiki/Comparison_of_firewalls | https://en.wikipedia.org/wiki/Comparison_of_firewalls | ||
− | * | + | *4 Què és un paquet mangled? Què té a veure amb atacs DoS i amb nmap? Quins tipus de firewalls els detecten? |
+ | *5 Què és un filtrat de paquets estàtic i un filtrat de paquets dinàmic (stateful)? | ||
+ | *6 Què és una zona desmilitaritzada (DMZ) en una xarxa informàtica? | ||
+ | = Exercici 2: Instal·lació d'un tallafoc en un PC = | ||
+ | '''UFW - Uncomplicated Firewall'''. Es tracta de l'eina de configuració del tallafocs que ve predeterminada a Ubuntu i Debian. | ||
+ | És una capa sobre '''iptables''' que fa més senzilla la configuració d'un tallafocs del que seria fent servir directament iptables, ja que fa servir regles més bàsiques. Amb aquesta aplicació podem executar diverses accions de seguretat, i s'ha de fer des de l'usuari '''root''' o amb permisos '''sudo'''. | ||
− | + | Utilitza el programari Uncomplicated Firewall per realitzar el següent exercici (Pots consultar les comandes '''[https://es.wikipedia.org/wiki/Uncomplicated_Firewall aquí]'''.): | |
+ | ''Respon cada apartat amb la comanda o comandes que has fet servir''. | ||
− | * El tallafoc | + | *1. El tallafoc ufw ve instal·lat per defecte a la majoria de distribucions de Linux. En el cas, estrany, que no el tingueu instal·lat, instal·leu-lo abans de seguir endavant. |
− | + | *2. Comprova l'estat del tallafocs. | |
− | * | + | *3. Arranca el tallafocs. |
− | * | + | *4. Comprova l'estat del tallafocs. |
− | * | + | *5. Consulta les regles per defecte que es troben a la següent ruta: ''/etc/default/ufw''. |
− | * | + | *6. Volem bloquejar tot el tràfic d'entrada a la nostra màquina. |
− | * | + | *7. Volem permetre tot el tràfic de sortida des de la nostra màquina. |
− | * | + | *8. Volem permetre que ufw treballi amb adreces IP v4 i v6. Per fer això hem d'editar el fitxer ''/etc/default/ufw'' i posar el paràmetre ''IPV6=yes''. Un cop fets els canvis perque siguin processats pel programa ufw hem de desactivar-lo i tornar-lo a activar. |
− | *5 | + | *9. Permet les connexions ssh a través del tallafocs. |
+ | *10. Permet les connexions http i https a través del tallafocs. | ||
+ | *11. Obre el tràfic tcp a tots els ports coneguts (1-1024). | ||
+ | *12. Mostra en pantalla una llista de totes les regles creades. | ||
+ | *13. Elimina la última regla creada. | ||
+ | *14. Instal·la la versió gràfica de ufw: GUFW. | ||
+ | |||
+ | <!-- Solució | ||
+ | 1. sudo apt install ufw | ||
+ | 2. sudo ufw status verbose | ||
+ | 3. sudo ufw enable | ||
+ | 4. sudo ufw status verbose | ||
+ | 5. cat /etc/default/ufw | ||
+ | 6. sudo ufw default deny incoming | ||
+ | 7. sudo ufw default allow outgoing | ||
+ | 8. sudo nano /etc/default/ufw | ||
+ | IPV6=yes | ||
+ | sudo ufw disable i sudo ufw enable | ||
+ | 9. sudo ufw allow 22 o sudo ufw allow ssh | ||
+ | 10. sudo ufw allow http o sudo ufw allow 80/tcp o sudo ufw allow 'Apache' | ||
+ | sudo ufw allow https o sudo ufw allow 443/tcp o sudo ufw allow 'Apache Secure' | ||
+ | 11. sudo ufw allow 1:1024/tcp | ||
+ | 12. sudo ufw status numbered | ||
+ | 13. sudo ufw delete últim_número | ||
+ | 14. sudo apt install gufw | ||
+ | --> | ||
+ | |||
+ | |||
+ | = Exercici 3 : Tallafoc en un servidor = | ||
+ | Treballarem en el següent escenari: Tenim en una LAN 2 equips PC i un equip servidor en el que instal·larem el firewall i farem la configuració corresponent amb el programa UFW. | ||
+ | [[Fitxer:M6-UF5-Ex3-TallafocsUFW.png]] | ||
+ | |||
+ | '''Requeriments'''. Utilitzarem l'eina [https://learn.hashicorp.com/tutorials/vagrant/getting-started-index?in=vagrant/getting-started Vagrant] per gestionar les màquines virtuals. | ||
+ | Si no teniu el vagrant instal·lat al vostre equip de l'institut seguiu aquestes passes: https://github.com/lamerce/vagrant | ||
+ | |||
+ | Un cop instal·lat heu de fer servir el fitxer de configuració [https://campus.lamerce.com/mod/resource/view.php?id=33222 Vagrantfile] que hi ha al Moodle per tal d'arrencar les màquines amb la configuració de la imatge. Crea una carpeta ''M6UF5Exercici3'' i posa a dins el Vagrantfile. A continuació amb la comanda ''vagrant up'' arrencarà aquest escenari amb 3 màquines (pc1-ubuntu, pc2-ubuntu i firewall-ubuntu) i ja podràs treballar. Per entrar a la màquina fes-ho amb la comanda ''vagrant ssh nom_de_la_màquina''. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | *1. Realitza una connexió ssh des de l'equip pc1-ubuntu al firewall. | |
− | *a | + | **Recorda: Per connectar-te a l'equip pc1-ubuntu obre un terminal i fes ''vagrant ssh pc1-ubuntu''. A continuació obre una connexió ssh cap al firewall-ubuntu amb la comanda ''ssh 192.168.0.60''. El password es ''vagrant''. Prova a fer un ls i mou-te per les carpetes del servidor. Surt de la sessió ssh amb Ctrl+D. |
− | * | + | *2. Comproba si el firewall UFW està instal·lat en el servidor (Usa el mode verbose). |
− | * | + | *3. Activa el firewall. |
+ | *4. Intenta de nou una connexió SSH al servidor, i comproba que ja no pots fer-la (per que has activat el firewall). | ||
+ | *5. Permet la connexió SSH només des de la màquina pc1-ubuntu (regla ufw). | ||
+ | *6. Comproba que no pots connectar-te per ssh des de l'equip pc2-ubuntu. | ||
+ | *7. Elimina la regla anterior del ssh. | ||
+ | |||
+ | *8.1 Instal·la el servidor apache2. | ||
+ | *8.2 Instal·la les eines curl i lynx que ens serviran per verificar apache des del terminal. | ||
+ | <source lang="bash">sudo apt -y install curl lynx</source> | ||
+ | Amb curl localhost o amb lynx localhost pots veure si et retorna la pàgina d'apache. | ||
+ | |||
+ | *9. Crea una regla que permeti l'accés a la web. | ||
+ | *10. Ara fes una regla que no permeti que l'equip pc2-ubuntu entri a la web. | ||
+ | *11. Crea un LOG del firewall. sudo ufw logging on / sudo ufw logging off. Pots consultar el contingut del fitxer de log a sudo cat /var/log/ufw.log o sudo cat /var/log/syslog | ||
+ | *12. Deshabilita el ping (/etc/ufw/before.rules) . Hem de comentar les 5 línies que comencen després de ok icmp code for INPUT. | ||
+ | ** Per què els canvis es facin s'ha de reiniciar el servei: ''sudo service ufw restart'' | ||
+ | *13. Comprova l'estat del firewall amb números de regles. | ||
+ | *14. Selecciona una regla i elimina-la. | ||
+ | *15. Torna a habilitar ping, comprova-ho i captura pantalla. | ||
<!-- | <!-- | ||
+ | 2. sudo ufw status | ||
+ | 3. sudo ufw enable | ||
+ | 5. sudo ufw allow from 192.168.0.61 to any port 22 | ||
+ | 6. sudo ufw default deny incoming | ||
+ | 7. sudo ufw delete 1 | ||
+ | 9. sudo ufw allow 80 | ||
+ | 10. sudo ufw deny 192.168.0.62 from any port 80 (recorda que l'ordre de les regles és important) | ||
+ | To Action From | ||
+ | -- ------ ---- | ||
+ | |||
+ | [ 1] 80 ALLOW IN Anywhere | ||
+ | [ 2] 80 (v6) ALLOW IN Anywhere (v6) | ||
+ | [ 3] 80 DENY IN 192.168.0.62 | ||
+ | Si es compleix la primera regla ja no s'executa la resta | ||
− | [[Solució_ufw]] | + | 11. sudo ufw logging on / sudo ufw logging off -> sudo cat /var/log/ufw.log o sudo cat /var/log/syslog |
+ | 12. o cambiar ACCEPT to DROP. s'ha de reiniciar el servei perquè tingui efecte. | ||
+ | |||
+ | '''VIDEOTUTORIAL:''' | ||
+ | |||
+ | https://youtu.be/VEDQQoFllOI | ||
+ | |||
+ | |||
+ | :[[Solució_ufw]] | ||
− | |||
= EXERCICI BÀSIC IPTABLES = | = EXERCICI BÀSIC IPTABLES = | ||
− | |||
− | < | + | Nos disponemos a montar la infraestuctura del instituto de la Mercè, que está formado por varios departamentos (informática, Fol, mecánica...) que se ubica en diferentes edificios, en cada uno de ellos tiene diferentes aulas. Por tanto vamos a instalar un cortafuegos(firewall) con Ubuntu que tendrá dos interfaces de red (eth0 y eth1), para la primera interfaz (eth0) tendrá acceso a internet y la segunda servirá para que la LAN se conecte a ella. |
− | <source lang="bash"> | + | |
− | iptables -F # | + | Hay que poner en la máquina que actuará de cortafuegos dos tarjetas de red: |
− | iptables -A | + | |
− | + | *la primera (eth0) los datos del proxy del instituto | |
+ | |||
+ | *la segunda (eth1) ip 10.0.0.1, máscara 255.0.0.0 (no hace falta P.Enlace en eth1 si se pone en eth0)(red interna) | ||
+ | |||
+ | En la segunda máquina que corresponde con la LAN: | ||
+ | |||
+ | *la ip 10.0.0.2, máscara 255.0.0.0, P.enlace 10.0.0.1, DNS el del instituto(proxy). (Red interna) | ||
+ | |||
+ | |||
+ | :[[script_iptables]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | :[[sol_script_iptables]] | ||
+ | |||
+ | 1- Ver la versión de iptables | ||
+ | <source lang="bash"> | ||
+ | iptables -V | ||
+ | </source> | ||
+ | |||
+ | 2- Borrado de todas las reglas | ||
+ | <source lang="bash"> | ||
+ | iptables -F | ||
+ | iptables -X | ||
+ | iptables -Z | ||
+ | iptables -t nat -F | ||
+ | </source> | ||
+ | |||
+ | 3- Queremos denegar las conexiones HTTP y HTTPS a toda nuestra LAN | ||
+ | <source lang="bash"> | ||
+ | iptables -A FORWARD -s 10.0.0.0/8 -p tcp --dport 80 -j DROP | ||
+ | iptables -A FORWARD -s 10.0.0.0/8 -p tcp --dport 443 -j DROP | ||
+ | </source> | ||
+ | |||
+ | 4- Queremos permitir que un ordenador de la red 10.0.0.2 tenga conexión HTTP y HTTPS dentro de esa LAN | ||
+ | <source lang="bash"> | ||
+ | |||
+ | iptables -A FORWARD -s 10.0.0.2/32 -p tcp --dport 80 -j ACCEPT #hay que añadir primero las excepciones y luego el bloqueo | ||
+ | iptables -A FORWARD -s 10.0.0.2/32 -p tcp --dport 443 -j ACCEPT #hay que añadir primero las excepciones y luego el bloqueo | ||
+ | iptables -A FORWARD -s 10.0.0.0/8 -j DROP #bloqueo | ||
+ | </source> | ||
+ | |||
+ | 5- Denegamos acceso al aula 1 | ||
+ | <source lang="bash"> | ||
+ | iptables -A FORWARD -s 10.0.1.0/24 -j DROP | ||
+ | </source> | ||
+ | |||
+ | 6-Cerramos el rango de puertos 1 al 1024 desde cualquier origen. | ||
+ | <source lang="bash"> | ||
+ | iptables -A FORWARD -s 0.0.0.0/0 -p tcp --dport 1:1024 -j DROP | ||
+ | iptables -A FORWARD -s 0.0.0.0/0 -p udp --dport 1:1024 -j DROP | ||
+ | </source> | ||
+ | |||
+ | 7-Cerramos el rango de puertos 1 al 1024 desde cualquier origen EXCEPTO el puerto HTTP y HTTPS para la ip 10.0.0.2 | ||
+ | <source lang="bash"> | ||
+ | iptables -A FORWARD -s 10.0.0.2/32 -p tcp --dport 80 -j ACCEPT #hay que añadir primero las excepciones y luego el bloqueo | ||
+ | iptables -A FORWARD -s 10.0.0.2/32 -p tcp --dport 443 -j ACCEPT #hay que añadir primero las excepciones y luego el bloqueo | ||
+ | iptables -A FORWARD -s 0.0.0.0/0 -p tcp --dport 1:1024 -j DROP #bloqueo | ||
+ | </source> | ||
+ | |||
+ | 8-Se desea bloquear el ping al cortafuegos ICMP desde cualquier máquina. | ||
+ | <source lang="bash"> | ||
+ | iptables -A INPUT -p icmp -j DROP | ||
+ | </source> | ||
+ | |||
+ | 9-Rechazamos todo el tráfico que ingrese a nuestra red LAN 10.0.0.0/8 desde una red remota, como Internet, a través de la interfaz eth0. | ||
+ | <source lang="bash"> | ||
+ | iptables -A FORWARD -s 0.0.0.0/0 -i eth0 -d 10.0.0.0/8 -j DROP | ||
+ | </source> | ||
+ | |||
+ | 10-Denegamos SMTP, POP3 y FTP (correo electrónico y ftp) a la LAN | ||
+ | <source lang="bash"> | ||
+ | iptables -A FORWARD -s 10.0.0.0/8 -p tcp --dport 25 -j DROP | ||
+ | iptables -A FORWARD -s 10.0.0.0/8 -p tcp --dport 110 -j DROP | ||
+ | iptables -A FORWARD -s 10.0.0.0/8 -p tcp --dport 20 -j DROP | ||
+ | iptables -A FORWARD -s 10.0.0.0/8 -p tcp --dport 21 -j DROP | ||
+ | </source> | ||
+ | |||
+ | 11-Denegamos SMTP, POP3 y FTP (correo electrónico y ftp) pero permitimos que se conecte un ordenador de la red 10.0.0.2 | ||
+ | <source lang="bash"> | ||
+ | iptables -A FORWARD -s 10.0.0.2/32 -p tcp --dport 25 -j ACCEPT | ||
+ | iptables -A FORWARD -s 10.0.0.2/32 -p tcp --dport 110 -j ACCEPT | ||
+ | iptables -A FORWARD -s 10.0.0.2/32 -p tcp --dport 25 -j ACCEPT | ||
+ | iptables -A FORWARD -s 10.0.0.2/32 -p tcp --dport 20 -j ACCEPT | ||
+ | iptables -A FORWARD -s 10.0.0.0/8 -p tcp --dport 20 -j DROP | ||
+ | iptables -A FORWARD -s 10.0.0.0/8 -p tcp --dport 110 -j DROP | ||
+ | iptables -A FORWARD -s 10.0.0.0/8 -p tcp --dport 20 -j DROP | ||
+ | iptables -A FORWARD -s 10.0.0.0/8 -p tcp --dport 20 -j DROP | ||
+ | </source> | ||
+ | |||
+ | 12-Volem descartar una connexió concretament la pàgina www.marca.com (nslookup / http://www.hcidata.info/) mitjançant iptables ja que volem que les altres persones que es connecten aquest ordinador aprofiten més el temps. | ||
+ | <source lang="bash"> | ||
+ | iptables -A INPUT -s 193.110.128.109 -j DROP | ||
+ | </source> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 3- Eliminar todos los paquetes que entren. | ||
+ | |||
+ | 4- Añadir una regla a la cadena INPUT para aceptar todos los paquetes que se originan desde la dirección 192.168.0.155. | ||
+ | |||
+ | 5- Permitir la salida de paquetes. | ||
+ | |||
+ | 6- Añadir una regla a la cadena INPUT para rechazar todos los paquetes que se originan desde la dirección 192.168.0.155. | ||
+ | |||
+ | 7- Añadir una regla a la cadena INPUT para rechazar todos los paquetes que se originan desde la dirección de red 192.168.0.0. | ||
+ | |||
+ | 8- Añadir una regla a la cadena INPUT para rechazar todos los paquetes que se originan desde la dirección 192.168.0.155 y enviar un mensaje de error icmp. | ||
+ | |||
+ | 9- Permitir conexiones locales (al localhost), por ejemplo a mysql. | ||
+ | |||
+ | 10- Permitir el acceso a nuestro servidor web (puerto TCP 80). | ||
+ | |||
+ | 11- Permitir el acceso a nuestro servidor ftp (puerto TCP 20 y 21). | ||
+ | |||
+ | 12- Permitimos a la máquina con IP 192.168.0.155 conectarse a nuestro equipo a través de SSH. | ||
+ | |||
+ | 13- Rechazamos a la máquina con IP 192.168.0.155 conectarse a nuestro equipo a través de Telnet. | ||
+ | |||
+ | 14- Rechazamos las conexiones que se originen de la máquina con la dirección física 00:db:f0:34:ab:78. | ||
+ | |||
+ | 15- Rechazamos todo el tráfico que ingrese a nuestra red LAN 192.168.0.0 /24 desde una red remota, como Internet, a través de la interfaz eth0. | ||
+ | |||
+ | 16- Cerramos el rango de puerto bien conocido desde cualquier origen | ||
+ | |||
+ | 17- Aceptamos que vayan de nuestra red 192.168.0.0/24 a un servidor web (puerto 80) | ||
+ | |||
+ | 18- Aceptamos que nuestra LAN 192.168.0.0/24 vayan a puertos https | ||
+ | |||
+ | 19- Aceptamos que los equipos de nuestra red LAN 192.168.0.0/24 consulten los DNS, y denegamos todo el resto a nuestra red | ||
+ | |||
+ | 20- Permitimos enviar y recibir e-mail a todos | ||
+ | |||
+ | 21- Cerramos el acceso de una red definida 192.168.3.0/24 a nuestra red LAN 192.168.2.0/24 | ||
+ | |||
+ | 22- Permitimos el paso de un equipo específico 192.168.3.5 a un servicio (puerto 5432) que ofrece un equipo específico (192.168.0.5) y su respuesta | ||
+ | |||
+ | 23- Permitimos el paso de paquetes cuya conexión ya se ha establecido o es nueva pero está relacionada a una conexión ya establecida | ||
+ | |||
+ | <source lang="java"> | ||
+ | 1- iptables -V | ||
+ | 2- iptables -F | ||
+ | iptables -X | ||
+ | iptables -Z | ||
+ | iptables -t nat -F | ||
− | + | 3-iptables -A INPUT -j DROP | |
− | + | 4-iptables -A INPUT -s 192.168.0.155 -j ACCEPT | |
+ | 5-iptables -A OUTPUT -j ACCEPT | ||
+ | 6-iptables -A INPUT -s 192.168.0.155 -j DROP | ||
+ | 7-iptables -A INPUT -s 192.168.0.0/24 -j DROP | ||
+ | 8-iptables -A INPUT -s 192.168.0.155 -j REJECT | ||
+ | 9-iptables -A INPUT -i lo -p tcp --dport 3386 -j ACCEPT | ||
+ | 10-iptables -A INPUT -p tcp --dport 80 -j ACCEPT | ||
+ | 11-iptables -A INPUT -p tcp --hdport 20 -j ACCEPT | ||
+ | iptables -A INPUT -p tcp --dport 21 -j ACCEPT | ||
+ | 12-iptables -A INPUT -s 192.168.1.10 -p tcp --dport 22 -j ACCEPT | ||
+ | 13-iptables -A INPUT -s 192.168.1.10 -p tcp --dport 23 -j DROP | ||
+ | 14-iptables -A INPUT -n mac --mac-source 00:db:ff:34:ab:fe | ||
+ | 15-iptables -A FORWARD -s 0.0.0.0/0 -i eth1 -d 192.168.1.0/24 -j DROP | ||
+ | 16-iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 1:1024 -j DROP | ||
+ | iptables -A INPUT -s 0.0.0.0/0 -p udp --dport 1:1024 -j DROP | ||
+ | 17-iptables -A FORWARD -s 192.168.1.0/24 -i eth1 -p tcp --dport 53 -j ACCEPT | ||
+ | 18-iptables -A FORWARD -s 192.168.1.0/24 -i eth1 -p udp --dport 53 -j ACCEPT | ||
+ | 19-iptables -A FORWARD -s 192.168.1.0/24 -j DROP | ||
+ | 20-iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 25 -j ACCEPT | ||
+ | iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 110 -j ACCEPT | ||
+ | 21-iptables -A INPUT -s 192.168.3.0/24 -d 192.168.1.0/24 -j DROP | ||
+ | 22- | ||
</source> | </source> | ||
− | - | + | |
+ | |||
+ | '''VIDEOTUTORIALES:''' | ||
+ | |||
+ | |||
+ | '''Teoría:''' https://www.youtube.com/watch?v=b5BkmH5DL20 | ||
+ | |||
+ | '''Práctica:''' https://www.youtube.com/watch?v=KStLdrHkaJA | ||
+ | |||
+ | '''Funcionamiento:''' https://youtu.be/mmyqHMyKO-U | ||
+ | |||
+ | |||
= Exercici 2 : Tallafoc DMZ (IPTABLES) = | = Exercici 2 : Tallafoc DMZ (IPTABLES) = | ||
Línia 65: | Línia 312: | ||
En aquest tipus de Firewall s'ha de permetre: | En aquest tipus de Firewall s'ha de permetre: | ||
− | * El tallafoc és una MV amb Ubuntu Server. | + | * 3 Màquines, a, b i c: (el router de l'esquerra que es veu al gràfic no l'implementarem, el firewall farà de router). |
− | * | + | * a) El tallafoc és una MV amb Ubuntu Server: |
− | * | + | La eth0 pots deixar-la com a dhcp o posar l'adreça fixa que vulguis, per fer proves és millor estàtic. |
− | + | * b) Client_Lan: És un Ubuntu Desktop 14, amb openssh-server i update instal.lats | |
− | * | + | * c) El DMZ és un Ubuntu Server 14 com el tallafoc, amb update del SO, openssh-server i apache2 instal.lats |
− | + | * Captura pantalles de les configuracions de IPs de cada màquina | |
− | + | Dintre del firewall, al fitxer tallafocs.sh (crea'l amb sudo vim/nano tallafocs.sh, executa'l amb sudo sh tallafocs.sh), crea les següents regles: | |
+ | * Política restrictiva (abans d'això, comprova que les configuracions funcionen totes amb una política permisiva) | ||
+ | * 1.Accés a Internet (servidors http i https, així com dns) des de la LAN. Denega l'accés a Internet des de la LAN (descomenta les línies anteriors) | ||
+ | * 2.Accés al servei ssh del servidor DMZ des de Internet pel port 2222. Prova-ho desde la màquina real amb ssh -p 2222 willy@ip_firewall_eth0 | ||
+ | * 3.Denegar l'accés a ssh del firewall des de Internet però permet-ho des de la LAN al firewall | ||
+ | * 4. Permetre accés públic als ports 80, 443 del servidor DMZ. Bloquejar la resta de connexions entre DMZ i lan. | ||
+ | * Crea altres regles i captura les pantalles. | ||
+ | * Captura final de sudo iptables -L | ||
<source lang="bash"> | <source lang="bash"> | ||
Línia 92: | Línia 346: | ||
iptables -t nat -P POSTROUTING ACCEPT | iptables -t nat -P POSTROUTING ACCEPT | ||
+ | ##0.Regla de NAT per transformar la IP origen dels paquets (lan i dmz) amb la ip pública del firewall (eth0) | ||
+ | ## cas masquerade és un cas de SNAT de N:1 adreçes | ||
+ | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | ||
− | #Accés a Internet(servidors web) des de la LAN | + | </source> |
+ | |||
+ | |||
+ | #1.Accés a Internet(servidors web) des de la LAN | ||
##Regles d'anada (petició cap als servidors d'internet) | ##Regles d'anada (petició cap als servidors d'internet) | ||
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -s 192.168.10.0/24 -j ACCEPT | iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -s 192.168.10.0/24 -j ACCEPT | ||
Línia 105: | Línia 365: | ||
iptables -A FORWARD -i eth0 -o eth1 -p udp --sport 53 -d 192.168.10.0/24 -j ACCEPT | iptables -A FORWARD -i eth0 -o eth1 -p udp --sport 53 -d 192.168.10.0/24 -j ACCEPT | ||
− | |||
− | |||
− | ##Accés al servei ssh del servidor DMZ des de Internet pel port 2222 | + | ##2.Accés al servei ssh del servidor DMZ des de Internet pel port 2222 |
#Regla de transformació de ports | #Regla de transformació de ports | ||
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2222 -j DNAT --to 192.168.3.2:22 | iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2222 -j DNAT --to 192.168.3.2:22 | ||
+ | # Regles de Permetre ssh a la DMZ desde Internet, un cop traduit al port 22 cal que travessi el firewall | ||
+ | iptables -A FORWARD -i eth0 -o eth2 -p tcp --dport 22 -d 192.168.3.2 -j ACCEPT | ||
+ | iptables -A FORWARD -o eth0 -i eth2 -p tcp --sport 22 -s 192.168.3.2 -j ACCEPT | ||
+ | |||
+ | #1.B Accés via SSH al firewall (després de fer exercici 1, ens treu de ssh, el tornem a habilitar | ||
+ | iptables -A INPUT -p tcp --dport 22 -j ACCEPT | ||
+ | iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT | ||
+ | #1.BB per deixar accedir a ssh del DMZ | ||
+ | iptables -A FORWARD -p tcp --dport 22 -j ACCEPT | ||
+ | iptables -A FORWARD -p tcp --sport 22 -j ACCEPT | ||
+ | |||
+ | |||
+ | #3.Denegar l'accés a ssh (firewall) des de Internet però permet-ho des de la LAN al firewall | ||
+ | iptables -A INPUT -p tcp --dport 22 -s 192.168.10.0/24 -j ACCEPT | ||
+ | iptables -A OUTPUT -p tcp --sport 22 -d 192.168.10.0/24 -j ACCEPT | ||
+ | |||
+ | |||
+ | |||
+ | #4. Permetre accés públic als ports 80, 443 del servidor DMZ. Bloquejar la resta de connexions entre DMZ i lan. | ||
+ | iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 80 -d 192.168.3.2 -j ACCEPT | ||
+ | iptables -A FORWARD -o eth1 -i eth2 -p tcp --sport 80 -s 192.168.3.2 -j ACCEPT | ||
+ | iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 443 -d 192.168.3.2 -j ACCEPT | ||
+ | iptables -A FORWARD -o eth1 -i eth2 -p tcp --sport 443 -s 192.168.3.2 -j ACCEPT | ||
+ | |||
− | # | + | * 5.Reenviament de les peticions al port 80 del firewall cap al port 8080 del servidor DMZ. Per a això cal habilitar el port 8080 al apache2. |
− | iptables -A | + | #5.Reenviament de les peticions al port 80 del firewall cap al port 8080 del servidor DMZ |
− | + | iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.3.2:8080 | |
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
Per executar l'script: | Per executar l'script: | ||
Línia 131: | Línia 409: | ||
</pre> | </pre> | ||
− | |||
− | = Exercici 3: | + | = Exercici 3: Cortafuego NETHSERVER= |
+ | |||
+ | NETHSERVER es una distribución que se destaca por ofrecer una solución modular para el despliegue rápido de servidores en pequeñas oficinas o empresas medianas. | ||
+ | |||
+ | Se ofrecen módulos listos para poder organizar la operación del servidor de correo (Postfix, Dovecot, Amavis, cliente web ClamAV + Roundcube), firewall (Shorewall), servidor de archivos y controlador de dominio activo Directorio (Samba), proxy de filtrado (Squid, ClamAV y SquidGuard), detección de intrusos y sistemas de prevención... | ||
+ | |||
+ | Lo interesante de NethServer es que el proceso de instalación y la puesta en marcha del servicio requerido se realiza con tan solo un solo clic. | ||
+ | |||
+ | Tarjeta <span style="color:red">'''ROJA'''</span> (tarjeta de red: modo puente). | ||
+ | |||
+ | Las direcciones de la interfaz Roja son las que se han generado en mi casa, en las vuestras serán valores diferentes. | ||
+ | |||
+ | Tarjeta <span style="color:green">'''VERDE'''</span> (tarjeta de red: red interna y asignamos nombre: GREEN) | ||
+ | |||
+ | Tarjeta <span style="color:orange">'''NARANJA'''</span> (tarjeta de red: red interna y asignamos nombre: ORANGE) | ||
+ | |||
+ | *¿Qué es un DMZ? | ||
+ | *Añadir las interfaces en Nethserver (roja, verde, naranja) | ||
+ | *Activar servidor DHCP | ||
+ | *Activar el proxy | ||
+ | *Restringir acceso a ciertas webs y descargar lista negra. | ||
+ | *Instalar apache y ssh en el DMZ comprobar si es posible acceder desde la LAN al DMZ | ||
+ | *Hacer el caso inverso, instalar también el apache y ssh en la LAN y comprobar si desde la DMZ es posible acceder a ese ordenador | ||
+ | |||
+ | [[Fitxer:nethserver.png |800px]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | '''VIDEOTUTORIALES''' | ||
+ | |||
+ | '''PARTE I:''' https://www.youtube.com/watch?v=lTHGM9NxyLw | ||
+ | |||
+ | '''PARTE II:''' https://www.youtube.com/watch?v=xVUffflaZI4 | ||
+ | |||
+ | [https://www.youtube.com/watch?v=s2E5mfNMyAw video Teoría DMZ] | ||
− | [ | + | [https://www.youtube.com/watch?v=OsaOKS7Q-cE&t=22s video Teoría DMZ I] |
− | + | '''IPCOP (similar Nethserver)''' | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | http://sad.codeandcoke.com/doku.php?id=sad:t4:p3 | |
− | |||
− | |||
− | |||
− | |||
− | = Exercici | + | = Exercici 3: Tallafoc IPCOP = |
IPCop és un tallafocs (firewall) de distribució Linux, permet crear xarxes virtuals VPN, dins d'elles podem administrar o limitar l'ús de la xarxa als usuaris. Té una interfície web des de la qual podem gestionar i administrar el tallafocs. | IPCop és un tallafocs (firewall) de distribució Linux, permet crear xarxes virtuals VPN, dins d'elles podem administrar o limitar l'ús de la xarxa als usuaris. Té una interfície web des de la qual podem gestionar i administrar el tallafocs. | ||
Aquestes són unes quantes opcions amb les que ens podem trobar. | Aquestes són unes quantes opcions amb les que ens podem trobar. | ||
− | |||
− | |||
− | |||
− | |||
− | + | Es tracta d'utilitzar l'eina IPCop utilitzant la interface vermella i verda, per a la interfície vermella servirà per a la connexió d'internet que tindrà una ip estàtica i la interfície verd per a la LAN. | |
− | |||
− | |||
− | |||
− | < | + | Per a la targeta <span style="color:green">'''Verda'''</span> Adreça IP: 192.168.1.1, Mascara de Xarxa: 255.255.255.0. (tarjeta de red: red interna y asignamos nombre: GREEN) |
− | + | ||
+ | Per a la targeta <span style="color:red">'''Vermella'''</span> Adreça IP: 172.16.104.X (tarjeta de red: modo puente) | ||
+ | |||
+ | Ens assegurem canviar la MAC de cada targeta. | ||
+ | |||
+ | Assignem la porta d'enllaç de l'insti: 172.16.55.35 | ||
+ | |||
+ | Assignem el dns: 172.16.200.1 | ||
+ | |||
+ | Per a les màquines de la LAN per a connectar-se a la interfície web caldrà possar https://192.168.1.1:8443 o https://ipcop:8443 | ||
+ | *Activar el proxy | ||
+ | *Restringir accés a Web 'si recerques https://IPCop:8443/cgi-bin/urlfilter.cgi, | ||
+ | *Carregar [http://urlblacklist.com/?sec=download blacklist] | ||
+ | *canviar el missatge de restricció | ||
+ | *Limitar dies i velocitat de connexió | ||
+ | |||
+ | Manual [http://www.ipcop.org/2.0.0/es/admin/html/ utilització] | ||
+ | |||
+ | |||
+ | [[Fitxer:ipcop_lan.jpg |700px]] | ||
+ | |||
+ | [[Fitxer:Ipcop dmz1.jpg |800px]] | ||
+ | |||
+ | |||
+ | |||
+ | '''SOLUCIÓ:''' | ||
+ | https://redesaprendiendo.files.wordpress.com/2013/10/instalacic3b3n-ipcop.pdf | ||
+ | |||
+ | |||
+ | = Exercici 4: Tallafoc IPCOP = | ||
+ | |||
+ | [[Fitxer: tallafoc2.jpg]] | ||
+ | [[Fitxer:ipcop_lan_dmz.jpg|700px]] | ||
+ | |||
+ | [[Fitxer:ipcop_dmz.jpg |800px]] | ||
+ | [[Fitxer:Ipcop dmz1.jpg |800px]] | ||
+ | |||
+ | |||
+ | * Crea una MV amb 3 targetes de xarxa: | ||
+ | ** La targeta de xarxa que tindrà connexió d'internet ha d'estar configurada amb mode 'pont'. | ||
+ | **La targeta de Xarxa que es comunicarà amb la LAN ha d'estar configurada amb mode 'xarxa interna' | ||
+ | **La targeta de xarxa que es comunicarà amb la [http://www.redescisco.net/sitio/2015/12/05/que-es-la-dmz/ DMZ] ha d'estar configurada amb mode 'xarxa interna' | ||
+ | * Instal·la el programari IPCOP i configura-ho amb les xarxes Green, Red i Orange. | ||
+ | * Accedeix a la Web de IPCOP i realitza l'exercici Firewall d'una LAN amb connexió d'Internet i amb DMZ utilitzant aquest programari. | ||
+ | |||
+ | '''XARXES IPCOP''' | ||
+ | *<span style="color:green">'''GREEN'''</span> — Xarxa de confiança. Xarxa interna. | ||
+ | *<span style="color:blue">'''BLUE'''</span> — Xarxa de semi-confiança. Normalment wireless. | ||
+ | *<span style="color:orange">'''ORANGE'''</span> — DMZ per als serveis que s'ofereixen a Internet | ||
+ | *<span style="color:red">'''RED'''</span> — Xarxa per la que ens connectem a Internet | ||
--> | --> |
Revisió de 13:23, 9 març 2022
Exercici 1: Investigació sobre tallafocs
Busca informació sobre aquests termes:
- 1 UTM (Unified Threat Management). Avantatges i inconvenients.
- 2 Payload (tant a nivell de TCP/IP com de seguretat).
- 3 Fes una comparativa de firewalls segons les seves distintes classificacions. Visita:
https://en.wikipedia.org/wiki/Comparison_of_firewalls
- 4 Què és un paquet mangled? Què té a veure amb atacs DoS i amb nmap? Quins tipus de firewalls els detecten?
- 5 Què és un filtrat de paquets estàtic i un filtrat de paquets dinàmic (stateful)?
- 6 Què és una zona desmilitaritzada (DMZ) en una xarxa informàtica?
Exercici 2: Instal·lació d'un tallafoc en un PC
UFW - Uncomplicated Firewall. Es tracta de l'eina de configuració del tallafocs que ve predeterminada a Ubuntu i Debian. És una capa sobre iptables que fa més senzilla la configuració d'un tallafocs del que seria fent servir directament iptables, ja que fa servir regles més bàsiques. Amb aquesta aplicació podem executar diverses accions de seguretat, i s'ha de fer des de l'usuari root o amb permisos sudo.
Utilitza el programari Uncomplicated Firewall per realitzar el següent exercici (Pots consultar les comandes aquí.): Respon cada apartat amb la comanda o comandes que has fet servir.
- 1. El tallafoc ufw ve instal·lat per defecte a la majoria de distribucions de Linux. En el cas, estrany, que no el tingueu instal·lat, instal·leu-lo abans de seguir endavant.
- 2. Comprova l'estat del tallafocs.
- 3. Arranca el tallafocs.
- 4. Comprova l'estat del tallafocs.
- 5. Consulta les regles per defecte que es troben a la següent ruta: /etc/default/ufw.
- 6. Volem bloquejar tot el tràfic d'entrada a la nostra màquina.
- 7. Volem permetre tot el tràfic de sortida des de la nostra màquina.
- 8. Volem permetre que ufw treballi amb adreces IP v4 i v6. Per fer això hem d'editar el fitxer /etc/default/ufw i posar el paràmetre IPV6=yes. Un cop fets els canvis perque siguin processats pel programa ufw hem de desactivar-lo i tornar-lo a activar.
- 9. Permet les connexions ssh a través del tallafocs.
- 10. Permet les connexions http i https a través del tallafocs.
- 11. Obre el tràfic tcp a tots els ports coneguts (1-1024).
- 12. Mostra en pantalla una llista de totes les regles creades.
- 13. Elimina la última regla creada.
- 14. Instal·la la versió gràfica de ufw: GUFW.
Exercici 3 : Tallafoc en un servidor
Treballarem en el següent escenari: Tenim en una LAN 2 equips PC i un equip servidor en el que instal·larem el firewall i farem la configuració corresponent amb el programa UFW.
Requeriments. Utilitzarem l'eina Vagrant per gestionar les màquines virtuals. Si no teniu el vagrant instal·lat al vostre equip de l'institut seguiu aquestes passes: https://github.com/lamerce/vagrant
Un cop instal·lat heu de fer servir el fitxer de configuració Vagrantfile que hi ha al Moodle per tal d'arrencar les màquines amb la configuració de la imatge. Crea una carpeta M6UF5Exercici3 i posa a dins el Vagrantfile. A continuació amb la comanda vagrant up arrencarà aquest escenari amb 3 màquines (pc1-ubuntu, pc2-ubuntu i firewall-ubuntu) i ja podràs treballar. Per entrar a la màquina fes-ho amb la comanda vagrant ssh nom_de_la_màquina.
- 1. Realitza una connexió ssh des de l'equip pc1-ubuntu al firewall.
- Recorda: Per connectar-te a l'equip pc1-ubuntu obre un terminal i fes vagrant ssh pc1-ubuntu. A continuació obre una connexió ssh cap al firewall-ubuntu amb la comanda ssh 192.168.0.60. El password es vagrant. Prova a fer un ls i mou-te per les carpetes del servidor. Surt de la sessió ssh amb Ctrl+D.
- 2. Comproba si el firewall UFW està instal·lat en el servidor (Usa el mode verbose).
- 3. Activa el firewall.
- 4. Intenta de nou una connexió SSH al servidor, i comproba que ja no pots fer-la (per que has activat el firewall).
- 5. Permet la connexió SSH només des de la màquina pc1-ubuntu (regla ufw).
- 6. Comproba que no pots connectar-te per ssh des de l'equip pc2-ubuntu.
- 7. Elimina la regla anterior del ssh.
- 8.1 Instal·la el servidor apache2.
- 8.2 Instal·la les eines curl i lynx que ens serviran per verificar apache des del terminal.
sudo apt -y install curl lynx
Amb curl localhost o amb lynx localhost pots veure si et retorna la pàgina d'apache.
- 9. Crea una regla que permeti l'accés a la web.
- 10. Ara fes una regla que no permeti que l'equip pc2-ubuntu entri a la web.
- 11. Crea un LOG del firewall. sudo ufw logging on / sudo ufw logging off. Pots consultar el contingut del fitxer de log a sudo cat /var/log/ufw.log o sudo cat /var/log/syslog
- 12. Deshabilita el ping (/etc/ufw/before.rules) . Hem de comentar les 5 línies que comencen després de ok icmp code for INPUT.
- Per què els canvis es facin s'ha de reiniciar el servei: sudo service ufw restart
- 13. Comprova l'estat del firewall amb números de regles.
- 14. Selecciona una regla i elimina-la.
- 15. Torna a habilitar ping, comprova-ho i captura pantalla.