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)

Servidor de comunicacions Institut les Planes

Instal·lació squid3

  • Per instal·lar squid3 executarem aquesta ordre:
# apt-get install squid3
  • Un cop instal·lat reiniciem amb:
# /etc/init.d/squid3 restart
  • Podem utilitzar altres opcions com start per iniciar i stop per parar el servei.
  • També podem utilitzar squid3 -k reconfigure, aquesta opció es realment interessant quan sols hem fet canvis en el fitxer de configuració de squid3, que és squid.conf.

Configuració squid3

  • Per configurar squid3, pot ser oportú fer una còpia de seguretat del fitxer de configuració squid.conf, ja que aquest fitxer es molt extens.
  • El que he fet jo es canviar-li el nom al fitxer de configuració per el de squidbackup.conf i n'he creat un altre en el nom de squid.conf amb la configuració que mostro tot seguit:
#
#cache_effective_user squid
#cache_effective_group squid
# Port servei peticions HTTP
http_port 8080
#
# Relació amb altres catxes, treball en jerarquia
#cache_peer 192.168.202.1 parent 3128 0 no-query no-digest default
#
# Dimensionat de l'espai de catxe al disc dur i memoria RAM
cache_dir ufs /var/spool/squid3/ 100 16 256
cache_mem 4 MB
#
visible_hostname SBrbINSLesPlanesSrvr1
#
# Control d'acces als serveis del proxy
#
# Definicio acl
#acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 1025-65535
acl CONNECT method CONNECT
acl inslesplanes.santabarbara.cat src 192.168.59.0/24
#
# Aplicacio de les acl
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow manager all
http_access allow manager localhost
http_access allow manager inslesplanes.santabarbara.cat
http_access allow localhost
http_access allow inslesplanes.santabarbara.cat
http_access deny all
#
icp_access deny all
miss_access allow inslesplanes.santabarbara.cat
miss_access allow localhost
miss_access deny all
#
# Control d'acces del proxy a l'exterior
#acl locals dst 192.168.59.0/24
#always_direct allow locals
#always_direct allow localhost
#never_direct deny locals
#never_direct allow all
#
# Control de l'aplicacio de monitoritzacio cachemgr.cgi
cachemgr_passwd disable shutdown
cachemgr_passwd squid all
#
# Correu electronic de contacte amb l'administrador
cache_mgr [email protected]
#
#  Nivell i rotacio del registre de funcionament (logs)
access_log /var/log/squid3/access.log
cache_store_log none
debug_options ALL,1
logfile_rotate 1

Instal·lació SquidGuard

  • Primer que res instal·lem el paquet, amb:
# apt-get install squidguard
  • Ara he configurat el fitxer /etc/squid3/squid.conf
  • Li he afegit aquestes línies:
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
redirect_children 8
redirector_bypass on
  • Després he fet una còpia de seguretat del fitxer /etc/squid/squidGuard.conf
# cp squidGuard.conf squidGuardBackup.conf

Exemple Simple

  • Ara el fitxer original l'edito i li esborro tot el contingut, i li afegim aquest contingut:
# CONFIG FILE FOR SQUIDGUARD
#
dbhome /var/lib/squidguard/db
logdir /var/log/squid
dest porn {
       domainlist porn/domains
       urllist porn/urls
       }
acl {
       default {
               pass !porn all
               redirect http://localhost/block.html
       }
}

  • Un cop hem fet aquest pas, ens situem a /var/www/ per crear un fitxer de nom block.html
# cd /var/www/
# nano block.html
  • On en un principi no l'editarem molt, sols ens caldrà afegir:
Pàgina Prohibida
  • Després ens situem a /var/lib/squidGuard/db/ i creem una carpeta de nom porn i dos fitxer de noms domains i urls
# mkdir porn
# nano domains
# nano urls
  • On dins del fitxer domains inclourem els dominis que han de ser prohibits i en l'altre inclourem les adreces de les pàgines prohibides.
  • Ara tenim que efectuar aquestes dues comandes:
