Compartir Conexion
-
Buenas, tengo un ordenador ke pretendo poner de servidor ya tengo instalado y actualizado debian en el, pero claro no tengo ni idea de linux practicamente XD y mi problema es q he mirado varias guias de como compartir la conexion a una red local q hay por ahi con 2 tarjetas de red y no me va ninguna siguiendo todo paso a paso, mi pregunta es: alguien sabe de alguna guia para hacer lo q kiero en la q venga bien explicado todo?? pq pese a instalar y configurar los ordenadores tal y como ponian en las guias esas no me funcionaba ná…. solo conseguia tener internet en el servidor al ke esta enchufao el cable modem xD
gracias -
Supongo que lo que quieres es que dentro de la misma red, uno de los ordenadores sea el que reciba la conexión desde fuera por una tarjeta de red y la ofrezca a los demás de la red privada por otra.
Lo puedes hacer facilmente si tienes instalado iptables y disponibles los módulos usando un pequeño script en el servidor y apuntando el resto de ordenadores de la red privada hacia él como gateway.El script en particular no me lo se entero (se puede hacer con solo una instrucción pero el que uso define también unas reglas de firewall). Si te sigue interesando te lo pongo aquí o algo, aunque tendrás que retocarlo un pelin, y te explico como se usa.
-
si que me sigue interesando, a ver si puedes ponerlo y explicarmelo pliisss
-
Bueno, a ver si no me extiendo mucho. Primero el script. Está sacado de alguna guia sobre el enmascaramiento y el snat de por ahí. Yo solo adapté alguna cosilla pequeña. No se quien es el autor pero gracias allí donde estés.
#!/bin/bash
IPTABLES=/sbin/iptables
Interfaz conectada a internet
EXT="ppp0"
Interfaz conectada a la red interna
INT="eth0"
case "$1" in
start)Cargamos los módulos necesarios
echo "Setting firewall rules…"
echo -n "Loading kernel modules: "
/sbin/insmod -q -s ip_tables
/sbin/insmod -q -s ip_conntrack
/sbin/insmod -q -s ip_conntrack_ftp
/sbin/insmod -q -s ip_conntrack_irc
/sbin/insmod -q -s iptable_nat
/sbin/insmod -q -s ip_nat_ftp
echo "done"Activamos el IP forwarding
echo -n "Activating IP Forwarding support: "
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "done"Eliminamos las reglas anteriores
echo -n "Deleting firewall rules: "
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -F
$IPTABLES -t nat -F
echo "done"echo -n "Activating NAT: "
$IPTABLES -t nat -A POSTROUTING -s 192.168.9.0/24 -d 0.0.0.0/0 -o $EXT -j MASQUERADE
echo "done"echo -n "Activating ICMP echo request: "
$IPTABLES -A INPUT -i $EXT -p ICMP -j ACCEPT
echo "done"echo -n "Setting firewall port rules: "
21: ftp
$IPTABLES -A INPUT -i $EXT -p TCP --dport 21 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -i $EXT -p TCP --dport 2100 -m state --state NEW -j ACCEPT22: ssh
$IPTABLES -A INPUT -i $EXT -p TCP --dport 22 -m state --state NEW -j ACCEPT
25: smtp
$IPTABLES -A INPUT -i $EXT -p TCP --dport 25 -m state --state NEW -j ACCEPT
80: apache
$IPTABLES -A INPUT -i $EXT -p TCP --dport 80 -m state --state NEW -j ACCEPT
echo "done"
echo -n "Final approach: "
Aceptamos paquetes de una conexión ya establecida
$IPTABLES -A INPUT -p TCP -m state --state RELATED -j ACCEPT
Rechazamos los de conexiones nuevas
$IPTABLES -A INPUT -i $EXT -m state --state NEW,INVALID -j DROP
Rechazamos conexiones de forwarding no establecidas
$IPTABLES -A FORWARD -i $EXT -m state --state NEW,INVALID -j DROP
echo "done"
;;stop)
echo -n "Stopping firewall: "
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -F
$IPTABLES -t nat -F
echo "done"
;;restart)
$0 stop
echo -n "Sleeping a few seconds before setting the rules again: "
sleep 2
echo "done"
$0 start
;;status)
$IPTABLES -L
$IPTABLES --table nat --list --exact --verbose --numeric --line-numbers
;;*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0crea un archivo de texto con esto. Deberias modificar dos cosas en función de como tengas montada la red sobre la que quieres que funcione. Primero: justo al principio se definen las variables "INT" y "EXT", que hacen referencia a las interfaces de red nectadas a la red interna (INT) y a la red que se quiere acceder (en teoría internet, definida por EXT). Yo como comparto la conexión de un modem, pues la variable "EXT" tiene el valor ppp0 que es el de la interfaz que crea con el modem y para la red interna eth0 que es la tarjeta de red que se conecta a la red interna.
segundo: deberias modificar la linea
$IPTABLES -t nat -A POSTROUTING -s 192.168.9.0/24 -d 0.0.0.0/0 -o $EXT -j MASQUERADE
cambiando 192.168.9.0/24 por los valores de la red privada privada. (para el que no lo sepa el /24 indica que la máscara de red es de 24 bits, es decir 255.255.255.0).Le pones el nombre que quieras (yo lo llamo natt) y le das permisos de ejecución. Ahora lo mueves al directorio "/etc/init.d" (o similar según tu distribución). Ahora si has configurado correctamente el script para tus interfaces y direcciones de red, podrías arrancarlo con la orden: /etc/init.d/natt start (como root claro está). Te irá diciendo como carga los módulos y activa las reglas. Si no hay errores un "/etc/init.d/natt status" te daría las reglas definidas y entre ellas alguna haciendo referencia a "masquerade", lo que indica que furula. No sé cual es tu nivel, así que si en algún momento comento cosas que te son muy triviales pido disculpas. Si quieres que el script arranque automaticamente con el ordenador tienes qeu crearle un enlace simbólico desde "/etc/rcX.d" siendo X el nivel de ejecución por defecto de tu máquina.
Vale, ahora en los ordenadores del resto de la red. Simplemente establece la ip del "servidor" como gateway y ponles las DNS de tu conexión. Esto si no asignas las ips a tu red privada por dhcp, que en ese caso puedes pasar ya estos parámetros.
Una observación. muchas cosas de ese script sobran. Son reglas de filtrado para prohibir algunas conexiones "raras" de posibles intrusos, así que si te deja de funcionar algo comentalo y miramos de que puede ser.
Espero noticias.
-
Si lo que tienes es debian la forma más sencilla de compartir conexión es la siguiente:
editar /etc/network/options y poner ip_forwarding a "yes" en vez de a "no"
crear un script que se ejecute al inicio y que ponga lo siguiente
–---- script -----
#!/bin/sh
iptables -t nat -I POSTROUTING -s red_local -o interfaz_externo -j MASQUERADE
----- fin de script ------
red_local es la red a la que quieres dar servicio, por ejemplo 192.168.1.0/24
interfaz_externo es el interfaz por el que se sale a internet, por ejemplo ppp0
Si además en la red local quieres que tus clientes puedan utilizar ftp activo o dcc a través de irc, añadir las siguientes lineas a /etc/modules
ip_conntrack_ftp
ip_nat_ftp
ip_conntrack_irc
ip_nat_ircy con esto compartes perfectamente la conexión. Eso si, ten en cuenta que no tendrás cortafuegos de ningún tipo. Si deseas uno muy sencillito, pero muy potente, puedes añadir las siguientes lineas al script de arriba:
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i interfaz_externo -m state --state RELATED,ESTABLISHED -j ACCEPTcon esto y (a menos que haya cometido algún error tipográfico o esté muy equivocado) disfrutarás de conexión a internet compartida y de una protección aceptable.
espero haberte sido de utilidad.
P.D. Se me olvidaba. Reinicia para que todos los cambios surjan efecto. Existen forma de hacerlo sin reiniciar, pero igual te lio un poco más todavía
-
muchiiiiiiiiisimas gracias a los 2 por contestar, voy a probar espero no tener ningun problema si no ya pondre aki a ve