Prueba y compara el rendimiento de tu PC con nuestro banco de pruebas.

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 ACCEPT

    22: 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 0

    crea 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_irc

    y 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 ACCEPT

    con 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 😄


Accede para responder