<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://php.apsique.com" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Php y otras yerbas - ECAL: usando un viejo computador con Ubuntu como router - Comentarios</title>
 <link>http://php.apsique.com/ecal/routing</link>
 <description>Comentarios para &quot;ECAL: usando un viejo computador con Ubuntu como router&quot;</description>
 <language>es</language>
<item>
 <title>Bueno, no guardaste el</title>
 <link>http://php.apsique.com/ecal/routing#comment-83070</link>
 <description>&lt;p&gt;Bueno, no guardaste el archivo en /etc/init.d/iptables.sh&lt;/p&gt;
&lt;p&gt;La verdad, puedes ponerle el nombre que quieras, pero debe estar si o si en /etc/init.d para que funcione como servicio. Es recomendable, claro está, probarlo en tu home hasta que esté listo.&lt;/p&gt;
</description>
 <pubDate>Mon, 21 Jul 2008 12:30:44 -0700</pubDate>
 <dc:creator>clbustos</dc:creator>
 <guid isPermaLink="false">comment 83070 at http://php.apsique.com</guid>
</item>
<item>
 <title>todo me resulta, menos la</title>
 <link>http://php.apsique.com/ecal/routing#comment-83069</link>
 <description>&lt;p&gt;todo me resulta, menos la ejecución del script mediante:&lt;/p&gt;
&lt;p&gt;# /etc/init.d/iptables.sh start&lt;/p&gt;
&lt;p&gt;Muestra:&lt;/p&gt;
&lt;p&gt;sudo /etc/init.d/iptables.sh start&lt;br /&gt;
sudo: /etc/init.d/iptables.sh: command not found&lt;/p&gt;
&lt;p&gt;A ver si me puedes ayudar porfavor, &lt;/p&gt;
&lt;p&gt;Salu2&lt;/p&gt;
&lt;p&gt;Buena guía.&lt;/p&gt;
&lt;p&gt;PD, uso Ubuntu 8.04&lt;/p&gt;
</description>
 <pubDate>Mon, 21 Jul 2008 11:12:33 -0700</pubDate>
 <dc:creator>Tatan</dc:creator>
 <guid isPermaLink="false">comment 83069 at http://php.apsique.com</guid>
</item>
<item>
 <title>ECAL: usando un viejo computador con Ubuntu como router</title>
 <link>http://php.apsique.com/ecal/routing</link>
 <description>&lt;p&gt;Una de las grandes cosas de cambiarse con tu novia es que puedes abrazarla al dormir. Una de las malas es abandonar tu querida y cómoda conexión pppoe por una de cable estática. Claro, la dirección IP es fija, pero estás obligado a usar un router para darle acceso al resto de los computadores.&lt;/p&gt;
&lt;p&gt;Como no tengo el presupuesto (todavía) para comprar un router, me puse a buscar en internet soluciones de router por software, tanto para windoze como para linux. Para la ventanita, lo mejor que pille fue &lt;a href=&#039;http://www.software602.com/products/ls/&#039;&gt;602Lan Suite&lt;/a&gt;, que la s tiene todas y es freeware para 5 usuarios o menos: proxy, nat, firewall, servidor http, dns, pop3, smtp.... Todas. Y funciona bastante bien, les diré.&lt;/p&gt;

&lt;p&gt;Pero como somos amantes del pingüino, obviamente estarán esperando como hacer un router con linux. En los siguientes párrafos entregaré las indicaciones para el servidor; si alguien lo necesita, después puedo dar algunas sugerencias para los clientes&lt;/p&gt;
&lt;!-break--&gt;
&lt;p&gt;Lo primero, compren una tarjera de red extra, para dar acceso a su LAN. Aquí en chile, pueden encontrar una decente a menos de $4.000 (6 dólares).&lt;/p&gt;
&lt;p&gt;Después, les recomiendo cambiar sus configuraciones de udev para que la designación de eth0, eth1 y demases sea constante. Para ello, deben crear un archivo en /etc/udev/rules.d, el cual yo llamé 10-network_names.rules, con el siguiente contenido
&lt;pre&gt;
KERNEL==&quot;eth*&quot;,SYSFS{address}==&quot;MAC_TARJETA_INTERNET&quot;,NAME=&quot;eth0&quot;
KERNEL==&quot;eth*&quot;,SYSFS{address}==&quot;MAC_TARJETA_LAN&quot;,NAME=&quot;eth1&quot;
&lt;/pre&gt;
&lt;p&gt;Las mac de sus tarjetas las pueden encontrar haciendo un ifconfig con la cuenta de root. Por ejemplo:&lt;/p&gt;
&lt;pre&gt;
# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:E0:4C:97:7D:B2  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1117472 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1364999 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:700780937 (668.3 Mb)  TX bytes:852627881 (813.1 Mb)
          Interrupt:18 Base address:0xa000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:5179 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5179 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1842022 (1.7 Mb)  TX bytes:1842022 (1.7 Mb)
