Compartir internet de Ubuntu a Windows

Posted on julio 21, 2007. Filed under: GNU/Linux |

Bueno acá va mi primera aparición en lo q es la blogosfera :P…Espero poder seguir posteando.. Siempre relacionado a la informática y alguna q otra boludes..

Ahora bien.. como muchas veces tenemos en casa más de un PC que accede a través del nuestro a internet con la conexión compartida de windows xp, y queremos hacer lo mismo con linux para que los demás puedan seguir conectandose a internet mientras usemos linux.

Lo primero q debemos hacer es instalar samba..

Que es samba??

Es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con Linux o Mac OS X se vean como servidores o actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio (PDC), como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autenticar con su propio archivo de usuarios.

Para instalar samba vamos a:

Sistema > Administración > Carpetas Compartidas

Ahí automáticamente si no tenemos instalado los paquetes de samba nos va a decir q los instalemos… damos todo ok.. instala y cerramos..

Ahora bien.. una vez q instalamos samba seguimos los siguientes pasos..

1.- Abrimos una consola y 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 .

((el punto al final hay q ponerlo!!))

veremos este mensaje:

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

Ahora si todo ha ido bien debería funcionar internet en los otros PCs una vez configurados.

Espero q sea de ayuda.. SALUDOS

Make a Comment

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

4 comentarios to “Compartir internet de Ubuntu a Windows”

RSS Feed for HARDSOFT Comments RSS Feed

buen tuto pero…. me sale un error al ejecutar
sudo /etc/init.d/iptablesconf
—————————————————-
* 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

esto es en ubuntu7.10, saludos!!

Copie y pegue el script, pero me da los siguientes errores:

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”

che tiene un error el script!!
revisen en los comentarios de esta entrada http://jgutierrez.wordpress.com/2007/12/08/dar-internet-a-otro-pc-con-cable-cruzado/ . Yo lo arregle poniendo 2 guiones antes de state en la linea 45 (–state)

cuando pongo:

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

me dise:

System startup links for /etc/init.d/iptablesconf already exist.

que tengo que hacer ??


Where's The Comment Form?

Liked it here?
Why not try sites on the blogroll...

A %d blogueros les gusta esto: