Al post anterior vam veure la configuració d'IPTables perquè funcioni com un Firewall. Ara podem veure com crear aquests scripts perquè s'executin les regles automà ticament quan s'iniciï el sistema, i també com podem eliminar o aturar aquestes regles per un moment.
Abans de fer l'script i mostrar-los com va quedant, parlem una mica de NAT i de el concepte del que volem fer amb aquest equip.
NAT i Context de l'exemple.
Quan parlem de NAT, podem confondre això amb enrutament, i és que tots dos s'encarreguen de connectar dues xarxes diferents entre si. La diferència realment rau és que el enrutament s'aplica per passar d'una xarxa local a una altra i aquesta altra xarxa pot connectar-se a un router i sortir a Internet.
Mentre que, quan parlem de NAT, parlem de d'utilitzar paquets d'una xarxa local o privada a una xarxa pública o Internet. Això ho fa emmascarant els paquets posant-li la ip pública amb la que surt a Internet. És a dir, que no necessitem un router, perquè la ip pública la té directament l'ordinador amb GNU / Linux.
Treballarem això amb la consigna que estem fent servir el nostre Linux com un router / firewall per sortir a Internet des d'una xarxa local. Però aquà poden aparèixer dos escenaris.
- Que el nostre Linux estigui entre el router de l'proveïdor de servei i la xarxa local.
En aquest cas, entre el router i el nostre Linux hi hauria una xarxa, i entre el Linux i la xarxa local hi hauria una altra xarxa diferent. Això vol dir que el nostre router no hauria de fer NAT com a tal, amb un simple encaminament de trà nsit com ho expliqui en post anterior estaria bé.
- Que el nostre Linux tingui una interfÃcie connectada a la xarxa local i per l'altra interfÃcie rebi directament una ip pública amb la qual navega.
Això vol dir que el nostre Linux ha de fer NAT perquè els paquets puguin arribar a Internet.
Per a efectes d'aquest petit laboratori llavors, direm que el nostre Linux rep directament una ip pública i aixà poder provar els efectes de la NAT.
Per fer NAT fem servir llavors la sintaxi
iptables -t nat -A POSTROUTING -O eth1 -j MASQUERADE
On eth1 és la interfÃcie per on vam rebre la ip pública, o sigui per on sortim a Internet.
Creant script iptables
Suposem llavors que: 172.26.0.0 és la nostra xarxa local i 81.2.3.4 és la ip pública amb la qual vam sortir a Internet. (És una ip està tica). Tinc les interfÃcies eth0 (Xarxa local)
eth1 (Xarxa pública).
Consisteix bà sicament en crear un script que pugui ser cridat des /etc/init.d/cortafuegos (per exemple). i des d'aquest script poder iniciar, aturar o consultar l'estat de la nostra configuració, tal com fem amb qualsevol dimoni de sistema.
Suposem que els meus regles IPTABLES SÓN:
#! / Bin / bash # Firewall de la meva llar. # Nom d'arxiu / etc / cortafuegos_on # By Jlcmux Twitter: @Jlcmux # # PolÃtica bà sica. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT per compartir Internet des eth0 a eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --to-source 81.2.3.4 # # Permetre connexions entrants iniciades per la meva iptables -A FORWARD -m state --state ESTABLISHED, RELATED -j ACCEPT # # Trà nsit sortint autoritzat iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
explicació:
L'script bà sicament fa el següent:
- Primer restringeix tota la navegació, connexions i trà nsit. (PolÃtiques bà siques de Firewall)
- Després crea la NAT amb la destinació eth1. indicant li que tenim una ip pública està tica «81.2.3.4»
- Obre els ports necessaris per rebre els paquets de connexions iniciades per mi.
- Accepta el trà nsit sortint d'HTTP, HTTPS i DNS.
Si volguéssim fer servir el nostre equip per navegar haurÃem de repetir les lÃnies i canviar FORWARD per INPUT o OUTPUT segons el cas.
Script anul·lació.
Ara anem a crear un script que anul·li tot l'anterior i deixi l'equip net de tot això. (Per a efectes de proves o simplement volem apagar el tallafocs).
#! / Bin / bash # Firewall de la meva llar. # Nom d'arxiu / etc / cortafuegos_off # By Jlcmux Twitter: @Jlcmux # #Borrando Regles iptables -F # #Aplicando polÃtiques per defecte (tot trà nsit acceptat) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
Automatitzant.
Ara hem de crear l'script dins de /etc/init.d/ i el servei s'iniciï automà ticament i el puguem gestionar de manera més còmoda.
#! / Bin / bash # Firewall de la meva llar. # Nom de fitxer /etc/init.d/cortafuegos # By Jlcmux Twitter: @Jlcmux casi $ 1 in start) / etc / cortafuegos_on ;; stop) / etc / cortafuegos_off ;; status) iptables -L ;; *) Echo "Sintaxi errònia. Valido = /etc/init.d/cortafuegos start | stop | status ;; esac
explicació:
Aquest darrer script el posem a /etc/init.d/ amb el nom tallafocs . Aleshores si volem gestionar el tallafocs podem fer servir l'ordre /etc/init.d/curtafocs start. De la mateixa manera, ho podem aturar o veure l'estat.
Ara editarem el fitxer /etc/rc.local i posem alguna cosa com: /etc/init.d/curtafocs start perquè s'iniciï amb el sistema.
Doncs bé. Aquest és la segona part. Espero que aporti alguna cosa a tots vostès. En la propera veiem Proxy i IDS.