Re: Filtrar comodins/regex de les línies

Lluís Gras <[email protected]>
Newsgroups gmane.linux.debian.user.catalan
Message-ID <CAFGgMKwRZDg7C4_Za9zXoWagEVk8MSr0VcmOTFWu+x3E_i-K-g@mail.gmail.com>
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
>>   ⠈⠳⣄⠀⠀⠀⠀
>>
>>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.