Update

Tempo fa avevo messo online uno script per bloccare su iptables alcuni paesi europei. Ora che tutto passa a python3, mi hanno chiesto come correggerlo (persone cui non funziona piu'). Ecco qui:

#!/usr/bin/python3

import os
import math
import urllib.request

url = "ftp://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-latest"
with urllib.request.urlopen(url) as f:
    lines = f.read().decode('utf-8').splitlines()

os.system('ipset create rusbiel hash:net')
os.system('iptables -A INPUT -m set --match-set rusbiel src -j LOG')
os.system('iptables -A INPUT -m set --match-set rusbiel src -j DROP')
os.system('ipset flush rusbiel')

for line in lines:
    if ('ipv4' in line) and ('RU' in line or 'BY' in line):
        s = line.split("|")
        net = s[3]
        cidr = float(s[4])
        final_cidr = f"{net}/{math.floor(32 - math.log2(cidr))}"
        ipset_cmd = f"ipset -q -A rusbiel {final_cidr}"
        os.system(ipset_cmd)
        print(ipset_cmd)

Non dimenticate di installare con apt sia iptables che ipset:

Per Debian:

apt install ipset
apt install iptables

Ecco fatto.

Uriel Fanelli


Il blog e' visibile dal Fediverso facendo il follow a:

@uriel@keinpfusch.net

Contatti: