Aquest document recull els passos que s'han fet a Perafita per obtenir un proxy federat a partir d'una Debian Etch pelada. La intenció és documentar una forma sistemàtica de fer aquest tipus d'instal·lacions. Els seus continguts essencials han estat obtinguts dels documents de referència següents (us en recomanem la lectura):
http://guifi.net/ca/proxy (muntar un proxy amb Squid)
http://guifi.net/ca/node/4427 (federar un proxy)
Partint d'una Debian Etch pelada, els passos a seguir són els següents:
nota 1: Les línies de comandes que comencen amb el caràcter "#" s'han d'executar amb permisos de superusuari; les que comencen amb "$" poden ser executades per usuaris sense permisos especials. En qualsevol cas, però, a l'hora d'entrar qualsevol línia de comandes s'ha de fer sense teclejar cap d'aquests caràcters.
nota 2: El sistema de gestió de paquets ja manega correctament tot el sistema de dependències. Quan instal·lem paquets, si aquests tenen dependències d'altres paquets que no tenim instal·lats, el sistema de gestió ens preguntarà si també volem instal·lar aquests altres paquets: contestem afirmativament i endavant.
# aptitude install apache2
Apache2 a Debian:
Instal·lem l'openssl i ens generem un certificat:
# aptitude install openssl ssl-cert
# openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem
Carreguem el mòdul ssl de l'apache:
# a2enmod ssl
Reengeguem l'apache perquè s'executi amb el mòdul d'ssl:
# /etc/init.d/apache2 force-reload
Baixem el paquet:
# wget http://prdownloads.sourceforge.net/webadmin/webmin_1.370_all.deb
Instal·lem els paquets que ens faran falta per a les dependències del webmin (*):
# aptitude install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl libmd5-perl
Instal·lem el paquet:
# dpkg -i webmin_1.370_all.deb
Ara mitjançant un navegador ja hem de poder entrar entrar a l'URL https:localhost:10000. Per exemple amb el lynx:
$ lynx https://127.0.0.1:10000/
=> habilitar l'accés des de totes les addreces (ja està habilitat per defecte)
-> per entrar per lynx cal admetre cookies (A)
-> left
-> Webmin Configuration
-> IP Access Control
(*) Allow from all addresses
=> per posar-lo en català
-> Change Language and Theme
-> Webmin UI language
Personal choice: Catalan (CA)
# aptitude install squid
Creem un directori que necessitarem després en el punt 4 (tot i que no compleixi l'FHS :p ):
# mkdir /usr/etc/
# touch /usr/etc/passwd
Per configurar-lo seguirem el document http://guifi.net/ca/proxy. Resumint:
-> Servidor
-> Servidor Proxy Squid
--> Programes d'Autenticació
Programa d'autenticació bàsica (·) /usr/lib/squid/ncsa_auth /usr/etc/passwd
Nombre de programes d'autenticació 5
Temps cau de l'autenticació (·) 2 hores
Reialme d'autenticació Perafita Squid proxy-caching web server
--> Control d'Accés
Llistes de control d'accés
final de tot; pastilla "Crea una nova ACL"; opció menú desplegable "Autenticació externa"
---> Control d'Accés
Nom d'ACL usuaris_autenticats
Restriccions de proxy
de color blau "Afegeix restricció de proxy."
Acció (·) Permet
Fes coincidir les ACLs usuaris_autenticats
Restriccions de proxy
A la llista s'ha de fer baixar "Denega all" a l'última posició
Control d'Accés
A dalt de tot a la dreta "Aplica els Canvis"
Utilitzarem sarg per a generar informes sobre l'ús del proxy. L'instal·lem:
# aptitude install sarg
I el configurarem amb el webmin:
https://127.0.0.1:10000/
-> Servidor
-> Generador d'Informes de l'Anàlisi de Squid
final de tot;
pastilla "Generar Ara l'Informe"
pastilla "Visualitzar Informe Generat"
4.1 federació del proxy (desfasat)
Ens basarem en el document http://guifi.net/ca/node/4427.
Hem de saber el número identificador de node del nostre proxy (el qual haurem donat d'alta com a proxy federat a la web de guifi.net, frame de l'esquerra, aportar continguts/serveis de guifi) perquè l'haurem d'introdir manualment a l'script que hem obtingut del document anterior. Per saber aquest número podem anar a la pastilla de "continguts" de la web de guifi (http://guifi.net/ca/node/2413/view/services) i busquem el nostre proxy i hi cliquem. Un cop hem accedit a la plana de descripció del nostre proxy el trobarem a la secció "servei"; per al proxy de perafita (http://guifi.net/node/7652) , per exemple: servei 7652-PerafitaProxy => el número que busquem és el 7652.
Anem a generar l'script: HEU DE SUBSTITUÏR EL 4282 ( del proxy de Roda de Ter-Esquerda) pel vostre
#!/bin/sh
wget http://www.guifi.net/ca/node/4282/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
El guardem (assegurant-nos que tot fent el copy&paste no hi hàgim introduït caràcters estranys; ull amb les negretes) amb el nom de proxypasswd.sh, com a root li donem permisos d'execució, el copiem a un lloc accessible del $PATH (/usr/bin en aquest exemple):
# chmod 755 proxypasswd.sh
# mv proxypasswd.sh /usr/bin/proxypasswd.sh
Ara mitjançant la comanda nova proxypasswd.sh qualsevol usuari ha de poder iniciar, manualment, el procés automàtic d'actualització els usuaris i els seus passwords (els usuaris i passwords es donen d'alta a través de la web de guifi.net):
El pas següent és fer que aquest procés s'inicialitzi de forma periòdica automàticament. per això teclejarem la comanda següent, la qual ens obrirà un fitxer de text a on hi ha les entrades dels processos periòdics del sistema):
# crontab -e
Al final d'aquest fitxer hi afegirem la línia següent, la qual estableix que el sistema cron invocarà proxypasswd.sh cada hora, al minut 54:
54 * * * * /usr/bin/proxypasswd.sh
Reiniciem cron perquè tingui en compte els canvis (d'acord amb el man de crontab no és necessari):
# /etc/init.d/cron restart
# aptitude install webalizer
# mkdir /var/www/webalizer/apache
# mkdir /var/www/webalizer/squid
Ho configurem mitjançant webmin
https://127.0.0.1:10000/
-> Servidor
-> Anàlisi de Registres Webalizer
--> Fitxer de registre
/var/log/apache2/access.log
Grava l'informe al directori /var/www/webalizer/apache
Generació planificada d'informe (·) Activada a les hores triades a sota...
/var/log/squid/access.log
Grava l'informe al directori /var/www/webalizer/squid
Generació planificada d'informe (·) Activada a les hores triades a sota...
1 servidor amb 2 targes de xarxa:
# cat /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 10.138.57.2
netmask 255.255.255.224
network 10.138.57.0
broadcast 10.138.57.31
up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.138.57.1
down route del -net 10.0.0.0 netmask 255.0.0.0 gw 10.138.57.1
auto eth1
iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
up route add default gw 192.168.1.1
down route del default gw 192.168.1.1
1 router Zyxel Prestige 650HW-31 al qual hem fet NAT per poder accedir des de Internet al servidor:
Menu 15.2 - NAT Server Setup
Rule Start Port No. End Port No. IP Address
---------------------------------------------------
1. Default Default 0.0.0.0
2. 22 22 192.168.1.2
3. 80 80 192.168.1.2
4. 443 443 192.168.1.2
5. 111 111 192.168.1.2
6. 0 0 0.0.0.0
7. 0 0 0.0.0.0
8. 0 0 0.0.0.0
9. 0 0 0.0.0.0
10. 0 0 0.0.0.0
11. 0 0 0.0.0.0
12. 0 0 0.0.0.0
Press ENTER to Confirm or ESC to Cancel:
Comentaris
Estic preparant un Debian
Estic preparant un Debian Etch per a fer de proxy. Gracies per la guia, estalvia feina.
Observacions:
En l'instal·lacio del webmin, abans de fer el dpkg, haurien d'instalar els paquets que falten, perque no es trenquin les dependencies i no dongui errors amb el dpkg, ja no caldra el "apt-get install -f":
aptitude install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl libmd5-perl
Ara mateix la versio que tenen empaquetada per debian es la 3.70. S'hauria de posar que copiin l'adreça del .deb "all" de la versió actual al wget. I que la posin entre cometes:
wget "http://downloads.sourceforge.net/webadmin/webmin_1.370_all.deb?modtime=1190449287&big_mirror=1"
aplicat
aptitude install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl libmd5-perl
Incorporat al doc.
_____
actualització de paquets
Ho he actualitzat a la 1.370, i hi he afegit l'ellaç de la plana de download.
... i com està l'assumpte d'editar directament les ACLs?
Joan,
això: com ho tens això d'anar directament als fitxers de configuració sense fer servir el webmin? ho has escrit algun lloc o en pots fer cinc cèntims? thx
Varis
resposta
1r-. "esborrar..." fet
2n-. "mkdir..." ja hi era al punt 4, però el passo al tres pq sinó, efectivament, el doc no és coherent
3r-. Sobre la generació de doc les ACLs: jo sí que ho documentaria.
Pregunta
Funcionaria també en una Ubuntu? ;) com que són cosines germanes.
Si no et fa res posaré una copia del teu tutorial al meu treball de recerca.
sí, i, sí
Ubuntu: jo no ho he provat, però no crec pas que hi hagi d'haver cap problema
"Còpia": doc lliure i tal, no?
Perdona el retard de les respostes.
Detalles en la configuración Ubuntu 9.04 con squid-2.7 y webmin
He probado (con Quique Galdú) el montaje con Ubuntu y Debian y funciona igual.
Comento dos detalles del fichero /etc/squid/squid.conf:
1- Las líneas que empiezan por auth_param deben estar antes que las acl.
2- Tenía creados squid y proxy tanto como usuario como grupo, pero en los dos sistemas el directorio en /var/log/squid pertenecía a usuario y grupo proxy y no a squid. En el fichero squid.conf se asignaban a squid, y entonces squid no arranca pero no daba error. En las líneas donde pone:
cache_effective_user squid
cache_effective_group squid
Hemos cambiado squid por proxy.
conexio segura ssl
Amb fedora, e instalat el openssl correctament.
alhora de generar el certificat, em dona errro 966.
no serveix per fedora el manual de ssl?
En principi hauria d'anar igual, no?
no veig pq no ha de funcionar, Potser podries fer un C&P tant de la comanda com de la sortid a veure què...
ssl amb fedora
El meu directori del apache es:
/etc/httpd/
a llavors creo el ssl al directori que toca eplenant tote el que em demana
openssl req $@ -new -x509 -days 365 -nodes -out /etc/httpd/apache.pem -keyout /etc/httpd/apache.pem
fent tot aixo, encara no respon https://localhost
i aquest pas et dóna un error? post fer-ne C&P?
i si no et dóna error, però encara no et va assegura't de tenir el mòdul de l'apache ssl carregat i d'haver reinicat l'apache
Webmin per debian (enllaç més
Webmin per debian (enllaç més actualitzat): http://prdownloads.sourceforge.net/webadmin/webmin_1.530_all.deb
I una altra dependència: apt-show-versions