Implantation



Ce tutoriel développe la mise en place d'un serveur proxy Squid avec une demande d'authentification LDAP pour les utilisateurs voulant accéder au cache. Le filtrage du contenu des sites est réalisé par DansGuardian. Un serveur apt-proxy mettra en cache tous les paquets Debian et Ubuntu pour les serveurs et postes de travail de notre entreprise.




Installation des packages

Sur proxy.alex.dmz :
squid bind9 dansguardian clamav-daemon arj zoo nomarch lzop cabextract unrar unzoo lha apt-proxy

Note : Un serveur DNS cache est fortement recommandé sur la machine hébergeant le proxy.



Vous pouvez ajouter le dépôt « debian-volatile » pour obtenir les dernières versions de certains logiciels de filtrage et de détection.

Ajoutez cet ligne au fichier /etc/apt/sources.list :

...
deb http://volatile.debian.org/debian-volatile etch/volatile main



Modifiez le fichier /etc/network/interfaces :

# The loopback network interface
auto lo eth0 eth1
iface lo inet loopback

# The primary network interface
allow-hotplug eth0 eth1
iface eth0 inet static
address 123.45.67.7
netmask 255.255.255.240
gateway 123.45.67.14

iface eth1 inet static
address 172.16.0.4
netmask 255.255.255.0
up route add -net 172.17.0.0/16 gw 172.16.0.254
up route add -net 172.18.0.0/16 gw 172.16.0.254



Modifiez le fichier /etc/hosts :

127.0.0.1      localhost
123.45.67.7    proxy.alex.fr
172.16.0.4     proxy.alex.dmz proxy




Configuration du serveur DNS cache

Modifiez le fichier /etc/bind/named.conf :

include "/etc/bind/named.conf.options";

// Canal de communication pour administrer Bind avec l'utilitaire rndc.
controls {
    inet 127.0.0.1 port 953 allow { 127.0.0.1; };
};

// prime the server with knowledge of the root servers
zone "." {
    type hint;
    file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
    type master;
    file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
    type master;
    file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
    type master;
    file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
    type master;
    file "/etc/bind/db.255";
};

include "/etc/bind/named.conf.local";



Modifiez le fichier /etc/bind/named.conf.options :

options {
    directory "/var/cache/bind";

    // Écoute les requêtes DNS sur localhost uniquement.
    query-source address 127.0.0.1 port 53;

    version "SECRET";

    listen-on port 53 { 127.0.0.1; };

    auth-nxdomain no;    # conform to RFC1035
    //listen-on-v6 { any; };
    listen-on-v6 { none; };
};



Modifiez le fichier /etc/bind/named.conf.local :

// Zones de recherche pour les domaines alex.*
// Ce serveur DNS interrogera le serveur ns1.alex.fr et
// ns.alex.lan pour ces zones :
//
zone "alex.dmz" {
type forward;
forwarders { 172.16.0.1; 172.17.0.1; };
};

zone "alex.lan" {
type forward;
forwarders { 172.16.0.1; 172.17.0.1; };
};

zone "sr1.alex.lan" {
type forward;
forwarders { 172.16.0.1; 172.17.0.1; };
};

zone "alex.fr" {
type forward;
forwarders { 172.16.0.1; 172.17.0.1; };
};

zone "alex.com" {
type forward;
forwarders { 172.16.0.1; 172.17.0.1; };
};

zone "alex.org" {
type forward;
forwarders { 172.16.0.1; 172.17.0.1; };
};



Redémarrez le service Bind :

proxy:~# /etc/init.d/bind9 restart
Stopping domain name service...: bind.
Starting domain name service...: bind.
proxy:~#



Modifiez le fichier /etc/resolv.conf :

search alex.dmz alex.lan sr1.alex.lan
nameserver 127.0.0.1
nameserver 172.16.0.1
nameserver 172.17.0.1




Configuration de la partie cliente LDAP

Copiez depuis le serveur ldap2.alex.dmz le certificat du serveur ldap1 et ldap2, après avoir créé le répertoire /etc/ldap/tls :

proxy:~# mkdir /etc/ldap/tls
proxy:~# scp root@172.16.0.20:/etc/ldap/tls/ldap_ldap*_cert.pem /etc/ldap/tls/



Modifiez le fichier /etc/ldap/ldap.conf :

TLS_CACERTDIR /etc/ldap/tls
TLS_REQCERT allow

