Español   English  

Servidor Proxy/ca: Diferència entre les revisions

De Guifi.net - Wiki Català

(Federació del proxy:)
 
(Hi ha 42 revisions intermèdies sense mostrar fetes per 10 usuaris)
Línia 1: Línia 1:
{{Fusió|Squid}}
+
= Que és Guifi-proxy3? =
{{Fusió|Sortida a Internet}}
+
Guifi-proxy3 és l'ampliació del paquet guifi-proxy, creat per en Carles Guadall, més un conjunt de configuracions per tal d'aconseguir un proxy federat-cache en el moment de finalitzar el assistent de configuració.
  
''nota: Aquest manual, basat en Debian, inclou instal·lar servidor web, webmin, sarg i webalizer''
+
Des de principis del 2013, el paquet guifi-proxy3 autentica els usuaris a través d'una base de dades ldap, situats sota ldap.guifi.net i ldap2.guifi.net.
  
 +
= Creació del servei a la web de guifi =
 +
Prèviament haurem d'haver afegit un dispositiu tipus '''servidor''' en el nostre supernode i assigar-li una IP de guifi (dispositiu del supernode > editar > secció de connexions per cable > Rang de IPs destinat als server (es crea si no existeix) > endoll > Enllaça dispositiu > crea > Guardar y modificar.
  
->Tots els paquets estan disponibles a Debian, menys el webmin. L'instal·larem des del seu repositori. Afegim la direcció del seu repositori:
 
  
  echo "deb http://download.webmin.com/download/repository sarge contrib" >> /etc/apt/sources.list
+
# Crea continguts
 +
# guifi.net service
 +
## '''Service name:''' Servidor Proxy de XXXXXX
 +
## '''Nom curt:''' NOMCurtSupernode-PROXY
 +
## '''Contacte:''' mail de contacte de l'administrador
 +
## '''Dispositiu:''' comencem a escriure el nom del nostre servidor i sortiran els noms dels servidors que comencen així
 +
## '''Servei:''' Accés a Internet a través d'un Proxy  
 +
## '''Estat:''' Estat del servei
 +
# Desa
  
->Instal·lem la clau GPG del repositori:
+
Un cop desat, tornem a modificar i canviem alguns valors:
  
cd /root
+
# '''Proxy Configuració:'''
wget http://www.webmin.com/jcameron-key.asc
+
## '''Descàrrega:''' Ample de banda de baixada
  apt-key add jcameron-key.asc
+
## '''Carregueu:''' Ample de banda de pujada
 +
# '''Federació del proxy:'''
 +
## '''IN''' Els usuaris d'altres proxis poden fer-lo servir
 +
## '''OUT''' Els usuaris del proxy poden fer-ne servir d'altres
 +
# '''Nom:''' IP o ressolució interna del proxy
 +
# '''Port:''' Port del proxy (normalment 3128)
 +
# '''Tipus:''' Normalment HTTP
 +
# Desa
 +
   
 +
== Com instal·la? ==
 +
Entrem per ssh a la màquina i afegim els repositoris d'apt de guifi:
  
->Actual·lizem:
+
* [[Configurar_Repositori_apt_guifi|Configurar el repositori d'apt de guifi]]
  
  apt-get update
+
  # apt-get install guifi-proxy3
  
 +
'''Nota''': en el repositori ''guifi'' instal·la la versió antiga del paquet (''guifi-proxy3_0.0.1-2_all.deb''), per a intal·lar la versió nova (''guifi-proxy3_1.1.11_all.deb'') que utilitza ldap cal posar el repositori ''guifi-testing''
  
'''Instal·lem els paquets:'''
+
== Configuració del guifi-proxy3 ==
 +
Durant el procés d'instal·lació us demanarà els següents paràmetres:
 +
* url servei
 +
* nº del node del servidor proxy (el numero de node del servei)
 +
* Servidor LDAP 1 ( per defecte ldap.guifi.net )
 +
* Servidor LDAP 2  ( per defecte ldap2.guifi.net )
 +
* nom del servidor proxy ( display que els surt als clients que utilitzin el vostre proxy en començar a navegar )
 +
* e-mail de contacte. És l'email que apareix a les pàgines d'error que mostra el squid
 +
* idioma de les pàgines d'error del squid. Doncs això, depenent de l'idioma que definiu les pàgines d'error del squid surtiràn en un idioma o en un altre.
 +
* espai del disc per emmagatzamar cache. (/var/spool/squid3)
 +
* quantiat de memoria RAM dedicada a la cache. ( defecte 100Mb )
  
apt-get install squid sarg webmin apache2 webalizer
+
En acabar aquest assistent ( hi ha valors per defecte, per si hi ha dubtes) ja tindreu un servidor proxy-cache federat a punt per ser utilitzat, si no es vol no s'ha d'afegir cap altre configuració [veure més avall].
  
 +
== Com queda organitzada la configuració del squid? ==
 +
En finalitzar l'assistent tindrem els següents fitxers:
 +
* /etc/squid3/squid.conf [NO TOCAR/EDITAR] --> configuració estàndard
 +
* /etc/squid3/guifi.conf  [NO TOCAR/EDITAR] --> configuració generada durant el procés d'instalació del guifi-proxy3
 +
* /etc/squid3/custom.conf --> fitxer reservat per les configuracions dels administradors dels server proxy. ( per exemple les acl que tallen megaupload i demés)
  
== Apache: ==
+
== Problemes freqüents ==
 +
* '''No funciona l'autenticació de cap usuari:''' Possiblement hi ha o hi ha hagut un problema amb el servidor ldap, en aquest cas, prova de reiniciar squid3 (service squid3 restart). Si segueix sense funcionar, posa't en contacte amb la comunitat a través de la llista [https://llistes.guifi.net/sympa/info/guifi-dev guifi-dev].
  
 +