# squidGuard -C all -d
# squidGuard -u
  • Abans tenim que ficar el dos fitxer creat anteriorment dins la carpeta porn
  • Aquestes comandes creen dos fitxer *.db.
  • Ho comprovo amb la comanda ls:
/var/lib/squidguard/db/porn# ls
domains  domains.db  urls  urls.db
  • Finalment comprovem el permisos, recordo que l'usuari es proxy
# ls -la /etc/squid/squidGuard.conf 

-rw-r--r-- 1 root root 222 2011-05-15 16:40 /etc/squid/squidGuard.conf

  • Li canviem els permisos:
# chown proxy:proxy /etc/squid/squidGuard.conf 
# chown -R proxy:proxy /var/lib/squidguard/db/
# chown -R proxy:proxy /var/log/squid/
  • Podem executar-lo com usuari proxy
# su proxy 
$ /usr/bin/squidGuard -c /etc/squid/squidGuard.conf -d 
2011-05-15 17:09:07 [2277] New setting: dbhome: /var/lib/squidguard/db
2011-05-15 17:09:07 [2277] New setting: logdir: /var/log/squid
2011-05-15 17:09:07 [2277] init domainlist /var/lib/squidguard/db/porn/domains 
2011-05-15 17:09:07 [2277] loading dbfile /var/lib/squidguard/db/porn/domains.db
2011-05-15 17:09:07 [2277] init urllist /var/lib/squidguard/db/porn/urls
2011-05-15 17:09:07 [2277] loading dbfile /var/lib/squidguard/db/porn/urls.db
2011-05-15 17:09:07 [2277] squidGuard 1.4 started (1305472147.368)
2011-05-15 17:09:07 [2277] squidGuard ready for requests (1305472147.378)
  • Per comprovar les normes, el format d'entrada és (a continuació, sense sorti del procés):
http://sex.com/ 192.168.202.220 - GET
  • Resultat:
2011-05-19 19:50:03 [3043] squidGuard ready for requests (1305827403.553)
http://sex.com/ 127.0.0.1 - GET       
2011-05-19 19:50:25 [3043] source not found
2011-05-19 19:50:25 [3043] no ACL matching source, using default

Exemple Real

  • El primer que farem serà descarregar les llistes negres de pàgines prohibides [LlistaNegra].
  • Aquest fitxer el descomprimim a /var/lib/squidguard/db/ amb:
tar xvzf blacklists.tar.gz
  • Després podem utilitzar aquest fitxer per a configurar /etc/squid/squidguard.conf [Fitxer SquidGuard] o també mostro el utilitzat pel nostre grup.


logdir /var/log/squidGuard
dbhome /var/lib/squidguard/db/blacklists
rewrite rew-rule-1 {
   # rewrite safesearch
   [email protected](.*\Wgoogle\.\w+/(webhp|search|imghp|images|grphp|groups|frghp|froogle)\?)(.*)(\bsafe=\w+)(.*)@\1\3safe=strict\[email protected]
   [email protected](.*\Wgoogle\.\w+/(webhp|search|imghp|images|grphp|groups|frghp|froogle)\?)(.*)@\1safe=strict\&\[email protected]
   [email protected](.*\Wsearch\.yahoo\.\w+/search\W)(.*)(\bvm=\w+)(.*)@\1\2vm=r\[email protected]
   [email protected](.*\Wsearch\.yahoo\.\w+/search\W.*)@\1\&[email protected]
   [email protected](.*\Walltheweb\.com/customize\?)(.*)(\bcopt_offensive=\w+)(.*)@\1\2copt_offensive=on\[email protected]
}
rewrite rew-rule-2 {
   # rewrite nothing
}
dest ads {
   domainlist     ads/domains
   urllist        ads/urls
   redirect       1x1.gif
   logfile        urlfilter.log
}
dest adv {
   domainlist     adv/domains
   urllist        adv/urls
   redirect       1x1.gif
   logfile        urlfilter.log
}
dest aggressive {
   domainlist     aggressive/domains
   urllist        aggressive/urls
   logfile        urlfilter.log
}
dest alcohol {
   domainlist     alcohol/domains
   urllist        alcohol/urls
   logfile        urlfilter.log
}
dest audio-video {
   domainlist     audio-video/domains
   urllist        audio-video/urls
   logfile        urlfilter.log
}
dest automobile_bikes {
   domainlist     automobile/bikes/domains
   urllist        automobile/bikes/urls
   logfile        urlfilter.log
}
dest automobile_boats {
   domainlist     automobile/boats/domains
   urllist        automobile/boats/urls
   logfile        urlfilter.log
}
dest automobile_cars {
   domainlist     automobile/cars/domains
   urllist        automobile/cars/urls
   logfile        urlfilter.log
}
dest automobile_planes {
   domainlist     automobile/planes/domains
   urllist        automobile/planes/urls
   logfile        urlfilter.log
}
dest chat {
   domainlist     chat/domains
   urllist        chat/urls
   logfile        urlfilter.log
}
dest costtraps {
   domainlist     costtraps/domains
   urllist        costtraps/urls
   logfile        urlfilter.log
}
dest dating {
   domainlist     dating/domains
   urllist        dating/urls
   logfile        urlfilter.log
}
dest downloads {
   domainlist     downloads/domains
   urllist        downloads/urls
   logfile        urlfilter.log
}
dest drugs {
   domainlist     drugs/domains
   urllist        drugs/urls
   logfile        urlfilter.log
}
dest dynamic {
   domainlist     dynamic/domains
   urllist        dynamic/urls
   logfile        urlfilter.log
}
dest education_schools {
   domainlist     education/schools/domains
   urllist        education/schools/urls
   logfile        urlfilter.log
}
dest finance_banking {
   domainlist     finance/banking/domains
   urllist        finance/banking/urls
   logfile        urlfilter.log
}
dest finance_insurance {
   domainlist     finance/insurance/domains
   urllist        finance/insurance/urls
   logfile        urlfilter.log
}
dest finance_moneylending {
   domainlist     finance/moneylending/domains
   urllist        finance/moneylending/urls
   logfile        urlfilter.log
}
dest finance_other {
   domainlist     finance/other/domains
   urllist        finance/other/urls
   logfile        urlfilter.log
}
dest finance_realestate {
   domainlist     finance/realestate/domains
   urllist        finance/realestate/urls
   logfile        urlfilter.log
}
dest fortunetelling {
   domainlist     fortunetelling/domains
   urllist        fortunetelling/urls
   logfile        urlfilter.log
}
dest forum {
   domainlist     forum/domains
   urllist        forum/urls
   logfile        urlfilter.log
}
dest gamble {
   domainlist     gamble/domains
   urllist        gamble/urls
   logfile        urlfilter.log
}
dest gambling {
   domainlist     gambling/domains
   urllist        gambling/urls
   logfile        urlfilter.log
}
dest government {
   domainlist     government/domains
   urllist        government/urls
   logfile        urlfilter.log
} 
dest hacking {
   domainlist     hacking/domains
   urllist        hacking/urls
   logfile        urlfilter.log
}
dest hobby_cooking {
   domainlist     hobby/cooking/domains
   urllist        hobby/cooking/urls
   logfile        urlfilter.log
}
dest hobby_games {
   domainlist     hobby/games/domains
   urllist        hobby/games/urls 
   logfile        urlfilter.log
}
dest hobby_games-misc {
   domainlist     hobby/games-misc/domains
   urllist        hobby/games-misc/urls
   logfile        urlfilter.log
}
dest hobby_games-online {
   domainlist     hobby/games-online/domains
   urllist        hobby/games-online/urls
   logfile        urlfilter.log
}
dest hobby_gardening {
   domainlist     hobby/gardening/domains 
   urllist        hobby/gardening/urls
   logfile        urlfilter.log
}
dest hobby_pets {
   domainlist     hobby/pets/domains
   urllist        hobby/pets/urls
   logfile        urlfilter.log
}
dest homestyle {
   domainlist     homestyle/domains
   urllist        homestyle/urls
   logfile        urlfilter.log
}
dest hospitals {
   domainlist     hospitals/domains
   urllist        hospitals/urls
   logfile        urlfilter.log
}
dest imagehosting {
   domainlist     imagehosting/domains
   urllist        imagehosting/urls
   logfile        urlfilter.log
}
dest isp {
   domainlist     isp/domains
   urllist        isp/urls
   logfile        urlfilter.log
}
dest jobsearch {
   domainlist     jobsearch/domains
   urllist        jobsearch/urls
   logfile        urlfilter.log
}
dest library {
   domainlist     library/domains
   urllist        library/urls
   logfile        urlfilter.log
}
dest mail {
   domainlist     mail/domains
   logfile        urlfilter.log
}
dest military {
   domainlist     military/domains
   urllist        military/urls
   logfile        urlfilter.log
}
dest models {
   domainlist     models/domains
   urllist        models/urls
   logfile        urlfilter.log
}
dest movies {
   domainlist     movies/domains
   urllist        movies/urls
   logfile        urlfilter.log
}
dest music {
   domainlist     music/domains
   urllist        music/urls
   logfile        urlfilter.log
}
dest news {
   domainlist     news/domains
   urllist        news/urls
   logfile        urlfilter.log
}
dest podcasts {
   domainlist     podcasts/domains
   urllist        podcasts/urls
   logfile        urlfilter.log
} 
dest politics {
   domainlist     politics/domains
   urllist        politics/urls
   logfile        urlfilter.log
}
dest porn {
   domainlist     porn/domains
   urllist        porn/urls
   expressionlist porn/expressions
   logfile        urlfilter.log
}
dest proxy {
   domainlist     proxy/domains
   urllist        proxy/urls
   logfile        urlfilter.log
}
dest radiotv {
   domainlist     radiotv/domains
   urllist        radiotv/urls
   logfile        urlfilter.log
}
dest recreation_humor {
   domainlist     recreation/humor/domains
   urllist        recreation/humor/urls
   logfile        urlfilter.log
}
dest recreation_martialarts {
   domainlist     recreation/martialarts/domains
   urllist        recreation/martialarts/urls
   logfile        urlfilter.log
}
dest recreation_restaurants {
   domainlist     recreation/restaurants/domains
   urllist        recreation/restaurants/urls
   logfile        urlfilter.log
}
dest recreation_sports {
   domainlist     recreation/sports/domains
   urllist        recreation/sports/urls
   logfile        urlfilter.log
} 
dest recreation_travel {
   domainlist     recreation/travel/domains
   urllist        recreation/travel/urls
   logfile        urlfilter.log
}
dest recreation_wellness {
   domainlist     recreation/wellness/domains
   urllist        recreation/wellness/urls
   logfile        urlfilter.log
}
dest redirector {
   domainlist     redirector/domains
   urllist        redirector/urls
   logfile        urlfilter.log
}
dest religion {
   domainlist     religion/domains
   urllist        religion/urls
   logfile        urlfilter.log
}
dest remotecontrol {
   domainlist     remotecontrol/domains
   urllist        remotecontrol/urls
   logfile        urlfilter.log
}
dest ringtones {
   domainlist     ringtones/domains
   urllist        ringtones/urls
   logfile        urlfilter.log
}
dest science_astronomy {
   domainlist     science/astronomy/domains
   urllist        science/astronomy/urls
   logfile        urlfilter.log
}
dest science_chemistry {
   domainlist     science/chemistry/domains
   urllist        science/chemistry/urls
   logfile        urlfilter.log
}
dest searchengines {
   domainlist     searchengines/domains
   urllist        searchengines/urls
   logfile        urlfilter.log
}
dest sex_lingerie {
   domainlist     sex/lingerie/domains
   urllist        sex/lingerie/urls
   logfile        urlfilter.log
}
dest shopping {
   domainlist     shopping/domains
   urllist        shopping/urls
   logfile        urlfilter.log
}
dest socialnet {
   domainlist     socialnet/domains
   urllist        socialnet/urls
   logfile        urlfilter.log
}
dest spyware {
   domainlist     spyware/domains
   urllist        spyware/urls
   logfile        urlfilter.log
}
dest tracker {
   domainlist     tracker/domains
   urllist        tracker/urls
   logfile        urlfilter.log
}
dest updatesites {
   domainlist     updatesites/domains
   urllist        updatesites/urls
   logfile        urlfilter.log
}
dest violence {
   domainlist     violence/domains
   urllist        violence/urls
   expressionlist violence/expressions
   logfile        urlfilter.log
}
dest warez {
   domainlist     warez/domains
   urllist        warez/urls
   logfile        urlfilter.log
}
dest weapons {
   domainlist     weapons/domains
   urllist        weapons/urls
   logfile        urlfilter.log
}
dest webmail {
   domainlist     webmail/domains
   urllist        webmail/urls
   logfile        urlfilter.log
}
dest webphone {
   domainlist     webphone/domains
   urllist        webphone/urls
   logfile        urlfilter.log
}
dest webradio {
   domainlist     webradio/domains
   urllist        webradio/urls
   logfile        urlfilter.log
}
dest webtv {
   domainlist     webtv/domains
   urllist        webtv/urls
   logfile        urlfilter.log
}
dest files {
   expressionlist custom/blocked/files
   logfile        urlfilter.log
}
dest custom-allowed {
   domainlist     custom/allowed/domains
   urllist        custom/allowed/urls
}
dest custom-blocked {
   domainlist     custom/blocked/domains
   urllist        custom/blocked/urls
   logfile        urlfilter.log
}
dest custom-expressions {
   expressionlist custom/blocked/expressions
   logfile        urlfilter.log
}
src unfiltered {
   ip 192.168.59.1
}
acl {
   unfiltered {
       pass all
       rewrite rew-rule-2
   }
   default {
       pass custom-allowed !in-addr !ads !adv !aggressive !audio-video !automobile_bikes !automobile_boats
       !automobile_cars !automobile_planes !chat !dating !drugs !finance_banking !finance_insurance
       !finance_realestate !gamble !gambling !hacking !hobby_cooking !hobby_games !hobby_games-online !hobby_gardening !hospitals
       !imagehosting !mail !military !models !movies !podcasts !porn !proxy !recreation_humor !recreation_sports !recreation_travel
       !redirector !religion !remotecontrol !ringtones !sex_lingerie !shopping !spyware !violence !warez !weapons !webphone !webradio
       !webtv !custom-blocked !custom-expressions any
       rewrite rew-rule-1
       redirect http://localhost/block.htm
   }
}
  • És possible que tinguem que crear el fitxer /var/log/SquidGuard i també donar-li permisos per que pugui accedir squid
  • Per si en cas anterior no ho hem fet, també tindrem que introduir al fitxer /etc/squid3/squid.conf
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
redirect_children 50
redirector_bypass on
  • I ara reiniciem squid3
# /etc/init.d/squid3 reload
  • Ja podem fer una prova, per fer-ho fem:
# su proxy
# /usr/bin/squidGuarg -c /etc/squid/squidGuard.conf -d
  • Unes imatges dels resultats de les proves:
DavidginovartSquidGuard.png
DavidginovartSquidGuard1.png

Instal·lació Calamaris

  • El primer que farem serà instal·lar el paquet:
# apt-get install calamaris
  • Després moc el fitxer /etc/logrotate.d/squid3 a /etc/squid.logrotate, amb la comanda:
# mv /etc/logrotate.d/squid3 /etc/squid.logrotate
  • Tenim que comprovar que en el fitxer squid.conf tinguem el paràmetre logfile_rotate 1.
  • Per tornar a carregar el fitxer squid.conf, podem utilitzar:
# squid3 -k reconfigure
  • Ara és el moment de crear l'script per fer les rotacions, processar el logs i eliminar la còpia de registres.
#!/bin/sh
#
# Activa la rotació de logs, es generen els fitxers:
# access.log.0
# cache.log.0
#
/usr/sbin/squid3 -k rotate
/bin/sleep 10
# 
# Generem les estadístiques amb Calamaris, es genera el fitxer
# proxystats.html
# (Atenció, les comandes que hi ha a continuació van dins una sola línia !)
#
/bin/cat /var/log/squid3/access.log.0 | /usr/bin/calamaris -aH 'proxy.inslesplanes.santabarbara.cat' -F html > /var/www/proxystats.htm
#
# Eliminem el fitxer processat, access.log.0 i el cache.log.0
# per alliberar disc dur
#
#rm /var/log/squid3/*.log.0
  • Un cop creat l'script el situem a /etc/squid3/process_log.sh i li donem permisos d'execució:
# chmod +x /etc/squid3/process_log.sh
  • Ara ja podem executar l'script:
# ./process_log.sh
  • Ens connectem des d'un client.
Davidginovartcalamaris.png

Usuaris Guifi.net amb Squid i Ldap

  • El primer que he fet és crear una carpeta al Gosa amb el nom dels usuaris de guifi.net, aquesta carpeta l'he creat a /All/Guifi/.
DavidginovartGosaGuifi1.png
  • Ara modifico el fitxer /etc/squid3/squid.conf, aquí mostro el fitxer complet.
#cache_effective_user squid 
#cache_effective_group squid
# Port servei peticions HTTP
http_port 8080
#
# Relacio amb altres catxes, treball en jerarquia
cache_peer 192.168.202.1 parent 3128 0 no-query no-digest default
#
# Dimensionat de l'espai de catxe al disc dur i memoria RAM
cache_dir ufs /var/spool/squid3/ 100 16 256
cache_mem 4 MB
#
visible_hostname SBrbINSLesPlanesSrvr1
#
# Control d'acces als serveis del proxy
# 
# Definicio acl
#acl all src 0.0.0.0/0.0.0.0  
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 1025-65535
acl CONNECT method CONNECT
acl inslesplanes.santabarbara.cat src 192.168.59.0/24  
acl inslesplanes.santabarbara.cat src 192.168.202.0/24 
acl inslesplanes.santabarbara.cat src 192.168.0.0/24   
#acl inslesplanes.santabarbara.cat src 192.168.203.0/24
acl guifi src 10.0.0.0/8
#
#Utilitzem LDAP
auth_param basic program /usr/lib/squid3/squid_ldap_auth -v 3 -b "ou=All,dc=inslesplanes,dc=santabarbara,dc=cat" -f uid=%s localhost
auth_param basic children 50
auth_param basic realm Web-Proxy
auth_param basic credentialsttl 6 hours
acl ldap-auth proxy_auth REQUIRED
# Aplicacio de les acl
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow manager all
http_access allow manager localhost
http_access allow manager inslesplanes.santabarbara.cat
http_access allow localhost
http_access allow inslesplanes.santabarbara.cat
http_access allow ldap-auth guifi
http_access deny all
icp_access deny all
miss_access allow inslesplanes.santabarbara.cat
miss_access allow localhost
miss_access deny all
#
# Control d'acces del proxy a l'exterior
#acl locals dst 192.168.59.0/24
#always_direct allow locals   
#always_direct allow localhost
#never_direct deny locals
#never_direct allow all
#
# Control de l'aplicacio de monitoritzacio cachemgr.cgi
#cachemgr_passwd disable shutdown
#cachemgr_passwd squid all
#
# Correu electronic de contacte amb l'administrador
cache_mgr [email protected]
#
#  Nivell i rotacio del registre de funcionament (logs)
access_log /var/log/squid3/access.log
cache_store_log none
debug_options ALL,1
logfile_rotate 1
#SquidGuard
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
redirect_children 50
redirector_bypass on
  • Per acabar reiniciem el squid, amb:
# /etc/init.d/squid3 reload
* Reloading Squid HTTP Proxy 3.x configuration files
  ...done.

Enllaços Externs