Diferència entre revisions de la pàgina «ASIX/M11/UF3/EX1»

De Lordwektabyte Wiki
Salta a la navegació Salta a la cerca
Línia 5: Línia 5:
 
*Farem servir una màquina virtual Ubuntu Desktop (l'anomenarem "Servidor") on configurarem el firewall iptables.
 
*Farem servir una màquina virtual Ubuntu Desktop (l'anomenarem "Servidor") on configurarem el firewall iptables.
  
==Procediment==
+
==Exercicis==
 
===1. Esborra totes les regles al Servidor i tindrem el firewall sense cap regla i aturat===
 
===1. Esborra totes les regles al Servidor i tindrem el firewall sense cap regla i aturat===
 
<source>
 
<source>

Revisió del 17:32, 28 gen 2019

Contingut

Enunciat

  • Farem servir dos equips virtuals Ubuntu amb xarxa pont i la màquina física com a tercer equip. Tots els equips a la mateixa xarxa.
  • Quan configurem el tallafocs és molt important l'ordre de les regles, ja que per a cada paquet es comprova la llista de regles i si es troba una regla que concorda amb els criteris de selecció, s'executa el TARGET i ja no es mira la resta que venen darrera.
  • Farem servir una màquina virtual Ubuntu Desktop (l'anomenarem "Servidor") on configurarem el firewall iptables.

Exercicis

1. Esborra totes les regles al Servidor i tindrem el firewall sense cap regla i aturat

iptables -F
iptables -X


2. Que fa cada comanda? Mira l'estat actual de les regles amb iptables -L -v -n

Quan executem la comanda del punt anterior, veiem que ens dóna aquest output per consola:

root@ubuntu18-server-gsb:/home/guillem# iptables -L -v -n
Chain INPUT (policy ACCEPT 118 packets, 8580 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 80 packets, 13008 bytes)
 pkts bytes target     prot opt in     out     source               destination

Veiem que a les 3 cadenes (INPUT, FORWARD i OUTPUT) s'hi queda una política default d'ACCEPT; pel que aquesta comanda fa una neteja de les regles de les cadenes. Si mirem el manual de IPTables, veiem que aquestes opcions que hem passat a la comanda signifiquen:

  • L'opció -F fa un Flush de les regles de la cadena que diguem. Si no s'especifica cap cadena, es netegen les regles de totes les cadenes.
  • L'opció -X elimina cadenes personalitzades per l'usuari seleccionades; o bé s'eliminen totes si no s'especifica.


3. En una altre equip virtual Ubuntu (serà "Client") instal·la el programari zenmap (o fes servir nmap directament) i arrenca'l. Ens servirà per fer scan de ports i comprovar si es pot accedir als serveis del servidor

4. Si les polítiques per defecte no són ACCEPT en INPUT, OUTPUT o FORWARD, poseu:

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT


5. Instal·la Apache i openssh-server al Servidor

6. Comprova que pots veure els serveis actius des del client, accedint amb un navegador web i un client ssh al servidor

7. Comprova també que Zenmap, amb l'opció "Quick scan" et mostra que els ports dels serveis web i sshd estan oberts (escoltant)

8. Ara canvia la configuració del firewall per tancar l'accés al servidor. Posa a iptables que la política sigui per defecte DROP. Comprova l'estat actual del firewall

9. Des del client comprova que els ports dels serveis ja no són accessibles i tampoc es pot accedir amb els clients web i ssh. Comprova que tampoc pots accedir des del servidor a la xarxa, fent un ping al client

10. Canvia la política a REJECT i comprova des del client quina és la diferència (navegador, client ssh, Zenmap)

11. Permet l'accés a la màquina server només des de la màquina client (tant d'entrada com de sortida)

iptables -A INPUT -s ip_client -j ACCEPT
iptables -A OUTPUT -d ip_client -j ACCEPT

12. Comprova que no es pot accedir per exemple des de la màquina física (ping, client web), i un scan amb Zenmap et donarà tots els ports tancats. En canvi des del client no

3. Permet l'accés a la màquina servidor només als ports dels serveis Web (80, 443) i SSH (22), des de qualsevol equip, i prova que ara des de la màquina física pots accedir als serveis web i ssh, però que no pots fer un ping, per exemple

14. Prova a posar només la regla de la cadena INPUT. Funciona el servei web? Per què necessites la regla de la cadena OUTPUT?

15. Escriu, per un servei concret les següents regles, on -A és afegir una regla a una cadena (INPUT, OUTPUT O FORWARD), -p és "protocol" (tcp, udp o icmp), --dport és "destination port" i --sport és "source port" i -j és "jump" que vol dir que especifica l'objectiu de la regla. Canvia n_port pel número de port assignat al servei

iptables -A INPUT -p tcp --dport n_port -j ACCEPT
iptables -A OUTPUT -p tcp --sport n_port -j ACCEPT


16. Permet fer ping a la màquina server (busca els icmp-type del ping), des de l'equip físic, i prova que ara des de la màquina física pots fer ping

iptables -A INPUT -s ip-fisica -p icmp --icmp-type ?? -j ACCEPT
iptables -A OUTPUT -d ip-fisica -p icmp --icmp-type ?? -j ACCEPT


17. Per què necessitem la regla de la cadena OUTPUT?

18. Si volem denegar que es pugui fer un ping, haurem de fer dues regles INPUT i OUTPUT o només amb INPUT ja deneguem?

19. Activa ara el servei FTP del servidor i limita l'accés al servidor FTP als ordinadors d'un rang adreces IP. Pensa que el protocol FTP fa servir 2 ports, el 20 i el 21 (en mode actiu). Prova primer a permetre el port de comandes (21) i després si funciona, obre el port de dades (20)

20. Fes que la configuració sigui persistent al servidor. Comprova reiniciant el servidor

https://gitlab.com/pautome/m11-asix-pub/blob/master/UF3-Firewall/exercicis/firewall-iptables.md