Catégories

Recommander

Recherche

SysAdmin

Vendredi 13 janvier 2006 5 13 /01 /2006 13:14
 Voici un tuto afin de mettre en place une solution de filtage web ; proxy filtrant transparent.

OS = Debian GNU/Linux 3.1 (Sarge)
Logiciel = Squid SquidGuard Apache Sarg Webmin (+module squidGuard)

Après avoir installé votre debian, installez les paquets de la manière suivante :
apt-get install squid squidguard chastity-list webmin webmin-sarg sarg webmin-squid


Lors de l'install de squidGuard :

Écran (Titre en rouge)             Message                                                                Réponse
Configuration de SquidGuard    SquidGuard utilise DB4.1.
                                            Reconstruisez votre base de données de listes noires.         OK
                                            Reconstruire la base de données des listes noires ?            Oui
                                            Faut-il reconstruire la liste noire Chastity après l’installation  Oui


Sauvegardez le squid.conf (rep : /etc/squid/squid.conf). Puis créez ce squid.conf :


#------------------------------------------------------------
# Squid.conf créé par Olivier
# 2004
#------------------------------------------------------------
http_port 3128

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
#-----Mettre son ID réseau-----------------------------------
acl localsrc src 127.0.0.1 192.168.1.0/255.255.255.0
acl localdst dst 127.0.0.1 192.168.1.0/255.255.255.0
#------------------------------------------------------------
acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 1025-65535 980
acl CONNECT method CONNECT
acl webdav method PROPFIND TRACE PURGE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK
#Mettre son domaine----------------------------------------
append_domain .afpa46.fr
#----------------------------------------------------------
#cache_mgr adm.domaine.fr
ftp_user nobody@domaine.fr
http_access allow manager localsrc
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localsrc
http_access deny all

httpd_accel_host virtual
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
icp_access allow all
miss_access allow all

store_avg_object_size 3 KB
always_direct allow webdav
always_direct allow all
error_directory /usr/share/squid/errors/French

#--- pour la redirection transparente
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
httpd_accel_single_host off
#redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

redirect_program /usr/bin/squidGuard
redirect_children 4
#--------------FIN-----------------------------------


Ensuite sauvegardez et modifiez votre squidGuard.conf (rep : /etc/squid/squidGuard.conf) :

----------------------------------------------------------------
# SquidGuard CONFIGURATION Olivier
# 2004
#----------------------------------------------------------------

# CONFIGURATION DIRECTORIES
dbhome /var/lib/chastity
logdir /var/log/squid

# TIME RULES:
# abbrev for weekdays:
# s = sun, m = mon, t =tue, w = wed, h = thu, f = fri, a = sat

time workhours {
weekly s 09:30-12:00 13:00-19:00
weekly m 09:00-12:00 13:00-19:00
weekly t 09:00-11:00 12:00-19:00
weekly w 09:00-12:00 12:00-18:00
weekly h 09:00-13:00 13:00-18:00
weekly f 09:00-12:00 13:30-18:00
weekly a 08:20-13:00 13:30-19:00
}

# SOURCE ADDRESSES:
# ------------Ici on peut défénir les permissions suivant les IP----------
#src privilegedsource {
# iplist /var/lib/squidguard/db/privilegedsource/ips
#}

#src bannedsource {
# iplist /var/lib/squidguard/db/bannedsource/ips
#}

#src lansource {
# iplist /var/lib/squidguard/db/lansource/lan
#}

# DESTINATION CLASSES:

dest adult {
domainlist blacklists/adult/domains
urllist blacklists/adult/urls
expressionlist blacklists/adult/expressions
# log /var/log/squid/adult.log
redirect http://sle.homelinux.net/olive/
}

dest audio-video {
domainlist blacklists/audio-video/domains
urllist blacklists/audio-video/urls
redirect http://sle.homelinux.net/olive/
}

dest forums {
domainlist blacklists/forums/domains
urllist blacklists/forums/urls
expressionlist blacklists/forums/expressions
redirect http://sle.homelinux.net/olive/
}

dest hacking {
domainlist blacklists/hacking/domains
urllist blacklists/hacking/urls
redirect http://sle.homelinux.net/olive/
}

dest redirector {
domainlist blacklists/redirector/domains
urllist blacklists/redirector/urls
expressionlist blacklists/redirector/expressions
redirect http://sle.homelinux.net/olive/
}

dest warez {
domainlist blacklists/warez/domains
urllist blacklists/warez/urls
redirect http://sle.homelinux.net/olive/
}

