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

En el Càrrec anterior vam veure la configuració de 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 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 enrutament de trànsit com ho expliqui en Càrrec 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 /etc/init.d/ i el servei s'iniciï automàticament i el puguem gestionar d'una 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 últim script ho posem en /etc/init.d/ amb el nom tallafocs. Llavors si volem gestionar el tallafocs podem usar la comanda /etc/init.d/tallafocs start. De la mateixa manera ho podem aturar o veure l'estat.

Ara anem a editar el fitxer /etc/rc.local i posem alguna cosa com: /etc/init.d/tallafocs 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.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   caçador va dir

    Si és Debian el que fas servir ha un paquet en el repo (iptables-persistent) que fa exactament això, et fa un dump de les regles actuals en /etc/iptables/rules.v4 o v6 segons el que facis servir i després et els aplica quan aixeca el sistema.

  2.   OCZ va dir

    A la pràctica, per netejar la configuració d'un tallafocs iptables convencional (i usar NAT no ho seria des del meu punt de vista), en la majoria dels casos n'hi hauria prou amb un «flush» de regles i restablir les polítiques predeterminades a ACCEPT.
    Però en teoria, i fins on jo sé, a més d'això també cal esborrar les cadenes no predeterminades i reiniciar els comptadors. Accions a realitzar tenint en compte que a més de «filter» hi ha altres taules, (de consulta obligada llegir el fitxer «/ proc / net / ip_tables_names» per a això).

    Per cert, l'ortodòxia diu que un tallafocs ja ha d'estar actiu abans que ho estigui la xarxa. No se com s'aconsegueix en els altres sistemes Linux, però en els de tipus Debian podria adaptar-se i establir-se el script en el directori «/etc/network/if-pre-up.d/».

    Bon firewalling a tots. 😉

  3.   Nautilus va dir

    Hola, aquesta molt bo el post. Ho he llegit complet als 2 toms.

    Esperant els propers 🙂

  4.   anonimo va dir

    Una pregunta des de la meva ignorància, vam seguir amb iptables, però ja fa diverses versions de nucli que tenim nftables, jo ja estic provant, les preguntes són ¿és una cosa beta nftables respecte a iptables? ¿Se seguirà usant iptables per molt temps més?

    Gràcies.

    1.    Yukiteru va dir

      nftables inclou totes les funcionalitats d'iptables, ip6tables, arptables i ebtables, tot fent servir una nova infraestructura tant en kernelspace com a userspace, que assegura millor rendiment i una funcionalitat millorada. nftables reemplaçarà iptables i totes les altres eines esmentades però no pels moments, no al menys fins que hi hagi un ús més ampli de nftables com a tal.

  5.   Alejandro va dir

    molt bon post, em quedi amb ganes de llegir més ja que està molt ben explicat .. salutacions gràcies gran aportació

  6.   Avrah va dir

    Hola! Molt bons tots dos post.
    Com aportació podria afegir a final a aquesta part:

    «Ara anem a editar el fitxer /etc/rc.local i posem alguna cosa com: /etc/init.d/cortafuegos start perquè s'iniciï amb el sistema.»

    Afegir això a l'rc.local.

    if [-x /etc/init.d/cortafuegos]; then
    /etc/init.d/tallafocs start
    fi

    El que vol dir que si «tallafocs» té permisos d'ejecucion l'executi, si no, no.
    Si vols que no s'iniciï el «tallafocs» només cal treure els permisos.

    Per ex: chmod + x /etc/init.d/cortafuegos
    per fer que s'executi en cada inici o ...
    chmod -x /etc/init.d/tallafocs
    per desactivar totalment.

    Salutacions!