IPCop

Matériel

Depuis 2019, je conseille d'utiliser OPNSense sur un minipc 4 ports Aliexpress J1800/J1900 plutôt que IPCop !

Ce site traite de la version assez ancienne maintenant de IPCop 1.4. Il tourne avec un kernel 2.4. Cette caractéristique permet d’utiliser de vieux matériels ayant largement dépassés le stade obsolète ! Même si un 486 pourrait faire l’affaire, je conseille quand même un minimum tel que Pentium 4 et 512 mo de RAM. Durant 10 ans d’utilisation à la maison, IPCop n’a jamais ralenti d’aucune façon la ligne ADSL. Il a aussi hébergé ce site.

ATTENTION en 1.4.24, la version Snort 2.9 est un ogre à mémoire : 150 Mo par interface !

De toute facon, Snort est le genre d’outil inutile et en plus il ne doit plus y avoir de rêgles téléchargeables pour cette version.

IPCop 1.4.24

La série 1.4 c’est arretée sur la rev 21. Pour vous simplifier la vie, je fournis directement l’image ISO version CDRom bootable avec mes mises à jour. Téléchargez, gravez, intallez.

CD image MD5SUM = a47a3a2e6ded96e305ada9162ffba982.

Mise à jour vers 1.4.24

Il n’y a plus de développement de la version 1.4 (ou 2.x). Elle en restera ou elle en est sur le site officel. 1.4.22 correspondant aux dernières modifications faites par la team, donc validées mais jamais publiées. Les patches .23 et .24 sont personels.

IPCop 1.4.21 est la dernière version délivrée.

Il est impossible de construire un IPCop 1.4 avec le code disponible sur le cvs sourceforge. Il manque beaucoup de paquet en ligne. Pendant un moment, mes patches ont corrigés cet état de fait. Mais ils sont probablement eux aussi devenus insuffisants.

Installation des patches compilés

Votre IPCop doit être en 1.4.21. Faite une sauvegarde ou au moins sauvegardez votre config. Ajoutez à gpg.conf:

vi /root/.gnupg/gpg.conf
allow-non-selfsigned-uid

Allez sur votre IPCop puis ajoutez ma clé publique signant les patchs .22, .23 et .24:

#echo "
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)

