Guia ràpida: IP Forwarding amb IPTABLES

Ja fa temsp que no escric res així que he pensat en posar alguna coseta per a que no vaja oblidant-me d’aquest blog. Hui explicaré de forma ràpida com redirigir el tràfic rebut en un port cap a una altra IP:PORT. Per a que servix? doncs per exemple si tens un pc connectat directament a Internet i vols tenir un altre pc connectat al primer fent de servidor web per exemple (el que amb un router es fa ràpidament, anomenat NAT). També servix, com en el meu cas, per a accedir a serveis instal·lats a pcs que estàn en una xarxa diferent a la meva i el linux fa de passarela entre les dues xarxes (l’altra està aïllada, no tenen gateway ni res (si fas ping no contesten a no ser que estigues al seu rang).

Ho vaig a explicar per a deixar el routing fixe a debina/ubuntu, és a dir que quan es reinicie l’equip la configuració es quede guardada.

Primer es modifica a l’arxiu /etc/sysctl.conf la línia que diu net.ipv4.ip_forward deixant-ho a 1. Després es reinicia el servici amb /etc/init.d/procps restart
I ara ja es poden aplicar les regles de l’IPTABLES per a redirigir el tràfic. En aquest cas anem a suposar que volem donar servei web (port 80) al pc2 (IP: 192.168.0.2) que està connectat al pc1 (192.168.0.1), volem utilitzar el port per defecte de la web (80) per a que l’usuari que es vulga connectar no tinga que posar cap port al navegador web.

Aquesta és l’ordre a escriure per a aquest cas:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
I per a enmascarar també la resposta i ser un NAT complet després s’afegix la següent instrucció:
iptables -t nat -A POSTROUTING -j MASQUERADE
(aquesta última és general, es a dir que es poden configurar diferents redireccions de port i finalment posar aquesta ordre)

Per supost que aquestes ordres executades a la consola no es quedaran guardades si es fa un reinici del pc, així que ens queda crear un script amb aquestes ordres i afegir-lo a l’inici del sistema per a que s’execute. Fer l’script és fàcil, copiar i pegar a un arxiu i donar permisos d’execució (chmod +x nom_del_fitxer com a ROOT).

Per a afegir un script a l’inici del sistema s’ha de modificar el fitxer /etc/rc.local i posar la ruta del script abans del exit 0.

I ja està tot dit! Ho he extret dels següents enllaços:
http://blog.desdelinux.net/como-iniciar-reglas-de-iptables-automaticamente/
http://www.ducea.com/2006/08/01/how-to-enable-ip-forwarding-in-linux/
http://blog.desdelinux.net/como-iniciar-reglas-de-iptables-automaticamente/

Telefonia IP: Al 50%

Ja he acabat de configurar la part de la casa de ma tia (edifici 1) i funciona tot correctament, el problema que tenia amb la resol·lució de la IP del terminal darrere de NAT se’n ha anat amb la configuració del servidor STUN. El protocol STUN (Session Traversal Utilities for NAT) és el encarregat de resoldre la IP externa, com el terminal estava darrere de NAT, hi havia problemes a l’hora de comunicar-se amb ell, encara que des del terminal si que es podia cridar a l’exterior (ja comentat en un post anterior) i aquesta ha sigut la sol·lució: Muntar un servidor STUN a la PBX per a que resolga la direcció IP externa del terminal (parlat ja en aquest post). Però el problema és que no es podía executar en background en windows, he estat googlejant prou per a poder fer un servici d’aquest programa però no he pogut treure rés de trellat i senzill, així que he canviat de pensar… i si en compte de intentar executar com a servici busque la forma d’executar qualsevol programa en background? i googlejant més m’he trobat amb la sol·lució, un script en visual basic ben senzillet, el qual he posat per a que s’executi al principi d’iniciar sessió i ja està. Aquest script té el següent codi:

dim shell
set shell=createobject("wscript.shell")
shell.run "stun.bat" ,0
set shell=nothing

on stun.bat és el bat que executa el programa amb les opcions, jo ja tinc preparat un rar amb els tres arxius necessaris per a fer un servidor STUN en windows, els tres arxius són el script, el bat (s’ha de modificar el bat i escriure la ip de la màquina on s’instal·la) i l’executable. El password és 123456

Continuant en el tema del post… una vegada ja en marxa he comprovat que el programa estava executant-se correctament amb el Winstun i li he obert el port (per defecte el 3478 UDP) al tallafocs i “arreando!”. Després al terminal li he configurat el servidor STUN, l’he reiniciat i ja accepta les cridades, faig unes proves… cride des del meu mòbil a casa i si que sona el terminal, parle… tot correcte, perfecte! Ja tinc configurada aquesta part.

He estat estat mirant informació ‘per ahí’ i crec que em faré amb un altre SPA3102 per a l’asterisk perquè les targetes que he comprat en X100P.com tenen massa feina per a que es detecten, estic vegent que l’asterisk és prou ‘caprixós’ a l’hora de detectar aquest tipus de targeta, per temes de IRQ, etc, etc. Per ara el pròxim pas és el de connectar les 2 centrals, després ja vorem