IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

DHCP

Proxy.pac i wpad.dat

TODO

La majoria de navegadors moderns permeten 3 opcions:

  • Configuració manual: Specify a hostname and a port number to be used for all URLs. Most browsers allow you to specify a list of domains (such as localhost) that will bypass this proxy.
  • Proxy auto-configuration (PAC): Specify the URL for a PAC file with a JavaScript function that determines the appropriate proxy for each URL. This method is more suitable for laptop users who need several different proxy configurations, or complex corporate setups with many different proxies.
  • Web Proxy Autodiscovery Protocol (WPAD): Let the browser guess the location of the PAC file through DHCP and DNS lookups.

El fitxer proxy.pac (i el wpad.dat) estan escrits en Javascript.

El Mime-type a retornar (tot i que si no el posem normalment també funciona) és:

application/x-ns-proxy-autoconfig

o

application/x-javascript-config

Recursos:

WPAD

El Web Proxy Auto-Discovery Protocol (WPAD) és un mètode utilitzat per clients web per tal de localitzar la URL d'un fitxer de configuració automàtica de proxy (proxy.pac). S'utilitza DNSi DHCP i/o DNS discovery methods. Once detection and download of the configuration file is complete it can be executed to determine the proxy for a specified URL. The WPAD protocol only outlines the mechanism for discovering the location of this file, but the most commonly deployed configuration file format is the Proxy auto-config format originally designed by Netscape in 1996 for Netscape Navigator 2.0.[1]

El protocol WPAD protocol es va crear per un consorci de companyies com Inktomi Corporation, Microsoft Corporation, RealNetworks, Inc. o Sun Microsystems. Hi ha un draft d'Internet però va caducar el desembre de 1999. De totes formes, molts navegadors encara implementen aquest protocol.

IMPORTANT: Només funciona d'Internet Explorer 5 en endavant i a Firefox des de ??? TODO

Per tal de poder configurar tots els navegadors de una corporació amb la mateixa política de proxy sense la necessitat d'anar màquina per màquina es necessita (TODO):

  • L'estàndard Proxy auto-config (PAC): create and publish one central proxy configuration file. Details are discussed in a separate article.
  • L'estàndard Web Proxy Autodiscovery Protocol (WPAD): ensure that an organization's browsers will find this file without manual configuration. This is the topic of this article.

L'estàndard WPAD ofereix dos mètodes al administrador del sistema per tal que pugui fer pública la URL del fitxer de configuració automàtica del proxy (proxy.pac):

DHCP

Before fetching its first page, a web browser implementing this method sends the local DHCP server a DHCPINFORM query, and uses the URL from the WPAD option in the server's reply.

El servidor DHCP s'ha de configurar per tal de servir

"site-local" option 252 ("auto-proxy-config")

Que ha de ser un text del tipus:

http://xxx.yyy.zzz.qqq/wpad.dat

ON xxx.yyy.zzz.qqq é l'adreça del servidor web on està el fitxer wpad.dat, ja sigui una IPo una adreça de DNS.

DNS

Si el servidor de DHCP no proporciona la informació requerida (o simplement si el navegador no suport DHCP) aleshores s'utilitza DNS.

La cerca es realitza segons el nom de màquina, per exemple si la màquina es diu:

pc.department.branch.example.com

El navegador provarà de cercar les següents URLS:

http://wpad.department.branch.example.com/wpad.dat
http://wpad.branch.example.com/wpad.dat
http://wpad.example.com/wpad.dat
http://wpad.com/wpad.dat <-- només en implementacions incorrectes.

Qüestions a tenir en compte

  • DHCP té una prioritat més alta que DNS, si tots dos proveïxen la URL WPAD guanya DHCP.
  • Cal tenir en compte que tant Firefox com Chrome no suporten DHCP, només DNS ([1],[2])
  • Per a les peticions per DNS, el path del fitxer sempre és wpad.dat. Per a DHCP qualsevol URL és vàlida.
  • El MIME Type del fitxer de configuració ha de ser "application/x-ns-proxy-autoconfig"
  • Internet Explorer i Konqueror són actualment (--acacha 16:19, 3 abr 2011 (UTC)) els únics navegadors que suporten el mètode DHCP.
  • TODO :DNS lookup removes the first part of the domain name (presumably the client identifier) and replaces it with wpad. Then, it "moves up" in the hierarchy by removing more parts of the domain name, until it finds a WPAD PAC file or leaves the current organisation.
  • The browser guesses where the organisation boundaries are. The guess is often right for domains like 'company.com' or 'university.edu', but wrong for 'company.co.uk' (see security below).

[edit] Security

While greatly simplifying configuration of one organisation's web browsers, the WPAD protocol has to be used with care: simple mistakes can open doors for attackers to change what appears on a user's browser:

   * An attacker inside a network can set up a DHCP server that hands out the URL of a malicious PAC script.
   * If the network is 'company.co.uk' and the file http://wpad.company.co.uk/wpad.dat isn't served, the browsers will go on to request http://wpad.co.uk/wpad.dat. The browser doesn't determine whether this is still inside the organization. See http://wpad.com/ for an example.
   * The same method has been used with http://wpad.org.uk. This used to serve a wpad.dat file that would redirect all of the user's traffic to an internet auction site.
   * ISP's that have implemented DNS hijacking can break the DNS lookup of the WPAD protocol by directing users to a host that is not a proxy server.

Through the WPAD file, the attacker can point users browsers to their own proxies and intercept and modify all of WWW traffic. Although a simplistic fix for Windows WPAD handling was applied in 2005, it only fixed the problem for the .com domain. A presentation at Kiwicon showed that the rest of the world was still critically vulnerable to this security hole, with a sample domain registered in New Zealand for testing purposes receiving proxy requests from all over the country at the rate of several a second.

Thus, an administrator should make sure that a user can trust all the DHCP servers in an organisation and that all possible wpad domains for the organisation are under control. Furthermore, if there's no wpad domain configured for an organisation, a user will go to whatever external location has the next wpad site in the domain hierarchy and use that for its configuration. This allows whoever registers the wpad subdomain in a particular country to perform a man-in-the-middle attack on large portions of that country's internet traffic by setting themselves as a proxy for all traffic or sites of interest.

On top of these traps, the WPAD method fetches a JavaScript file and executes it on all users browsers, even when they have disabled JavaScript for viewing web pages.

Configuració del servidor DNS

NOTA: No ho he confirmat però probablement és molt important tenir configurat el domini de DNS al client per tal que les consultes dels clients a la màquina wpa.elvostredomini.com siguin correctes

 * In order to use DNS, then a DNS entry is needed for a host named WPAD.
   * The host WPAD must be able to serve a web page.
   * In both cases, the web server must be configured to set up dat files with a MIME type of "application/x-ns-proxy-autoconfig".
   * The file named wpad.dat must be located in the WPAD web site's root directory.
   * Examples for PAC files are shown in Proxy auto-config.
  
   * Internet Explorer version 6.0.2900.2180.xpsp_sp2_rtm request for "wpad.da" instead of "wpad.dat" to the web server.


Configuració del servidor web

Cal crear un Virtual Host per al domini wpad.elvostredomini.com, per exemple, pel domini wpad.iesebre.com:

IMPORTANT: * Use caution when configuring a WPAD server in a virtual hosting environment. When automatic proxy detection is used, WinHTTP and WinINET in Internet Explorer 6 and earlier send a "Host: <IP address>" header and IE7+ and Firefox send a "Host: wpad" header. Therefore, it is recommended that the wpad.dat file be hosted under the default Virtual Host rather than its own.

$ sudo joe /etc/apache2/sites-available/wpad.iesebre.com
<VirtualHost *:80>
      ServerAdmin [email protected]

      ServerName wpad.iesebre.com

      DocumentRoot /var/www/wpad

      ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
      <Directory "/usr/lib/cgi-bin">
              AllowOverride None
              Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
              Order allow,deny
              Allow from all
      </Directory>

      ErrorLog /var/log/apache2/wpad_iesebre_com_error.log

      # Possible values include: debug, info, notice, warn, error, crit,
      # alert, emerg.
      LogLevel warn

       CustomLog /var/log/apache2/wpad_iesebre_com_access.log combined
       ServerSignature On

</VirtualHost>
$ sudo a2ensite wpad.iesebre.com
$ sudo /etc/init.d/apache2 restart

Després cal assegurar-se que el mime-type associat a l'extensió .dat és el correcte. Així ho és per defecte a Apache2:

$ cat /etc/mime.types | grep dat | grep proxy
application/x-ns-proxy-autoconfig		pac dat