BASE dc=meta
URI ldaps://ldap2.alex.dmz ldaps://ldap1.alex.dmz





Schéma proxy pour OpenLDAP

Voici le schéma "proxy-ftp.schema" qui contient un attribut nommé "ProxyAccountActive" afin d'autoriser les utilisateurs à accéder au cache.
J'ai utilisé le préfixe OID LDAP "enterprise" (1.3.6.1.4.1) avec un numéro libre non attribué, voir IANA (99999).


Mon schéma contient deux objectclass et deux attributs puisque j'ai réuni les informations pour l'authentification FTP. Les informations qui nous intéresses pour le proxy sont les suivantes :




Configuration de Squid

Modifiez le fichier /etc/squid/squid.conf :

#
# WELCOME TO SQUID 2.6.STABLE5
#

# NETWORK OPTIONS
#
#http_port 3128

# Pour écouter uniquement sur l'adresse 172.16.0.4.
http_port 172.16.0.4:3128

# Nous n'interrogeons pas d'autres serveurs proxy, donc pas de requêtes
# ICP et HTCP.
# Ce serveur va chercher directement les données sur Internet.
icp_port 0
htcp_port 0

# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
#

# Squid est configuré par défaut pour ne pas mettre en cache les pages
# dynamique. Comme beaucoup d'utilisateur lisent des vidéos sur YouTube,
# vous pouvez les mettre en cache.
# Voir http://wiki.squid-cache.org/ConfigExamples/DynamicContent/YouTube

#

# Outrepasse la norme de HTTP pour les vidéos en Flash.
refresh_pattern -i \.flv$ 10080 90% 999999 ignore-no-cache override-expire ignore-private

# Permet de mettre en cache les vidéos mises en pause pendant un certain temps.
quick_abort_min -1 KB

# Comme la taille des vidéos est importante, il faut augmenter la taille
# maximum des données mises en cache.
maximum_object_size 1 GB

# Pour mettre en cache le contenu dynamique des domaines de youtube.com
acl youtube dstdomain .youtube.com
cache allow youtube

# Puis nous stoppons la mise en cache de tous les autres contenus dynamique.
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

# Autorise le broken_vary_encoding pour les serveurs Apache.
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache

# OPTIONS WHICH AFFECT THE CACHE SIZE
#

# Les paramètres liés au cache sont propres à l'utilisation de votre
# proxy. Voir /usr/share/doc/squid/FAQ-8.html
cache_mem 32 MB

#Default:
# cache_swap_low 90
# cache_swap_high 95

# Voir /usr/share/doc/squid/FAQ-8.html
cache_swap_low 80
cache_swap_high 85

#Default:
# minimum_object_size 0 KB

#Default:
# maximum_object_size_in_memory 8 KB

#Default:
# ipcache_size 1024
# ipcache_low 90
# ipcache_high 95

#Default:
# fqdncache_size 1024

#Default:
# cache_replacement_policy lru

#Default:
# memory_replacement_policy lru

# LOGFILE PATHNAMES AND CACHE DIRECTORIES
#
#Default:
# cache_dir Type Directory-Name Mbytes L1 L2 [options]
# cache_dir ufs /var/spool/squid 100 16 256

# Taille en Mo du répertoire pour le cache de Squid.
# Il faut prendre en compte la valeur du paramètre "maximum_object_size".
# Vous pouvez utiliser un disque dédié pour le cache de Squid.
# Pour utiliser un disque ou une partition en entier, il faut enlever 20%
# de la valeur théorique du disque ou de la partition.
# J'utilise une partition de 10 Go => (10000*0,8) = 8000
cache_dir ufs /var/spool/squid 8000 16 256

# Format des logs. Pour obtenir ces informations :
# 1199441077.369 245 172.16.0.17 arnofear [04/Jan/2008:11:04:37 +0100] "GET http://www.google.fr/ HTTP/1.0" TCP_MISS/200 5858 216.239.59.99 text/html "Wget/1.10.2"
#
logformat mystats %ts.%03tu %6tr %>a %ul [%tl] "%rm %ru HTTP/%rv" %Ss/%03Hs %<st %<A %mt "%{User-Agent}>h"
#
access_log /var/log/squid/mystats.log mystats

#Default:
# cache_log /var/log/squid/cache.log

# Pas de log pour le cache.
cache_log none

#Default:
# cache_store_log /var/log/squid/store.log

