[COMO] Compartir conexión a internet en red Linux - Windows

Este es uno de los tantos procedimientos existentes para compartir una conexión de Internet en una red de máquinas Linux y Windows
Se parte de la base que red esta compuesta por 2 equipos:
Un servidor, Linux
Una máquina con Windows 9x
Que utilizan direcciones de red reservadas (no utilizables en Internet) de clase C (192.168.x.x).
Las máquinas se identifican como:
Ubuntu 192.168.1.1 (Máquina Linux)
Windows 192.168.1.2 (Máquina Windows)
La dirección de red, es 192.168.1.0
La dirección de "broadcast" es 192.168.1.255
La máscara de subred 255.255.255.0
Configuración de la tarjeta y el sistema bajo Windows:
Acceder a la tarjeta de red desde "Panel de control -> Red" de Windows 9x.
Añadir el protocolo TCP/IP si no esta (Agregar protocolo -> Microsoft -> TCP/IP).
En "Red -> Propiedades -> TCP/IP", pinchar en "Dirección IP", y escribir la dirección que hayas asignado a esa máquina (192.168.1.2 , según el ejemplo que estamos siguiendo). La máscara de subred es 255.255.255.0 (red de clase C).
En "Puerta de enlace (Gateway)", escribir 192.168.1.1 (la dirección de la máquina Linux).
Si se utiliza un servidor de nombres local
Se escribe como dirección IP 192.168.1.1, y como sufijo de búsqueda de dominio el sufijo que se haya asignado para la red (en el ejemplo, Ubuntu).
Pulsar "Aceptar" en todas las cajas de diálogo que se han ido abriendo, y reinicializar el sistema (si se hizo todo bien, el propio Windows pide reiniciar).
Una vez que arranque Windows, es conveniente a hacer un ping a la máquina Linux para comprobar que la red está en funcionamiento (Inicio -> Ejecutar y escribir ping 192.168.1.1).
Si todo va bien, se reciben los "ping" en tiempos de respuesta de 0.x...
Para identificar a las máquinas de la red por su nombre en lugar de su dirección IP, se debe crear un archivo hosts en el directorio c:\windows.
Conviene editar el archivo que viene preinstalado como c:\windows\hosts.sam y modificarlo para que se adapte a las necesidades:
Archivo c:\windows\hosts:

127.0.0.1 localhost
192.168.1.1 Ubuntu
192.168.1.2 Windows

Para el caso de tener más máquinas en la red, se efectúa el mismo trabajo en cada uno de los equipos aplicándole a cada uno su dirección IP correspondiente

Configurar correctamente el servidor Linux para que sirva de pasarela a Internet al resto de los equipos.
La dirección IP del servidor es 192.168.1.1
Ahora es necesario reconocer al resto de los equipos por sus nombres Windows además de por sus direcciones IP 192.168.1.2
Existen dos sistemas para hacer esto.
Podemos instalar un servidor DNS interno que identifique a todos los equipos de nuestra red, haciendo que consulte a otro servidor externo o "forwarder" en las peticiones a máquinas del exterior.
O
Podemos limitarnos a identificar nuestros equipos manteniendo un fichero "/etc/hosts" en el que pondremos los nombres de todas las máquinas de la red.
Cualquiera de las dos maneras es válida, teniendo en cuenta que hablamos de una red pequeña. Sin embargo, si deseamos utilizar determinados servicios de red (Dial on demand, por ejemplo), es recomendable crear un servidor DNS para que las peticiones vayan en primer lugar a tu servidor y no intenten salir a la red cada vez que quieran resolver un nombre desconocido.
Bastará con editar el archivo /etc/hosts, e incluir las siguientes líneas (cambiando los datos que se correspondan con la red):

#Direccion de loopback
127.0.0.1 localhost
#Direcciones de los equipos de la red
192.168.1.1 Ubuntu
192.168.1.2 Windows