El fitxer /etc/mime.types es utilitzat per Apache 2:

 $ head /etc/apache2/mods-available/mime.conf 
<IfModule mod_mime.c>

#
# TypesConfig points to the file containing the list of mappings from
# filename extension to MIME-type.
#
TypesConfig /etc/mime.types
...


Firefox

El tipus de configuració s'estableix a la configuració, si poseu la URL about.config heu de buscar l'opció:

network.proxy.type

Si té el valor 4 aleshores és automàtic: utilitzar WPAD.

Podeu veure com es fa la consulta DNS amb:

$ sudo tcpdump -ni any port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes

Aneu a les preferències del Firefox i escolliu l'opció

Edita (eines Windows) > Preferències > Botó Avançat > Pestanya Xarxa > Boto Paràmetres

Un cop guardeu i sortiu us apareixeran les següents línies:

15:01:23.339647 IP 10.36.253.171.38221 > 10.36.253.3.53: 55740+ AAAA? wpad.iesebre.com. (34)
15:01:23.342658 IP 10.36.253.3.53 > 10.36.253.171.38221: 55740 NXDomain* 0/1/0 (82)
15:01:23.342732 IP 10.36.253.171.40644 > 10.36.253.3.53: 62140+ A? wpad.iesebre.com. (34)
15:01:23.343962 IP 10.36.253.3.53 > 10.36.253.171.40644: 62140 NXDomain* 0/1/0 (82)

Limitacions

No es pot configurar autenticació

TODO: Confirmar

Character encoding

No es suporta UTF-8 en la codificació del fitxer proxy.pac????

TODO

Browsers such as Firefox and Internet Explorer only support system default encoding PAC files, and cannot support Unicode encodings such as UTF-8.

DnsResolve

NOTA: Si al fitxer hi ha entrades de noms de màquina DNS, aleshores caldrà fer la resol·lució. Això pot penalitzar el rendiment, sempre que es pugui és recomanable utilitzar adreces IP al fitxer proxy.pac, sobretot a la funció isInNet

Caching of proxy autoconfiguration results by domain name in Microsoft's Internet Explorer 5.5 or higher limits the flexibility of the PAC standard. In effect, you can choose the proxy based on the domain name, but not on the path of the URL. Alternatively, you need to disable caching of proxy autoconfiguration results by editing the registry, a process described by de Boyne Pollard (listed in further reading).

It is recommended to always use IP addresses instead of host domain names in the isInNet function for compatibility with other Windows components which make use of the Internet Explorer PAC settings, such as .NET 2.0 Framework. For example,

<source lang="javascript"> if (isInNet(host, dnsResolve(sampledomain) , "255.255.248.0")) // .NET 2.0 will resolve proxy properly

if (isInNet(host, sampledomain, "255.255.248.0")) // .NET 2.0 will not resolve proxy properly </source> The current convention is to fail over to direct connection when a PAC file is unavailable.

When switching quickly between network configurations (e.g. when entering or leaving a VPN), dnsResolve may give outdated results due to DNS caching.

For instance, Firefox usually keeps 20 domain entries cached for 60 seconds. This may be configured via the

network.dnsCacheEntries

i

network.dnsCacheExpiration

També pot ser útil fer un flush de la cache de DNS.

Linux:

$ sudo service dns-clean start

myIpAddress

The myIpAddress function has often been reported to give wrong/unusable results, e.g. 127.0.0.1, the IP address of the localhost. It may help to remove on the system's host file (e.g. /etc/hosts on Linux) any lines referring to the machine hostname, while the line 127.0.0.1 localhost can and should stay.

others

Further limitations are related to the JavaScript engine on the local machine.


Windows XP

Ubuntu

Navegadors

Firefox

Plugin guifiproxy

Es tracta d'un plugin (addon) de Firefox.

El podeu descarregar amb:

$ mkdir guifiproxy && cd guifiproxy
$ wget https://addons.mozilla.org/firefox/downloads/file/110724/guifiproxy-2.5-fx+tb.xpi?src=addondetail
$ mv guifiproxy-2.5-fx+tb.xpi\?src\=addondetail guifiproxy-2.5-fx+tb.xpi

el podeu obrir amb file-roller

$ file-roller guifiproxy-2.5-fx+tb.xpi

Personalitzacions:

Podeu canviar la icona, cal crear un fitxer de 32x32pixels en format png i canviar-lo pel fitxer icon.png que hi ha a l'arrel del plugin.