# Pas de log pour le stockage.
cache_store_log none

#Default:
# emulate_httpd_log off

#Default:
# log_ip_on_direct on

#Default:
# mime_table /usr/share/squid/mime.conf

#Default:
# log_mime_hdrs off

#Default:
# pid_filename /var/run/squid.pid

#Default:
# debug_options ALL,1

#Default:
# log_fqdn off

#Default:
# client_netmask 255.255.255.255

# OPTIONS FOR EXTERNAL SUPPORT PROGRAMS
#
#Default:
# ftp_user Squid@

# Adresse mail donnée pour les connexions FTP anonymes.
ftp_user squid@alex.fr

#Default:
# ftp_list_width 32

# Longueur des URLs FTP.
ftp_list_width 64

#Default:
# ftp_passive on

#Default:
# ftp_sanitycheck on

#Default:
# ftp_telnet_protocol on

#Default:
# check_hostnames on

#Default:
# allow_underscore on

#Default:
# cache_dns_program /usr/lib/squid/dnsserver

#Default:
# dns_retransmit_interval 5 seconds

#Default:
# dns_timeout 2 minutes
# Durée de timeout pour résoudre une adresse DNS.
dns_timeout 1 minutes


#Default:
# dns_defnames off

#Default:
# hosts_file /etc/hosts
#
hosts_file /etc/hosts

#Default:
# diskd_program /usr/lib/squid/diskd-daemon

#Default:
# unlinkd_program /usr/lib/squid/unlinkd

#Default:
# pinger_program /usr/lib/squid/pinger

# Paramètres d'authentification pour accéder au cache.
#
# Dans cet exemple, je vérifie que l'utilisateur a le droit d'accéder au
# cache s'il dispose d'un attribut ProxyAccountActive=yes
# auth_param basic program [cmdline] [options]
#
auth_param basic program /usr/lib/squid/ldap_auth -v 3 -b dc=meta -f (&(uid=%s)(ProxyAccountActive=yes)) -s sub -c 20 -t 20 ldaps://ldap2.alex.dmz ldaps://ldap1.alex.dmz
#

# Pour effectuer une recherche récursive, vous devez utiliser un filtre
# "-f ..." sinon la recherche, même avec "-s sub", sera par défaut :
# <userattr>=user,basedn
# Lancez "/usr/lib/squid/ldap_auth" sans arguments pour connaître les options.

# Nombre de processus à lancer.
auth_param basic children 5

# Titre de la fenêtre pour la demande de login.
auth_param basic realm Squid proxy-caching web server

# Durée de la validité du couple username:password
auth_param basic credentialsttl 2 hours

#Default:
# authenticate_cache_garbage_interval 1 hour

#Default:
# authenticate_ttl 1 hour

#Default:
# authenticate_ip_ttl 0 seconds

# OPTIONS FOR TUNING THE CACHE
#
#Default:
# request_header_max_size 20 KB

#Default:
# request_body_max_size 0 KB

# Limite la taille les requêtes PUT/POST, c'est à dire l'envoie de
# données vers un site (envoie d'un fichier par formulaire par exemple ...)
request_body_max_size 32 MB

refresh_pattern ^ftp:    1440 20% 10080
refresh_pattern ^gopher: 1440 0%  1440
refresh_pattern .        0    20% 4320

#Default:
# quick_abort_min 16 KB
# quick_abort_max 16 KB
# quick_abort_pct 95

#Default:
# read_ahead_gap 16 KB

#Default:
# negative_ttl 5 minutes

#Default:
# positive_dns_ttl 6 hours

#Default:
# negative_dns_ttl 1 minute

#Default:
# range_offset_limit 0 KB

#Default:
# collapsed_forwarding off

#Default:
# refresh_stale_hit 0 seconds

# TIMEOUTS
#
#Default:
# half_closed_clients on

# Pour que Squid n'attende pas lorsqu'un client stop le chargement d'une page.
half_closed_clients off

#Default:
# shutdown_lifetime 30 seconds

# Quand le service Squid est arrêté, les clients encore connectés
# recevront un message timeout au bout de 10 secondes.
shutdown_lifetime 10 seconds

# ACCESS CONTROLS
#

# ALCs standards :
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443         # https
acl SSL_ports port 563         # snews
acl SSL_ports port 873         # rsync
acl Safe_ports port 80         # http
acl Safe_ports port 21         # ftp
acl Safe_ports port 443        # https
acl Safe_ports port 70         # gopher
acl Safe_ports port 210        # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280        # http-mgmt
acl Safe_ports port 488        # gss-http
acl Safe_ports port 591        # filemaker
acl Safe_ports port 777        # multiling http
acl Safe_ports port 631        # cups
acl Safe_ports port 873        # rsync
acl Safe_ports port 901        # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

# Pour autoriser l'accès au port SSL 631 de CUPS.
acl SSL_ports port 631         # cups-ssl

# Pour autoriser l'accès au port SSL 2812 de Monit.
# Modifiez les paramètres d'accès de Monit sur "nas.alex.dmz" pour que le
# proxy puisse se connecter :
# ...
# set httpd port 2812
#    allow 172.16.0.4
# ...
acl SSL_ports port 2812        # monit-ssl

# Déclaration de nos ACLs personnels.
#
acl snmppublic snmp_community public

# Déclaration de la machine de supervision pour les requêtes SNMP.
acl supervision src 172.17.0.6

# Déclaration des deux serveurs en DMZ qui pourront interroger le cache
# sans mot de passe.
acl nasServersNoAuth src 172.16.0.17-172.16.0.18

# Déclaration des serveurs LAN et DMZ que nous interrogerons en passant
# par le proxy sans que les requêtes soient mises en cache.
acl lanServers src 172.17.0.2-172.17.0.6
acl fsHost dst 172.17.0.19
acl nasHost dst 172.16.0.19

# On crée un ACL pour l'authentification, qui sera appliqué plus bas.
acl password proxy_auth REQUIRED
#

# Si vous ne voulez pas authentifier les utilisateurs, commentez la ligne
# ci-dessus et déclarez les réseaux autorisés à utiliser le cache du
# Proxy.
#acl mynetwork src 172.16.0.0/24 172.17.0.0/16 172.18.0.0/16

# Les ACLs sont appliqués de haut en bas, selon ou vous placez une
# directive (allow/deny), elle sera appliquée ou ignorée selon sa
# position.
#

# Les requêtes vers ces machines ne seront pas mises en cache.
cache deny lanServers
cache deny fsHost
cache deny nasHost

#Recommended minimum configuration:
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Only allow purge requests from localhost
http_access allow purge localhost
http_access deny purge
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports

#http_access allow localhost
http_access deny localhost

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#

# Pour que les serveurs en DMZ utilisent le cache sans mot de passe :
http_access allow nasServersNoAuth

# Exemple d'utilisation des ACLs avec les horaires :

# Refuse l'accès au cache du lundi au vendredi de 21h01 à 23h59.
acl horaire_semaine_nuit1 time M-F 21:01-23:59
http_access deny horaire_semaine_nuit1
#

# Refuse l'accès au cache du lundi au vendredi de minuit à 7h59.
acl horaire_semaine_nuit2 time M-F 00:00-07:59
http_access deny horaire_semaine_nuit2
#

# Refuse l'accès au cache du samedi au dimanche.
acl week_end time A-S
http_access deny week_end

# Vous pouvez limiter ces accès avec DansGuardian plutôt qu'avec Squid.
#
# Refuse l'accès aux domaines écrits dans ce fichier.
# L'argument "-i" indique "insensible à la case" mettre un domaine par
# ligne sous cette forme :
# .microsoft.com
# .sco.com
#acl bad_domain dstdomain -i "/etc/squid/baddomain.txt"
#http_access deny bad_domain

# Refuse l'accès aux URLs écrites dans ces fichiers :
#acl sex_site url_regex -i "/etc/squid/sexsite.txt"
#http_access deny sex_site
#
#acl warez_site url_regex -i "/etc/squid/warezsite.txt"
#http_access deny warez_site

# Refuse l'accès aux extensions suivantes :
#acl url_mp3 url_regex -i \.mp3$
#http_access deny url_mp3
#acl url_avi url_regex -i \.avi$
#http_access deny url_avi
#acl url_mpeg url_regex -i \.mpeg$
#http_access deny url_mpeg
#acl url_mpg url_regex -i \.mpg$
#http_access deny url_mpg
#acl url_mov url_regex -i \.mov$
#http_access deny url_mov
#acl url_exe url_regex -i \.exe$
#http_access deny url_exe

# Demande une authentification à partir de cette ligne.
http_access allow password
#