dest ads {
domainlist blacklists/ads/domains
urllist blacklists/ads/urls
redirect http://sle.homelinux.net/olive/
}

dest aggressive {
domainlist blacklists/aggressive/domains
urllist blacklists/aggressive/urls
redirect http://sle.homelinux.net/olive/
}

dest drugs {
domainlist blacklists/drugs/domains
urllist blacklists/drugs/urls
redirect http://sle.homelinux.net/olive/
}

dest gambling {
domainlist blacklists/gambling/domains
urllist blacklists/gambling/urls
redirect http://sle.homelinux.net/olive/
}

dest violence {
domainlist blacklists/violence/domains
urllist blacklists/violence/urls
expressionlist blacklists/violence/expressions
redirect http://sle.homelinux.net/olive/
}


# ACLs
acl {
# privilegedsource {
# pass !adult all
# redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u
#
# }

# bannedsource {
# pass none
# redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u
#
# }

# lansource {
# pass !adult !audio-video !forums !hacking !redirector !warez !ads !aggressive !drugs !gambling !violence all
# redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u
# }


default {
pass !adult !audio-video !forums !hacking !redirector !warez !ads !aggressive !drugs !gambling !violence all
redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u

}
}


Lors de l'installation du paquet chastity-list (base de données d'URL interdites), celui-ci placé la base dans /var/lib/chastity. Le dossier ainsi que les sous-dossiers et fichiers appartiennent à l'utilisateur proxy (créé automatiquement pour squid)du groupe proxy.

Gestion des bases de données avec Webmin.

Sur le serveur :
Modifiez webmin pour autoriser votre station à se connecter à webmin :
vi /etc/webmin/miniserv.conf et ajoutez à la ligne allow votre adresse ip
ex : allow = 127.0.0.1 192.168.1.10 (1 espace entre les ip)

Sur votre poste :
Après avoir installé webmin, vous devez implanter le module squidguard pour webmin.
Pour cela rdv ici : http://www.niemueller.de/webmin/modules/squidguard/ et copiez la cible du lien à la fin de la page.
Connectez vous à webmin : https://monserveur:10000
Entrez le login root et son mot de passe.
Clikez sur "configuration de webmin" puis sur "modules webmin". Dans le cadre "installer un module" cochez adresse FTP ou web et collez l'adresse du lien du module, finissez en cliquant sur le bouton "installer le module".

Toujours sous webmin, allez maintenant sur l'onglet "serveur" puis cliquez sur SquidGuard. Le module va vous demander où se trouve le fichier de conf. Lui indiquer alors "/etc/squid/squidGuard.conf". Ensuite vous devez indiquer le propriétaire "proxy" et le groupe "proxy".

Une fois arrivé sur la page de squidGuard, cliquez sur "listes noires". ET là... rien!... C'est normal...

Allez sur votre serveur, logguez vous en tant que root. Placez vous dans le rep /var/lib/chastity. Créez un dossier blacklists. Faites un

chown proxy:proxy blacklists

Puis déplacez toutes les blacklists (ads, adult,...) dans le dossier

mv adult blacklists/
mv ads blacklists/
mv ... ainsi de suite..
...


Retournez sur webmin et là Ô miracle, vos bl apparaissent... Cependant vous les verrez désactivées. C'est pas grave, ne les activez pas, elles le sont déjà. Vous pouvez maintenant ajouter des URL.

***ATTENTION***
Le module squidGuard nous sert uniquement à ajouter des URL manuellement, surtout pas à autre chose sinon vous risquez de rendre votre squidGuard inactif !!!
*****************

Configuration d'iptables :

iptables -t nat -A PREROUTING -s 192.168.1.0/255.255.255.0 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 3128 (sur une seule ligne)

Configuration de sarg :

Sarg permet de mettre au format web l'historique de navigation des utilisateurs et donc de trouver des éventuelles URL à bloquer.

Allez sur l'onglet serveur et vous verrez l'icône sarg. Là vous pourrez générer un rapport...


demarrez squid /etc/init.d/squid start et testez depuis un poste....
voilà....

en bonus un squid un peu plus avancé avec limitation de la taille pour le tétéchargement de fichiers et des extensions :

# WELCOME TO SQUID
# ------------------
#
#Squid configuré par Olivier  le 24 novembre 2004


# NETWORK OPTIONS
# -----------------------------------------------------------------------------
#Default:
http_port 3128

#We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ?

#We recommend you to use the following two lines.
acl QUERY urlpath_regex cgi-bin ?
no_cache deny QUERY