== Validació d'usuaris i proxys federats ==
 +
'''Mètode guifi-proxy3 amb ldap:''' guifi-proxy3, consulta a la web el llista de federació dels nodes i es guarda aquesta info per generar el guifi.conf amb la informació de federacions. Amb aquesta info, quan un usuari es valida compara el id de usuari amb el seu id de proxy si aquest usuari pertany a un proxy federat, l'accepta o no, segons com estigui configurat el proxy on es vol connectar.
  
->Generem un certificat:
+
El procediment s'executa amb un cron cada 30 minuts i aquest fa una consulta a la web amb els proxys federats que accepta aquell proxy:
  
openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem
+
<nowiki>http://guifi.net/guifi/export/[id_proxy]/federation</nowiki>
  
...resultat:
+
Aquesta petició és instantània a la web. Amb aquesta comprovació el què es fa és regenerar el fitxer /etc/squid3/guifi.conf i integra els nous proxys als que el [id_proxy] està federat.
<pre>
+
  Generating a 1024 bit RSA private key
+
  .......................++++++
+
  ..++++++
+
  writing new private key to '/etc/apache2/apache.pem'
+
  
  You are about to be asked to enter information that will be incorporated
+
Paral·lelament, cada 30 minuts, ldap consulta la web i integra els usuaris nous de forma incremental (fa una comparació dels usuaris que hi ha a la bbdd de la web i a l'arbre ldap, i els nous els integra). Un cop al dia, a les 3 del matí, es regenera la bbdd de usuaris de proxy de la web a l'arbre ldap.
  into your certificate request.
+
  What you are about to enter is what is called a Distinguished Name or a DN.
+
  There are quite a few fields but you can leave some blank
+
  For some fields there will be a default value,
+
  If you enter '.', the field will be left blank.
+
  
  Country Name (2 letter code) [AU]:SP
+
Si canvies la contrasenya, o esborres el usuari, el canvi no s'aplica fins a les 3 de la matinada.
  State or Province Name (full name) [Some-State]:Regió
+
  Locality Name (eg, city) []:Ciutat
+
  Organization Name (eg, company) [Internet Widgits Pty Ltd]:guifi.net
+
  Organizational Unit Name (eg, section) []:
+
  Common Name (eg, YOUR name) []:admin
+
  Email Address []:blabla(arroba)mail(punt)com
+
  Srv:~#
+
</pre>
+
->Cargarem el mòdul SSL de l'Apache:
+
  
a2enmod ssl
+
== Validació d'usuaris i proxys federats 2 ==
 +
En els Debian 7.3 al fitxer /etc/ldap/ldap.conf hi havia la linea
  
->El reiniciarem perquè ens carregui el mòdul:
+
<nowiki>
 +
#TLS_CACERT /etc/ssl/certs/ca-certificates.crt 
 +
</nowiki>  
  
/etc/init.d/apache2 force-reload
+
Sense comentar... (cal que estigui comentada) o sigui que nomes pot estar sense comentar la linea    TLS_REQCERT never
  
 +
= Configuracions avançades =
  
== Webmin: ==
+
* [[Squid|Manual avançat i complet squid]]
 +
* [[Servidor_Proxy_IM|Permetre connexions serveis de missatgeria]]
 +
* [[Servidor_Proxy_delaypools|Delay Pools]]
 +
* [[Servidor_Proxy_videos|Servidor Proxy per a Vídeos]]
 +
* [[Servidor_Proxy_logs|Canviar el format de la hora dels logs]]
 +
* [[Servidor_Proxy_webmin|Instal·lació + webmin + sarge (Manual Antic)]]
 +
* [[Proxy_socks|Proxy Socks (Proxy per a protocols no http com pop o imap)]]
 +
* [[Filtrar publicitat web tipus adBlock en un servidor Debian amb dnsservices]]
 +
* [[Filtrar pornografia / malware en un servidor Debian amb dnsservices]]
  
->un cop tinguem instal·lat el paquet, podem accedir a la seva configuració des del navegador:
 
  
  https://''ip-del-servidor'':10000/
 
 
->Accedirem amb l'usuari que tinguem al servidor. En el menú de l'esquerra anem a "Webmin - Change Language and Theme" per posar-lo a català.
 
 
 
== Squid: ==
 
 
->Primer crearem un directori que ens caldrà més endavant:
 
 
mkdir /usr/etc/
 
touch /usr/etc/passwd
 
 
 
'''Programes d'autentificació:'''
 
 
->A continuació accedirem a "Servidors - Squid - Servidor Proxy - Programes de autentificació". Allà afagirem a "Programa d'autenticació bàsica", ''/usr/lib/squid/ncsa_auth /usr/etc/passwd'' i els següents valors marcats a la imatge[[http://asociacionjuvenilelcueto.info/files/user2/autenticacion_squid.png]]
 
 
  Programa d'autentificació bàsica: -> /usr/lib/squid/ncsa_auth /usr/etc/passwd
 
  Nº de programes d'autentificació: -> 5
 
  Temps de cache d'autentificació:  -> 2  hores
 
  Pòcima d'autentificació:  ->  Squid proxy-caching web server
 
 
->Cliquem a "Aplicar els canvis", adalt a la dreta, per guardar.
 
 
 
'''Control d'accés:'''
 
 
->A "Servidors - Squid - Servidor Proxy - Control d'accés", cliquem al botó de "Crear nova ACL", amb el menú desplegable marcat amb "Autentificació Externa" i li donem el nom usuaris_autentificats.
 
 
->Ara a "Servidors - Squid - Servidor Proxy - Control d'accés", anem a la pestanya "Restriccions del proxy" i afagim una nova que permetrà els usuaris autentificats.
 
 
->Sel·leccionar "Permetre" i sel·leccionar "Usuaris Autentificats"
 
 
->És important l'ordre en què aparèixin llistades les restriccions, pel que haurem de pujar-la, amb la fletxa, per sobre de la que ho denega tot.
 
 
->Per últim, cliquem a "Aplicar canvis", a dalt a la dreta.
 
 
'''Llistar els Guifaires loguejats al proxy federat'''
 
 
->Obrir un cron amb la ordre següent:
 
 
crontab -e
 
 
3,8,13,17,28,24,28,33,39,44,49,53,57 * * * * tail -1000 /var/log/squid/access.log | awk '{print$8,"\t"}' | grep -v "-" | sort | uniq > /var/www/guifaires.txt
 
 
..ara podem llistar l'arxiu escollit: /var/www/guifaires.txt
 
 
 
== Sarg: ==
 
 
->Des del webmin, podrem accedir a "Servidors - Generador d'Informes d'Anàlisis de Squid" i generar un informe per visualizar les estadístiques.
 
 
 
== Federació del proxy: ==
 
 
->Per que altres usuaris de proxys federats puguin conectar-se al nostre, necessitem tenir una llista actualizada dels mateixos amb les seves contrasenyes. Per això crearem un script que ho descargui periòdicament de guifi.net mitjançant el cron. El còdig de l'script és el següent:
 
 
<pre>
 
#!/bin/sh
 
wget http://www.guifi.net/node/00000/view/federated -qO /tmp/passwd
 
touch /usr/etc/passwd
 
NEW=`diff /usr/etc/passwd /tmp/passwd|wc -l`
 
OK=`grep Federated /tmp/passwd|wc -l`
 
if [ $OK != "0" ]; then
 
if [ $NEW != "0" ]; then
 
  cp /tmp/passwd /usr/etc/
 
  /etc/init.d/squid reload
 
  echo "Nou /usr/etc/passwd copiat"
 
  fi;
 
fi
 
</pre>
 
 
->Hem de sustituir el "00000" pel número de nodo corresponent al nostre proxy. Ho guardem com proxypasswd.sh, li donem permisos d'execució i el copiem a una ruta dins del PATH.
 
 
chmod 755 proxypasswd.sh
 
mv proxypasswd.sh /usr/bin/proxypasswd.sh
 
 
->Ens queda automatizar el procés de recuperació d'usuaris, usant el cron.
 
 
crontab -e
 
 
->Ens obre un arxiu de texto on es troben les entrades dels processos periòdics del sistema. Afagim la següent línea:
 
 
54 * * * * sh /usr/bin/proxypasswd.sh
 
 
->Reiniciem el cron per que tingui en compte els canvis:
 
 
/etc/init.d/cron restart
 
 
== Permetre connexions serveis de missatgeria ==
 
# Allow AIM protocols
 
acl AIM_ports port 5190 9898 6667
 
acl AIM_domains dstdomain .oscar.aol.com .blue.aol.com .freenode.net
 
acl AIM_domains dstdomain .messaging.aol.com .aim.com
 
acl AIM_hosts dstdomain login.oscar.aol.com login.glogin.messaging.aol.com toc.oscar.aol.com irc.freenode.net
 
acl AIM_nets dst 64.12.0.0/255.255.0.0
 
acl AIM_methods method CONNECT
 
http_access allow AIM_methods AIM_ports AIM_nets
 
http_access allow AIM_methods AIM_ports AIM_hosts
 
http_access allow AIM_methods AIM_ports AIM_domains
 
 
# Allow Yahoo Messenger
 
acl YIM_ports port 5050
 
acl YIM_domains dstdomain .yahoo.com .yahoo.co.jp
 
acl YIM_hosts dstdomain scs.msg.yahoo.com cs.yahoo.co.jp
 
acl YIM_methods method CONNECT
 
http_access allow YIM_methods YIM_ports YIM_hosts
 
http_access allow YIM_methods YIM_ports YIM_domains
 
 
# Allow GTalk
 
acl GTALK_ports port 5222 5050
 
acl GTALK_domains dstdomain .google.com
 
acl GTALK_hosts dstdomain talk.google.com
 
acl GTALK_methods method CONNECT
 
http_access allow GTALK_methods GTALK_ports GTALK_hosts
 
http_access allow GTALK_methods GTALK_ports GTALK_domains
 
 
# Allow jabber.org
 
acl jabber_ports port 5222 5050
 
acl jabber_domains dstdomain .jabber.org .marsupi.org .guifi.net
 
acl jabber_hosts dstdomain hermes.jabber.org
 
acl jabber_methods method CONNECT
 
http_access allow jabber_methods jabber_ports jabber_hosts
 
http_access allow jabber_methods jabber_ports jabber_domains
 
 
# Allow MSN
 
acl MSN_ports port 1863 443 1503
 
acl MSN_domains dstdomain .microsoft.com .hotmail.com .live.com .msft.net .msn.com .passport.com
 
acl MSN_hosts dstdomain messenger.hotmail.com
 
acl MSN_nets dst 207.46.111.0/255.255.255.0
 
acl MSN_methods method CONNECT
 
http_access allow MSN_methods MSN_ports MSN_hosts
 
http_access allow MSN_methods MSN_ports MSN_domains
 
http_access allow MSN_methods MSN_ports MSN_nets
 
 
# Permit IRC
 
acl IRC_ports port 6667
 
acl IRC_domains dstdomain .freenode.net .guifi.net
 
acl IRC_hosts dstdomain  irc.freenode.net
 
acl IRC_methods method CONNECT
 
http_access allow IRC_methods IRC_ports IRC_hosts
 
http_access allow IRC_methods IRC_ports IRC_domains
 
 
== Webalizer: ==
 
 
->Crearem els directoris necessaris:
 
 
mkdir /var/www/webalizer/apache
 
mkdir /var/www/webalizer/squid
 
 
->Configurem mitjançant webmin:
 
 
https://''ip-del-servidor'':10000/
 
 
->A "Servidors - Webalizer - Anàlisis d'Històrics (Logs)" hem d'editar dos logs clicant sobre ells:
 
 
* /var/log/apache2/access.log
 
    Escriure informe en el directori:    /var/www/webalizer/apache
 
    Generació d'informe planificada:  Habilitat, a les hores escollides a sota ..
 
* /var/log/squid/access.log
 
    Escriure informe en el directori:    /var/www/webalizer/squid
 
    Generació d'informe planificada:  Habilitat, a les hores escollides a sota ..
 
 
 
----
 
 
== referències ==
 
== referències ==
 
...partint d'altres experiencies i manuals com:
 
...partint d'altres experiencies i manuals com:
 
*[http://www.guifi.net/proxy-debian manual debian de guifi.net]
 
*[http://www.guifi.net/proxy-debian manual debian de guifi.net]
 
*[http://asociacionjuvenilelcueto.info/node/156 manual de l'associació Juvenil el Cueto (Rioja)]
 
*[http://asociacionjuvenilelcueto.info/node/156 manual de l'associació Juvenil el Cueto (Rioja)]
 +
 +
[[Categoria:Proxy]]
 +
[[es:Servidor_Proxy]]
 +
[[en:Proxy_Server]]

Revisió de 23:48, 2 març 2016

Que és Guifi-proxy3?

Guifi-proxy3 és l'ampliació del paquet guifi-proxy, creat per en Carles Guadall, més un conjunt de configuracions per tal d'aconseguir un proxy federat-cache en el moment de finalitzar el assistent de configuració.

Des de principis del 2013, el paquet guifi-proxy3 autentica els usuaris a través d'una base de dades ldap, situats sota ldap.guifi.net i ldap2.guifi.net.

Creació del servei a la web de guifi

Prèviament haurem d'haver afegit un dispositiu tipus servidor en el nostre supernode i assigar-li una IP de guifi (dispositiu del supernode > editar > secció de connexions per cable > Rang de IPs destinat als server (es crea si no existeix) > endoll > Enllaça dispositiu > crea > Guardar y modificar.


  1. Crea continguts
  2. guifi.net service
    1. Service name: Servidor Proxy de XXXXXX
    2. Nom curt: NOMCurtSupernode-PROXY
    3. Contacte: mail de contacte de l'administrador
    4. Dispositiu: comencem a escriure el nom del nostre servidor i sortiran els noms dels servidors que comencen així
    5. Servei: Accés a Internet a través d'un Proxy
    6. Estat: Estat del servei
  3. Desa

Un cop desat, tornem a modificar i canviem alguns valors:

  1. Proxy Configuració:
    1. Descàrrega: Ample de banda de baixada
    2. Carregueu: Ample de banda de pujada
  2. Federació del proxy:
    1. IN Els usuaris d'altres proxis poden fer-lo servir
    2. OUT Els usuaris del proxy poden fer-ne servir d'altres
  3. Nom: IP o ressolució interna del proxy
  4. Port: Port del proxy (normalment 3128)
  5. Tipus: Normalment HTTP
  6. Desa

Com instal·la?

Entrem per ssh a la màquina i afegim els repositoris d'apt de guifi:

# apt-get install guifi-proxy3

Nota: en el repositori guifi instal·la la versió antiga del paquet (guifi-proxy3_0.0.1-2_all.deb), per a intal·lar la versió nova (guifi-proxy3_1.1.11_all.deb) que utilitza ldap cal posar el repositori guifi-testing

Configuració del guifi-proxy3

Durant el procés d'instal·lació us demanarà els següents paràmetres:

  • url servei
  • nº del node del servidor proxy (el numero de node del servei)
  • Servidor LDAP 1 ( per defecte ldap.guifi.net )
  • Servidor LDAP 2 ( per defecte ldap2.guifi.net )
  • nom del servidor proxy ( display que els surt als clients que utilitzin el vostre proxy en començar a navegar )
  • e-mail de contacte. És l'email que apareix a les pàgines d'error que mostra el squid
  • idioma de les pàgines d'error del squid. Doncs això, depenent de l'idioma que definiu les pàgines d'error del squid surtiràn en un idioma o en un altre.
  • espai del disc per emmagatzamar cache. (/var/spool/squid3)
  • quantiat de memoria RAM dedicada a la cache. ( defecte 100Mb )

En acabar aquest assistent ( hi ha valors per defecte, per si hi ha dubtes) ja tindreu un servidor proxy-cache federat a punt per ser utilitzat, si no es vol no s'ha d'afegir cap altre configuració [veure més avall].

Com queda organitzada la configuració del squid?

En finalitzar l'assistent tindrem els següents fitxers:

  • /etc/squid3/squid.conf [NO TOCAR/EDITAR] --> configuració estàndard
  • /etc/squid3/guifi.conf [NO TOCAR/EDITAR] --> configuració generada durant el procés d'instalació del guifi-proxy3
  • /etc/squid3/custom.conf --> fitxer reservat per les configuracions dels administradors dels server proxy. ( per exemple les acl que tallen megaupload i demés)

Problemes freqüents

  • No funciona l'autenticació de cap usuari: Possiblement hi ha o hi ha hagut un problema amb el servidor ldap, en aquest cas, prova de reiniciar squid3 (service squid3 restart). Si segueix sense funcionar, posa't en contacte amb la comunitat a través de la llista guifi-dev.

Validació d'usuaris i proxys federats

Mètode guifi-proxy3 amb ldap: guifi-proxy3, consulta a la web el llista de federació dels nodes i es guarda aquesta info per generar el guifi.conf amb la informació de federacions. Amb aquesta info, quan un usuari es valida compara el id de usuari amb el seu id de proxy si aquest usuari pertany a un proxy federat, l'accepta o no, segons com estigui configurat el proxy on es vol connectar.

El procediment s'executa amb un cron cada 30 minuts i aquest fa una consulta a la web amb els proxys federats que accepta aquell proxy:

http://guifi.net/guifi/export/[id_proxy]/federation

Aquesta petició és instantània a la web. Amb aquesta comprovació el què es fa és regenerar el fitxer /etc/squid3/guifi.conf i integra els nous proxys als que el [id_proxy] està federat.

Paral·lelament, cada 30 minuts, ldap consulta la web i integra els usuaris nous de forma incremental (fa una comparació dels usuaris que hi ha a la bbdd de la web i a l'arbre ldap, i els nous els integra). Un cop al dia, a les 3 del matí, es regenera la bbdd de usuaris de proxy de la web a l'arbre ldap.

Si canvies la contrasenya, o esborres el usuari, el canvi no s'aplica fins a les 3 de la matinada.

Validació d'usuaris i proxys federats 2

En els Debian 7.3 al fitxer /etc/ldap/ldap.conf hi havia la linea

#TLS_CACERT /etc/ssl/certs/ca-certificates.crt

Sense comentar... (cal que estigui comentada) o sigui que nomes pot estar sense comentar la linea TLS_REQCERT never

Configuracions avançades


referències

...partint d'altres experiencies i manuals com:

Eines de l'usuari