# Autorise uniquement les clients déclarés dans "mynetwork".
# Si vous ne voulez pas authentifier les utilisateurs, commentez la ligne
# ci-dessus et décommentez la suivante.
#http_access allow mynetwork

# Autorise l'accès au cache du lundi au vendredi de 8h à 21h.
acl horaire_semaine_jour time M-F 08:00-21:00
http_access allow horaire_semaine_jour

# Refuse tous les accès http à partir de cette ligne.
http_access deny all

# Autorise les réponses aux requêtes des clients.
http_reply_access allow all

# Nous n'interrogeons pas d'autres serveurs proxy.
#icp_access allow all
icp_access deny all

#Default:
# htcp_access deny all

#Default:
# reply_header_max_size 20 KB

# ADMINISTRATIVE PARAMETERS
#

# Adresse mail du gestionnaire du proxy.
cache_mgr proxy@alex.fr

#Default:
# mail_program mail

# Programme pour envoyer des mails. Il faut installer un MTA et le
# package mailx.

#Default:
# cache_effective_user proxy

# Sous quel GID fonctionne Squid.
cache_effective_group proxy

#Default:
# httpd_suppress_version_string off

# Pour ne pas donner la version de Squid dans les entêtes HTTP ou les
# pages d'erreurs HTML.
httpd_suppress_version_string on

# Pour indiquer le non d'hôte à afficher dans les pages d'erreurs HTML.
visible_hostname proxy.alex.fr

#Default:
# umask 027

# OPTIONS FOR THE CACHE REGISTRATION SERVICE

# HTTPD-ACCELERATOR OPTIONS
#
#Default:
# httpd_accel_no_pmtu_disc off

# MISCELLANEOUS
#
#Default:
# dns_testnames netscape.com internic.net nlanr.net microsoft.com

#Default:
# memory_pools on

# Voir /usr/share/doc/squid/FAQ-8.html
#memory_pools off
memory_pools on

#Default:
# memory_pools_limit 5 MB

# Voir /usr/share/doc/squid/FAQ-8.html
memory_pools_limit 100 MB

#Default:
# via on

#Default:
# forwarded_for on

#Default:
# client_db on

#Default:
# error_directory /usr/share/squid/errors/English

# Afficher les pages d'erreurs en Français.
error_directory /usr/share/squid/errors/French

#Default:
# snmp_port 0

# Pour obtenir des statistiques et informations via SNMP.
snmp_port 3401

#Default:
# snmp_access deny all

# Autorise uniquement l'accès SNMP pour l'ACL supervision.
snmp_access allow snmppublic supervision
snmp_access deny all

#Default:
# snmp_incoming_address 0.0.0.0
# snmp_outgoing_address 255.255.255.255

# DELAY POOL PARAMETERS (all require DELAY_POOLS compilation option)
#
#Default:
# incoming_icp_average 6
# incoming_http_average 4
# incoming_dns_average 4
# min_icp_poll_cnt 8
# min_dns_poll_cnt 8
# min_http_poll_cnt 8

#Default:
# max_open_disk_fds 0

#Default:
# uri_whitespace strip

#Default:
# strip_query_terms on

# Par défaut Squid réduit la longueur des URLs dans les logs.
strip_query_terms off

#Default:
# coredump_dir none
#
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

#Default:
# ignore_unknown_nameservers on

#Default:
# digest_generation on

#Default:
# client_persistent_connections on
# server_persistent_connections on

#Default:
# balance_on_multiple_ip on

#Default:
# pipeline_prefetch off

#Default:
# store_dir_select_algorithm least-load

#Default:
# ie_refresh off

#Default:
# minimum_expiry_time 60 seconds



Redémarrez le service Squid et faites des tests en configurant les paramètres proxy d'un navigateur (adresse : 172.16.0.4 et port : 3128).



Configuration de Clamav (pour DansGuardian)

Modifiez les paramètres du service de mise à jour des définitions de virus avec cette commande :

proxy:~# dpkg-reconfigure clamav-freshclam



Répondez comme suit :
Méthode de mise à jour de la base de données des virus : démon
Miroir de la base de données : db.local.clamav.net
Mandataire HTTP (laisser vide pour aucun) :
# Voir http://www.clamav.net/support/mirror-problem
# (too often connections with outdated version)
Nombre de mises à jour de freshclam par jour : 6
Faut-il notifier clamd des mises à jour ? oui


Modifiez les paramètres de clamav avec cette commande :

proxy:~# dpkg-reconfigure clamav-base



