IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Servidor de comunicacions Institut les Planes

Iptables

  • Iptables és el tallafocs de Linux, vegeu | Iptables
  • Ens demana una configuració del firewall restrictiva i anar obrint només els serveis desitjats.
  • Primer que tot podríem dir que iptables és troba ja instal·lat en les versions de Linux, Ubuntu, que es la que estem utilitzant nosaltres.
  • Podríem comprovar les normes establertes en aquest moment amb la comanda:
# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   
  • També podem utilitzar,
# iptables-save
# Generated by iptables-save v1.4.4 on Sun May 15 18:12:08 2011
*filter
:INPUT ACCEPT [54:5658]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [40:4496]
COMMIT
# Completed on Sun May 15 18:12:08 2011
  • També podem utilitzar la mateixa comanda amb algun paràmetre més.
# iptables -nvL
  • En aquest moment la política que tenim és, tot acceptat, aprofitant aquesta situació crearem un fitxer iptables, on guardarem aquesta política de tot acceptat, per si ens fa falta amb un futur. executo:
# iptables-save > iptables.buit
  • Aquesta comanda ens crea un fitxer de nom iptables.buit amb la configuració per a iptables d'acceptar-ho tot.
  • Per restaurar aquest fitxer, executo:
# iptables-restore < iptables.buit

Configurar iptables restrictiu

  • El que farem serà configurar iptables totalment restrictiu i després anirem obrint els ports necessaris.
  • Política restrictiva per defecte (DROP)
Davidginovartiptables1.png
  • Després de fer aquest pas hem anat introduint les normes fins que ens a quedat un fitxer com aquests:
# iptables-save 
# Generated by iptables-save v1.4.4 on Sun Jun  5 19:13:06 2011
*nat
:PREROUTING ACCEPT [72:11266]
:OUTPUT ACCEPT [13:927]
:POSTROUTING ACCEPT [13:927]
-A POSTROUTING -s 192.168.59.0/24 -o internet -j MASQUERADE 
COMMIT
# Completed on Sun Jun  5 19:13:06 2011
# Generated by iptables-save v1.4.4 on Sun Jun  5 19:13:06 2011
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [681:417344]
-A INPUT -s 127.0.0.0/8 -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -s 192.168.59.1/32 -j ACCEPT 
-A INPUT -i intranet -p udp -m udp --dport 53 -j ACCEPT 
-A INPUT -i intranet -p tcp -m tcp --dport 8080 -j ACCEPT 
-A INPUT -i internet -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -i internet -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -i intranet -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -i intranet -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -i internet -p icmp -m icmp --icmp-type 8 -j ACCEPT 
-A INPUT -i internet -p icmp -j ACCEPT 
-A INPUT -i intranet -p icmp -m icmp --icmp-type 8 -j ACCEPT 
-A INPUT -i intranet -p icmp -j ACCEPT 
-A INPUT -i intranet -p tcp -m tcp --dport 22 -j ACCEPT 
-A INPUT -i intranet -p tcp -m tcp --dport 222 -j ACCEPT 
-A INPUT -i internet -p tcp -m tcp --dport 222 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 5001 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 123 -j ACCEPT 
-A INPUT -p udp -m udp --dport 123 -j ACCEPT 
-A INPUT -j LOG --log-prefix "[tallafocs] INPUT xapat " 
-A INPUT -j DROP 
-A FORWARD -i internet -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -o internet -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -i intranet -o guifi -j ACCEPT 
-A FORWARD -i internet -p icmp -m icmp --icmp-type 8 -j ACCEPT 
-A FORWARD -i internet -p icmp -j ACCEPT 
-A FORWARD -i internet -p tcp -m tcp --dport 465 -j ACCEPT 
-A FORWARD -i internet -p tcp -m tcp --dport 993 -j ACCEPT 
-A FORWARD -i internet -p tcp -m tcp --dport 995 -j ACCEPT 
-A FORWARD -d 209.85.229.109/32 -i internet -p tcp -m tcp --dport 587 -j ACCEPT 
-A FORWARD -p udp -m udp --dport 161 -j ACCEPT 
-A FORWARD -j LOG --log-prefix "[tallafocs] FORWARD xapat " 
-A FORWARD -j DROP 
COMMIT
# Completed on Sun Jun  5 19:13:06 2011
  • Un cop fet aquest pas, amen a crear un fitxer per recarregar el firewall, amb les mateixes regles que tenim creades en aquest moment.
# iptables-save > iptablesINSLesPlanes
  • Degut a que iptables no guarda les normes entre sessions, ara creem un fitxer de restauració de les normes automàtic.
  • El primer que he fet es guardar les normes que tenim en aquest moment en un fitxer de nom, /etc/firewall.conf.
# iptables-save > /etc/firewall.conf
  • Després creo un nou fitxer de nom firewall on creem l'script que ens farà aquesta funció.
# nano firewall
  • El contingut:
#!/bin/bash
iptables-restore < /etc/firewall.conf
  • Finalment li dono permisos d'execució, amb:
# chmod +x firewall
  • Per acabar aquest fitxer el situem a /etc/network/if-up.d/firewall, llavors cada vegada que s'inicia el sistema es carregaran aquestes normes.

Script System V per reiniciar iptables

Creem un script a la carpeta /etc/init.d:

# nano /etc/init.d/iptables

amb el següent contingut:

#!/bin/sh
case "$1" in
start)
# Aqui pones las reglas de iptables que quieras
;;
stop)
# Borramos todas las reglas:
iptables -F
# Borramos todas las cadenas de usuario:
iptables -X
;;
*)
echo "Usage: /etc/init.d/iptables-script {start|stop}"
exit 1
;;
esac 
exit 0

I l'afegim a l'inici del sistema:

# sudo update-rc.d -f iptables defaults

Ara ja podem iniciar/aturar iptables com qualsevol altre Script SystemV

# /etc/init.d/iptables_script start
# /etc/init.d/iptables_script stop


Enllaços externs