Mar
11
2009
2

Proxy inverso con Squid

 

En el caso que se encuentren varios servidores web en la red interna y exista una única conexión a internet mediante un bastión y se desee acceder a estos distintos servidores web desde internet se debe hacer lo siguiente: en primer lugar, asociar los diferentes nombres de dominio a la misma IP pública, luego poner un Squid en el equipo bastión que redireccione -en función de las URLs que reciba- hacia los equipos internos correspondientes.

TENER EN CUENTA QUE ESTO FUNCIONA EN LA VERSION DE SQUID v2.6.5 en versiones anteriores era bastante diferente.

Configuración

En /etc/squid/squid.conf se debe configurar Squid para que escuche en el puerto 80, avisarle que realiza tareas de Host Virtual, darle permisos de acceso a la red interna y decirle que se conecte en forma directa.

– Puerto 80 y virtual host: Le digo que escuche en la ip pública X.Y.Z.W, al puerto 80 y que es un Host Virtual.

http_port X.Y.Z.W:80 vhost vport

– Permisos en función de las url destino: Esto es nos permite tener mayor seguridad, para que nuestro proxy solo resuelva para las URL que tenemos asociadas.

acl webinternas dstdomain "/etc/squid/webinternas.txt"
http_access allow webinternas

En este archivo tenemos los siguientes dominios de ejemplo:

.javirodriguez.com.es
.miweb.com
.miotraweb.com

Le digo que se conecte en forma directa hacia los sevidores internos:

acl ServidoresLocales dst 192.168.20.0/24
always_direct allow ServidoresLocales

Le digo que use el programa redirector.pl para traducir los pedidos a las IPs internas:

redirect_program /usr/local/sbin/redirector.pl

Script redirector.pl

Es un script en perl al que se le debe ortorgar permisos de ejecución, el contenido del mismo es el siguiente:


#!/usr/bin/perl -p
BEGIN { $| = 1; }
s%^http://www.javirodriguez.com.es([:/]|$)%http://192.168.0.101$1% && next;
s%^http://www.miweb.com([:/]|$)%http://192.168.0.102$1% && next;
s%^http://www.miotraweb.com([:/]|$)%http://192.168.0.103$1% && next;

Proxy inverso sobre https

Utilizar HTTPS suele ser útil, si tenemos que introducir información privada, que no debe circular por la red en texto plano. Supongamos que tenemos un Webmail interno y deseamos que nuestra constraseña viaje por Internet de modo cifrado, es aquí donde entra en juego nuestro proxy inverso sobre SSL (https).

Primero se deben crear los certificados y claves, luego, en squid.conf se debe dar la ruta de los mismos:

http_port 80
https_port 443 cert=/etc/squid/certificados/webmail-epe.crt key=/etc/squid/certificados/webmail-epe.key

Seguramente luego se deben poner los parámetros que vimos al principio: vhost phost

NOTA sobre el Firewall:

Obviamente que el firewall debe permitir las conexiones al puerto 80 desde Internet al firewall, desde el firewall hacia la red interna, y las respuestas desde la red interna hacia internet y hacia el firewall.

Fuente: http://linuxemb.wikidot.com/squid-inverso

Written by Javier Rodriguez in: Linux,Redes | Etiquetas:
Dic
11
2008
19

Desactivar SIP ALG en los routers


Muchos de los actuales routers comerciales utilizan SIP ALG (Application Level Gateway), que viene con esta función habilitada por defecto. Aunque ALG podría ayudar en la solución de problemas de NAT, el hecho es que muchos routers con ALG activado rompen el protocolo SIP.

Hay varias soluciones para clientes SIP detrás de NAT, algunas de ellas en el lado del cliente (STUN, ICE), otros en el lado del servidor (RtpProxy, MediaProxy). ALG trabaja normalmente en el lado del cliente. En algunos escenarios algunas soluciones del lado del cliente no son válidas, por ejemplo STUN con router NAT simétrico. Si nuestro proxy SIP no nos proporciona una solución al NAT, ALG podría tener lugar.

ALG entiende el protocolo utilizado por las aplicaciones específicas que soporta (en nuestro caso SIP), y no un protocolo de inspección de paquetes de tráfico a través de él. Un router NAT con SIP ALG incorporado puede volver a escribir información dentro de los mensajes SIP (cabeceras SIP y cuerpo SDP) y haciendo señalización de audio y tráfico entre el cliente detrás del NAT y el servidor SIP.

El principal problema es la escasa aplicación en el protocolo SIP comercial de la mayoría de los routers y el hecho de que esta tecnología sólo es útil para las llamadas salientes, pero no para las llamadas entrantes:

  • Llamadas entrantes: Cuando un terminal SIP está encendido envía un registro para el proxy con el fin de ser localizable y recibir llamadas. Este registro es modificado por la característica ALG (si no el usuario no sería alcanzable por el proxy, ya que indica una IP privada en el registro “Contacto” de cabecera). Algunos routers comunes sólo mantienen la conexión UDP abierta por un tiempo (30-60 segundos) así que después de ese momento el puerto se cierra terminando el envío de los paquetes y se descartan por el router.

  • Romper la señalización SIP: Muchos de los routers comunes que incorporan SIP SIP ALG modifican los encabezados y el cuerpo SDP incorrectamente, rompiendo el protocolo SIP y haciendo imposible la comunicación.

La siguiente lista contiene algunos modelos de routers con SIP ALG habilitados por defecto y cómo deshabilitarlo:

SpeedTouch ST530 v6 (firmware> = 5.4.0.13) viene con SIP ALG activado por defecto.

Para deshabilitar SIP ALG:

~# telnet router
-> connection unbind application=SIP port=5060
-> saveall

ZyXEL 660 (familia) viene con SIP ALG habilitado por defecto.

Para deshabilitar la SIP ALG:

~# telnet router
Opcion de menu "24. System Maintenance".
Opcion de menu "8. Command Interpreter Mode".
ip nat service sip active 0

Netgear WGR614v9 Wireless-G Router, DGN2000 Wireless-N ADSL2+ Modem Router – Para los Firmware’s V1.0.18_8.0.9NA y V1.0.18_8.0.9NA

Para deshabilitar la SIP ALG:

Ir a la opción “Wan Setup Menu”, despues “NAT Filtering” y quitar el chequeo que aparece junto a “Disable SIP ALG”

Fuente: VoIP Info

Written by Javier Rodriguez in: Telefonía VOIP | Etiquetas: , ,

Theme: TheBuckmaker.com Blog Themes | Hostpapa customer, Berlin