&lt;/pre&gt;
&lt;p&gt;La mac de mi tarjeta eth0 es la que aparece después de HWaddr, la cual sería 00:E0:4C:97:7D:B2&lt;/p&gt;
&lt;p&gt;Después, es muy conveniete leer el artículo gentooniano en &lt;a href=&#039;http://www.gentoo.org/doc/en/home-router-howto.xml&#039;&gt;http://www.gentoo.org/doc/en/home-router-howto.xml&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Para facilitar las cosas, cree un script para /etc/init.d/, llamado iptables.sh, el cual muestro a continuación&lt;/p&gt;

&lt;pre&gt;
#!/bin/bash
### BEGIN INIT INFO
# Provides:     iptables
# Required-Start: networking
# Required-Stop: networking
# Default-Start:        6
# Default-Stop:
# Short-Description: Set iptables
# Description: Set rules for iptables
### END INIT INFO
#
#Version: @(#)iptables.sh 0.1 21-oct-2006 clbustos@_NO_SPAM_htmail.com
#

export WAN=eth0
export LAN=eth1
export ROUTER=192.168.1.1
export CLIENTE1=192.168.1.2

# Función para crear un puerto de reenvío

iptables_forward () {

iptables -t nat -A PREROUTING -p tcp --dport $1 -i ${WAN} -j DNAT --to $2
iptables -t nat -A PREROUTING -p udp --dport $1 -i ${WAN} -j DNAT --to $2
}

do_start () {

# Borrar todas las configuraciones
iptables -F
iptables -t nat -F

# Políticas por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP


#Bloquear servicios que sólo deben ser accessibles desde la LAN

iptables -I INPUT 1 -i ${LAN} -j ACCEPT
iptables -I INPUT 1 -i lo -j ACCEPT
iptables -A INPUT -p UDP --dport bootps -i ! ${LAN} -j REJECT
iptables -A INPUT -p UDP --dport domain -i ! ${LAN} -j REJECT

# Servicios que deben ser aceptados en el servidor. En este caso, puerto ssh y 80 (http)

iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT
iptables -A INPUT -p TCP --dport 80 -i ${WAN} -j ACCEPT

# Botar paquetes TCP / UDP en los puertos privilegiados

iptables -A INPUT -p TCP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP
iptables -A INPUT -p UDP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP

# Agregar reglas para NAT
iptables -I FORWARD -i ${LAN} -d 192.168.0.0/255.255.0.0 -j DROP
iptables -A FORWARD -i ${LAN} -s 192.168.0.0/255.255.0.0 -j ACCEPT
iptables -A FORWARD -i ${WAN} -d 192.168.0.0/255.255.0.0 -j ACCEPT

iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE

# Avisarle al kernel que el reenvío ip es algo bueno
echo 1 &gt; /proc/sys/net/ipv4/ip_forward
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 &gt; $f ; done

# Forward
# Todos los paquetes que se envíen al puerto 50000 se enviarán 
# directamente al computador CLIENTE1
iptables_forward 50000 ${CLIENTE1}

}

do_stop () {
iptables -F
iptables -t nat -F
}

case &quot;$1&quot; in
        start)
                do_start
                ;;
        stop)
                do_stop
                ;;
        *)
                echo &quot;Usage: $0 start|stop&quot; &gt;&amp;2
                exit 3
                ;;
esac
&lt;/pre&gt;

&lt;p&gt;Ven? Nada del otro mundo (claro!). En gentoo, pueden hacer un &lt;/p&gt;
&lt;code&gt;rc-update add iptables.sh default&lt;/code&gt;
&lt;p&gt;Mientras que en debian / ubuntu se puede ocupar&lt;/p&gt;
&lt;code&gt;update-rc.d iptables.sh defaults 95 95&lt;/code&gt;
&lt;p&gt;Para que se ejecute automáticamente al iniciarse el computador. Si lo quieren iniciar de inmediato, para probarlo, basta hacer&lt;/p&gt;
&lt;code&gt;# /etc/init.d/iptables.sh start&lt;/code&gt;
&lt;p&gt;Y, voila! tienen su router rápidamente en linux&lt;/p&gt;</description>
 <comments>http://php.apsique.com/ecal/routing#comments</comments>
 <category domain="http://php.apsique.com/el_camino_a_linux">El camino a Linux</category>
 <category domain="http://php.apsique.com/categoria/temas_generales/programacion">Programación</category>
 <pubDate>Sat, 21 Oct 2006 22:05:00 -0700</pubDate>
 <dc:creator>clbustos</dc:creator>
 <guid isPermaLink="false">573 at http://php.apsique.com</guid>
</item>
</channel>
</rss>
