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 71: Línia 71:
 
===6. Comprova que pots veure els serveis actius des del client, accedint amb un navegador web i un client ssh al servidor===
 
===6. Comprova que pots veure els serveis actius des del client, accedint amb un navegador web i un client ssh al servidor===
 
====Solució====
 
====Solució====
 +
=====Servidor web=====
 +
{{imatge|M11UF3EX1-1.png||thumb|Una pàgina web de prova}}
 +
 +
====Servidor SSH=====
 +
Des del client (o la màquina amfitriona:
 +
<source>
 +
[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:~ #
 +
</source>
  
 
===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)===

Revisió del 15:38, 12 feb 2019

Contingut

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ó -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

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.

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

Solució

Servidor web
S'ha produït un error en crear la miniatura: No es pot desar la miniatura a la destinació
Una pàgina web de prova


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ó

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

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

Solució

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

Solució

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?

Solució

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)

Solució

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

Solució