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/