Répondez comme suit :
Souhaitez-vous gérer le fichier de configuration automatiquement ? oui
Type de « socket » : UNIX
« Socket » locale (UNIX) où clamd sera à l'écoute : /var/run/clamav/clamd.ctl
Faut-il gérer correctement les fichiers « socket » Unix restés ouverts ? oui
Souhaitez-vous activer la vérification du courriel ? non
Souhaitez-vous activer la vérification des archives ? oui
Souhaitez-vous activer la vérification des archives RAR ? non
          Acceptez les réponses par défaut jusqu'à :
Souhaitez-vous utiliser la journalisation du système ? oui
          Acceptez les réponses par défaut



Configuration de DansGuardian

Modifiez le fichier /etc/dansguardian/dansguardian.conf :

# DansGuardian config file for version 2.8.0 with Anti-Virus plug-in 6.4.3
# **NOTE** as of version 2.7.5 most of the list files are now in dansguardianf1.conf

#UNCONFIGURED - Please remove this line after configuration

reportinglevel = 3

languagedir = '/etc/dansguardian/languages'

language = 'french'

loglevel = 3

logexceptionhits = on

# Log File Format
# 1 = DansGuardian format 2 = CSV-style format
# 3 = Squid Log File Format 4 = Tab delimited
#logfileformat = 1
logfileformat = 3

# Network Settings
#
# the IP that DansGuardian listens on. If left blank DansGuardian will

# listen on all IPs. That would include all NICs, loopback, modem, etc.
# Normally you would have your firewall protecting this, but if you want
# you can limit it to only 1 IP. Yes only one.
#filterip =
filterip = 172.16.0.4

# the port that DansGuardian listens to.
filterport = 8080

# the ip of the proxy (default is the loopback - i.e. this server)
#proxyip = 127.0.0.1
proxyip = 172.16.0.4

# the port DansGuardian connects to proxy on
proxyport = 3128

# accessdeniedaddress is the address of your web server to which the cgi
# dansguardian reporting script was copied
# Do NOT change from the default if you are not using the cgi.
#
accessdeniedaddress = 'http://proxy.alex.dmz/cgi-bin/dansguardian.pl'

nonstandarddelimiter = on

usecustombannedimage = 1
custombannedimagefile = '/etc/dansguardian/transparent1x1.gif'

filtergroups = 1
filtergroupslist = '/etc/dansguardian/filtergroupslist'

bannediplist = '/etc/dansguardian/bannediplist'
exceptioniplist = '/etc/dansguardian/exceptioniplist'
banneduserlist = '/etc/dansguardian/banneduserlist'
exceptionuserlist = '/etc/dansguardian/exceptionuserlist'

showweightedfound = on

weightedphrasemode = 2

urlcachenumber = 3000

urlcacheage = 900

phrasefiltermode = 2

preservecase = 0

hexdecodecontent = 0

forcequicksearch = 0

reverseaddresslookups = off

reverseclientiplookups = off

createlistcachefiles = on

maxuploadsize = -1

maxcontentfiltersize = 256

usernameidmethodproxyauth = on
usernameidmethodntlm = off # **NOT IMPLEMENTED**
usernameidmethodident = off

preemptivebanning = on

forwardedfor = off

usexforwardedfor = off

logconnectionhandlingerrors = on

maxchildren = 120

minchildren = 8

minsparechildren = 4

preforkchildren = 6

maxsparechildren = 32

maxagechildren = 500

ipcfilename = '/tmp/.dguardianipc'

urlipcfilename = '/tmp/.dguardianurlipc'

nodaemon = off

nologger = off

softrestart = off

# ANTIVIRUS SETTINGS
# --------------------

# OPTION: virusscan
# If on, we scan all downloaded content using embedded virus engine.
# Supported engines of this version are ClamAV, ClamDScan, KAV, KAV5,
# Trophie, Sophie.
# If off, we don't scan any downloaded content.
# See http://sourceforge.net/projects/dgav/ for more details.

# Je désactive le scan antivirus.
virusscan = off

virusengine = 'clamav'

tricklelength = 32768

forkscanlength = 32768

firsttrickledelay = 10

followingtrickledelay = 10

maxcontentscansize = 41904304

virusscanexceptions = on

urlcachecleanonly = on

virusscannertimeout = 60

notify = 0

emaildomain = 'your.domain.com'

postmaster = 'postmaster@your.domain.com'

emailserver = '127.0.0.1:25'

downloaddir = '/tmp/dgvirus'

clmaxfiles = 1500

clmaxreclevel = 3

clmaxfilesize = 10485760

clblockencryptedarchives = off

cldetectbroken = off

# CLAMDSCAN SETTINGS
# --------------------
# OPTION: clamdsocket
# Set the name of a local clamd socket (file)
# or the hostname:port of a remote clamd server
# default: '/tmp/clamd'
#clamdsocket = '/tmp/clamd'
clamdsocket = '/var/run/clamav/clamd.ctl'

avesocket = '/var/run/aveserver'

trophiesocket = '/var/run/trophie'

sophiesocket = '/var/run/sophie'

icapsocket = 'localhost:1344'

icapservice = 'icap://localhost/avscan'



Modifiez le fichier /etc/dansguardian/dansguardianf1.conf :

# DansGuardian filter group config file for version 2.8.0

# Content filtering files location
bannedphraselist = '/etc/dansguardian/bannedphraselist'
weightedphraselist = '/etc/dansguardian/weightedphraselist'
exceptionphraselist = '/etc/dansguardian/exceptionphraselist'

# Vous pouvez blacklister des domaines et URLs avec fichiers suivants :
bannedsitelist = '/etc/dansguardian/bannedsitelist'
bannedurllist = '/etc/dansguardian/bannedurllist'
# Voir cette page : http://cri.univ-tlse1.fr/blacklists/
#
greysitelist = '/etc/dansguardian/greysitelist'
exceptionsitelist = '/etc/dansguardian/exceptionsitelist'
greyurllist = '/etc/dansguardian/greyurllist'
exceptionurllist = '/etc/dansguardian/exceptionurllist'
bannedregexpurllist = '/etc/dansguardian/bannedregexpurllist'
#bannedextensionlist = '/etc/dansguardian/bannedextensionlist'
#bannedmimetypelist = '/etc/dansguardian/bannedmimetypelist'

# Pour ne pas utiliser les restrictions sur les extensions/types de
# fichiers :
bannedextensionlist = '/dev/null'
bannedmimetypelist = '/dev/null'
picsfile = '/etc/dansguardian/pics'
contentregexplist = '/etc/dansguardian/contentregexplist'

# Naughtyness limit
# This the limit over which the page will be blocked. Each weighted
# phrase is given a value either positive or negative and the values
# added up. Phrases to do with good subjects will have negative values,
# and bad subjects will have positive values. See the weightedphraselist
# file for examples. As a guide:
# 50 is for young children, 100 for old children, 160 for young adults.
naughtynesslimit = 160

bypass = 0

bypasskey = ''

# ANTIVIRUS SETTINGS for this group
# --------------------

# OPTION: virusscan
# If on, content will be scanned using virus engine setup in
# dansguardian.conf. More options are available in dansguardian.conf.
virusscan = off

exceptionvirusextensionlist = '/etc/dansguardian/exceptionvirusextensionlist'

exceptionvirusmimetypelist = '/etc/dansguardian/exceptionvirusmimetypelist'

exceptionvirussitelist = '/etc/dansguardian/exceptionvirussitelist'

exceptionvirusurllist = '/etc/dansguardian/exceptionvirusurllist'

dlmgrextensionlist = '/etc/dansguardian/dlmgrextensionlist'



Modifiez le fichier /etc/dansguardian/exceptionsitelist :

#Sites in exception list
#Don't bother with the www. or
#the http://
#
#These are specifically domains and are not URLs.
#For example 'foo.bar/porn/' is no good, you need
#to just have 'foo.bar'.
#
#You can also match IPs here too.
#
#As of DansGuardian 2.7.3 you can now include
#.tld so for example you can match .gov for example

dansguardian.org
windowsupdate.microsoft.com
windowsupdate.com

# Les Sites bloqués alors qu'ils ne le devraient pas :
www.free.fr
webnews.free.fr

# Les Sites de confiance :
wikipedia.org



Démarrez le service DansGuardian et faites des tests en configurant les paramètres proxy d'un navigateur (adresse : 172.16.0.4 et port : 8080).



Configuration de apt-proxy

Modifiez le fichier /etc/apt-proxy/apt-proxy-v2.conf :

[DEFAULT]
;; All times are in seconds, but you can add a suffix
;; for minutes(m), hours(h) or days(d)

;; Server IP to listen on

;; Sur quelle adresse IP le service écoutera.
address = 172.16.0.4

;; Server port to listen on
port = 9999

min_refresh_delay = 1h

debug = all:4 db:0

;; Network timeout when retrieving from backend servers
timeout = 15

;; Cache directory for apt-proxy
cache_dir = /var/cache/apt-proxy

;; Use passive FTP? (default=on)
passive_ftp = on

;; Limit download rate from backend servers (http and rsync only), in bytes/sec
;bandwidth_limit = 100000

;;--------------------------------------------------------------
;; Cache housekeeping

cleanup_freq = 1d

max_age = 120d

max_versions = 3

;; Add HTTP backends dynamicaly if not already defined? (default=on)
;dynamic_backends = on

;;---------------------------------------------------------------
;;---------------------------------------------------------------
;; Backend servers
;;
;; Place each server in its own [section]

;; Indiquez les sources de paquet à utiliser.

;; Pour Debian :
;; Dépôts standards.
[debian]
;; The main Debian archive
;; You can override the default timeout like this:
;timeout = 30

;; Liste des serveurs dans l'ordre de préférence.
backends =
    http://ftp2.fr.debian.org/debian
    http://ftp.fr.debian.org/debian
    http://ftp.de.debian.org/debian
    http://ftp2.de.debian.org/debian
    ftp://ftp.uk.debian.org/debian
    http://ftp.us.debian.org/debian

;; Dépôts pour les mises à jour de sécurité.
[security]
;; Debian security archive
backends =
    http://mirror.switch.ch/ftp/mirror/debian-security
    http://ftp2.de.debian.org/debian-security
    http://security.debian.org/debian-security

;; Pour Ubuntu :
;; Dépôts standards.
[ubuntu]
;; Ubuntu archive
backends =
    http://fr.archive.ubuntu.com/ubuntu
    http://archive.ubuntu.com/ubuntu

;; Dépôts pour les mises à jour de sécurité.
[ubuntu-security]
;; Ubuntu security updates
backends =
    http://fr.archive.ubuntu.com/ubuntu
    http://security.ubuntu.com/ubuntu

;; Dépôts tierces ...
;[openoffice]
;; OpenOffice.org packages
;backends =
; http://ftp.freenet.de/pub/debian-openoffice
; http://ftp.sh.cvut.cz/MIRRORS/OpenOffice.deb
; http://borft.student.utwente.nl/debian

;[apt-proxy]
;; Apt-proxy new versions
;backends = http://apt-proxy.sourceforge.net/apt-proxy

;[backports.org]
;; backports.org
;backends = http://backports.org/debian

;[blackdown]
;; Blackdown Java
;backends = http://ftp.gwdg.de/pub/languages/java/linux/debian

;[debian-people]
;; people.debian.org
;backends = http://people.debian.org

;[emdebian]
;; The Emdebian project
;backends = http://emdebian.sourceforge.net/emdebian

;[rsync]
;; An example using an rsync server. This is not recommended
;; unless http is not available, becuause rsync is only more
;; efficient for transferring uncompressed files and puts much
;; more overhead on the server. See the rsyncpacakges parameter
;; for a way of rsyncing just the Packages files.

;backends = rsync://ftp.uk.debian.org/debian



Pour utiliser le proxy APT sur les postes clients et serveurs, vous devez modifier leur fichier /etc/apt/sources.list :

# Pour Debian :
#
deb http://proxy.alex.dmz:9999/debian/ etch main
#deb-src http://proxy.alex.dmz:9999/debian/ etch main

deb http://proxy.alex.dmz:9999/security/ etch/updates main contrib
#deb-src http://proxy.alex.dmz:9999/security/ etch/updates main contrib



# Pour Ubuntu :
#
deb http://proxy.alex.dmz:9999/ubuntu/ gutsy main restricted universe multiverse

deb http://proxy.alex.dmz:9999/ubuntu/ gutsy-updates main restricted universe multiverse

# deb http://proxy.alex.dmz:9999/ubuntu/ gutsy-backports main restricted universe multiverse

deb http://proxy.alex.dmz:9999/ubuntu-security/ gutsy-security main restricted universe multiverse








Dernière modification : 19/12/08

 

Copyright © 04/02/2004, Arnofear

Contrat Creative Commons Ce document est publié sous licence Creative Commons
Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique :
http://creativecommons.org/licenses/by-nc-sa/3.0/deed.fr