• Portada
    • Recientes
    • Usuarios
    • Registrarse
    • Conectarse

    Cortafuegos Debian/Iptables

    Programado Fijo Cerrado Movido
    Sistemas operativos
    3
    7
    552
    Cargando más mensajes
    • Más antiguo a más nuevo
    • Más nuevo a más antiguo
    • Mayor número de Votos
    Responder
    • Responder como tema
    Accede para responder
    Este tema ha sido borrado. Solo los usuarios que tengan privilegios de administración de temas pueden verlo.
    • RockmanR
      Rockman
      Última edición por

      ¡Saludoss a todos!

      Estoy tratando de montar un cortafuegos con Debian e iptables y me han surgido las siguientes dudas. A ver si entre todos me podéis ayudar 🙂

      El cortafuegos en cuestión tiene instaladas dos tarjetas de red:

      • eth0 con la ip 192.168.1.1/255.255.255.0 para comunicarse con la LAN.
      • eth1 para comunicarse con internet.

      El problema es que no se como tengo que configurar eth1.

      ¿Tengo que pasar el router ADSL a monopuesto y que eth1 tenga la ip/mascara publica del router?

      ¿Dejo el router en multipuesto como esta ahora? Si es este caso, ¿qué ip/mascara debe tener eth1?

      Espero haberme explicado bien 😉

      Otra duda que me surge al montar el firewall es la siguiente:

      eth01 – Se encarga de comunicarse con la lan. Por tanto cuando un cliente de la lan quiera salir a internet iptables deberá filtrar la salida sobre esta tarjeta de red ¿es correcto?
      eth01 -- se encarga de controlar los accesos desde internet hacia mi lan, iptables controlará en esta tarjeta los accesos hacia dentro ¿es correcto?

      Saludoss y muchas gracias

      1 Respuesta Última respuesta Responder Citar 0
      • V
        vali
        Última edición por

        Yo recomendaría poner el router en monopuesto y utilizar iptables para hacer NAT en vez de dejar que ese trabajo lo haga el router. La ventaja es que netfilter se puede "actualizar" de una forma modular y, por ejemplo, ser capaz de controlar mejor cosas como los ftp activos, el DCC, las conexiones de H323, etc.

        En cuanto a lo de dónde se filtran las cosas que salen o entran a la LAN es importante que comprendas cómo funciona netfilter. Intentaré exponerlo de una forma breve:

        Netfilter se compone de tablas, cada una de las cuales se destina a un "trabajo" distinto sobre los paquetes. Dichas tablas son "filter" (la tabla por defecto y que se encarga del filtrado de paquetes), "nat" (se encarga de modificar los campos de origen y destino en las cabeceras de los paquetes, posibilitando hacer NAT) y "mangle" (que se utiliza para la modificación de otros campos en las cabeceras de los paquetes).

        Cada una de las tablas se divide en cadenas. Dependiendo del origen y el destino del paquete, dichos paquetes irán destinados a una cadena u otra. No todas las tablas tienen las mismas cadenas. De esta forma la tabla filter contiene las cadenas INPUT (para los paquetes que tienen como destino EL CORTAFUEGOS en sí), OUTPUT (para los paquetes que salen DEL PROPIO CORTAFUEGOS, es decir, los que genera ESE EQUIPO), y FORWARD (para los paquetes que ATRAVIESAN el cortafuegos en cualquier sentido, o sea, desde y hacia la LAN).

        Por último, dentro de cada una de las cadenas están las reglas. Estas reglas se examinan SECUENCIALMENTE y, en cuanto un paquete coincide con una regla las siguientes reglas no se examinan (a menos que la regla envíe el paquete a LOG, ULOG o a otra cadena creada por el usuario).
        Si se llega al final de la cadena sin que el paquete haya "coinicidido" con ninguna regla, se sigue la politica por defecto de la cadena (normalmente DROP o ACCEPT).

        No olvides activar ip_forwarding para que los paquetes puedan "atravesar" el cortafuegos (echo 1 > /proc/sys/net/ipv4/ip_forward).

        Por último un pequeño ejemplo de un cortafuegos, que lo cierra todo a cal y canto 😉

        –-------- el script comienza aqui ------------

        #!/bin/sh

        eliminar rastros de antiguas reglas

        iptables -F
        iptables -t nat -F
        iptables -X
        iptables -t nat -X

        cortar la entrada y permitir la salida

        iptables -P INPUT DROP
        iptables -P OUTPUT ACCEPT
        #luego se aceptará solo la salida (*1)
        iptables -P FORWARD DROP

        #cargar modulos para DCC y FTP (mejor hacerlo en otro lado, depende de la distro)
        modprobe ip_conntrack_ftp
        modprobe ip_conntrack_irc
        modprobe ip_nat_ftp
        modprobe ip_nat_irc

        #activar Masquerading
        iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

        (*1) aceptar la salida de la LAN al exterior

        iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

        dejar entrar respuestas a conexiones

        iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

        dejar que desde la lan se pueda conectar al cortafuegos sin restricciones

        iptables -A INPUT -i eth0 -j ACCEPT

        #dejar que el cortafuegos reciba respuestas a sus peticiones
        iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

        ---------------- el script termina aqui ----------------------

        Seguro que me olvido de algo y que no funciona del todo bien (está hecho de un tirón de memoria y sin probar), pero espero que te hagas una idea de cómo va la cosa.

        P.D. Se nota que estaba aburrido... ¿a que si? 😄

        1 Respuesta Última respuesta Responder Citar 0
        • D
          doice
          Última edición por

          Pues yo lo dejé en multipuesto, lo tendria que haber dejado en monopuesto pero me daba pereza y todo me funciona a la perfección con 3 equipos distintos saliendo a internet a traves del linux, lo único que me costó lo suyo fue hacer que una tarjeta fuese para el router y otra para la lan, este es el cutreapaño que hice yo aunque se puede hacer mejor:

          'desconfiguro' eth0 y eth1

          ifconfig eth0 down
          ifconfig eth1 down

          #eth0 con ip tipo 172.16.0.x con netmask 255.255.0.0
          ifconfig eth0 172.16.0.10 netmask 255.255.0.0 broadcast 172.16.0.255

          #eth1 con ip tipo 192.168.0.x con netmask 255.255.0.0
          ifconfig eth1 192.168.0.10 netmask 255.255.255.0

          uso eth0 para salir al router (172.16.0.1)

          route add -net 172.16.0.0 netmask 255.255.255.0 dev eth0

          y eth1 para la lan

          route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1

          Le digo por donde se sale a internet (gateway)

          route add default gw 172.16.0.1 eth0

          1 Respuesta Última respuesta Responder Citar 0
          • RockmanR
            Rockman
            Última edición por

            Gracias a los 2

            Ahora ya lo tengo bastante más claro 🙂 Me voy a buscar toda la información que pueda para configurar netfilter a mi gusto y ya os contare. Seguro que este no será mi último post sobre el tema.

            Saludoss

            1 Respuesta Última respuesta Responder Citar 0
            • RockmanR
              Rockman
              Última edición por

              Pues ahora tengo otro problema.

              1 - Instalo debian con una tarjeta de red (eth0).
              2 - Instalo más tarde la 2ª tarjeta de red (eth1).
              3 - Configuro las ip/mascara para cada tarjeta:
              ifconfig eth0 192.168.2.1 netmask 255.255.255.0 up
              ifconfig eth1 192.168.1.5 netmask 255.255.255.0 up

              4 - ¡¡Vienen los problemas!!

              Eth0 se ha quedado con las dos direcciones ip's (192.168.2.1 y 192.168.1.5).

              Eth1 no tiene asignada ninguna ip.

              Ejecuto el comando ifconfig para comprobar el estado de las tarjetas red y parecen estar bien configuradas. Eth0 tiene su ip y su dirección mac y lo mismo para eth1.

              Además desde un cliente con la siguiente configuración…


              C:\Documents and Settings\Rockman>ipconfig

              Configuración IP de Windows

              Adaptador Ethernet Conexión de área local 2 :

              Sufijo de conexión específica DNS :
              Dirección IP. . . . . . . . . . . : 192.168.2.2
              Máscara de subred . . . . . . . . : 255.255.255.0
              Puerta de enlace predeterminada : 192.168.2.1

              C:\Documents and Settings\Rockman>

              ... puedo hacer lo siguiente:


              C:\Documents and Settings\Rockman>ping 192.168.1.5

              Haciendo ping a 192.168.1.5 con 32 bytes de datos:

              Respuesta desde 192.168.1.5: bytes=32 tiempo<1m TTL=255
              Respuesta desde 192.168.1.5: bytes=32 tiempo<1m TTL=255
              Respuesta desde 192.168.1.5: bytes=32 tiempo<1m TTL=255
              Respuesta desde 192.168.1.5: bytes=32 tiempo<1m TTL=255

              Estadísticas de ping para 192.168.1.5:
              Paquetes: enviados = 4, recibidos = 4, perdidos = 0
              (0% perdidos),
              Tiempos aproximados de ida y vuelta en milisegundos:
              Mínimo = 0ms, Máximo = 0ms, Media = 0ms

              C:\Documents and Settings\Rockman>ping 192.168.2.1

              Haciendo ping a 192.168.2.1 con 32 bytes de datos:

              Respuesta desde 192.168.2.1: bytes=32 tiempo<1m TTL=255
              Respuesta desde 192.168.2.1: bytes=32 tiempo<1m TTL=255
              Respuesta desde 192.168.2.1: bytes=32 tiempo<1m TTL=255
              Respuesta desde 192.168.2.1: bytes=32 tiempo<1m TTL=255

              Estadísticas de ping para 192.168.2.1:
              Paquetes: enviados = 4, recibidos = 4, perdidos = 0
              (0% perdidos),
              Tiempos aproximados de ida y vuelta en milisegundos:
              Mínimo = 0ms, Máximo = 0ms, Media = 0ms

              C:\Documents and Settings\Rockman>

              ¿Como configuró correctamente las tarjetas de red? A ver si podeis ayudarme 🙂

              Saludoss

              1 Respuesta Última respuesta Responder Citar 0
              • D
                doice
                Última edición por

                Deberias usar una ip del tipo 192.168.0.x para la tarjeta que vaya a tu LAN y una tipo 172.16.0.x para la que vaya a tu router.

                ¿Has configurado ambas tarjetas con route? con route y como te puse en mi script le dices al linux cual tarjeta ha de usar en función de a donde se quiera conectar, en mi caso eth0 para conectarse al router (172.16.0.1) y eth1 para la lan (192.168.0.x)

                Espero que te funcione 🙂

                1 Respuesta Última respuesta Responder Citar 0
                • RockmanR
                  Rockman
                  Última edición por

                  ¿Pero no estoy gastando ip's de diferentes subredes?

                  192.168.1.5/255.255.255.0 para el router
                  192.168.2.1/255.255.255.0 para la lan

                  También probaré con route tal y como dices, tengo la corazonada que ese es el problema 🙂

                  Ya os cuento como me va más tarde 🙂

                  Saludoss

                  1 Respuesta Última respuesta Responder Citar 0
                  • 1 / 1
                  • First post
                    Last post

                  Foreros conectados [Conectados hoy]

                  3 usuarios activos (1 miembros e 2 invitados).
                  febesin, pAtO,

                  Estadísticas de Hardlimit

                  Los hardlimitianos han creado un total de 543.3k posts en 62.8k hilos.
                  Somos un total de 34.7k miembros registrados.
                  ssaybb ha sido nuestro último fichaje.