I m'he oblidat de comentar que cal afegir les pertinents regles al UFW root@gwbox:~# tail -n 12 /etc/ufw/before.rules # Ipset # Un cop comprovat que funciona, ens estalviem els logs. #-A ufw-before-input -m set --match-set Firehol_L1 src -j LOG --log-level 4 --log-prefix "Blocked by IPset: "
#-A ufw-before-input -m set --match-set UFWBlockList src -j LOG --log-level 4 --log-prefix "Blocked by IPset: " -A ufw-before-input -m set --match-set Firehol_L1 src -j DROP -A ufw-before-input -m set --match-set UFWBlockList src -j DROP # don't delete the 'COMMIT' line or these rules won't be processed COMMIT Missatge de Lluís Gras <[email protected]> del dia dl., 22 de gen. 2024 a les 14:14: > Jo no ho qualificaria d'experiència, però si us serveix per agafar alguna > idea que no sigui dolenta. > > Tinc un parell de guions, l'un s'executa un cop al dia i descarrega una > llista i l'afegeix a un conjunt ipset. > > root@gwbox:~# cat /usr/local/bin/llista_l1 > #!/bin/sh > > ipset create Firehol_L1 hash:net -exist > > ipset flush Firehol_L1 > > rm -f /etc/firehol_level1.netset > > wget -c https://iplists.firehol.org/files/firehol_level1.netset -O > /etc/firehol_level1.netset > > if [ $? -eq 0 ]; then > > sed -i '/192\.168\./d' /etc/firehol_level1.netset > > for i in $(cat /etc/firehol_level1.netset | grep -v ^# ); do ipset add > Firehol_L1 $i; done > > ipset save -file /etc/iptables/ipsets > > fi > > amb > > ipset list Firehol_L1 > > es poden consultar les xarxes que bloqueja. > > L'altre s'executa cada 5 minuts i és similar > > root@gwbox:~# cat /usr/local/bin/ufwblock > #!/bin/sh > > ipset create UFWBlockList hash:ip -exist > > ipset flush UFWBlockList > > #Suposo que en equips nous farà falta afegir el syslog-ng o establir la > destinació del log de l'ufw. > # El *5 *en negreta parametritza quantes vegades ha d'aparèixer una ip al > log per afegir-la a l'ipset. > > for i in $(cat /var/log/messages | grep BLOCK | awk -F= '{print $5}' | cut > -d " " -f 1 | sort | uniq -c | awk '{ if ($1 >=*5*) print $2}'); do ipset > add UFWBlockList $i; done > > #en el meu cas, per estalviar-me bloquejos innecessaris. > ipset del UFWBlockList 192.168.2.2 > ipset del UFWBlockList 192.168.1.1 > > ipset save -file /etc/iptables/ipsets > > A banda, també vaig instal·lar el fwlogwatch que t'envia un informe diari. > > > > Missatge de Alex Muntada <[email protected]> del dia dg., 21 de gen. 2024 > a les 13:22: > >> Hola Narcis, >> >> > no es tracta dels números sinó de buscar patrons amb una cadena >> > fixa en comptes de buscar cadenes amb un patró. >> > >> > Exemple amb números de DNI; la llista seria: >> > ES......... Spain >> > FR......... France >> > .........DE Germany >> > IT......... Italy >> > >> > I donat un DNI «55667788DE» poder trobar la línia del patró >> > corresponent: >> > .........DE Germany >> > I així extraure el nom de l'estat després de l'espai: Germany. >> >> Amb Python, Perl o algun altre llenguatge de més alt nivell no >> seria més fàcil d'obtenir el país perquè podries capturar la >> part de l'expressió regular que t'interessi i utilitzar-la per >> indexar un diccionari: >> >> ``` >> #!/usr/bin/perl >> >> use v5.32; >> use strict; >> use warnings; >> >> my %paisos = ( >> 'DE' => 'Germany', >> ); >> >> for my $item (<DATA>) { >> chomp($item); >> say "$item -> $paisos{$1}" if $item =~ /([A-Z]{2})$/; >> } >> >> __DATA__ >> 12345678DE >> ``` >> >> > Cas més sofisticat; Rangs d'adreces IPv4 en un fitxer >> > «spammers.txt»: >> > 55\.66\.77\.88 >> > 66\.77\.88\..* >> > 99\.11\.22\.33 >> > >> > i amb això trobar que si la IP de l'interlocutor té >> > coincidència a la llista, aleshores no acceptar-lo. >> > I així poder incloure rangs també. >> >> Les expressions regulars per als rangs IP són poc acurades perquè >> no tenen en compte les màscares de bits dels segments. En general >> és millor enfocar aquest problema d'una altra manera més eficient >> (per exemple amb ipset) i utilitzar llistes negres que tinguin >> una reputació prou bona, per exemple: >> >> https://github.com/firehol/blocklist-ipsets >> >> És un tema que fa uns mesos que em vull mirar amb deteniment, >> però en el que encara no he pogut aprofundir. Si algú hi té >> experiència, estaria bé que ens expliqui com ho fa per incloure >> llistes negres al tallafocs. >> >> Salut, >> Alex >> >> -- >> ⢀⣴⠾⠻⢶⣦⠀ >> ⣾⠁⢠⠒⠀⣿⡁ Alex Muntada <[email protected]> >> ⢿⡄⠘⠷⠚⠋ Debian Developer 🍥 log.alexm.org >> ⠈⠳⣄⠀⠀⠀⠀ >> >>

