Service de proxy anti
Transcription
Service de proxy anti
Service de proxy anti-virus sur Debian INTRODUCTION 1. INSTALLATION ET CONFIGURATION DES PREREQUIS 2. CONFIGURATION DE « SQUID3 » 3. TEST DE DÉTECTION 4. EXCLURE UNE RESSOURCE OU UNE URL DE LA DÉTECTION 5. LIENS 1 1 6 7 7 7 INTRODUCTION Cette procédure décrit l'installation d'un service de proxy anti-virus basique sur Debian Wheezy. Combiné à « squid3 » et « clamav-daemon », « squidclamav » permet de faire du filtrage anti-virus à la volée pour le protocole HTTP ; il s'appuie sur un serveur ICAP (« c-icap »), dont il est un service, pour communiquer avec « squid3 ». ICAP, « Internet Content Adaptation Protocol », est un protocole défini par la RFC 3507 : un client transmet des requêtes ou des réponses HTTP à un serveur ICAP qui traite les messages (requêtes ou réponses HTTP) et retourne le contenu modifié ou adapté au client en fonction du service demandé (en l'occurence ici « squidclamav »). Avant d'installer « squidclamav », « squid3 » doit être opérationnel. 1. INSTALLATION ET CONFIGURATION DES PREREQUIS Installer les paquets « clamav-daemon », « make », « gcc » et «apache2» : # apt-get install clamav-daemon make gcc apache2 Mettre à jour les définitions de virus : # freshclam Démarrer le daemon « clamav-daemon » : # /etc/init.d/clamav-daemon start Télécharger l'archive d'installation de « c-icap » qui fournit le serveur ICAP : # wget http://sourceforge.net/projects/c-icap/files/c-icap/0.3.x/ → c_icap-0.3.3.tar.gz Décompresser l'archive téléchargée et entrer dans le répertoire créé après décompression : # tar xzf c_icap-0.3.3.tar.gz # cd c_icap-0.3.3 1 - Service de proxy anti-virus sur Debian Squeeze Romain Dècle (LEGTA de Coutances) Configurer « c-icap », le compiler et l'installer dans « /usr/local/c-icap/ » : # # # # ./configure --prefix=/usr/local/c-icap --enable-large-files make make install cd .. Adapter le fichier de configuration de « c-icap » : # vim /usr/local/c-icap/etc/c-icap.conf - à la ligne 140, modifier la valeur du paramètre « ServerAdmin » : ServerAdmin [email protected] - à la ligne 149, modifier la valeur du paramètre « ServerName » : ServerName proxy.eplefpa-coutances.lyc50.ac-caen.fr Lancer « c-icap » : # /usr/local/c-icap/bin/c-icap Tester la connexion au service « echo » du serveur ICAP : # /usr/local/c-icap/bin/c-icap-client ICAP server:localhost, ip:127.0.0.1, port:1344 OPTIONS: Allow 204: Yes Preview: 1024 Keep alive: Yes ICAP HEADERS: ICAP/1.0 200 OK: Methods:RESPMOD, REQMOD Service:C-ICAP/0.3.3 server - Echo demo service ISTag:CI0001-XXXXXXXXX Transfer-Preview:* Options-TTL:3600 Date:Sat, 03 May 2014 13:02:26 GMT Preview:1024 Allow:204 X-Include:X-Authenticated-User, X-Authenticated-Groups Encapsulated:null-body=0 Tuer le processus « c-icap » lancé pour le test de connexion au service « echo » : # pkill c-icap 2 - Service de proxy anti-virus sur Debian Squeeze Romain Dècle (LEGTA de Coutances) Dans le répertoire « /etc/logrotate.d », créer le fichier « c-icap » avec le contenu suivant : /usr/local/c-icap/var/log/*.log { daily missingok notifempty size 1M rotate 1 compress delaycompress compresscmd /bin/bzip2 compressext .bz2 create 644 root root copytruncate maxage 7 } Forcer le rechargement de « logrotate » pour prendre en compte la nouvelle configuration : # logrotate -f /etc/logrotate.conf Télécharger l'archive d'installation de « squidclamav » : # wget http://sourceforge.net/projects/squidclamav/files/latest/ → squidclamav-6.11.tar.gz Décompresser l'archive téléchargée et entrer dans le répertoire créé après décompression : # tar xzf squidclamav-6.11.tar.gz # cd squidclamav-6.11 Configurer « squidclamav » en tant que service du serveur ICAP, le compiler et l'installer : # ./configure --with-c-icap=/usr/local/c-icap # make # make install Installer le script « cgi » francisé pour la redirection vers une page d'avertissement en cas de détection positive de virus : # cp cgi-bin/clwarn.cgi.fr_FR /usr/lib/cgi-bin/clwarn.cgi # chown www-data:root /usr/lib/cgi-bin/clwarn.cgi # chmod 500 /usr/lib/cgi-bin/clwarn.cgi Adapter le fichier de configuration de « squidclamav » : # vim /usr/local/c-icap/etc/squidclamav.conf - à la ligne 17, modifier la valeur de la directive « redirect » : redirect http://proxy-test.eplefpa-coutances.lyc50.ac-caen.fr/ → cgi-bin/clwarn.cgi 3 - Service de proxy anti-virus sur Debian Squeeze Romain Dècle (LEGTA de Coutances) - à la ligne 17, mettre la valeur de la directive « safebrowsing » à « 1 » : safebrowsing 1 Adapter le fichier de configuration « /etc/clamav/freshclam.conf » des mises à jour de « clamav-daemon », après la ligne 23 ajouter : SafeBrowsing true Adapter le fichier de configuration de « c-icap » : # vim /usr/local/c-icap/etc/c-icap.conf - à la ligne 498, déclarer « squidclamav.so » en tant que service fourni par « c-icap » : Service avscan squidclamav.so Créer un lien vers « /etc/squidclamav.conf » : # ln -s /usr/local/c-icap/etc/squidclamav.conf /etc/squidclamav.conf 4 - Service de proxy anti-virus sur Debian Squeeze Romain Dècle (LEGTA de Coutances) 2. CONFIGURATION DE « SQUID3 » Adapter le fichier de configuration de « squid3 » pour utiliser le service « squidclamav » fourni par « c-icap » : # vim /etc/squid3/squid.conf - à la fin du fichier, ajouter les directives suivantes : icap_enable on icap_send_client_ip on icap_send_client_username off icap_client_username_encode off icap_client_username_header X-Authenticated-User icap_persistent_connections on icap_preview_enable on icap_preview_size 1024 icap_service service_req reqmod_precache bypass=1 → icap://127.0.0.1:1344/squidclamav adaptation_access service_req allow all icap_service service_resp respmod_precache bypass=1 → icap://127.0.0.1:1344/squidclamav adaptation_access service_resp allow all Pour activer le filtrage anti-virus dès le démarrage du proxy, modifier le script de démarrage du daemon « squid3 » : # vim /etc/init.d/squid3 - à la ligne 29, modifier la variable « PATH » de façon à avoir : PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/c-icap/bin - après la déclaration de de la fonction « start » à la ligne 57, ajouter les lignes : [ ! -d /var/run/c-icap ] && mkdir /var/run/c-icap c-icap - après la déclaration de de la fonction « stop » à la ligne 82, ajouter une ligne : pkill c-icap Redémarrer le daemon « squid3 » : # /etc/init.d/squid3 restart Pour visualiser en temps réel l'activité de « c-icap » (« Ctrl+c » pour arrêter) : # tail -f /usr/local/c-icap/var/log/access.log 5 - Service de proxy anti-virus sur Debian Squeeze Romain Dècle (LEGTA de Coutances) 3. TEST DE DÉTECTION Ouvrir un navigateur configuré pour utiliser le proxy et tenter de télécharger le fichier « eicar.com » en utilisant le protocole HTTP à partir de l'URL « HTTP://EICAR.ORG/85-0-DOWNLOAD.HTML ». Si « squidclamav » fonctionne correctement, une redirection vers la page d'avertissement de détection doit s'opérer. 4. EXCLURE UNE RESSOURCE OU UNE URL DE LA DÉTECTION Il peut être utile d'exclure certaines ressources ou certains sites de confiance de la détection. Concrètement, l'analyse par exemple d'un flux de taille inconnue diffusé en continu prendra du temps car « squidclamav » effectuera un téléchargement partiel du flux jusqu'à la taille maximale définie par le paramètre « maxsize 5000000 » dans le fichier « /etc/squidclamav.conf » avant d'analyser ce qui aura été mis en tampon. La mise en tampon et l'analyse de ce type de flux consomment par conséquent des ressources serveur (temps processeur et écriture sur la swap) et prennent du temps à parvenir au client. C'est le cas de l'écoute en direct de radios comme celles du groupe Radio France (France Inter, France Info, FIP, …). Pour éviter l'analyse des flux « mp3 » diffusés en direct par les sites du groupe Radio France, il faut éditer le fichier « /etc/squidclamav.conf » et ajouter une liste blanche sous forme d'expression régulière étendue à l'instar de l'exemple de la ligne 76 : whitelist .*\/all\/[f-l].*\.mp3$ Une fois le fichier « /etc/squidclamav.conf » modifié, redémarrer le daemon « squid3 » : # /etc/init.d/squid3 restart 5. LIENS – RFC 3507 HTTP://WWW.RFC-EDITOR.ORG/RFC/RFC3507.TXT – The c-icap project HTTP://C-ICAP.SOURCEFORGE.NET/ – SquidClamav HTTP://SQUIDCLAMAV.DAROLD.NET/ 6 - Service de proxy anti-virus sur Debian Squeeze Romain Dècle (LEGTA de Coutances)