6- OpenVPN detrás de un proxy

Imagen de Epe

Bueno, me topé con un cliente que por alguna razón propia de ellos (seguridad) no tienen acceso directo a internet (NAT) sino que todo sale a través de un proxy squid.

En este cliente yo estaba casi 8 horas al día durante dos semanas (por eso no posteé las semanas anteriores y perdí tantos puntos bodi.. por los bodis precisamente).

En todo caso, yo necesitaba poder hacer una vpn hacia fuera pues necesitaba ssh, imap y algunas cosillas para el trabajo de mi negocio... y me desesperaba no tener conexión. Esto significaba que tenía queleer correos por webmail (no es de mi agrado) y que no podía hacer ssh sino me conectaba por alegro pero alegro me machetea 4ctvs el minuto por una conexión.....

solución? Usar openvpn a través del proxy.

Para esto debemos tener en cuenta las siguientes consideraciones:
1- openvpn usará el protocolo tcp
2- openvpn hará un connect al puerto que le digamos

Sobre este punto 2 es el problema. Los proxies squid permiten solamente hacer connect a los puertos 563 y 443 (miren dentro de la ACL ésta:

[code]
acl SSL_ports port 443 563
[/code]

Así que el primer día me salió todo mal, lo dejé intentando hacer connect al 1194 y el proxy no me dejaba. Así que como no podía convencerles de abrir el 1194, opté por usar lo que brindaban, el 563, yo tenía el 563 sin uso en ese servidor remoto así que le dí uso.

[b]Configuración del servidor para aceptar conexiones desde un proxy:[/b]
Al servidor hay que indicarle que la conexión será en tcp:

[code]proto tcp
port 563[/code]

y hay que [b]comentarle[/b] estas lineas:
[code]#user nobody
#group nobody
[/code]
Por qué comentarlas? Porque el puerto que usaremos será el 563, es un puerto bajo, menor a 1024 y requiere de acceso de root por eso no se puede disminuir privilegios

[b]Atención: [/b]Recuerda abrir el puerto 563/tcp en tu iptables!!!

[b]Configuración del cliente para hacer conexiones a través de un proxy:[/b]

En el el archivo .conf del cliente agregar:

[code]#reintentar hasta que se pueda, y conectarse al servidor proxy: 192.168.1.1 en el puerto 3128
http-proxy-retry
http-proxy 192.168.1.1 3128[/code]

En el cliente además hay que indicarle que el servidor de destino corre en el puerto 563 y en tcp.
[code]proto tcp
port 563[/code]

y hay que [b]comentarle[/b] estas lineas:
[code]#user nobody
#group nobody
[/code]

Aqui cruzas los dedos, reinicias el cliente y el servidor y debe funcionarte.

Los problemas tipicos son relacionados con los privilegios de root (dejar el user y el group) y con el puerto que el squid esté dispuesto a aceptar, sugiero el 563 pues tipicamente lo permiten.

Comentarios

En el servidor es: proto

Imagen de Epe

En el servidor es:
proto tcp-server

En el cliente es:
proto tcp-client

poner: proto tcp como en el howto puede hacer que el openvpn se queje

Saludos
epe
--
EcuaLinux.com
Ecuador: +(593) 9 9246504, +(593) 2 3412402
USA: +1 305 359 4495, España: +34 91 7617884


Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

si el servidor proxy requiere

Imagen de Epe

si el servidor proxy requiere autenticación, modificar la línea de http-proxy y poner así:

http-proxy 192.168.1.1 3128 /etc/openvpn/claves.txt ntlm

o así:


http-proxy 192.168.1.1 3128 /etc/openvpn/claves.txt basic

En el primer caso, ntlm, me funciona para cuando el proxy server es un isa server. En el segundo caso para cuando es un squid.

Por supuesto que el puerto puede no ser 3128 sino 8080 o el que te digan.

El archivo /etc/openvpn/claves.txt debe contener en la primera línea el usuario y en la segunda la clave, así:

miusuariosupersecreto
misupercomplejaclave

y ya!

Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

Si conecta a OpenVPN pero aun no a WEB interna remota

Surgió la necesidad de usar  OpenVpn  cliente-Servidor para conectarse a  la red interna para accesar a un servidor WEB en puerto 80.
De igual manera un cliente esta atrás de un Proxy SQUID 3.5.12, seguí  los pasos que comento y  si puedo conectarme a la red VPN remota!  Puedo explorar  carpetas del sitio remoto del \\servidor.local  puedo hacer ping a un servidor  web  192.168.123.10, pero aun no puedo accesar a la web interna.
Si deshabilito el Squid Proxy si se permite el acceso WEB interno y todo lo demás.
 
En SQUID 3.5.12 no se encuentra el puerto 563 así que lo agregue e igual intente agregado el 1194
Squid Config
acl SSL_ports port 443
acl SSL_ports port 563
acl SSL_ports port 1194    
 
Datos conf cliente lo que se agregó!
proto tcp
remote server1.remoto.net  563
http-proxy-retry
http-proxy  192.168.10.254 8080
 
log Squid al poner el buscador web http://192.168.123.10 o  http://servidor.local
 
TCP_MISS/503 4257 GET http://192.168.123.10/ - HIER_DIRECT/192.168.123.10 text/html
TCP_MISS/503 4440 GET http://servidor.local / - HIER_NONE/- text/htm
 
Debe ser algo que me falta agregar en el Squid?
Agregue la IP y nombre del servidor web remoto  a una lista DominiosPermit  en el squid y no funciona.
Alguna idea?
Saludos