Para compartir internet desde Ubuntu a Windows (Copy – Paste)

March 17, 2006

1.- Creamos un nuevo archivo que vamos a editar:

$ sudo gedit /etc/init.d/iptablesconf

2.- Ahora copiamos y pegamos el siguiente script en el editor de texto, sólo tenemos que modificar las 5 cadenas que están en negrita, donde pone eth1 y eth0 lo revisaremos para ver si efectivamente eth1 y eth0 son nuestros dispositivos de red conectados a internet y a la red local respectivamente.

Lo siguiente es por si queremos redigir cierto puerto a un ordenador de la red (que llamaremos pc2) local para que pueda por ejemplo usar el emule o tener activo un servidor ftp, etc.. , se supone que en el ejemplo redirigiremos en puerto 7778 tcp y 7779 udp al pc con la ip 192.168.0.2

Si no estamos interesados en redirigir puertos podemos borrar/comentar esas 3 variables.

#### SCRIPT DE CONFIGURACION DE IPTABLES ####
#!/bin/bash

# Dispositivo de red de internet
EXIF="eth1"
# Dispositivo de red local
INIF="eth0"


# Puertos tcp que se desean redirigir (separados por espacios)
puertosTCP="7778"
# Puertos udp que se desean redirigir (separados por espacios)
puertosUDP="7779"
# ip a la que se le redirigen los puertos
pc2="192.168.0.2"

fail=0

[ -f /etc/default/rcS ] && . /etc/default/rcS
. /lib/lsb/init-functions

log_begin_msg "Aplicando Reglas de Firewall..."

## Borrado de reglas anteriores
iptables -F || fail=1
iptables -X || fail=1
iptables -Z || fail=1
iptables -t nat -F || fail=1

## Establecemos politica por defecto
iptables -P INPUT ACCEPT || fail=1
iptables -P OUTPUT ACCEPT || fail=1
iptables -P FORWARD DROP || fail=1
iptables -t nat -P PREROUTING ACCEPT || fail=1
iptables -t nat -P POSTROUTING ACCEPT || fail=1

# Marcar paquetes salientes con su ip de origen
iptables -t nat -A POSTROUTING -o $EXIF -j MASQUERADE || fail=1
# Reenvio de IP
echo 1 > /proc/sys/net/ipv4/ip_forward || fail=1

# Aceptar paquetes para reenviar procedentes de la red local
iptables -A FORWARD -i $INIF -o $EXIF -j ACCEPT || fail=1
# Aceptar paquetes para reenviar procedentes de internet de conexiones ya establecidas
iptables -A FORWARD -i $EXIF -o $INIF -m state --state RELATED,ESTABLISHED -j ACCEPT || fail=1

##Se redirigen los puertos configurados arriba

for puerto in $puertosTCP
do
iptables -A FORWARD -i $EXIF -o $INIF -p tcp --dport $puerto -j ACCEPT || fail=1
iptables -t nat -A PREROUTING -i $EXIF -p tcp --dport $puerto -j DNAT --to $pc2:$puerto || fail=1
done

for puerto in $puertosUDP
do
iptables -A FORWARD -i $EXIF -o $INIF -p udp --dport $puerto -j ACCEPT || fail=1
iptables -t nat -A PREROUTING -i $EXIF -p udp --dport $puerto -j DNAT --to $pc2:$puerto || fail=1
done

# Se muestran los resultados
log_end_msg $fail

if [ $fail -eq 0 ]
then
log_success_msg "Verifique que lo que se aplica con: iptables -L -n."
else
log_warning_msg "Se ha producido un error al aplicar alguna de las reglas"
fi

#### FIN SCRIPT DE CONFIGURACION DE IPTABLES ####

3.- Guardamos los cambios y le damos permisos de ejecucion:

$ sudo chmod -v 755 /etc/init.d/iptablesconf


el modo de «iptablesconf» cambia a 0755 (rwxr-xr-x)
Lo ejecutamos:

$ sudo /etc/init.d/iptablesconf


si todo ha ido bien veremos este mensaje:
* Aplicando Reglas de Firewall… [ ok ]
* Verifique la reglas: iptables -L -n.
Ahora utilizamos el siguiente comando para que script se cargue cada vez que arranque el sistema:

$ sudo update-rc.d iptablesconf start 20 2 .


#### ATENCIÓN AL PUNTO DEL FINAL, HAY QUE PONERLO ####

Adding system startup for /etc/init.d/iptablesconf …
/etc/rc2.d/S20iptablesconf -> ../init.d/iptablesconf

4.- Ahora podemos probar si todo funciona, nos vamos a los otros PCs y configuramos la red con ips estaticas (por ej 192.168.0.2 , 192.168.0.3 , etc..) y su correspondiente mascara de subred (255.255.255.0 para el ejemplo) utilizamos como puerta de enlace el pc que comparte la conexión (192.168.0.1 en el ejemplo) y como servidores dns utilizamos los mismos que tenga configurados el pc que da acceso a internet, que podemos verlos utilizando

$ cat /etc/resolv.conf

Esta configuracion la hice y me funciono al toque, solo tuve que poner los DNS en el segundo pc, porque tenia internet, hacia ping al primer pc, hacia ping a internet, pero no entraba a las paginas por sus nombres, solo por sus IPs.

Tambien tengo que decir que esta info la saque de otro lugar, no es mio, asi que tengo que poner el credito al autor, yo solo copie y puse el texto aca, por si lo necesitaba de nuevo, me iba a ser mas facil encontrarlo en mi blog que buscarlo otra vez por internet.

Esta info fue escrita por:
“Mober”
Direccion: Ubuntu-ES

http://www.ubuntu-es.org/node/10513

5 Responses to “Para compartir internet desde Ubuntu a Windows (Copy – Paste)”

  1. Marco trillos Says:

    hola amigo me gustari preguntarte si los cps se ven entre si

  2. Marco trillos Says:

    yo tengo una idea en mente pero sencillamente no se como explicar es algo asi pero lo que quiero es que los pc no se vean entre si muchas gracias por la ayuda

  3. manuel Says:

    * Aplicando Reglas de Firewall… Bad argument `–state’
    Try `iptables -h’ or ‘iptables –help’ for more information.
    Bad argument `–dport’
    Try `iptables -h’ or ‘iptables –help’ for more information.
    Bad argument `–dport’
    Try `iptables -h’ or ‘iptables –help’ for more information.
    Bad argument `–dport’
    Try `iptables -h’ or ‘iptables –help’ for more information.
    Bad argument `–dport’
    Try `iptables -h’ or ‘iptables –help’ for more information.
    [fail]
    * “Se ha producido un error al aplicar alguna de las reglas”

  4. manuel Says:

    espero me digas como solucionarlo amigo

  5. dansanti Says:

    Bueenas!!

    Mira aquí tengo una forma más fácil de compartir internet en ubuntu

    http://probandoubuntu.blogspot.com/2009/08/compartir-internet-con-ubuntuprobado-en.html

    saludos..


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: