[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
- Inicie sesión o regístrese para enviar comentarios

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.