rss logo

Comment bloquer des adresses IP à partir d'une blacklist avec Packet Filter sous OpenBSD

Logo d'OpenBSD

Ce guide montre comment utiliser le pare-feu Packet Filter pour bloquer des adresses IP à partir d'une liste noire (blacklist), de manière similaire à ce que fait PeerBlock sur Windows. Comparé à Netfilter, Packet Filter offre de meilleures performances et plus de flexibilité pour personnaliser les règles du pare-feu.

Configuration

  • OS : OpenBSD 7.3

Commandes

Télécharger la liste noire

Nous pouvons télécharger une liste noire depuis le site www.iblocklist.com. Par exemple, téléchargez la liste PrimaryThreats ici. Nous devons décompresser et formater le fichier pour qu'il fonctionne avec Packet Filter.

  • Obtenir la liste :
root# wget "URLtomyremotelist" -O list.zip
  • Décompresser la liste :
root# unzip file.zip
  • Formater la liste pour qu'elle soit exploitable par Packet Filter :
root# cut -d ":" -f2 list.txt | grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" > blocklist.tmp root# sed -i 's/-/:/' blocklist.tmp root# for i in $(cat blocklist.tmp); do echo "$i"; ipcalc -r "$i"| grep "/" >> blocklist; done
  • Copier la liste dans /etc/blocklist :
root# cp blocklist /etc/blocklist

Packet Filter

  • Intégrer la liste dans les règles de Packet Filter :
#sets the maximum number of entries allowed in PF table. set limit table-entries 1000000 table <blocklist> persist file "/etc/blocklist" pass out on $wan pass in quick on $lan inet proto tcp from 192.168.1.10 to any port { 80, 443 } block quick log (all, to pflog0) on any from <blocklist> to 192.168.1.10 block quick log (all, to pflog1) on any from 192.168.1.10 to <blocklist>
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :

contact mail address