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
>>   ⠈⠳⣄⠀⠀⠀⠀
>>
>>

Respondre per correu electrònic a