| Qui est en ligne ? |
| Il y a : 19 utilisateurs en ligne, consultez le détail |
Forum » Documentation Linux » Partage de connexion : proxy Squid |
Forum modéré par : Jul |
| Même auteur |
|
Score ( voter ) : ![]() ![]()
|
|
| Page : [1] |
| Auteur | Message |
|---|---|
|
|
#0 Message posté le : 08-10-2004 à 11:54:44 |
Jedi Forum : Modérateur Association : Membre fondateur Arrivé(e) le : 08-01-2005 Nombre de messages : 4030 |
Squid est un serveur Proxy/cache qui supporte les protocoles HTTP, FTP et SSL. Un proxy est un mandataire. Lorsque votre passerelle fait proxy, cela signifie que ses clients ne se connectent pas directement à Internet, mais demande au proxy de télécharger pour eux les pages dont ils ont besoin. Ce didacticiel n'a pas vraiment pour but l'installation d'un proxy transparent, mais plutôt la configuration d'un proxy avec blacklist et restriction d'accès par ip. Pour être efficace, en plus de Squid vous devez également installer Squidguard comme indiqué ICI. 1. Installation de Squid1.1 Depuis les sourcesTéléchargez la dernière version stable de Squid ICI, puis installez-la par :
$ tar jxvf squid-xxx.tar.bz2 $ cd squid-xxx/ $ ./configure --prefix=/usr --sysconfdir=/etc/squid --enable-carp -enable-icmp --enable-useragent-log --enable-referer-log --enable-snmp --enable-arp-acl --enable-htcp --enable-cache-digests Bien que le sujet ne soit ni la mise en place d'un proxy transparent ni l'installation d'un proxy ssl, je vous donne les options qu'il suffit de rajouter au configure, pour le proxy transparent :
--enable-ipf-transparent (si vous utilisez ipchains) --enable-pf-transparent (si vous utilisez PF) --enable-linux-netfilter (si vous utilisez netfilter/iptables) Pour le support ssl :
--enable-ssl La compilation et l'installation se résume toujours à :
$ make $ su <password> # make install # mkdir /var/log/squid # mkdir /var/spool/squid 1.2 Depuis les paquetages
2. Lancement sécuriséDans cette partie j'indique comment lancer Squid par un utilisateur différent de root, par mesure de sécurité. Pour cela, en tant que root, créez les groupe et utilisateur "proxy" s'ils n'exitent pas, par :
# groupadd proxy # useradd -g proxy -d /etc/squid -s /bin/bash proxy # passwd proxy Il ne vous reste plus qu'à attribuer les bonnes permissions aux répertoires :
# chown -R proxy.proxy /etc/squid /var/log/squid /var/spool/squid /usr/lib/squid /usr/sbin/squid # chmod 665 /var/run 3. ConfigurationLe fichier de configuration de Squid est /etc/squid/squid.conf . Avant de le modifier faites-en une sauvegarde par :
# cp /etc/squid/squid.conf /etc/squid/squid.conf.default Je fournis un exemple de fichier squid.conf, correspondant au réseau suivant :
Le fichier squid.conf : ##### /etc/squid/squid.conf ##### # comme Squid est lancé par un utilisateur différent de root # alors http_port ne peut être inférieur à 1024 http_port 192.168.0.1:3128 acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY cache_mem 10 MB cache_dir ufs /var/spool/squid 100 16 256 cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log pid_filename /var/run/squid.pid # Pour que le proxy soit serveur DNS : # dns_nameservers dns_fai ou/et dns_passerelle # redirect_program /usr/bin/squidGuard -c etc/squid/squidGuard.conf refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 # ACL : les acl permettent de spécifier les autorisations # d'accès sur certains ports, et pour les ip des stations # Attention l'ordre donné ici est important ! acl all src 0.0.0.0/0.0.0.0 acl localhost src 127.0.0.1/255.255.255.255 acl manager proto cache_object acl serveur src 192.168.0.1 acl poste src 192.168.0.50 acl multipostes src 192.168.0.100-192.168.0.125 acl SSL_ports port 443 563 acl Safe_ports port 80 # http acl Safe_ports port 20 # ftp-data acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # ssl 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 # On accepte tout ce qui vient du serveur http_access allow serveur http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge # On rejette tous les ports différents de ceux déclarer dans les acl http_access deny !Safe_ports http_access deny CONNECT !SSL_ports # On accepte les requetes des stations suivantes sur le proxy : http_access allow poste http_access allow multipostes # On accepte le local http_access allow localhost # On rejette tout le reste http_access deny all http_reply_access allow all icp_access allow all # On renseigne l'utilisateur et le groupe qui initialise Squid : cache_effective_user proxy cache_effective_group proxy # On renseigner le nom de machine qui fait serveur visible_hostname serveur httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on #### END /etc/squid/squid.conf #### Maintenant que Squid est configuré, activez le répertoire de swap de Squid par :
# /usr/sbin/squid -z Attribuez le répertoire /var/spool/squid à l'utilisateur squid :
chown -R proxy.proxy /var/spool/squid Vous pouvez tester le bon fonctionnement par :
/usr/sbin/squid 4. Lancement automatique de SquidPour que Squid soit lancé au démarrage, je fournis un script à placer dans le répertoire d'initialisation de votre distribution. Il suffit ensuite de faire un lien vers celui-ci dans les différents runlevels. Reportez-vous aux didacticiels sur votre distribution pour savoir comment faire. Ce Script de démarrage ne concerne que ceux qui ont installé Squid depuis les sources, pour les autres, les paquetages ont déjà installé tout le nécessaire. Vérifiez simplement que le script est bien exécuté dans les bons runlevels. #!/bin/bash # script init squid case $1 in start) echo "Starting Squid" /usr/sbin/squid sleep 2 ;; stop) echo "Stopping Squid" sleep 2 kill `cat /var/run/squid.pid` ;; restart) echo "Restarting Squid" kill `cat /var/run/squid.pid` sleep 4 /usr/sbin/squid ;; status) if [ -f /var/run/squid.pid ] then PID=`cat /var/run/squid.pid` echo "Squid running - process $PID " else echo "Squid not Running" fi ;; *) echo "Usage : squid (start|stop|restart|status)" ;; esac # end N'oubliez pas d'attribuer le script d'initialisation de squid à l'utilisateur proxy ! Exemple pour les utilisateur de debian :
# chown proxy.proxy /etc/init.d/squid --Message édité par jblecanard le 08-10-2004 à 11:54:44-- ------------------------------------- C'est une situation bien inconfortable que d'être assez sensible à la bêtise pour en souffrir et trop intelligent pour s'en indigner. - Gustave Thibon - |
| Page : [1] |
Forum » Documentation Linux » Partage de connexion : proxy Squid |
Forum modéré par : Jul |
| Même auteur |
|
Score ( voter ) : ![]() ![]()
|
|
- Petit scarabée : 0 pastille, moins de 100 messages
- Scarabée : 0 pastille, plus de 100 messages
- Hobbit : 1 pastille, plus de 1000 messages
- Naboo : 2 pastilles, plus de 2000 messages
- Elfe : 3 pastilles, plus de 3000 messages
- Jedi : 4 pastilles, plus de 4000 messages
- Maître Jedi : 5 pastilles, plus de 5000 messages
