Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

hosting en interdominios
62 lecturas y 25 respuestas
  • Cerrado

    Filtros: pregunta difícil

    Llevo ya un tiempo jugando con los filtros y he decidido cambiar totalmente el enfoque: en lugar de denegar el acceso a ciertos puertos desde el exterior he pensado que sería mejor permitir el aceso sólo a ciertos puertos (tengo servidores activos) y denegar cualquier otra cosa.

    El problema es que no permite navegar si uso una línea del tipo 999 DENY; como última línea. La pregunta es si es posible permitir conexiones entrantes que sean consecuencia de conexiones iniciadas desde mi propio ordenador (p. ej. navegar) para ponerlo como penúltima línea del filtro y así poder usar la famosa última línea 999 DENY

    Espero haberme explicado correctamente. Saludos.

    Este tema es antiguo y puede contener información obsoleta. Abre un nuevo tema para publicar tu mensaje.
    1
    • Cerrado

      Para conseguir lo que quieres puedes usar esta regla: 8 AND…

      Para conseguir lo que quieres puedes usar esta regla:
      8 AND protocol=TCP;
      9 REJECT GENERIC=>origin = DATA/offset = 13/length = 1/mask = 0x12/value = 0x02;

      Lo que hace es rechazar los intentos de conexión, con lo cual cualquiera que intente conectarse contigo no podrá, sin embargo sí que te permitirá realizar a tí conexiones y mandar y recibir datos por ellas.

      Si, como dices, tienes servidores (pongamos por ejemplo hhtp y ftp), puedes hacer:

      1 ACCEPT TCP-DST-PORT=80;
      2 ACCEPT TCP-DST-PORT=21;
      3 AND protocol=TCP;
      4 REJECT GENERIC=>origin = DATA/offset = 13/length = 1/mask = 0x12/value = 0x02;

      (SIN PONER EL DENY)

      De esa forma podrás lanzar tú todas las conexiones que quieras desde cualquier puerto pero sólo podrán conectarse a tí en los puertos 80 (http) y 21 (ftp).

      Esto es mucho más limpio que dejar abiertos los puertos >1024, porque eso permitiría que un troyano se instalase en uno de esos puertos y ni te enterarías.

      Espero haber ayudado.

      Saludos

        • Cerrado

          Fácil: 1 AND SRC-ADDR=xxx.xxx.xxx.xxx; 2 ACCEPT…

          Fácil:
          1 AND SRC-ADDR=xxx.xxx.xxx.xxx;
          2 ACCEPT TCP-DST-PORT=80;
          3 AND SRC-ADDR=xxx.xxx.xxx.xxx;
          4 ACCEPT TCP-DST-PORT=21;
          5 AND protocol=TCP;
          6 REJECT GENERIC=>origin = DATA/offset = 13/length = 1/mask = 0x12/value = 0x02;

          Si es un rango (no una ip determinada), tendrías que hacer SRC-ADDR=xxx.xxx.xxx.xxx/nn (si no entiendes esto y lo necesitas pregúntalo)

          Saludos

          • Cerrado

            Dos cosas más. 1ª.- Si quisiera que dos IPS (de distinto…

            Dos cosas más.

            1ª.- Si quisiera que dos IPS (de distinto rango), accedieran, sería así?

            1 AND SRC-ADDR=xxx.xxx.xxx.xxx;
            2 AND SRC-ADDR=yyy.yyy.yyy.yyy;
            3 ACCEPT TCP-DST-PORT=80;

            [...]

            2ª.- Indícame, por favor, alguna dirección o que tengo que buscar para ver la sintaxis de estos filtros, y no tener que dar tanto la brasa 8-).

            Un saludo.

            • Cerrado

              No sería así porque la regla que estás dando dice que si la…

              No sería así porque la regla que estás dando dice que si la IP es xx... Y yy... haga lo que sea. Evidentemente la IP será una cosa u otra, pero no las dos. Yo haría:

              1 AND SRC-ADDR=xxx.xxx.xxx.xxx;
              2 ACCEPT TCP-DST-PORT=80;
              3 AND SRC-ADDR=yyy.yyy.yyy.yyy;
              4 ACCEPT TCP-DST-PORT=80;

              En cuanto a la sintaxis puedes usar:

              http://support.3com.com/infodeli/tools/remote/ocradsl/20/812_cli20.pdf

              http://support.3com.com/infodeli/tools/remote/ocradsl/http_filtering.pdf

              • Cerrado

                el problema de eso, es que de 10 condiciones que puedes…

                el problema de eso, es que de 10 condiciones que puedes asociar a un filtro en el CLI, consumes 4, dependiendo del firmware, para eso yo prefiero usar un access list (depende del firmware a usar, claro está ya que en las 2.13 y 2.15 no funciona correctamente).

                  • Cerrado

                    si, tu te puedes crear un access list, con las ips que…

                    si, tu te puedes crear un access list, con las ips que quieres que tengan acceso por http/telnet a la configuración del router.

                    los comandos son:

                    ena access
                    add access direccion_ip

                    Con esto, y cada ip que añadas al access list lo que haces es darle permisos para configurar el router via telnet/http, con lo que no te hace falta el filtrado de puertos para 80 y 23.

                    Esto funciona hasta el firm 2.00. En firm superiores hay un bug que no funciona.

              • Cerrado

                ... muchas gracias. A lo voy a dejar este fin de semana y lo…

                ... muchas gracias.

                A lo voy a dejar este fin de semana y lo voy a machacar para ver como se porta 8-).

                Gracias de nuevo.

    • Cerrado

      [Editado 28/10/03 15:29]

      Hola a todos Lo que yo tengo configurado en mi router, entre…

      Hola a todos

      Lo que yo tengo configurado en mi router, entre otras cosas es lo siguiente

      #filter
      IP
      1 reject tcp-dst-port
      Esto deniega todas las conexiones tcp procedentes de la DMZ hacia cualquiera de los puertos inferiores a 1024. Por tanto no tendreis problemas con el navegador.

      Saludos

      No se que pasa, pero el navegador o lo que sea, no me deja escribir detrás de tcp-dst-port el signo <1024, que es lo que yo quiero poner. ¿¿?????

    • Cerrado

      sencillo, con el 999 deny deniegas todo el tráfico de…

      sencillo, con el 999 deny deniegas todo el tráfico de entrada, es decir, tu usas los puertos del 1024 como puertos de usuario para realizar conexiones. Al poner esa línea, deniegas todo ese tráfico también, ej:

      navegación web:
      puerto usuario: 1024
      puerto destino: 80
      ip destino: 80.33.33.33

      pues tu haces una petición a la ip 80.33.33.33 a través de tu puerto 1024, llega al destino, y el destino devuelve a tu puerto de usuario, es decir, el 1024, como tu tienes el 999 deny, el router, no deja entrar ese tráfico (tu lo estás filtrando porque es tráfico que recibes de una forma o de otra).

      El router no distingue entre que la petición la hayas hecho tú o no la hayas hecho para que deje pasar o no deje pasar, esa sentencia elimina todo el tráfico que tu previamente no hayas dejado pasar.

      Saludos.

      • Cerrado

        ... estoy leyendo mucho 8-). Pero no me aclaro. Si lo único…

        ... estoy leyendo mucho 8-).

        Pero no me aclaro.

        Si lo único que podemos hacer es denegar el tráfico que viene del exterior, sin poder distinguir cual solicitamos nosotros desde nuestra LAN (por ejemplo para navegar), no podemos cerrar todos los puertos y luego abrir los que nos interesen, porque no sabemos de que puerto nos va a venir la respuesta. Y por otro lado, no podemos discriminar los paquetes que hemos solicitado, de los posibles "ataques", que puedan llegar a esos puertos. ¿O sí?

        Si creeis que la solución está en un post anterior, o en una paginilla, indicadmela por favor, que me piro de vacaciones el viernes, y quería dejar este tema solucionado.

        Gracias.

        • Cerrado

          Uf sigo tu duda a medias... a ver... el 3com es como una caja…

          Uf sigo tu duda a medias... a ver... el 3com es como una caja tonta o deja pasar tráfico o no deja pasarlo, es binario o 0 o 1, y de ahí no tienes más...

          El problema es el siguiente, tu cuando navegas, utilizas puertos de usuario aleatorios, que van del 1024 en adelante, y para cada conexión que estableces tu puerto va siendo diferente, con lo que no puedes definir qué puerto usar... y que pasa?? si tu pruebas a cerrar a partir del puerto 1024 en adelante (de entrada de tráfico) lo que sucede es que se cae la conexión, no navegas, directamente. con lo que esos puertos no puedes cerrarlos, es decir, porque el router, luego recibes ese tráfico a través de ahí, para eso se supone que está nat, que es quien da esa seguridad.
          tu cuando envias trafico, lo envias a través de un puerto y lo recibes a través de ese mismo puerto, pero no es un puerto estático, a no ser que pongas un proxy, es decir, si tu te configuras un proxy en tu lan en el puerto 8080, puedes denegar todo el trafico que salga de la ethernet hacia internet que no salga por ese puerto, pero al proxy, de entrada de internet le tienes que dejar abiertos del 1024 en adelante, porque sino no podría navegar... ya que si tu por ej, filtras del puerto 1024 en adelante, si, tu peticion hacia internet sale, pero cuando vuelve hay un filtro y dice... "uffff puerto 1024, está en mi lista de no admitidos, y hay que rechazar tráfico" con lo que la petición nunca llega de vuelta. Es igual que algunas ips de internet tienen filtrado el tráfico icmp, pues pasa exáctamente lo mismo, la máquina está online, pero tu con un ping no puedes corroborar que funciona.

          No se si te he aclarado algo.

          Saludos.

          • Cerrado

            Has confirmado lo que no tenía muy claro, pero no me das una…

            Has confirmado lo que no tenía muy claro, pero no me das una solución.

            Se supone entonces que el NAT, no permite entrar ningún tráfico no solicitado?.

            Mi problema es que tenemos mapeado el puerto del terminal server (ahora no recuerdo cual es), y me gustaría filtrar las IPs entrantes a las que se puede servir.

            Será mejor hacer eso en el W2k3 Server o en el router?

            Si la opción es la del router... HOWTO 8-)

            Gracias.

            • Cerrado

              sorry por la tardanza... pero llevo como una semana…

              sorry por la tardanza... pero llevo como una semana incomunicado del mundo :P

              A ver... nat (a no ser que tengas activado iNAT o redirigido un puerto a una dirección ip de la lan) no dejará pasar ningún tráfico que vaya hacia la ip (a no ser que sea de un servicio que se corra en el router http/telnet/tftp... o que se cumplan las dos condiciones anteriores que he dicho, inat, o redirigir un puerto.

              Con lo cual, pues tienes diversas opciones, o bien, que filtre el win2k (a mi no me gusta demasiado) o que lo haga el propio router.

              #filter
              IP:
              #Permite el acceso a las IPs
              1 ACCEPT SRC-ADDR=xxx.xxx.xxx.xxx;
              2 ACCEPT SRC-ADDR=yyy.yyy.yyy.yyy;

              #Deniega el paso de conexión a través de terminal server
              3 REJECT TCP-DST-PORT=3389;

              Yo personalmente me quedo con este filtro... aunque tiene el inconveniente que es que desde esas ips, permites todo el tráfico, tal y como suena, es decir, si tu pones otro servicio, por ej, pc anywhere, pues también tendrían acceso, es la única pega. Otra forma de hacerse sería con los AND, que sería de la forma siguiente (con este, te aseguras que la ip sólo tiene acceso a ese puerto, pero debo de reconocer que me ha dado peores resultados, se le va más la pinza al router):

              #filter
              IP:
              1 AND tcp-dst-port=3389;
              2 REJECT src-addr!=xxx.xxx.xxx.xxx;

              3 AND tcp-dst-port=3389;
              4 REJECT src-addr!=yyy.yyy.yyy.yyy;

              • Cerrado

                BocaDePez BocaDePez
                6
                Creo que lo que estáis buscando es que el router permita que…

                Creo que lo que estáis buscando es que el router permita que tu ordenador inicie conexiones pero que no le permita recibirlas, con esto conseguiríamos:

                * Poder navegar (ya que es tu ordenador el que contacta con el puerto 80 de la página web)

                * Acceder a correo POP3 o IMAP (por lo mismo)

                * Utilizar el Messenger

                etc...

                Y bloquearíamos:

                * Que alguien desde fuera acceda a cualquier troyano (que vaya por TCP)

                * Que se conecten a cualquiera de nuestros servidores

                * Que exploten algún bug de nuestro SO en los servidores (por ejemplo el bug que aprovecha el Blaster)

                * Que escaneen nuestros puertos

                Es decir, las conexiones iniciadas por nosotros discurrirían tal cual (independientemente de desde qué puerto las iniciemos y a que puerto vayan destinadas) y nadie podría abrir una conexión en nuestro ordenador (independientemente de a qué puerto)

                Para ello hay que añadir la línea:
                1 AND protocol=TCP;
                2 REJECT GENERIC=>origin = DATA/offset = 13/length = 1/mask = 0x12/value = 0x02;

                Espero haberme explicado bien

                    • Cerrado

                      ... porque me ha coincidido con las vacaciones, y a la vuelta…

                      ... porque me ha coincidido con las vacaciones, y a la vuelta no he tenido mucho tiempo para este tema, pero creo que ya ha llegado de jugar a la lotería y hay que ponerse serios.

                      Viendo estas dos líneas me he dado cuenta de que no entiendo los parámetros y lo que necesito, es un poco de documentación sobre el tema.

                      #filter a
                      1 AND protocol=TCP;
                      2 REJECT GENERIC=>origin = DATA/offset = 13/length = 1/mask = 0x12/value = 0x02;

                      #filter b
                      IP:
                      1 AND tcp-dst-port=3389;
                      2 REJECT src-addr!=xxx.xxx.xxx.xxx;

                      3 AND tcp-dst-port=3389;
                      4 REJECT src-addr!=yyy.yyy.yyy.yyy;

                      #filter c
                      IP:
                      #Permite el acceso a las IPs
                      1 ACCEPT SRC-ADDR=xxx.xxx.xxx.xxx;
                      2 ACCEPT SRC-ADDR=yyy.yyy.yyy.yyy;

                      #Deniega el paso de conexión a través de terminal server
                      3 REJECT TCP-DST-PORT=3389;

                      1.- Los REJECT y los ACCEPT, ¿actúan igualmente según donde se coloquen?

                      2.- Si hay varios archivos de filtros, como es nuestro caso, ¿que prioridades se asignan?. ¿No sería mejor tener todos los filtros en un mismo archivo?

                      3.- En definitiva, ¿donde hay documentación sobre los filtros del 3com?. Un enlace, por favor.

                      Podía exponer mi situación y copiar lo que me pusiéseis pero prefiero aprender un poquito 8-).

                      Un saludo.

                      • Cerrado

                        perdona por la tardanza... pero... ando más liao que la pata…

                        perdona por la tardanza... pero... ando más liao que la pata de un romano...

                        Documentación sobre los filtros del 3com, yo no he hayado mucha cosa por decirlo de alguna forma, así que me baso siempre en mi experiencia personal y el sufrimiento.
                        Los accept han de ir siempre por delante de los reject, porque sino luego los accept no funcionan. Yo es la pauta típica que sigo, es más, si te fijas via web (no lo recuerdo al 100% pero creo recordar que si) en el momento que pones un reject, ya no te deja poner un accept...

                        Es decir la tónica que habría que seguir:

                        1 accept....
                        2 accept...
                        3 accept...
                        4 reject...
                        5 reject....

                        Saludos.

                        • Cerrado

                          Gracias igualmente. Respecto a los archivos. Lo lógico será…

                          Gracias igualmente.

                          Respecto a los archivos. Lo lógico será tener un fichero. Yo ahora tengo dos, cual tiene prioridad?.

                          Me los voy a cargar, es el filtro de telefonica, y otro que no sé quien lo ha puesto. Ahora mismo, los borro y hago uno con las recomendaciones.

                          Ya os contaré.

                            • Cerrado

                              filtro RULES FOR FILTER /./ PROTOCOLS: ALL #filter IP: 1…

                              filtro

                              RULES FOR FILTER /./ PROTOCOLS: ALL

                              #filter

                              IP:
                              1 ACCEPT src-addr=193.152.37.192/28;
                              2 REJECT tcp-dst-port=23;
                              3 REJECT tcp-dst-port=80;

                              INRSTerminalSvr.FLT

                              RULES FOR FILTER /./INRSTerminalSvr.FLT PROTOCOLS: ALL
                              #filter

                              IP:

                              [FN=Protect Files and Printers| FI=41| Enabled=yes | Type=Auto ]
                              {CI=1| Enabled=yes }
                              1 REJECT UDP-DST-PORT=137;
                              {CI=2| Enabled=yes }
                              2 REJECT UDP-DST-PORT=138;
                              {CI=3| Enabled=yes }
                              3 REJECT TCP-DST-PORT=139;
                              {CI=4| Enabled=yes }
                              4 REJECT TCP-DST-PORT=143;

                              **********************************************
                              A lo que me refiero es a que si en alguno de los dos hubiese reglas contradictorias, como por ejemplo que en uno se abriera el puerto 666 y en otro se cerrara, cual prevalecería y porqué.

                              Es simple curiosidad.

                              Gracias.

                              • Cerrado

                                si, te entiendo, pues que yo sepa, va por orden de ejecución…

                                si, te entiendo, pues que yo sepa, va por orden de ejecución de sentencias de ahí lo de poner el accept antes que el reject, pero... te cuento mis pruebas:

                                un filtro que permite todo el tráfico de una ip y está asociado a una vc

                                otro filtro que prohibe todo el tráfico desde la misma ip y está asociado al atm:1

                                resultado, no puedo conectar con la ip de la máquina.

                                Si asocio el filtro que permite la ip al interface atm:1 y si asocio el filtro que prohibe el tráfico de la ip a la vc, el resultado es el mismo, no es posible conectar con la máquina.

                                Así que... mi conclusión es que predomina el más restrictivo.

                                P.D. Sólo se puede asociar un único filtro a la vc o al interface, por eso te lo decía en el post anterior. Es decir, si yo tengo 2 filtros, a y b (me da igual lo que hagan) sólo puedo asociar el filtro a a la vc o el filtro b a la vc (por ej. para trafico recibido). Por cada vc o por cada interface, se pueden asociar 2 filtros, trafico de entrada y de salida, pero no podemos asociar 2 filtros al trafico de entrada

                                Saludos.