| sebb.info |
"Write programs that handle text streams, because that is the universal interface."
Creadores del sistema Unix. |
| Inicio | Informática | Letras | Links | Acerca de |
|
Reglas iptables para tener ID Alta en emule, en varios equipos a la vez, detrás de un firewall NAT casero. > Un Coyote en casa. La antigua y excelente distribución Coyote Linux ofrece un firewall de lo más interesante a mi gusto, pues cabe en un disquete y tiene todos los servicios que se necesarios para un cometido doméstico. El Coyote es fácil de instalar y nunca pide nada, es el soft más dócil que tengo en casa. Le basta con un 386 antediluviano con 16MB de memoria, dos tarjetas de red y una disquetera para funcionar. Estas características hacen de Coyote una buena elección para un firewall casero. Hay en esta web una pequeña guía para fabricar un firewall gratis, exótico y sobretodo silencioso. Una vez se termina de instalar la máquina y el sitema operativo, quedan por escribir las reglas iptables que van a controlar el tráfico del firewall, y éso es harina de otro costal. Soy un perfecto analfabeto de las iptables, y lo que hay en esta página me ha costado mucho google. :-) Así que estas reglas me funcionan, pero no las conozco a fondo como para asegurar que funcionen en otros casos u otras máquinas. Los comentarios se agradecen. > Panorama. El objeto de un firewall es separar una red local de internet y controlar el acceso a los recursos filtrando puertos y direcciones. Es decir que se puede abrir o cerrar a voluntad un puerto, un servicio, una ip o un rango de direcciones, que sea hacia internet o hacia la red local. Un firewall es ante todo un sistema de seguridad y como tal, ha de instalarse cerrando la mayor parte de los servicios, abriendose luego de uno en uno, segn necesidad. Por defecto se dejan abiertos los "servicios mínimos" para acceder a la web, al ftp, etc. La dificultad aparece cuando queremos usar servicios que comunican en otros puertos, y no en los habituales, como es el caso de amule (emule para los infelices), amsn o gnomemeeting. Si el firewall bloquea los puertos usados por estos programas, dejan de funcionar o funcionan incorrectamente. Éstos son los detalles de la red en la que me baso para la explicación:
El asunto de los puertos de amule es recurrente en internet. Hay miles de páginas que tratan del tema, pero no es tan fácil encontrar información completa y detallada. La mula usa los puertos 4661 y 4672 para comunicarse. Si no están abiertos, se recibe una "Low ID", es decir que no existe una comunicación completa porque el firewall bloquea los puertos necesarios y todo funciona lentísimo, tanto las descargas como las bsquedas desesperan por su lentitud. El "Hight ID" se consigue redirigiendo los puertos en ambos sentidos entre emule e internet. Aquí están las reglas que uso en mi Coyote Linux, pero antes, el truco inesperado: se encuentra en el wiki de amule, en letra chica, que el Low ID "puede" deberse también a direcciones locales que terminan en cero. Si se busca el Id Alta y la ip termina en cero (Era mi caso: 192.168.0.200), habrá que cambiar la ip de la máquina. Ahora las reglas:
> aMule en varios puestos y todos con ID Alta. Bien, después de torear las IP con ceros y las iptables, funciona el amule a toda velocidad en el equipo principal, pero qué pasa con las demás máquinas de la red? En mi caso quiero tener Id Alta en un portátil además de la máquina de sobremesa. Para obtener ID Alta en varias máquinas de una red local detrás de un firewall, he aquí un pequeño hack. La idea está implicitamente presentada en las opciones del programa aMule y encontré la implementación online. En la pestaña "Conexión" de las opciones de amule se pueden elegir los puertos para conectar con el exterior, por defecto los puertos TCP 4661 y UDP 4672. Si se cambian dichos puertos en el amule de una segunda máquina de la red, se puede crear una nueva regla de iptables en el firewall para redirigir esos nuevos puertos. Aquí está la configuracion de los dos equipos juntos (En el emule de "Portátil" se han cambiado los puertos TCP 4661 a 4663 y UDP 4672 a 4674):
Hay que observar un detalle más, de orden cabalístico. Tiene que haber una diferencia numérica de 3 entre el segundo puerto TCP y el primer puerto UDP para que todo vaya bien. No tengo idea del por qué; lo ví en la red y he averiguado que es así pero no sé explicarlo. Así, en PC principal, la diferencia entre 4662 y 4665 es de 3. También lo es entre 4664 y 4667 en Portátil. Este 3 me tiene intrigado, si alguién tiene una idea, que me lo cuente, gracias. > Resumiendo
> Nota sobre Coyote El autor del programa dejó de mantener Coyote en el 2004. Un excelente equipo de programadores de Brasil ha retomado el proyecto, llamándolo BrazilFW Firewall and Router. El resultado, a pesar de ser de muy alta calidad, y mucho más completo, no se puede comparar con su ancestro Coyote Linux. Este necesita pocos recursos, no requiere disco duro, y sobretodo, se ocupa solo de ser un buen firewall, no un conjunto de programas y servicios interminable que, si bien añaden funciones interesantes (ftp, ssh, etc), no dejan de crear un engendro complejo, más caro, ruiidoso a la fuerza, comedor de energía, y sobretodo con más probabilidades de fallar en su cometido. No que la calidad de la distribución sea inferior, sino que a más complejidad, más posibilidades de fallar. El coyote se recupera de un corte de luz en segundos, el tiempo de cargar el disquete; al no tener disco duro, este jamás se estropeará; el disquete se lee una sola vez cuando arranca, no hace swap como puede pasar con un disco duro, ni escribe fuera de la memoria. Y como el disquete no tiene espacio libre, no tendremos ganas de cargar más programas que podrían vulnerar la seguridad del equipo de seguridad de la red, es decir el firewall. Mi Coyote corre en un Pentium a 100Mhz, 32 RAM, sin teclado, ni ratón, ni pantalla, gasta tan poco que he desenchufado el ventilador del procesador y también el de la fuente: hace menos ruido que una piedra y no se calienta. BrasilFR tiene una multitud de servicios, rebasando lo que estimo necesario para un firewall, como puede ser un servidor web, ftp, de correo, etc. |