Assegurant la teva xarxa amb Iptables - Proxy - NAT - IDS: PART 2

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.

nit

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.

s'usa MASQUERADE quan la ip és pública però pot variar amb el temps (dinàmica). En cas contrari podem usar SNAT -to-source ip

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
No oblidem donar permisos d'execució

explicació:

L'script bàsicament fa el següent:

  1. Primer restringeix tota la navegació, connexions i trànsit. (Polítiques bàsiques de Firewall)
  2. Després crea la NAT amb la destinació eth1. indicant li que tenim una ip pública estàtica «81.2.3.4»
  3. Obre els ports necessaris per rebre els paquets de connexions iniciades per mi.
  4. Accepta el trànsit sortint d'HTTP, HTTPS i DNS.
Les regles tenen com a destinació el trànsit FORWARD perquè estem fent servir el nostre Linux com Router, llavors les polítiques es fan servir per al trànsit que PASSA pel Linux, o sigui, actua com a intermediari. Això vol dir que el nostre Linux realment no pot navegar ni rebre cap dada directament. Només s'aplica per als equips connectats a ell, però no a ell mateix

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.


Afegir com a font preferida a Google