Problemes amb el servidor intermediari (proxy)
Per fi he solucionat els problemes derivats d’utilitzar el servidor intermediari de la meva xarxa Guifi.net per accedir a internet i treballar en els meus projectes de traducció de Softcatalà.
Primer de tot explicaré una mica el meu cas:
- Canvio de xarxa contínuament: els caps de setmana normalment treballo amb la xarxa Guifi.net de Vic, els altres dies treballo des d’una connexió ADSL directa o bé des de la Biblioteca.
- L’accés a través de Guifi.net passa per un servidor intermediari que només deixa passar els ports http, ftp i https, i que sol·licita un usuari i contrasenya.
- Treballo normalment amb el Firefox per a navegar, el Synaptic per a instal·lar programes i utilitzo diversos sistemes de control de versions: svn, hg, git i cvs
Els problemes són diversos:
- Cada vegada que passo d’una xarxa amb servidor intermediari a una que no en té o viceversa, he de configurar tots els programes el Firefox, el Synaptic.
- Els programes de control de versions no funcionen amb el servidor intermediari perquè té usuari/contrasenya.
- Cada vegada que obro el Firefox en la xarxa que té servidor intermediari, m’obre 10 vegades seguides el diàleg que em demana l’usuari i la contrasenya.
La solució final ha sigut gaire bé completa, bàsicament és la següent:
- Configurar un servidor intermediari local que no necessiti contrasenya
- Configurar el Firefox amb un fitxer PAC que li diu la configuració del servidor intermediari
- Utilitzar la variable d’entorn http_proxy abans de treballar amb els programes de control de versions
A continuació ho explicaré amb més detall:
- Primer de tot cal instal·lar el servidor intermediari local, en el meu cas un Squid
- Editar el fitxer de configuració sudo gedit /etc/squid/squid.conf i asseguar-se que té les línies següents després de totes les línies acl i http acces i ipc acces. Cal substituir USUARI:PWD amb l’usuari i la contrasenya per a utilitzar el servidor intermediari, que en el meu cas pot ser proxy.ausa.guifi.net o proxy.verdagyer.guifi.net . Una avantatge d’utilitzar el servidor intermediari local, és que se li pot donar una llista de servidors intermediaris pares, així si falla un prova el següent.
ACTUALITZAT! he afegit el prefer_direct i el nonhierarchical_direct en comptes de never_direct.
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
coredump_dir /var/spool/squid
http_port 3128 transparent
acl our_networks src 192.168.0.0/24
acl localnet src 127.0.0.1/255.255.255.255
http_access allow our_networks
http_access allow localnet
cache_peer proxy.ausa.guifi.net parent 3128 3130 proxy-only no-query no-digest default login=USUARI:PWD
cache_peer proxy.verdaguer.guifi.net parent 3128 3130 proxy-only no-query no-digest login=USUARI:PWD
nonhierarchical_direct off
prefer_direct off
#never_direct allow all
- Per a engegar el servidor intermediari local cal fer sudo /etc/init.d/squid start
- Es pot provar que tot funciona bé configurant el Firefox perquè utilitzi el servidor intermediari 127.0.0.1 pel port 3128. Si tot va bé permetrà navegar per Internet i a més a més si s’escriu sudo tail -f /var/log/squid/access.log es podrà veure com treballa el servidor intermediari.
- Ara per tal de no haver de configurar el Firefox cada vegada que es passa d’una xarxa amb servidor intermediari amb una que no en té, cal crear un fitxer proxy.pac fent sudo gedit /etc/firefox-3.5/proxy.pac i escriure-hi:
function FindProxyForURL(url, host) {
return "PROXY 127.0.0.1:3128; DIRECT";
}
- A continuació cal explicar-li al Firefox que existeix el fitxer proxy.pac: cal anar al menú preferències del Firefox, secció Avançat, pestanya Xarxa, botó Paràmetres, seleccionar URL de configuració automàtica del servidor intermediari i especificar-li que el fitxer està a:
file:///etc/firefox-3.5/proxy.pac
- Per a utilitzar el Synaptic només cal configurar a Preferències – Xarxa el servidor intermediari 127.0.0.1:3128. Això sí per desgràcia cal tocar aquestes preferències cada vegada que es deixa d’utilitzar el servidor intermediari.
- Finalment queda el tema dels programes de control de versions quan es treballa en una xara amb servidor intermediari. Aleshores cal escriure export http_proxy=127.0.0.1:3128 just abans d’utilitzar les ordres del servidor intermediari hg pull, svn update, …
Encara es poden fer més millores, que continuaré investigant. Com per exemple configurar el tallafocs perquè directament enviï les peticions al servidor intermediari de forma transparent, sense haver d’utilitzar el proxy.pac o la variable d’entorn http_proxy. O bé també hauria d’aconseguir que no hagués de configurar cada vegada el Synaptic cada vegada que canvio de xarxa amb servidor intermediari.