Com adaptar la llista de proxies per defecte i la URL CSV per a una zona
TODO: https://addons.mozilla.org/ca/firefox/addon/guifiproxy-infocentre-santa/

Descarregueu el plugin i descomprimiu-lo seguint les instruccions de l'apartat anterior.

Cal editar el fitxer:

content/overlay.js

La secció a modificar és:

if(!userPrefExtGui.prefHasUserValue("auth"))
  userPrefExtGui.setBoolPref("auth", false);

if(!userPrefNetProx.prefHasUserValue("no_proxies_on"))
  userPrefNetProx.setCharPref("no_proxies_on","localhost, 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, .iesebre.com, .santabarbara.cat");

if(!userPrefExtGui.prefHasUserValue("password"))
  userPrefExtGui.setCharPref("password","");

if(!userPrefExtGui.prefHasUserValue("proxyauth"))
  userPrefExtGui.setCharPref("proxyauth","");

if(!userPrefExtGui.prefHasUserValue("server.0")) 
  userPrefExtGui.setCharPref("server.0", "TortosaProxyINSEbre1;10.36.253.3;3128");

if(!userPrefExtGui.prefHasUserValue("server.1")) 
  userPrefExtGui.setCharPref("server.1", "TortosaProxyClubTennis;10.139.220.195;3128");

if(!userPrefExtGui.prefHasUserValue("server.2")) 
	  userPrefExtGui.setCharPref("server.2", "SBrbProxyInfocentre;10.139.29.227;3128");

if(!userPrefExtGui.prefHasUserValue("url"))
  userPrefExtGui.setCharPref("url", "http://www.iesebre.com/guifi/GuifiProxyList.csv");

if(!userPrefExtGui.prefHasUserValue("username"))
  userPrefExtGui.setCharPref("username", "");

IMPORTANT: Tingueu en compte que si ja teniu instal·lat guifiProxy es guarden els valors de l'antiga configuració. Consulteu #Configuració_automàtica_de_clients_Proxy#Resol.C2.B7luci.C3.B3_de_problemes

També podeu modificar el fitxer install.rdf:

 <?xml version="1.0" encoding="UTF-8"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
  <Description about="urn:mozilla:install-manifest">
    <em:id>[email protected]</em:id>
    <em:name>GuifiProxy Terres de l'Ebre</em:name>
    <em:version>0.1</em:version>
    <em:creator>Sergi Tur Badenas, creat a partir de la versió de Tomás Velázquez</em:creator>
    

    <em:description>Facilitates the use of proxies allows switching between them with two clicks, import i export lists, edit, add and delete manually, automatic authentication and exception address</em:description>
    <em:homepageURL>http://guifiproxy.mozdev.org</em:homepageURL>
    <em:iconURL>chrome://guifiproxy/skin/guifi/guifi32.png</em:iconURL>
    <em:optionsURL>chrome://guifiproxy/content/options.xul</em:optionsURL>
    
    <!-- Firefox -->
    <em:targetApplication>
      <Description>
        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
        <em:minVersion>3.0</em:minVersion>
        <em:maxVersion>4.0.*</em:maxVersion>
      </Description>
    </em:targetApplication>   

    <!-- Fennec -->
    <!--
    <em:targetApplication>
      <Description>
        <em:id>{a23983c0-fd0e-11dc-95ff-0800200c9a66}</em:id>
        <em:minVersion>1.0</em:minVersion>
        <em:maxVersion>4.0b4pre</em:maxVersion>
      </Description>
    </em:targetApplication>
    -->
    <!-- Thunderbird -->
    <em:targetApplication>
      <Description>
        <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
        <em:minVersion>2.0</em:minVersion>
        <em:maxVersion>3.3a2pre</em:maxVersion>
      </Description>
    </em:targetApplication>


    <em:localized>
      <Description>
        <em:locale>ca-ES</em:locale>
        <em:name>GuifiProxy Terres de l'Ebre'</em:name>
        <em:description>Administrador de proxy simple amb una llista de servidors proxy</em:description>
        <em:creator>Tomás Velázquez</em:creator>
      </Description>
    </em:localized>

    <em:localized>
      <Description>
        <em:locale>es-ES</em:locale>
        <em:name>GuifiProxy Terres de l'Ebre</em:name>
        <em:description>Administrador de proxy simple con una lista de servidores proxy</em:description>
        <em:creator>Tomás Velázquez</em:creator>
      </Description>
    </em:localized>

    <em:localized>
      <Description>
        <em:locale>eu-ES</em:locale>
        <em:name>GuifiProxy Terres de l'Ebre</em:name>
        <em:description></em:description>
        <em:creator>Tomás Velázquez</em:creator>
      </Description>
    </em:localized>

    <em:localized>
      <Description>
        <em:locale>gl-ES</em:locale>
        <em:name>GuifiProxy Terres de l'Ebre</em:name>
        <em:description></em:description>
        <em:creator>Tomás Velázquez</em:creator>
      </Description>
    </em:localized>

    <em:localized>
      <Description>
        <em:locale>fr-FR</em:locale>
        <em:name>GuifiProxy Terres de l'Ebre</em:name>
        <em:description></em:description>
        <em:creator>Tomás Velázquez</em:creator>
      </Description>
    </em:localized>

    <em:localized>
      <Description>
        <em:locale>en-US</em:locale>
        <em:name>GuifiProxy Terres de l'Ebre</em:name>
        <em:description>Simple proxy manager with a proxies list</em:description>
        <em:creator>Tomás Velázquez</em:creator>
      </Description>
    </em:localized>

  </Description>