Si se mantiene este archivo en el equipo Windows (con el formato del ejemplo de c:\windows\hosts.sam, es posible encontrar a todos los equipos en la red por su nombre además de por su dirección IP.
Para que funcione el archivo /etc/hosts se debe comprobar que existe, en el archivo /etc/host.conf, la orden siguiente:

order hosts bind

Con esta orden, en primer lugar se buscará el nombre de un equipo en el archivo /etc/hosts, y posteriormente se realizará la búsqueda en el DNS que se tenga asignado en el archivo /etc/resolv.conf .
Un archivo /etc/host.conf completo podría ser más o menos así:

#/etc/host.conf
#Primero, buscar en /etc/hosts. Luego en servidor DNS
order hosts bind
#Permitir múltiples direcciones para una máquina
multi on
#Evitar nombres falsos (comprobar si IP corresponde al nombre)
nospoof on

Cuando se conecta a Internet sin tener un dominio ni una dirección IP fija, ésta es asignada automáticamente por el proveedor .
Una dirección IP identifica unívocamente a un único hosts (ordenador), que en este caso es la máquina Linux.
Según esto, las máquinas Windows de la red no podrían acceder a Internet porque sólo se dispone de una dirección IP (la del servidor Linux), y no es posible asignarsela a todos los equipos a la vez.
Para solucionar este problema, existe el enmascaramiento (ip-masquerading).
El enmascaramiento de la dirección IP consiste en que el servidor identifica que uno de los equipos de la red intenta conectar a una dirección de fuera de ésta, y es el mismo servidor el que realiza la petición por sí mismo, en lugar de que la máquina cliente lo haga. Así, el servidor toma la dirección IP de la máquina que hace la solicitud, la enmascara con la dirección IP que le ha sido asignada, la envía, y cuando llega el paquete de respuesta lo reenvía a la máquina que realizó la petición.
Para ello se debe hacer lo siguiente:
Crear un nuevo archivo a editar:

sudo gedit /etc/init.d/iptablesconf

Copiar y pegar el siguiente script en el editor de texto:

#### Inicio del Script de Configuración de IPTABLES ####
#!/bin/bash
# Dispositivo de red de internet (Es la tarjeta de red a través de la cual la máquina linux accede a Internet, en caso de Dial-Up o modem USB es "ppp0" o "nas0"
EXIF="eth1"
# Dispositivo de red local (Es la tarjeta de red a través de la cual la máquina linux se conecta a la red)
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 (Corresponde al nombre e IP de la máquina Windows)
Windows="192.168.1.2"
fail=0
[ -f /etc/default/rcS ] && . /etc/default/rcS
. /lib/lsb/init-functions
log_begin_msg "Ejecutando Las Reglas del Firewall..."
## Se borran las reglas anteriores para poder aplicar las nuevas
iptables -F || fail=1
iptables -X || fail=1
iptables -Z || fail=1
iptables -t nat -F || fail=1
## Establecer la política por defecto (Que se permite ingresar y salir)
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 los 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 los paquetes para reenviar procedentes de la red local
iptables -A FORWARD -i $INIF -o $EXIF -j ACCEPT || fail=1
# Aceptar los 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 $Windows:$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 $Windows:$puerto || fail=1
done
# Se muestran los resultados
log_end_msg $fail
if [ $fail -eq 0 ]
then
log_success_msg "Controle lo que se aplica con: iptables -L -n."
else
log_warning_msg "Se produjo un error en alguna de las reglas"
fi
#### Final del Script de Configuración de IPTABLES ####

Guardar los cambios y darle permisos de ejecución:

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

Ejecutarlo:

sudo /etc/init.d/iptablesconf

Si esta correcto aparecerá un mensaje parecido a:
Ejecutando Las Reglas del Firewall... [ ok ]
Para que script se cargue al inicio ejecutar:

sudo update-rc.d iptablesconf start 20 2 .

Fin

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

mmmmm, util pero, me servira

mmmmm, util pero, me servira ami?
te comento brevemente mi problema:
Tengo Ubuntu KK y Windows XP, en Ubuntu tengo interne, pero en window no, bueno, figura que si, pero no puedo usar internet, y en cmd no me da ping ni con url ni con ips. Tengo los drivers y todo eso, sigue sin andar. Antes me anda internet con Windows, despues pase a tener solo Ubuntu y el viernes instale Windows en otro disco.

Hubo veces que tube internet con Windows, pero despues volvia el mismo problema.
En la parte de red figura todo ok meno los paquetes recibidos de Enlace de puerta de internet, creo que se llamaba... Bueno, gracias.

A si, tengo 2 PCS, una solo con Ubuntu 9.04 y otra (la mia) con lo que dije. GeForce 6100, Speedy, router D-Link ID-524 (192.168.0.1)

adiu y gracia

Compartir internet ubuntu con windows

El comparitr la conexion entr maquinas ubuntu y windows es mas facil de lo que parece.
Yo he echo esto y no me complique mucho la vida en tener que escribir codigo ni nada.
Os dejo como comparto la conexion de Ubuntu a Windows XP.

Paso 1: Editar las conexiones de red

En tu panel superior, al costado del reloj y los iconos del sistema, veras el indicador de red. Cuando estas conectado al wireless, te aparece un icono que te muestra la fuerza de tu red.
Clic derecho en este icono y luego clic en "editar conexiones".

Paso 2: Editar las configuraciones de Ethernet

En la ventana que acabas de abrir, asegurate que estes en la pestaña "cableada". Luego selecciona la conexion "Auto eth0" y clic en "editar".

Alternativamente puedes crear una nueva conexion dando clic en "Añadir" pero me parece mas simple cambiar la que esta por defecto.
Solo asegurate de recordar lo que estas cambiando en caso de que alguna vez quieras usar la red cableada, ya que tendras que
regresar a como estaba para hacerlo.

Paso 3: Configurar para Compartir

Aqui es donde empieza un poco la confusion, pero no te asustes, no es tan malo. Dale clic en la pestaña "Ajustes de IPv4".
A lado de la palabra "Metodo" hay un menu desplegable en cual deberas escoger la opcion "Compartida con otros equipos".

Luego de hacer esto vas a windows y en las conexiones de red y le pones que la ip la asigne por dhcp.
Listo ya tienes internet en winows.
Espero que esto os sea de ayuda.
Ojo, esto es para compartir red wifi. Si pillas wifi en tu portatil y quieres compartirla con la torre u otro portatil que no tenga wifi.
Para compartir la cableada tendras que tener 2 bocas de conexion rj45 en el Pc una de entrada y otra que salga para el otro ordenador.

Inicio de sesión

Encuesta

¿Qué entorno gráfico prefieres usar? ¿Por qué?
Unity
23%
Gnome 3
23%
Gnome classic
38%
Kde
6%
Xfce
4%
Enligthenment
1%
Lxde
2%
Otro - Especificar
1%
¿Entorno gráfico? Ninguno, ¡solo uso la consola!
2%
Total de votos: 1091