mQGiBE6tl4URBADaTe725TiF3pyzIKjwarWGbvHBXY2zdvBGAdh+2tsivAPLUUhI
r9O2yO7CxN6/CpIhUqv/evGYLg82DkEjIRcaV8BtoteQblXRIlDQrR+j7wQF2Zky
9my8Lb5Nxj3Yu83/3g/9KjZXPND5cMhuWqCZTC3558x0v+axOu1Hj7y/lwCgyypH
NMxd6sQw9DpFmoJUhnHu1KUEALWaog20n3w6GQ2h3OISz8rsT1IS2Ilwyz57c6jC
5Bghfxemr/lT+oFoiEQc4bbjYE/AERwQzopv+ulWricOXKvSBUe3lMnzr2oz1aG+
F9RB8d2GwKUzoDs2Zrda1AEEZx6vfY9SGvowa0xlszA+ibXYCizLFeNlzyLrGcyy
ZK9ABADN9Dg9hidJBqwiNKiCGD39w9joXnTdHiycIFVqR4BUgkEW1/Yo515keNgL
cSzQNrOCFcHSF9eGNHjptsFUIpO0aNY1NnFNsx4R/zWCZDIUiCFSjAOs6neU6FNk
f0bLqulFpMqMLYSx/oo4AeTZ8U7CtZlCH8QSjXhbiufZsCKwDLRURnJhbmNrIEJv
dXJkb25uZWMgKGh0dHA6Ly9mcmFuY2s3OC5hdGguY3ggdXBkYXRlIGlwY29wIDEu
NC54KSA8ZmJvdXJkb25uZWNAY2hlei5jb20+iGIEExECACIFAk6tl4UCGwMGCwkI
BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEMAQog6Nr5t9CTIAnjvmG8MZk2hbZ/qo
2q5GAoJLY3fNAKCRNHRgAMsBN73H53gzO0RjZqO51A==
=rHmh
-----END PGP PUBLIC KEY BLOCK-----
" > key.txt
#gpg --import key.txt
#rm key.txt
#gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub   1024D/4A3BFD9E 2003-10-03
uid              IPCop Development Group (http://www.ipcop.org/) <ipcop-devel@lists.sourceforge.net>

pub   1024D/8DAF9B7D 2011-10-30
uid              Franck Bourdonnec (http://franck78.ath.cx update ipcop 1.4.x) <fbourdonnec@chez.com>

Télécharger puis installer les trois patchs

Les changements principaux .22 .23 .24

  • Snort 2.9.2.1 avec réparation du système d’upload des règles VRT.
  • Squid 2.7 stable9, dernier de la série, à cause addon ‘urlfilter’
  • Openvpn server 2.2.2
  • Openssh 5.9p1
  • Bind 9.4 ESV (extended support version)
  • ntp4
  • tcpdump/lpcap pour snort
  • Kernel 2.4.37 patchlevel 11, le dernier de la série 2.4
  • Squid 2.6 stable23, dernier de la série
  • rp-pppoe 3.10
  • ntp4, patched pour CVE-2009-3563
  • pptp 1.7.2
  • Mise à jour de driver réseau spécifiques.
  • Snort 2.8.6.1 avec réparation du système d’upload des règles VRT.

Comment sont fabriqués les patchs

Vous trouverez le diff entre chaque version dans les fichiers patch. Ceux-ci sont directement applicables sur la branche CVS. Mais encore une fois, il est improbable de mener à bien une compilation complète du projet. Le .22 est fait déjà partie de la branche CVS.

J’ai oublié la méthode de fabrication proprement dite (les tgz signés). Cette archive devait servir à ça.

rc.firewall.local

Ce script complète les règles de filtrage de IPCop en éliminant les sources IP indésirables. Malgré la pénurie annoncée d’IP V4, quelques numéros de réseaux (range) ne peuvent pas provenir d’internet (consulter l’ IANA).
Placer rc.firewall.local dans /etc/rc.d sur votre IPCop.
Déplacez “-i $EXTERNAL” selon votre numéro de réseau GREEN (10.0.0.0/8, 172.16.0.0/12 ou 192.168.0.0/16) ! La restriction est réduite pour laisser passer votre réseau par les cartes non RED. De temps à autre, de nouveaux réseaux sont libérés. Pensez à corriger la liste si certains sites ne fonctionnent plus.

Addon Calamaris

L’addon Calamaris  compléte Calamaris en l’appelant comme une page cgi d’IPCop et aussi à travers cron. Pur exercice pour s’essayer à Perl. Calamaris produit les pages journaliéres et hebdos de ce style :

Installation

Dans un répertoire temporaire sur la machine ipcop

#>tar -xzf calamaris-1.0.tgz
#>./setup

L’addon SquidGuard 1.4.3

SquidGuard permet de filtrer les adresses de sites douteuses selon votre choix en les remplaçant par une page explicative. Une variante traite les pages de publicité et renvoie une petite image au lieu de la pub. Super efficace. L’addon SquidGuard est une interfaçe d’administration de SquidGuard adaptée à IPCop 1.4. L’interface est en français/english/deutsch/dutch/russian/italian/chinois et utilise la blackliste de l’université de Toulouse. Elle ajoute deux listes locales aisément modifiables: ‘whitelist’ et ‘blacklist’ dont le contenu est prioritaire sur les listes normales. Cette méthode complète efficacement la mise à jour automatique.

Télécharger le fichier d’installation:

setup MD5SUM = d074d81b4838ed425efd69f46121d4fd

Installation

Copiez le fichier d’installation dans un répertoire temporaire sur la machine ipcop

#>tar -xzf setup-squidGuard-1.4.3.tgz
#>./setup

Documentation

La documentation de l’addon est disponible en français.

Traductions

Liste des langues disponibles pour l’addon.

français english deutsch
dutch russian italian
portuguese chineese traditional chineese simplified

Je n’ajoute plus de langues dans l’addon lui même mais vous toujours corrigez ces fichiers ou m’en envoyez de nouveaux.

La Blackliste

Il s’agit en fait de plusieurs listes correspondant à une catégorie spécifique (sexe, drogue, jeux, etc…). Pour faciliter la vie de l’administrateur, chaque catégorie est succintement décrite dans autant de langues que possible. Vous êtes invités à compléter les traductions manquantes !

Envoyer vos correctifs à Fabrice Prigent, université de Toulouse.

Exemple d’une ajout récent

NAME: arjel
DEFAULT_TYPE: black
SOURCE: http://squidguard.univ-tlse1.fr
DESC EN: ARJEL which is a french certification authority for gambling sites
DESC FR: Sites de pari en ligne certifies par l ARJEL
NAME EN: arjel
NAME FR: arjel
NAME IT: arjel   <- à traduire si possible
NAME NL: arjel
NAME DE: arjel
DESC XX:         <- à ajouter

Le fichier contenant les descriptions se trouve toujours dans le zip de Toulouse. Son nom est global_usage.