Building Linux Firewall

En primer lugar, tenemos que configurar el servidor proxy Squid para poder realizar proxy transparente para el ordenador de los niños y negar el acceso a sitios porno y algunos virus.
Squid se puede encontrar en www.squid-cache.org, y es el servidor proxy más utilizado en la mayoría de las distribuciones de Linux tienen paquetes de Squid. La mejor documentación para Squid es el archivo de configuración en sí, que es muy comentado.
Vamos a correr de calamar en su puerto por defecto, 3128. Para poder utilizar Squid como proxy transparente, tenemos que agregar la siguiente información en el archivo de configuración (normalmente / etc / squid / squid.conf):

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy en
httpd_accel_uses_host_header en

A continuación, tenemos que definir las listas de acceso de Squid para la red interna para tener acceso a Calamar y negar a los sitios porno y archivos peligrosos. Haremos esto para nuestra red interna de todo, pero vamos a utilizar el proxy transparente sólo para la computadora de los niños. Cualquier archivo puede ser un virus, y las extensiones de archivo que siguen son sólo un ejemplo, así que por favor siéntase libre de añadir cualquier extensión de archivo se considera peligroso. En el archivo squid.conf, añadimos las siguientes líneas:

acl todos src 0.0.0.0/0.0.0.0
acl 192.168.1.0/24 our_network src
acl porno url_regex-i adulto sexo porno hardcore fetish
acl descargas urlpath_regex \. exe $ \. zip $ \. zip $ \. pif $ \. scr $
http_access deny porno
http_access deny descargas
http_access allow our_network
http_access deny all

La ACL llamado "porno" contiene una lista de nombres que no están permitidos en la dirección, de modo que usted no será capaz de acceder a un sitio que tiene una de esas palabras en su nombre utilizando el servidor proxy.
El ligamento cruzado anterior denominada "Descargas" contiene una lista de tipos de archivo que no se les permite tener acceso, por lo que no será capaz de descargar archivos con las extensiones en la lista utilizando el servidor proxy.

Para el dispositivo de juego, tenemos que saber cómo funciona cuando somos los anfitriones de los juegos GameSpy Arcade en él. Vamos a sus sitios web y vemos que tenemos que transmita los siguientes puertos para el dispositivo de juego:

  • 6500 UDP: por GameSpy Arcade
  • 6700 UDP: Túnel de GameSpy
  

Vamos a avanzar en los puertos:

iptables-t nat-A PREROUTING-p tcp - dport 6500-j DNAT - to 192.168.1.200
iptables-t nat-A PREROUTING-p tcp - dport 6700-j DNAT - to 192.168.1.200

Para el dispositivo de juego al trabajo, también tenemos que realizar NAT para ello, que se incluirá en la regla de NAT para toda nuestra red, que será al final.

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.100-j DROP

Para el ordenador de los niños, vamos a realizar proxy transparente, lo que significa que el equipo utilizará el servidor proxy, sin configurar el navegador web. Ya hemos creado el servidor proxy, por lo que ahora tenemos que redirigir todo el tráfico por el puerto 80 TCP con el servidor proxy. También queremos que el equipo de los niños el acceso al puerto TCP 443, que es https:

iptables-t nat-A PREROUTING-s 192.168.1.55-p tcp - dport 80-j REDIRECT - to-port 3128
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-p tcp - dport 443-j MASQUERADE

Ahora, las peticiones de 192.168.1.55 a cualquier host con el puerto de destino 80 o el 443 irá a nuestro servidor proxy, así que todo se hace a nivel local y no tenemos para hacerse pasar 192.168.1.55 a esas solicitudes.
A continuación, tenemos que mascarada ordenador de los niños cuando envía peticiones de DNS a nuestro proveedor de:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-p tcp - dport 53-j MASQUERADE

Peticiones DNS utiliza el puerto 53 UDP, por lo que ahora el equipo de los niños pueden acceder a los servidores DNS.
Queremos que les permita utilizar Yahoo! Messenger sólo para chatear (no de voz o la transferencia de archivos). Lectura de Yahoo! Messenger, vemos que Yahoo! Messenger utiliza los puertos 20, 23, 25, 80, 119, 5050, 8001 y 8002. Además, vemos que los ordenadores necesarios para la mensajería instantánea mediante Yahoo! Messenger son:

  1. scs.msg.yahoo.com
  2. scsa.msg.yahoo.com
  3. scsb.msg.yahoo.com
  4. scsc.msg.yahoo.com

