Ip nuisibles à blacklister
Je propose en téléchargement quelques listes d'IP malveillantes recueillies par mes soins. Il y en a pour tous les gouts : spam, bruteforce, anti-pub…
Téléchargez les listes périodiquement sachant qu'elles sont mises à jour chaque nuit à 0h42. Inutile donc de les télécharger plus d'1 fois/jour pour économiser la bande passante, merci 😉.
Chaque liste est disponible en version gzippée, il suffit d'ajouter “.gz” à la fin d'un lien, ou utiliser curl –compressed
.
TL ; DR
unwind-block.txt (domain list)
curl -o out.txt --compressed $url # or ftp -o- $url.gz | gzcat > out.txt pfctl -t <table> -T replace -f out.txt
Si besoin:
# cat /etc/pf.conf [...] set limit table-entries 409600
Blacklist avec le parefeu (pf)
Bruteforceurs
prx-brutes.txt prx-brutes.txt.gz: ce premier fichier contient la liste des IP qui ont tenté un bruteforce sur mon serveur ces dernières 24 heures (sur ssh, accès mail ou un wordpress imaginaire) ou bien scanné pour un service inexistant.
Pour l'utiliser avec pf modifiez /etc/pf.conf
:
- /etc/pf.conf
table <prx> persist file "/var/prx-brutes.txt" block log quick from <prx>
pf-badhost
Blocage par DNS
Via le fichier /etc/hosts
Cette méthode est valide pour tous les systèmes de type UNIX.
Cette liste permet d'éviter à votre système de se connecter à certains domaines malveillants. C'est une méthode facile et efficace de se protéger contre des popups, pièges, traceurs… Tout en allégeant la bande passante.
https://si3t.ch/pub/evils/hosts.txt https://si3t.ch/pub/evils/hosts.txt.gz Vous trouverez en suivant ce lien un fichier /etc/hosts
qui contient plus de 100 000 domaines malveillants ou publicitaires, tous blacklistés.
Afin de mettre à jour automatiquement cette liste sur vos machines, voici un script /usr/local/sbin/uphosts
:
- uphosts
if [ -n "$(find /etc/hosts -mtime +7)" ]; then # wait for internet access while true; do nc -zw1 si3t.ch 443 && break || sleep 60 done curl -o /etc/hosts --compressed https://si3t.ch/pub/evils/hosts.txt # or #ftp -o- https://si3t.ch/pub/evils/hosts.txt.gz |gzcat > /etc/hosts fi
N'oubliez pas de rendre uphosts éxécutable :
chmod +x /usr/local/sbin/uphosts
Enfin, ajoutez une tâche cron à root avec crontab -e
:
@reboot /usr/local/sbin/uphosts
Pour les plus curieu(ses|x), voici comment j'obtiens cette liste.
Avec un résolveur local (unwind, unbound)
Vous pouvez faire de même avec unwind (openbsd), un résolveur local. Voici un fichier contenant les domaines correspondants à utiliser à la place du host ci-dessus ou comme liste pour l'extension Firefox ublock origin :
unwind-block.txt.gz unwind-block.txt
- /etc/unwind.conf
block list "/var/db/unwind-block.txt"
Enfin, pour les utilisateurs d'unbound, voici le fichier rpz correspondant : unbound-adblock.rpz
- unbound.conf
module-config: "respip validator iterator" rpz: name: "unbound-adblock" zonefile: "/path/to/unbound-adblock.rpz" rpz-log: yes rpz-log-name: "unbound-adblock"