Servidor Proxy/ca
De Guifi.net - Wiki Català
nota: Aquest manual, basat en Debian, inclou instal·lar servidor web, webmin, sarg i webalizer
->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
->Instal·lem la clau GPG del repositori:
cd /root wget http://www.webmin.com/jcameron-key.asc apt-key add jcameron-key.asc
->Actual·lizem:
apt-get update
Instal·lem els paquets:
apt-get install squid sarg webmin apache2 webalizer
Apache:
->Generem un certificat:
openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem
...resultat:
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 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 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:~#
->Cargarem el mòdul SSL de l'Apache:
a2enmod ssl
->El reiniciarem perquè ens carregui el mòdul:
/etc/init.d/apache2 force-reload
Webmin:
->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[[1]]
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:
#!/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
->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
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
...partint d'altres experiencies i manuals com: