From a7c8414d08ad8b06e2b73c3ab360b48f57a21961 Mon Sep 17 00:00:00 2001 From: Alexander Serkin Date: Mon, 12 Jan 2026 14:13:38 +0300 Subject: [PATCH] Updated README.md with short scripts descriptions (#23) * Add nftables support with config generator and IP checker - Add generate_nft_blacklist.py for generating nftables configurations - Add check_nft_blacklist.py for verifying IPs against blacklist - Add blacklists_updater_nftables.sh for automated updates - Add blacklists_nftables/ directory with generated configs - Add GitHub Actions workflow for daily nftables updates - Update README.md with nftables usage instructions nftables is a modern replacement for iptables with better performance and lower memory usage, especially for large rulesets. This addition complements the existing iptables and nginx blacklist formats. * Added nftables scripts help * Updated README.md --- .github/workflows/update_nftables.yml | 33 +++++++++++++++++++++++++++ README.md | 2 ++ blacklists_nftables/blacklist-v4.nft | 2 +- blacklists_nftables/blacklist-v6.nft | 2 +- blacklists_nftables/blacklist.nft | 4 ++-- 5 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/update_nftables.yml diff --git a/.github/workflows/update_nftables.yml b/.github/workflows/update_nftables.yml new file mode 100644 index 0000000..8ac4f4e --- /dev/null +++ b/.github/workflows/update_nftables.yml @@ -0,0 +1,33 @@ +name: Update nftables Blacklists + +on: + schedule: + - cron: '30 2 * * *' # Daily at 02:30 UTC + workflow_dispatch: + +jobs: + update-nftables: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: Generate nftables blacklists + run: | + chmod +x blacklists_updater_nftables.sh + ./blacklists_updater_nftables.sh + + - name: Commit and push if changed + run: | + git config --local user.email "github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + git add blacklists_nftables/ + git diff --quiet && git diff --staged --quiet || \ + (git commit -m "Auto-update nftables blacklists [skip ci]" && git push) + diff --git a/README.md b/README.md index ff83233..ea74ab1 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@ This repository contains Python scripts that allow you to retrieve network lists - `get_info_from_ripe.py`: Retrieves information about Russian AS numbers and Networks from RIPE database for the further analysis. - `get_description.py`: Retrieves network names, AS names and organisation names from RIPE. Updates the lists in the folder `auto/`. - `parse_ripe_db.py`: Parses the whole RIPE database to get information about Networks for the further analysis. +- `generate_nft_blacklist.py`: Takes text blacklist on the input and generates nftables config with sets. +- `check_nft_blacklist.py`: Checks IPv4/IPv6 address against generated nftables config. ### Blacklist Generators diff --git a/blacklists_nftables/blacklist-v4.nft b/blacklists_nftables/blacklist-v4.nft index 007ca8e..d383ebe 100644 --- a/blacklists_nftables/blacklist-v4.nft +++ b/blacklists_nftables/blacklist-v4.nft @@ -1,5 +1,5 @@ # Autogenerated nftables blacklist -# Generated: 2026-01-12T10:00:52.332355Z +# Generated: 2026-01-12T09:09:01.967693Z # Source: /tmp/blacklist-v4.txt # IPv4: 816, IPv6: 0 diff --git a/blacklists_nftables/blacklist-v6.nft b/blacklists_nftables/blacklist-v6.nft index 4a1fbc5..ca7cf88 100644 --- a/blacklists_nftables/blacklist-v6.nft +++ b/blacklists_nftables/blacklist-v6.nft @@ -1,5 +1,5 @@ # Autogenerated nftables blacklist -# Generated: 2026-01-12T10:00:52.366124Z +# Generated: 2026-01-12T09:09:02.010763Z # Source: /tmp/blacklist-v6.txt # IPv4: 0, IPv6: 17 diff --git a/blacklists_nftables/blacklist.nft b/blacklists_nftables/blacklist.nft index f217181..2b632e9 100644 --- a/blacklists_nftables/blacklist.nft +++ b/blacklists_nftables/blacklist.nft @@ -1,6 +1,6 @@ # Autogenerated nftables blacklist -# Generated: 2026-01-12T10:00:52.283144Z -# Source: /home/runner/work/AS_Network_List/AS_Network_List/blacklists/blacklist.txt +# Generated: 2026-01-12T09:09:01.912886Z +# Source: /home/user/AS_Network_List/blacklists/blacklist.txt # IPv4: 816, IPv6: 17 table inet filter {