#Default:
cache_mem 40 MB
cache_dir ufs /var/spool/squid 1000 16 256
#Default:
dns_nameservers 192.168.1.1

#Pour authentifier les utilisateurs#########################
#auth_param basic program /usr/lib/squid/ncsa_auth /usr/lib/squid/squidauth
#auth_param basic children 5
#auth_param basic realm Squid proxy-caching web server
#auth_param basic credentialsttl 2 hour
######################################################

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

# ACCESS CONTROLS
# -----------------------------------------------------------------------------

############################## ACL d�inies par Olivier #############################
acl password proxy_auth REQUIRED
acl url_mp3 url_regex -i .mp3$
acl url_src url_regex -i .src$
acl url_avi url_regex -i .avi$
#acl url_ram url_regex -i .ram$
acl url_mpeg url_regex -i .mpeg$
acl url_mpg url_regex -i .mpg$
#acl url_rm url_regex -i .rm$
acl url_exe url_regex -i .exe$
acl url_iso url_regex -i .iso$
acl url_bin url_regex -i .bin$
acl url_zip url_regex -i .zip$
acl url_rar url_regex -i .rar$
acl url_ace url_regex -i .ace$
acl url_wav url_regex -i .wav$
acl url_wave url_regex -i .wave$
acl url_wmv url_regex -i .wmv$
acl url_pif url_regex -i .pif$
acl url_cmd url_regex -i .cmd$
acl url_bat url_regex -i .bat$
acl sex url_regex "/etc/squid/sexsite.txt"
######################################################
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 554 # 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 CONNECT method CONNECT
##################### Ici on refuse ou autorise ################################
http_access allow manager localhost
http_access deny manager
http_access deny url_mp3
http_access deny url_src
http_access deny url_avi
http_access deny url_mpeg
http_access deny url_mpg
#http_access deny url_ram
#http_access deny url_rm
http_access deny url_exe
http_access deny url_iso
http_access deny url_bin
http_access deny url_zip
http_access deny url_rar
http_access deny url_ace
http_access deny url_wav
http_access deny url_wave
http_access deny url_wmv
http_access deny url_pif
http_access deny url_cmd
http_access deny url_bat
http_access deny sex
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow password
#########################################################
#On limite la taille des paquets, pour empecher d'eventuels telechargements
reply_body_max_size 1000000 allow all
#Le repertoire de redirection des erreurs en francais please
error_directory /usr/share/squid/errors/French
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid
################ Ici on appelle squidGuard ####################################
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
#####FIN##################################



A suivre : proxy filtrant avec authentification des users et non des IP.
Par Olivier82 - Publié dans : SysAdmin
Ecrire un commentaire - Voir les commentaires - Recommander
Vendredi 10 mars 2006 5 10 /03 /2006 13:47

Attention cet article est maintenant obsolete. Vous trouverez un très bon tutoriel sur http://glpi-project.org/


Gestion de parc informatique avec le couple gagnant OCSng et GLPI sur Debian GNU/Linux 3.1

Prérequis
OS : Debian GNU/Linux 3.1 mis à jour, en locales fr_FR.UTF-8
Serveur web : apache 1.3.33 (minimum), php4.3.2 (minimum), mysql 4.1.7 (—> apt-get install mysql-server-4.1) et Perl 5.6 (minimum)
Outil : phpmyadmin

OCSng

Présentation :

OCSng fonctionne sur le système client/serveur. Un agent est déployé sur les postes windows ou linux. Lors de son exécution, ce dernier envoie les données du poste client sur le serveur. On accède à OCSng par le biais d’une interface web.

Installation :

Avant d’installer OCSng vous devez installer les paquets suivants :

  • apt-get install libxml-simple-perl
  • apt-get install libcompress-zlib-perl
  • wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.50.tar.gz
      tar xzvf DBI-1.50.tar.gz
      cd DBI-1.50
      perl Makefile.PL
      make
      make test
      make install
  • apt-get install libdbd-mysql-perl
  • apt-get install libapache-dbi-perl
IMPORTANT : Connectez vous à Mysql avec phpmyadmin, cliquez sur Privilèges et créez un mot de passe root.

tar –xvzf OCSNG_LINUX_SERVER_1.0-XX.tar.gz

mv OCSNG_LINUX_SERVER_1.0-XX/ocsreports /var/www
cd /var/www
chown -R root :root ocsreports
chmod gou+rx ocsreports ocsreports/css ocsreports/files ocsreports/image ocsreports/languages
chown root :www-data ocsreports
chmod gu+w ocsreprots

