Diferència entre revisions de la pàgina «ASIX/M11/UF3/EX1»
| Línia 86: | Línia 86: | ||
===7. Comprova també que Zenmap, amb l'opció "Quick scan" et mostra que els ports dels serveis web i sshd estan oberts (escoltant)=== | ===7. Comprova també que Zenmap, amb l'opció "Quick scan" et mostra que els ports dels serveis web i sshd estan oberts (escoltant)=== | ||
====Solució==== | ====Solució==== | ||
| + | {{imatge|M11UF3EX1-2.png}} | ||
===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=== | ===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=== | ||
Revisió del 16:02, 12 feb 2019
Contingut
- 1 Enunciat
- 2 Exercicis
- 2.1 1. Esborra totes les regles al Servidor i tindrem el firewall sense cap regla i aturat
- 2.2 2. Que fa cada comanda? Mira l'estat actual de les regles amb iptables -L -v -n
- 2.3 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
- 2.4 4. Si les polítiques per defecte no són ACCEPT en INPUT, OUTPUT o FORWARD, poseu:
- 2.5 5. Instal·la Apache i openssh-server al Servidor
- 2.6 6. Comprova que pots veure els serveis actius des del client, accedint amb un navegador web i un client ssh al servidor
- 2.7 7. Comprova també que Zenmap, amb l'opció "Quick scan" et mostra que els ports dels serveis web i sshd estan oberts (escoltant)
- 2.8 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
- 2.9 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
- 2.10 10. Canvia la política a REJECT i comprova des del client quina és la diferència (navegador, client ssh, Zenmap)
- 2.11 11. Permet l'accés a la màquina server només des de la màquina client (tant d'entrada com de sortida)
- 2.12 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
- 2.13 13. 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
- 2.14 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?
- 2.15 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
- 2.16 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
- 2.17 17. Per què necessitem la regla de la cadena OUTPUT?
- 2.18 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?
- 2.19 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)
- 2.20 20. Fes que la configuració sigui persistent al servidor. Comprova reiniciant el servidor
Enunciat
https://gitlab.com/pautome/m11-asix-pub/blob/master/UF3-Firewall/exercicis/firewall-iptables.md
- Farem servir dos equips virtuals i la màquina física:
- OpenSuse amb NAT i host-only, un Ubuntu Desktop amb NAT i host-only i la màquina física com a tercer equip. Tots els equips compartiran la xarxa host-only en el rang 192.168.57.0/24.
- 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
Solució
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ó
-Ffa 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ó
-Xelimina cadenes personalitzades per l'usuari seleccionades; o bé s'eliminen totes si no s'especifica.
- L'opció
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
Solució
De bon principi, si fem un nmap al servidor tindrem el següent:
[guillem@guillemasix29 ~]$ nmap 192.168.57.70 Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-12 16:19 CET Nmap scan report for 192.168.57.70 Host is up (0.00028s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
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
Solució
Tal com s'ha comprovat en el punt 2, les polítiques són accept. No fem res.
5. Instal·la Apache i openssh-server al Servidor
Solució
Es tracta d'un OpenSuse, per tant:
zypper in apache2 -y
OpenSSH server ja està instal·lat i, segons l'nmap d'abans, escoltant pel port 22.
Solució
Servidor web
Servidor SSH
Des del client (o la màquina amfitriona:
[guillem@guillemasix29 ~]$ ssh root@192.168.57.70 Password: Last login: Tue Feb 12 16:19:23 2019 from 192.168.57.1 Have a lot of fun... iptables:~ #
7. Comprova també que Zenmap, amb l'opció "Quick scan" et mostra que els ports dels serveis web i sshd estan oberts (escoltant)
Solució
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
Solució
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
Solució
Solució
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
Solució
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
Solució
13. 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
Solució
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?
Solució
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
Solució
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