Así que es mejor equipo mascarada de los niños la dirección IP cuando se accede a los anfitriones, tenemos que hacer como esto:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scs.msg.yahoo.com-j MASQUERADE
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scsa.msg.yahoo.com-j MASQUERADE
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scsb.msg.yahoo.com-j MASQUERADE
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scsc.msg.yahoo.com-j MASQUERADE

Cuando se usa un nombre canónico en lugar de una dirección IP en la sintaxis de iptables, el router Linux resolver la dirección IP (es) del nombre canónico e insertar las normas en el núcleo usando las direcciones IP. Si un nombre canónico se resuelve en varias direcciones IP, iptables inserta en el núcleo de una serie de normas iguales al número de direcciones IP de resolverse, cada línea con una de las direcciones IP resuelta.

 

Ahora que hemos establecido el acceso de las computadoras de los niños, tenemos que negar el acceso a otros puertos y hosts. Lo hacemos en la cadena POSTROUTING de la tabla nat:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-j DROP

El ordenador portátil y ordenador de sobremesa deben ser capaces de acceder a cualquier cosa, y así, no se introducen normas especiales para ellos, a excepción de la regla MASQUERADE para nuestra red, que ahora vamos a añadir:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.0/24-j MASQUERADE

Una más de configuración debe hacerse en la tabla de NAT para proporcionar la capacidad de conectarse de forma remota a la computadora de escritorio usando VNC. Hemos creado el servidor VNC para usar el puerto TCP 9112 en el equipo de escritorio, así que tenemos que realizar DNAT para este puerto de la siguiente manera:

iptables-t nat-A PREROUTING-p tcp - dport 9112-j DNAT - to 192.168.1.11

Esta es toda la configuración que necesitamos para la red local. Tenemos que establecer algunas reglas de firewall para garantizar el router Linux.
En primer lugar, necesitamos SSH para ejecutar Linux en el router para poder administrar de manera remota. Para garantizar el acceso SSH, lo mejor es crear una cadena llamada SSH en el que permitir o denegar el acceso a SSH. Si se descubre una vulnerabilidad en OpenSSH, es muy probable que los gusanos de escaneo para los servidores de OpenSSH en el puerto 22 se publicará en unas pocas horas. Por lo tanto, puede ser que desee ejecutar el servidor SSH en otro puerto que el estándar (por ejemplo, 1234). La cadena de SSH es creado por:

iptables-N SSH

A continuación, insertar una regla que le dice al núcleo para buscar la cadena de SSH para todas las conexiones entrantes en el puerto TCP 1234:

iptables-A INPUT-p tcp - dport 1234-j SSH

Debemos insertar reglas en la cadena de SSH para permitir el acceso sólo de hosts de confianza. Digamos que la dirección IP en nuestra oficina es 1.2.3.4:

iptables-A SSH-s 1.2.3.4-j ACCEPT
iptables-A SSH-s 192.168.1.0/27-j ACCEPT

La primera regla acepta las conexiones desde nuestra oficina de la dirección IP 1.2.3.4. La segunda regla permite las conexiones entrantes SSH sólo de 192.168.1.0/27, que contiene las direcciones IP de 192.168.1.1 hasta 192.168.1.32, ya que no quiere permitir el acceso SSH desde el ordenador de los niños, la impresora y el dispositivo de juegos . La tercera regla gotas todas las conexiones entrantes al puerto 1234.
El servidor proxy (Squid) tiene su propia seguridad mediante el uso de listas de acceso. Sin embargo, la mejor manera de conseguirla y el router es dejar caer paquetes TCP SYN a través de Internet en la cadena de entrada. De esta manera, ninguna conexión entrante al router Linux se pueden hacer de la Internet, a excepción de SSH en el puerto 1234 de 1.2.3.4, que se corresponde antes de esta regla. También queremos aceptar todos los paquetes en la interfaz loopback (lo) para IPC (proceso de comunicación interna).

iptables-A INPUT-i lo-j ACCEPT
iptables-A INPUT-i eth0-p tcp - syn-j DROP

Distribuyendo paquetes SYN ofrece una buena protección para los procesos que podrían tener errores. Sin embargo, esta entrada sólo borra las conexiones TCP con el flag SYN conjunto (la solicitud para establecer una conexión TCP), y no ofrecen ninguna protección al software que abre los puertos UDP.

un artículo presentado por T Ronald Besser


Descargo de responsabilidad:Nuestro sitio web no es responsable por el contenido de este artículo. Webarticles es un recurso de información gratuito.
Importante: Este artículo "Building Linux Firewall" fue traducida por un software automático. Sentimos pena por los errores de ortografía que pueda haber ocurrido. Gracias por su comprensión.


Online: 191 users browsing the articles directory   


  

|