chown –R root :root OCSNG_LINUX_SERVER_1.0-XX/ocsinventory-NG
chmod gou+rx OCSNG_LINUX_SERVER_1.0-XX/ocsinventory-NG
mv OCSNG_LINUX_SERVER_1.0-XX/ocsinventory-NG /usr/local

Pour savoir la version de mod_perl saisissez cette commande
dpkg –l libapache-mod-perl
Vous devez alors obtenir quelque chose comme ça : 1.29.0.3-6sarge1


Si par hasard vous aviez mod_perl version 1.999.22 (ou plus) faites alors ceci :
mv OCSNG_LINUX_SERVER_1.0-XX/Ocsinventory.pm_4_mp_since_1.999_22/Ocsinventory.pm /usr/local/ocsinventory-NG

cd /usr/local/ocsinventory-NG

Par défaut, ocsinventory-NG s’installe dans "/var/www/ocsinventory-NG”. vous pouvez changer pour indiquer "/usr/local/ocsinventory-NG" en modifiant “Ocsinventory_startup.pl” et dans Apache.

vi Ocsinventory_startup.pl
Changez alors la ligne <use lib “/var/www/ocsinventory-NG” ;> par <use lib
“/usr/local/ocsinventory-NG” ;> . (Important ne pas mettre les symboles : <> )

vi apache_config
Changez la ligne <PerlRequire /var/www/ocsinventory-NG/Ocsinventory_startup.pl> par <PerlRequire /usr/local/ocsinventory-NG/Ocsinventory_startup.pl>.
(Important ne pas mettre les symboles : <> )

cp apache_config /etc/apache/conf.d/ocsinventory-ng.conf

mkdir /var/log/ocsinventory-NG
chown –R www-data :www-data /var/log/ocsinventory-NG

vi Ocsinventory.pm
Précisez le chemin pour les logs : <use constant LOGPATH => “/var/log/ocsinventory-NG” ;>.
(Important ne pas mettre les symboles : <> )

Voilà, maintenant relancez le serveur apache : /etc/init.d/apache stop puis /etc/init.d/apache start

Maintenant depuis votre navigateur web préféré, lancez www.votresite.org/ocsreports/install.php

OCSng va alors se connecter alors à mysql pour créer la base. Une page web va apparaître et vous demander le login (root) le password (celui entré avec phpmyadmin) et l’adresse de la base (localhost).

Validez, ne remplissez pas la case "Please enter the label..." et cliquez sur envoyer. Si tout est ok vous pourrez alors vous connectez à travers l’interface web en utilisant le login admin et le mot de passe admin.

Notre serveur OCSng est maintenant effectif, prêt à recevoir les requêtes de l’agent.(Agent téléchargeable dans cet article)

IMPORTANT : si vous avez des caractères spéciaux en mode français (interface web) c’est vous n’avez pas paramétré votre serveur en fr_FR.UTF-8 (suivre la doc dans l’article précédent). Cela est très important pour l’export de l’inventaire au format sky (pris en charge par OOffice ou MS Office).

Déploiement de l’agent :

L’agent (à télécharger sur le site OCSng) comporte les fichiers suivants :

biosinfo.exe
mfc42.dll
ocswmi.dll
sysinfo.dll
update.exe
ocsinventory.exe
osclogon.exe
ocsinventory.conf
ver

L’agent ne nécessite pas de droits avancés pour s’exécuter. On peut donc le déployer sans contrainte à travers un réseau via le login script.

Avant de lancer l’agent vous devez modifier le fichier (sous windows) ocsinventory.conf pour y mettre l’adresse ip de votre serveur.

Voilà, il ne vous reste plus qu’à tester en lançant ocsinventory.exe...

GLPI

Présentation :

GLPI permet de gérer le parc informatique. Pour cela, il récupère les données receuillies par OCSng et va les ajouter à sa base. Il permet d’y intégrer beaucoup plus d’informations qu’OCSng (n° d’inventaire, gestion commerciale,...). De plus il y intègre un système de suivi des demandes d’interventions, un FAQ, ...

Avant toute chose modifiez la ligne suivante dans le fichier /etc/php4/apache/php.ini : memory_limit = 8M et remplacez 8 par 16.
Connectez vous à mysql avec phpmyadmin et créez la base glpi.
Redémarrez apache (stop puis start).

Récupérez l’archive sur http://glpi.indepnet.org.

Dézippez là dans /var/www/ et donnez lui les droits de www-data : chown www-data :www-data glpi/ -R

