Internet con proxy
-
Ya para terminar esto, leyendo en el foro gabacho, al parecer aun no se puede hacer que pfsense pueda bajar paquetes atraves de un proxy.
Hay varios post referentes a esto.
No habia checado esto hasta que me puse a buscar en los otros foros, es un propuesta que muchos usuarios han hecho a el equipo detras de pfsense.
Si alquien por aqui ha hecho esto funcionar adelante, saludos ;D
-
¡Hola!
¿ Probasteis lo que dije en http://forum.pfsense.org/index.php/topic,17287.msg89796.html#msg89796 ?
Miré en mi pfSense y parece que el archivo de configuración de la shell que carga es .tcshrc y no .cshrc , tal como puse en el post.
Saludos,
Josep Pujadas
-
hola
Ok Maestro hare la prueba a ver si eso me funciona espero que asi sea pues me resolveria un gran problema, aun no lo he probado pero cuando lo haga le haré saber….Gracias por todo
-
Hola
Lo siento mucho señores pero sigo aun con la problematica, he hecho todo lo que uds me han explicado y aun no logro el resultado que quiero…saludos
-
¡Hola de nuevo!
¿ Probasteis lo que dije en http://forum.pfsense.org/index.php/topic,17287.msg89796.html#msg89796 ?
¿Hasta dónde funciona o no funciona?
Saludos,
Josep Pujadas
-
Hola
Eso que me pones ya lo probe y empezando no me reconoce el comando "export" y aun asi lo puse en el fichero .tcshrc y no me funciono…Slaudos -
¡Hola!
Debe emplearse setenv en lugar de export y set.
Ya corregí mi post:
http://forum.pfsense.org/index.php/topic,17287.msg89796.html#msg89796
Prueba de nuevo y díme si funcionó.
Me colé y dije la sintaxis para sh pero en pfSense están empleando csh y/o tcsh.
Una buena página sobre variables de entorno: https://www.ccs.uky.edu/docs/cluster/env.html
Saludos,
Josep Pujadas
-
Hola a todos,
Yo me he visto en la misma situación para una máquina virtual de pruebas ubicada en una red sin acceso directo a internet. La diferencia es que mi proxy no requiere autenticación. Por si alguien sigue interesado en el tema, dejo aquí mi experiencia.
Hay un detalle importante a tener en cuenta y es que el sistema de paquetes de la webgui no utiliza la consola o, digamos, una sesión interactiva que deba cargar un fichero de inicio de sesión. Por esto, incluir las variables de entorno en el fichero de inicio de csh o tcsh no tiene efecto sobre el sistema de paquetes integrado. (En cualquier caso, si se desea, es conveniente usar los "setenv" en /etc/csh.cshrc que es el fichero de inicio de sesión en csh global del sistema).
Desde la consola, con las variables de entorno establecidas, intenté instalar paquetes con pkg_add, pero resultó bastante ingenuo e infructuoso… ni rastro de los archivos de configuración en la webgui.
Finalmente he revisado los mecanismos que usa PfSense para conectar a servidores externos en todas las funciones relacionadas con el sistema de paquetes integrado y he conseguido hacerlo funcionar detrás de un proxy http.
Los ajustes a realizar son los siguientes...
- Dado que PfSense comunica con un servidor XMLRPC ubicado en pfsense.org usando la clase PHP XML_RPC_Client de PEAR es posible configurar el acceso mediante un proxy HTTP rellenando las variables indicadas en /etc/inc/xmlrpc_client.inc. Un extracto de la ayuda oficial:
$proxy = '' The name of the proxy server to use, if any Type: string $proxy_pass = '' A password for accessing the proxy server Type: string $proxy_port = 8080 The port for connecting to the proxy server The default is 8080 for http:// connections and 443 for https:// and ssl:// connections. Type: integer $proxy_protocol = 'http://' The protocol to use in contacting the proxy server, if any Type: string $proxy_user = '' A user name for accessing the proxy server Type: string
- Aún habiendo cumplimentado correctamente las variables continúa fallando e informando de la imposibilidad de contactar con el servidor de pfsense.org. Esto es debido a que el software intenta traducir www.pfsense.org a IP mediante gethostbyname() y, si esto falla, aborta directamente.
Como, estando detrás de un proxy HTTP, no tenemos acceso a un DNS que resuelva esta dirección podemos comentar esta sección de código en la función call_pfsense_method() de /etc/inc/pfsense-utils.inc (Que es llamada desde /etc/inc/pkg-utils.inc en get_pkg_info() para invocar a "pfsense.get_pkgs"):
if($ip == "www.pfsense.com") return false;
- Con todo esto el gestor de paquetes muestra el listado de packages disponibles y permite lanzar la instalación, pero en todos los casos falla sin mostrar ningún progreso e inmediatamente.
Para solventar esto es necesario modificar el fichero /etc/inc/pkg-utils.inc insertando la línea que añadirá la opción de configuración de proxy para CURL en download_file_with_progress_bar(). Añadimos esto entre las líneas que definen los parámetros (tal y como lo pondríamos en la variable de entorno del sistema $HTTP_PROXY):
curl_setopt($ch, CURLOPT_PROXY, "http://aaa.bbb.ccc.ddd:pppp");
Y, ahora sí, funciona completamente tanto el listado de paquetes disponibles como la descarga e instalación integradas en la webgui de PfSense.
En caso de necesitar user y password para atravesar el proxy hay variables a establecer en xmlrpc_client.inc y podemos añadir otra línea de parámetro CURLOPT en pkg-utils.inc. Un ejemplo de configuración completa CURL para atravesar un proxy:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.example.com'); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080'); curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password'); $data = curl_exec(); curl_close($ch); ?>
No he podido probar la configuración con autenticación, pero creo que es bastante probable que funcione correctamente.
Por lo demás… pues no es una solución elegante, supongo que sería más interesante usar alguna variable global controlable desde la webgui y almacenar la pareja IP:PUERTO en una variable global y usarla allí donde sea necesario... pero ni xmlrpc_client.inc ni pfsense-utils.inc importan globals.inc.
Saludos!!
-
Hola TDL
He seguido al pie de la letras las orientaciones que das en tu post, pero creme, no he tenido ningun resultado, yo uso la version 1.2.2, tendra eso algo que ver??, aunque tambien probe con la 1.2.3. Mi proxy necesita de autenticacion, dime si necesitas mas datos….
Saludos -
Hola TDL
He seguido al pie de la letras las orientaciones que das en tu post, pero creme, no he tenido ningun resultado, yo uso la version 1.2.2, tendra eso algo que ver??, aunque tambien probe con la 1.2.3. Mi proxy necesita de autenticacion, dime si necesitas mas datos….
SaludosHola,
En qué punto estás, no se ve nada de nada? Yo lo primero que haría es comentar la comprobación de gethostbyname…
/* COMENTANDO POR USO DE PROXY *if($ip == "www.pfsense.com") * return false; */
Luego probaría la configuración de XMLRPC con proxy. Al haber comentado la comprobación anterior debería aparecer el listado de paquetes en cuanto la configuración sea correcta.
var $proxy = 'ip_proxy';
var $proxy_protocol = 'http://';
var $proxy_port = puerto_de_conexion;
var $proxy_user = 'loquesea';
var $proxy_pass = 'loquesea';Si no te aparece la lista de paquetes algo debe estar mal… quizás tu dpto. de sistemas corporativo pueda revisar errores de conexión para tu usuario en el proxy. Es posible que la autenticación no sea básica...
Saludos!
-
Hola TDL
Lo tengo como me lo dijistes pero decirte quiero que no me funciona, tratare de ver si es un problema del proxy que no tiene mi ip autorizado pero si no es asi no se que sera entonces, no he tenido ningun resultado, es decir que no se me muestran ni los paquetes..Saludos
-
Hola gente…
Necesito que alguien me diga por cual puerto se conecta el pfsense para descargar los paquetes, pues el proxy tienes bloqueados todos los puertos, menos el 80, 443 y 8080...Saludos