IPCop est une distribution Linux qui offre les services de Firewall/pare-feu facile à installer sur un PC. IPcop offre un service de proxy (serveur mandataire en français) basé sur Squid
Par défaut IPCOP est en mode Proxy/Squid uniquement sur l’interface VERT, ce qui signifie que seuls les ordinateurs du réseau local peuvent utiliser le service proxy. Il peut être intéressant d’ouvrir ce service à des ordinateurs extérieur au réseau local , voici les manipulations à effectuer.
NOTA: ces modifications s’appliquent également à toutes distribution Linux incluant Squid.
Modification du paramétrage de IPCop
Pour passer en mode OPEN PROXY sur une ou plusieurs adresses IP ex 181.65.71.98 , voici les manipulations :
1) ajouter une règle iptables pour ouvrir le port 8080 (par defaut) :
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
Pour activer automatiquement cette régle au démarrage de la machine, vous pouver l’inclure dans le fichier : /etc/rc.d/rc.local
2) modifier /etc/squid/squid.conf pour
a) – qu’il écoute sur toutes les interfaces :
Changer la ligne:
http_port x.x.x.x:8080 en 8080
b) créer une acl TRUSTED_IP :
acl TRUSTED_IP src 181.65.71.98 ##si plusieurs ip les mettre à la suite x.x.x.x y.y.y.y etc ..
c) Modifier la partie allow client :
#Finally allow IPCop_networks clients http_access allow TRUSTED_IP http_access allow IPCop_networks !no_proxy_dst http_access deny all
3) redémarrer SQUID :
/usr/local/bin/restartsquid
Pour tester SQUID en telnet :
telnet proxy.domain.tld 8080 GET http://www.google.com/ HTTP/1.1
taper "Entrée", puis retaper le host host:www.google.com
taper « Entrée » 2 fois …et voila !
voici un petit script bash pour une à jour auto sur une adresse dynamique :
Si les ordinateurs extérieur au réseau local ont des adresses dynamiques qui changent régulièrement , il peut être pénible à la longue de modifier le fichier squid.conf.
Avec un petit script comme celui ci-dessous , il est aisé de mettre à jour automatiquement les ACL trusts. Il faut bien sur remplacer monip.dyndns.org par votre nom d’hôte DYNDNS ou tout autre provider de DNS dynamique.
newip=`ping -c 1 monip.dyndns.org | grep "PING monip.dyndns.org (" | /usr/bin/awk -F " " '{print $3}' | sed 's/(//' | sed 's/)://'` ipsquid=`cat /etc/squid/squid.conf | grep 'acl TRUSTED_IP src' | /usr/bin/awk -F " " '{print $4}'` echo $newip > /tmp/newip.log echo $ipsquid >> /tmp/newip.log if [ $newip = $ipsquid ] then echo "adresse ip toujours ok" >> /tmp/newip.log exit else echo "l adresse IP a changé">> /tmp/newip.log sed -i 's/'$ipsquid'/'$newip'/g' /etc/squid/squid.conf /usr/local/bin/restartsquid fi
il n’y pas plus qu’a appeler ce script toutes les 5 minutes via une ligne de commande dans votre crontab
NOTA: Pour modifier le crontab sur IPCOP la commande est :
fcrontab -e et non crontab -e