Puis avec votre navigateur préféré lancez http://votreserveur/glpi/

Dans les informations mysql et saisissez les informations demandées. (localhost, root, password,...)

Si vous en êtes à l’étape 3, cest que c’est en bonne voie... et c’est encore mieux à l’étape 4....Connectez-vous !

C’est bon vous êtes connectez ? Bon maintenant on va patcher GLPI avec le patch fourni sur GLPI dans téléchargement.
Placez le patch dans la racine de glpi et dézippez-le. Remontez à la racine du site web (/var/www/) puis faites à nouveau : chown www-data :www-data glpi/ -R.

Maintenant on va intégrer à GLPI le plugin OCS. Pour cela placez vous dans glpi/plugins et décompressez l’archive. Donnez y les droits www-data.

RDV sur l’interface web GLPI (si vous y êtes déjà, actualisez). Et voilà vous devriez voir apparaître ocs. Par défaut il affiche les paramètres de connexion à la base mysql. Choisissez ce que vous voulez importer et comment les gérer (global ou unique). Là c’est à vous de voir .

Voilà, il ne vous reste plus qu’à parcourir GLPI et testez son potentiel... Pour ça la doc de GLPI est bien faîtes avec une aide contextuelle. Sinon drv sur le site de GLPI

@+

Pour ceux qui utilise un proxy paramétré dans IE ou firefox, créez un fichier bat avec ceci à l’intérieur (uniquement pour le référencement des postes en local) :

echo lancement de ocs start ocsinventory.exe /np <— np=noproxy echo ok c bon PAUSE

Par Olivier82 - Publié dans : SysAdmin
Ecrire un commentaire - Voir les commentaires - Recommander
Lundi 5 juin 2006 1 05 /06 /2006 00:16
Tout le monde connait le Ipod. Cependant je connais peu de monde qui le possède. Récemment quelqu'un m'en a apporté un. Un ami lui avait donné en échange de la réparation de son ordinateur pensant que le ipod était mort (après avoir consulter un réparateur).

Le sien possède un disque dur de 40 Go tout de même. Le soucis venait du fait que son disque était inaccessible. Le système embarqué de Ipod affichait une erreur au démarage qui nous conseillait de se rendre sur le site d'apple et on ne pouvait pas aller plus loin.  Sous linux Kubuntu, le lecteur apparassait mais restait impossible à monter. Sous windows, pareil, il était bien pris comme un lecteur externe mais impossible d'y accéder, en plus EXPLORER de windows XP se bloquait dès je cliquais dessus aussi bien avec un clic gauche qu'un clic droit.

Sur le site d'apple, j'ai téléchargé le programme de réinitialisation du système et suivi la démarche de réparation. Rien... J'ai donc décidé d'utiliser easy recovery. Il détecta un secteur défectueux mais je n'ai pas trouvé l'outil pour le réparer. On pouvait cependant récupérer les données, mais on s'en fichait . J'ai essayé avec Partition Magic...rien... Le nouveau "possesseur" l'avait aussi testé par quelqu'un qui possédait un Mac. Ce dernier lui confirma que son ipod était HS voire complètement HS.

Je décida de me remettre sous kubuntu car c'était le seul qui l'avait affiché avec l'intitulé Ipod et même le nom de l'ancien propriétaire. J'installa QTparted. Rien. Cfdisk Rien. Mon dernier recours sous Kubuntu : fdisk.
Je le lança sans trop de conviction avec cette commande : fdisk /dev/sdb. Ah ! Déjà pas d'erreur. Je supprime la partition et j'en créé une autre. Oh pinaise pas d'erreur. Je formate la partition avec un mkfs.vfat et là pas d'erreur ! Je monte le lecteur, pas d'erreur ! J'y colle des données. Je démonte le volume. Je redémarre le portable sous windows XP et je vois les données sur le ipod !!! On initialise le ipod avec le programme fourni par Apple et là ... ça marche mais il nous faut le transformateur pour le brancher sur le secteur pour pouvoir le réinitialiser complètement. Chose qui sera faite le soir même.

Résultat : un Ipod de nouveau fonctionnel avec un disque de 40 Go pour 0 €.

Bref si vous avez un ipod que vous pensez HS, ne le jetez pas de suite. Think Linux ;-)...

PS : je lui aurai bien installé tout de même un IpodLinux dessus moi...
Par Olivier82 - Publié dans : SysAdmin
Ecrire un commentaire - Voir les 1 commentaires - Recommander
Créer un blog sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus