lunes, 8 de febrero de 2010

Como configurar un gateway linux, con filtrado de contenidos (squid) y firewall (iptables)

Bueno kamaradas esto se aplico en Fedora 11 y bueno puede aplicarse con ciertas modificaciones en CentOS 5.x y RHEL 5.x

Primero recordemos que el gateway o pasarela permite el paso del trafico IP de una red a otra, los objetivos a cubrir por la configuración son:

1. Filtrado de paquetes IP para servicios como sshd, httpd, ftpd sobre la interfaz de red publica
2. Salida a Internet para una red de computadoras usando enmascaramiento
3. Filtrar contenido web de manera básica con un proxy tranparente
4. Bloquear messenger de hotmail, al cliente como vía web

Configuración de firewall

Esta configuración de firewall se aplico en un servidor con dos interfaces de red eth0 que esta conectada a los dispositivos del proveedor y eth1 es la interfaz conectada hacia la red interna.

Archivo de configuración de Firewall en Fedora 11: /etc/sysconfig/iptables

Esta es la sección para la configuración del filtrado

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
# ---> Se acepta todo el trafico del propio host
-A INPUT -i lo -j ACCEPT
# ---> Se acepta todo el trafico proveniente de eth1
-A INPUT -i eth1 -j ACCEPT
# ---> ssh abierto
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# ---> web abierto
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# ---> ftp abierto
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
# ---> web seguro abierto
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
# ---> acceso a webmin :)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -o eth1 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Configuración de la sección de nateo que se encarga de la magia del enmascaramiento de la red interna, la redirección de puerto para el funcionamiento del proxy transparente, esta sección puede servir para redireccionar puertos a un host de la red interna

*nat
:PREROUTING ACCEPT [0:0]
# ---> Conf para el proxy transparente
-A PREROUTING -s 192.168.137.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
# ---> Conf para redirigir el trafico que va al puerto 80 de la IP publica
# ---> a un host de la red interna, es un ejemplo
-A PREROUTING -d 192.168.1.69 -p tcp --dport 80 -j DNAT --to 192.168.137.252:80
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
# ---> Conf para enmascarar el trafico de la red interna 192.168.137.0
-A POSTROUTING -s 192.168.137.0/24 -j MASQUERADE
COMMIT


Bien ya despues de haber configurado el firewall, ahora habilitaremos el forwardeo de paquetes IP entre interfaces de red y lo haremos de forma permanente:
/etc/sysctl.conf

en este archivo modificaremos el valor de la variable net.ipv4.ip_forward a 1, asì que la linea quedara así: net.ipv4.ip_forward = 1

para que se aplique esta configuración se deben reiniciar las interfaces de red con el comando: service network restart

Ojo: perdon por mencionarlo ahora :) pero en este entorno de configuraciones no usamos el NetworkManager así que se deshabilito y se esta usando el servicio network para controlar las interfaces ;)

Bien ahora vamos a ver los ajustes del squid, como bien sabeis el squid se maneja con aplicando alcs, acontinuación los acls y la sección de aplicación

Estas son las lineas extraidas del archivo: /etc/squid/squid.conf

acl Safe_ports port 777 # multiling http
acl apache rep_header Server ^Apache
#----------------------------------------
# --> Listado de ips a las que se les permite usar el messenger de hotmail
acl msnpermitido src "/etc/squid/ipsmessenger"
# --> Bueno cuando se fuerza al messenger a pasar por el proxy este usa un
# --> recurso llamado gateway.dll
acl gatewaydll url_regex gateway.dll
# --> Listado de sitios web a los que se pretende bloquear, sitios de onde se
# --> pueden conectar los usuarios via web al messenger
acl sitesbloqueados url_regex -i ebuddy.com chatear.com messengerfx.com meebo.com webmessenger.msn.com webmessenger.es communicationtube.net iloveim.com kolim.com koolim.com imo.im msn2go.com imhaha.com http://0.channel29.facebook.com/x http://www.facebook.com/ajax/chat g.ceipmsn.com imo.im https://imo.im/ sinmessenger.com
# --> Definición de el segmento de red al que se le permitira acceso al proxy
acl localnet src 192.168.137.0/24
#----------------------------------------
acl CONNECT method CONNECT

Ahora la sección de la aplicación de los acls que creamos

# And finally deny all other access to this proxy
http_access deny CONNECT !SSL_ports
http_access allow localhost
#---------------------------------------------
# --> Bueno la sig linea da paso a las ips listadas que pasen por el proxy para
# --> usar el recurso gateway.dll
http_access allow msnpermitido gatewaydll
# --> A todos los demás se les deniega acceso al recurso gateway.dll
http_access deny gatewaydll
# --> Linea para aplicar el bloqueo de los sitios listados en este acl
http_access deny sitesbloqueados
#---------------------------------------------
http_access allow localnet
http_access deny all

Por ultimo la linea para que squid funcione en modo transparente, buscamos la linea http_port 3128, modificarla pa que quede asi:

http_port 3128 transparent

Recuerda que el firewall debe estar ajustado para que esto funcione, el proxy transparente hace que en las estaciones windows que usen a esta estación linux como gateway no tengan que modificarse para definir el proxy

Unos comandos para la administración de servicios

Control del firewall de Fedora 11

#service iptables stop detener el firewall
#service iptables start iniciar el firewall
#service iptables restart reiniciar el firewall

Control del squid de Fedora 11

#service squid stop detener el proxy
#service squid start iniciar el proxy
#service squid restart reiniciar el proxy

Control de las interfaces de red en Fedora 11

#service network stop detener las interfaces de red
#service network start iniciar las interfaces de red
#service network restart reiniciar las interfaces de red





Visiten http://www.berlinux.com.mx para obtener información acerca de soporte técnico para el sistema operativo Linux

martes, 2 de febrero de 2010

Como iniciar una máquina virtual con VMware en modo desatendido en Linux, más fácil

Esto inicia la máquina virtual sin que requiera interfaz gráfica

1. Preparar la estación para iniciar la máquina virtual

Editar el archivo: /etc/rc.local para agregar la linea:

/usr/bin/vmrun start /virtual-machines/vmware/WinXPPro-SP2-uEv7/WinXPPro-SP2-uEv7.vmx nogui

---> para iniciar la máquina virtual, por ejemplo la máquina WinXPPro-SP2-uEv7.vmx



Visiten http://www.berlinux.com.mx para obtener información acerca de soporte técnico para el sistema operativo Linux

Learning PHP, MySQL & JavaScript (Sixth Edition)

  Capitulo 4. Código: 11.php <?php   $level = $score = $time = 0; ?> Código: 12.php <?php   $month = "March";   if ($mont...