Quiero compartir este script con ustedes para aquellos que quieren compartir internet entre dos computadoras linux.
Para que funcione deben de tener en cuenta lo siguiente antes:
Tener instalado iptables en las maquinas.
Haber agregado los ip's en ambas maquinas en el archivo:
/etc/hosts
El cual debe de ser igual en ambas maquinas y contener algo asi:
127.0.0.1 localhost
192.168.0.1 server
192.168.0.2 cliente
*server es el nombre de la maquina que tendra conexion directa a internet
*cliente es el nombre de la maquina que tendra internet por medio de la maquina server
Haber agregado los dns de su proveedor de internet en ambas maquinas en el archivo:
/etc/resolv.conf
Los dns se agregan con las siguientes lineas:
nameserver 123.123.123.123
nameserver 123.123.123.123
*Donde los numeros se sustituyen por los dns de tu proveedor de interntet
Teniendo estos 3 requisitos previos podemos crear los archivos para los scripts.
El script para la maquina server es el siguiente:
#!/bin/bash
# This script will enable internet connection sharing
# for Linux. This is done using iptables and a kernel
# feature that enables us to allow IP forwarding. It
# will not work if you are not already able to access
# the Internet from this machine. If you are unable
# to access the Internet from client machines after
# running this script, you most likely have a DNS
# issue.
if [ "`whoami`" != "root" ] ; then
echo "You must be root to use this script."
exit 1
fi
echo "This script will enable internet connection sharing"
echo "on your Linux machine. Press Enter key to continue."
read foo
gwdev=`route -n | grep ^0.0.0.0 | awk {'print $8'}`
ipt=`which iptables`
function die() {
echo $1
exit 1
}
if [ ! -x $ipt ] ; then
echo "iptables does not exist, is not in your PATH, or is not executable"
exit 1
fi
echo "Enabling IP forwarding..."
test -z `echo "1" > /proc/sys/net/ipv4/ip_forward` || die "IP forwarding failed"
echo "Enabling IP masquerading..."
test -z `iptables -t nat -I POSTROUTING -o $gwdev -j MASQUERADE` || die "Masquerade failed"
echo "Allowing traffic traffic from the local network..."
test -z `iptables -I FORWARD -o $gwdev -j ACCEPT` || die "Allow forwarded traffic failed"
echo "Enabling connection tracking..."
test -z `iptables -I FORWARD -i $gwdev -m state --state ESTABLISHED,RELATED -j ACCEPT` || die "Connection tracking failed"
echo "Internet connection sharing enabled. Enjoy!"
Lo que tienes que hacer es crear un archivo con el nombre que desees (ej. ishare) en el directorio /usr/bin/ y copiar dentro de el exactamente el script de arriba.
Una vez creado el archivo con el script entonces tienes que darle permiso de ejecucion de la siguiente manera desde root:
chmod 755 /usr/bin/archivo
Una vez hecho esto la maquina server ya esta lista, ahora pasamos a crear el archivo para el script de la maquina cliente.
Este script solo consta de tres lineas:
#! /bin/sh
ifconfig eth0 192.168.0.2 broadcast 192.168.0.255 netmask 255.255.255.0
route add default gw 192.168.0.1
Para este script crea un archivo con el nombre que desees (ej. isharec) en el directorio /usr/bin/ y hay que darle permisos de ejecucion de la misma manera:
chmod 755 /usr/bin/archivo
Ya teniendo todo hecho hasta este paso ya solo es cuestion de ejecutar ambos scripts.
Al tener las dos maquinas encendidas y la maquina server conectada ya a internet entonces en la maquina server ejecuta el archivo del script de esa maquina siendo root desde cualquier directorio (solo es cuestion de escribir el nombre del archivo y presionar enter)
Sigue los breves pasos del script hasta que te diga: "Internet connection sharing enabled. Enjoy!"
Despues ejecuta esto como root:
ifconfig eth0 192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0
Ahora en la maquina cliente ejecuta de la misma manera el archivo creado para esta maquina, este no te dara ningun mensaje, y si te da alguno sera de error o de que ya habia sido ejecutado el archivo.
Ahora si con esto ya deberas poder navegar en ambas maquinas.
Cada vez que quieras compartir conexion de hoy en adelante solo tendras que ejecutar los archivos (script) cada vez que inicies sesion, asi como la linea extra de la maquina server (ifconfig.....)
Creo mas explicito no pude ser, jejeje.
Espero que no se les dificulte nada y tomen en cuenta que deben de cumplir con los pasos previos mencionados al principio, si no van a haber fallas.
Las dudas, comentarios, complementos, etc son bienvenidos.