</RDF>

Finalment potser us interessa modificar totes les icones.

Podeu veure un exemple de projecte modificat a:

http://www.iesebre.com/subversion/projectes/guifiproxy/

Es tracta d'un repositori de subversion que podeu obtenir amb:

$ sudo apt-get install subversion
$ svn co http://www.iesebre.com/subversion/projectes/guifiproxy/

Aquest projecte utilitza ant per tal de ajudar a tornar a construir el paquet, podeu fer les modificacions que us calguin i executar:

$ sudo apt-get install ant

Editeu el fitxer build.properties i poseu les vostres dades:

$ cat build.properties 
dist.home=${basedir}/dist
application.name=guifiproxyTerresEbre
application.version=0.1

I creeu el nou Plugin modificat

$ ant zip

El trobareu a la carpeta dist, el podeu instal·lar obrin-lo amb Firefox.

Resol·lució de problemes
Es guarden les preferències al desinstal·lar i tornar a instal·lar

Les podreu consultar a la URL (poseu al navegador):

about:config

Per exemple la URL del CSV on es poden obtenir la llista de servidors Proxy.

extensions.guifiproxy.url

Per veure-les totes podeu posar al filtre:

extensions.guifiproxy

Aquí les podeu esborrar.

IMPORTANT: Fixeu-vos que la paraula de pas no es guarda xifrada i per tant no és gaire segur.

extensions.guifiproxy

Domini de Windows/Samba

logon.bat

Al fitxer de logon es pot posar quelcom similar a:

$ cat /etc/samba/netlogon/logon.bat
...
REM copy Proxy.reg C:\Proxy.reg /y
regedit.exe /s Proxy.reg

On:

$ cat /etc/samba/netlogon/Proxy.reg

   REGEDIT4

   [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
   "ProxyServer"="proxy.infocentre.santabarbara.cat:3128"
   "ProxyEnable"=dword:00000001
   "ProxyOverride"="www.infocentre.santabarbara.cat;<local>"

NOTA: Modifiqueu les dades com a vosaltres us convinguin

Un altre exemple:

@ECHO Configuracio automatica del proxy als navegadors .....

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d "proxy.professorat.iesmontsia.org:3128" /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyOverride /t REG_SZ /d "<local>;localhost, 127.0.0.1,.iesmontsia.org,moodle.iesmontsia.org,192.168.0.0/16" /f

cd /D "%APPDATA%\Mozilla\Firefox\Profiles"
cd *.default > nul
set ffile=%cd%\prefs.js
echo user_pref("network.proxy.http", "proxy.professorat.iesmontsia.org ");>>"%ffile%"
echo user_pref("network.proxy.http_port", 3128);>>"%ffile%"
echo user_pref("network.proxy.type", 1);>>"%ffile%"
echo user_pref("network.proxy.share_proxy_settings", true);>>"%ffile%"
echo user_pref("network.proxy.no_proxies_on", "localhost, 127.0.0.1,.iesmontsia.org,moodle.iesmontsia.org,192.168.0.0/16");>>"%ffile%"
set ffile=
cd %windir%
start http://moodle.iesmontsia.org

:end


Sistemes operatius

Windows

Impedir el canvi de configuració del proxy

Executeu:

Tecla Windows +R
gpedit.msc

Aneu a:

Configuracion de usuario > Plantillas Administrativas > Componentes de Windows > Internet Explorer 

I Habiliteu:

Deshabilitar el canvio de configuració de proxy

Establir tot la configuració de Internet Explorer per política

Executeu:

Tecla Windows +R
gpedit.msc

Aneu a:

Configuracion de usuario > Configuración de Windows > Mantenimiento de Internet Explorer >

Un cop estigueu aquí podeu fer múltiples configuracions. Un cop tingueu la configuració tal i com la voleu, la podeu exportar al menú:

Acción > Exportar Configuracion del Explorador

Cal guardar-lo en un fitxer amb extensió .INF. El resultat serà un fitxer tipus:

[Proxy]
Proxy_Enable=0
HTTP_Proxy_Server=prova.proxy.es:8180
Use_Same_Proxy=1
Proxy_Override="prova.com;<local>"
FTP_Proxy_Server=prova.proxy.es:8180
Gopher_Proxy_Server=prova.proxy.es:8180
Secure_Proxy_Server=prova.proxy.es:8180
Socks_Proxy_Server=prova.proxy.es:8180
[Branding]
GPVersion=6.00.2900.5512
[URL]
AutoDetect=0
AutoConfig=0

Aquest fitxer es pot autoexecutar (doble clic). Us avisarà que esteu a punt de canviar la configuració i si accepteu us la canviara.


Establir la configuració del proxy per politica

Executeu:

Tecla Windows +R
gpedit.msc

Aneu a:

Configuracion de usuario > Configuración de Windows > Mantenimiento de Internet Explorer > Conexion > Configuracion de los servidors proxy

Feu doble clic i us apareixerà un formulari de configuració del proxy.

Política ProxySettingsPerUser

La política de sistema ProxySettingsPerUser permet indicar si els usuaris no administradors poden modificar la configuració del proxy. Es pot modificar amb l'ordre gpedit o modificant el registre de Windows:

Per exemple creeu un fitxer anomenat:

notepad ProxySettingsPerSystem.reg

I poseu:

REGEDIT4

  [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
  "ProxySettingsPerUser"=dword:00000000

Per aplicar el canvi:

regedit.exe /s ProxySettingsPerSystem.reg

El valor per defecte és que si que el puguin modificar:

REGEDIT4

  [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
  "ProxySettingsPerUser"=dword:00000001

IMPORTANT: Si desactiveu la configuració del proxy per usuari, si feu canvis al registre per a la part de l'usuari actual: vegeu Configuració del proxy només per a l'usuari actiu no apareixeran a les Opcions d'Internet del Panell de Control. Cal utilitzar la configuració de sistema Configuració del proxy per a tots els usuaris del sistema

Configuració del proxy només per a l'usuari actiu

Cal modificar el registre de Windows. Creeu un fitxer anomenat proxy.reg:

notepad proxy.reg

Amb el contingut:

REGEDIT4

  [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
  "ProxySettingsPerUser"=dword:00000001
  [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
  "ProxyServer"="proxyprova.cat:3128"
  "ProxyEnable"=dword:00000001
  "ProxyOverride"="www.infocentre.santabarbara.cat;<local>"

On la modificació de ProxySettingsPerUser=1 potser no caldria ja que és la configuració per defecte. Però la posem per assegurar-nos en cas que s'hagui modificat al sistema.

Important:

El següent seria un error:

  [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
  "ProxySettingsPerUser"=dword:00000001

  [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
  "ProxyServer"="proxyprova.cat:3128"
  "ProxyEnable"=dword:00000001
  "ProxyOverride"="www.infocentre.santabarbara.cat;<local>"

Ja que estariem fent la configuració d'usuari del proxy quan a l'hora estem indicant una política de sistema que impedeix fer aquesta modificació!

Configuració del proxy per a tots els usuaris del sistema

Es fa a:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings

Per exemple poder crear un fitxers que es digui proxy.reg:

notepad proxy.reg

I li poseu el següent contingut:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings]
"MigrateProxy"=dword:00000001
"ProxyEnable"=dword:00000001
"ProxyServer"="general.proxy.es:3456"
"ProxyOverride"="prova;<local>"

I per fer la modificaciço utilitzeu regedit:

regedit /s proxy.reg

Ara si aneu a la configuració de les Opcions d'Internet:

control inetcpl.cpl

I aneu a la pestanya Conexiones i al botó Configuración de LAN veureu que no apareix la configuració del Proxy! Heu configurat el proxy a nivell de sistema, després cada usuari té la seva configuració que sobrescriu la configuració principal! Inclús si la configuració de l'usuari és no utilitzar proxy.

NOTA: Si volguessiu posar a tots els usuaris la mateixa configuració però que la poguessin canviar haurieu de fer un script més elaborat o canviar el pèrfil Default User i així cada vegada que es crea u nou usuari tindria la configuració que voleu

Per defecte la configuració del proxy és una configuració a nivell d'usuari del sistema. Es pot però establir una política que trobareu al registre de Windows:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\ProxySettingsPerUser

El tipus del valor és DWORD, si poseu el valor a zero aleshores els administradors del sistema són els que estableixen els valor del proxy per a tots els usuaris.

En aquest cas la configuració del proxy s'agafa de:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\Internet Settings\Connections

De la mateixa forma que HKCU counterpart (TODO)

També es pot modificar amb:

Gpedit.msc

A:

Computer Configuration -> Administrative Templates -> Windows Components -> Internet Explorer.

o en castellà:

Configuració del equipo -> Plantillas administrativas -> Componentes de Windows -> Internet Explorer

La opció és diu:

Configuració de proxy por equipo y no por usuario

Al activar-la al registre ha aparegut:

HKEY_USERS\S-1-5-21-1202660629-764733703-842925246-500\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{24371145-3D70-43B3-8C09-78C27AF28242}Machine\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings

Estic amb un usuari Administrador, però entrant en local, però apareix el SID

Opcions:

  • Deshabilitar el cambio de configuración del proxy: Fa que a la configuració del proxy de Internet Explorer, la configuració surti bloquejada.
Double-click “Security Zones: Do not allow users to change policies” on the right pane
Choose “Not Configured” and click OK.

Clau de registre:

“Security_HKLM_only” 

NOTA: HKLM són les inicials de HKEY_LOCAL_MACHINE

a

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings

Executable Windows

El podeu crear amb iexpress un assistent que us permet empaquetar una sèrie de fitxers i crear un fitxer .exe (cabinet?) a partir de un fitxer bat i altres fitxers. Per exemple per aplicar la configuració del proxy del sistema, l'ordre pot ser:

regedit.exe /s proxy.reg

On proxy.reg conté:

REGEDIT4

  [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
  "ProxyServer"="proxy.infocentre.santabarbara.cat:3128"
  "ProxyEnable"=dword:00000001
  "ProxyOverride"="www.infocentre.santabarbara.cat;<local>"

Ara volem empaquetar aquests dos fitxers en un executable que aun s'executi configuri el proxy del sistema. Executeu:

iexpress

I seguiu les passes de l'assistent.

MigrateProxy

According to my tests, MigrateProxy is used to force one time detection of proxysetting.

- If 'Automatically detect settings' is disabled and migrateProxy is set to 0 setting detection will occur at first internet connection and value of Key MigrateProxy will be changed to 1.

- If 'Automatically detect settings' is enabled. The key MigrateProxy has no effect.

AutoIT

TODO

If you are having problems with IE picking up proxy settings etc - then change / compile this AutoIT script so it suits your network:

Code:

RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main", "First Home Page", "REG_SZ", "http://navaho")
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main", "Start Page", "REG_SZ", "http://navaho")
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer", "REG_SZ", "PROXY:PORT")
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "Proxyenable", "REG_DWORD", "1")
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyOverride", "REG_SZ", "intranet")
Run('C:\Program Files\Internet Explorer\iexplore.exe')

Use it to launch IE. It will change the reg settings before it launches. If you have problems running it then use the RunAsSet command at the start and close it at the end:

; Set the RunAs parameters to use local adminstrator account
RunAsSet("Administrator", @Computername, "adminpassword")
Code as above
; Reset user's permissions
RunAsSet()

Hotspot captiu

Redireccionar les peticions al port 80/443 cap a una web concreta utilitzant iptables al gateway

Per exemple:

$ sudo iptables -t nat -A PREROUTING -i infocentre -s 192.168.1.0/24 ! -d 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-port 81

L'exemple anterior és en el cas que el gateway i el servidor web que proporciona el portal captiu estiguin a la mateixa màquina. La targeta d'entrada té el nom infocentre. Si el portal captiu està en una màquina remota cal fer DNAT:

$ sudo iptables -t nat -A PREROUTING -i infocentre -s 192.168.1.0/24 ! -d 192.168.1.0/24 -p tcp --dport 80 -j DNAT --to-destination 147.83.75.147:3128

NOTA: Noteu que a l'exemple la xarxa local és 192.168.1.0/24. Per aquestes IP d'origen o destinació no s'aplica el prerouting

Consulteu també iptables REDIRECT.

Suposem que tenim un Apache al Servidor on estem executant l'anterior ordre iptables (aquest servidor ha de ser el gateway de les màquines que vulguem controlar).

El que hem fet és posar el Apache a escoltar també pel port 81, però que les peticions que arribin per aquest port siguin tractades per el nostre portal captiu (vaja volem que es mostri el porta captiu i no pas les pàqines web normals d'aquest servidor).

Això ho podeu fer editant els fitxer:

$ sudo joe /etc/apache2/ports.conf

Afegiu les línies:

NameVirtualHost *:81
Listen 81

Després de les línes:

NameVirtualHost *:80
Listen 80

Ara cal configurar el Virtual Host, podem utilitzar com a plantilla el Virtual Host per defecte:

$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/portalcaptiu

El fitxer /etc/apache2/sites-available/portalcaptiu conté la configuració del portal captiu, editeu-lo per tal d'adaptar-lo a les nostres necessitats (en negreta les línies canviades)

$ sudo joe /etc/apache2/sites-available/portalcaptiu
<VirtualHost *:81>
       ServerAdmin [email protected]

       DocumentRoot /var/www_portalcaptiu
       <Directory />
               Options FollowSymLinks
               AllowOverride None
       </Directory>
       <Directory /var/www_portalcaptiu/>
               Options Indexes FollowSymLinks MultiViews
               AllowOverride None
               Order allow,deny
               allow from all
       </Directory>

       ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
       <Directory "/usr/lib/cgi-bin">
               AllowOverride None
               Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
               Order allow,deny
               Allow from all
       </Directory>

       ErrorLog /var/log/apache2/error_portalcaptiu.log

       # Possible values include: debug, info, notice, warn, error, crit,
       # alert, emerg.
       LogLevel warn

       CustomLog /var/log/apache/access_portalcaptiu.log combined

       ErrorDocument 404 /index.php

   Alias /doc/ "/usr/share/doc/"
   <Directory "/usr/share/doc/">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride None
       Order deny,allow
       Deny from all
       Allow from 127.0.0.0/255.0.0.0 ::1/128
   </Directory>

</VirtualHost>

IMPORTANT: Fixeu-vos en la configuració del ErrorDocument 404, la majoria de peticions URL captivades tindran una PATH relatiu al servidor a on es volien connectar que el nostre portal captiu no tindrà, per tant acabarem anant a petar gairebé sempre a la pàgina 404 Document Not Found.

Ara creeu la nova carpeta:

$ sudo mkdir /var/www_portalcaptiu

Creeu el fitxer que tindrà el codi del portal captiu:

$ sudo joe /var/www_portalcaptiu/index.php

i apliqueu els canvis:

$ sudo a2ensite portalcaptiu
$ sudo /etc/init.d/apache2 reload

La següent pàgina web:

http://onlamp.com/pub/a/onlamp/2003/02/13/davidsklar.html

Us pot ajudar a programar una pàgina d'error 404 a mida amb PHP. Bàsicament Apache us configurarà automàticament les següents variables (a la llista amb valors exemple):

REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap, image/jpeg
REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX A.09.05 9000/712)
REDIRECT_PATH=.:/bin:/usr/local/bin:/etc
REDIRECT_QUERY_STRING=
REDIRECT_REMOTE_ADDR=121.345.78.123
REDIRECT_REMOTE_HOST=ooh.ahhh.com
REDIRECT_SERVER_NAME=crash.bang.edu
REDIRECT_SERVER_PORT=80
REDIRECT_SERVER_SOFTWARE=Apache/0.8.15
REDIRECT_URL=/cgi-bin/buggy.pl 

Amb PHP i podreu accedir utilitzant la variable $_SERVER[] per exemple:

$_SERVER['REDIRECT_URL']

Recursos