Compare commits

..

163 Commits

Author SHA1 Message Date
C24Be
82c2d96b4a Update 2026.07.01 11:08:00 2026-07-01 11:08:00 +00:00
C24Be
ecf4f7974c Update 2026.07.01 11:03:09 2026-07-01 11:03:09 +00:00
C24Be
848ad06c96 Update 2026.07.01 10:50:06 2026-07-01 10:50:06 +00:00
C24Be
eb7092ed0b Update 2026.07.01 06:56:20 2026-07-01 06:56:21 +00:00
C24Be
d8783dec97 Update 2026.07.01 06:49:22 2026-07-01 06:49:22 +00:00
C24Be
45ffae0e0c Update 2026.07.01 06:36:10 2026-07-01 06:36:10 +00:00
C24Be
8a6bc4e356 Update 2026.07.01 02:06:16 2026-07-01 02:06:18 +00:00
C24Be
dc32b1b386 Update 2026.06.30 09:22:09 2026-06-30 09:22:09 +00:00
C24Be
9cac1fa775 Update 2026.06.29 10:29:08 2026-06-29 10:29:08 +00:00
C24Be
343e617f8e Update 2026.06.28 14:04:19 2026-06-28 14:04:20 +00:00
C24Be
2a1d1687fd Update 2026.06.28 08:44:28 2026-06-28 08:44:28 +00:00
C24Be
77b0343871 Update 2026.06.27 08:29:21 2026-06-27 08:29:21 +00:00
C24Be
9b0d644813 Update 2026.06.26 08:54:11 2026-06-26 08:54:12 +00:00
C24Be
e2397fb94f Update 2026.06.25 08:51:28 2026-06-25 08:51:28 +00:00
C24Be
f54ebd3fe1 Update 2026.06.24 08:57:09 2026-06-24 08:57:09 +00:00
C24Be
20b0bcb9cb Update 2026.06.23 09:27:01 2026-06-23 09:27:01 +00:00
C24Be
d6695ef92b Update 2026.06.22 11:40:47 2026-06-22 11:40:47 +00:00
C24Be
3eeff162b8 Update 2026.06.21 14:25:27 2026-06-21 14:25:28 +00:00
C24Be
57cc8b0d82 Update 2026.06.21 09:40:04 2026-06-21 09:40:04 +00:00
C24Be
a2bf401d68 Update 2026.06.20 08:45:20 2026-06-20 08:45:20 +00:00
C24Be
b74ce8dd45 Update 2026.06.19 10:16:40 2026-06-19 10:16:40 +00:00
C24Be
4ba97dab30 Update 2026.06.18 10:11:10 2026-06-18 10:11:10 +00:00
C24Be
6a35e1a788 Update 2026.06.17 10:43:27 2026-06-17 10:43:27 +00:00
C24Be
f26953b41c Update 2026.06.16 10:59:05 2026-06-16 10:59:05 +00:00
C24Be
06a2a70382 Update 2026.06.15 11:51:37 2026-06-15 11:51:38 +00:00
C24Be
af3b5a0767 Update 2026.06.14 14:20:00 2026-06-14 14:20:01 +00:00
C24Be
29f9a5c169 Update 2026.06.14 09:23:16 2026-06-14 09:23:16 +00:00
C24Be
06e68d7a7d Update 2026.06.13 08:49:42 2026-06-13 08:49:43 +00:00
C24Be
4babd45827 Update 2026.06.12 10:00:14 2026-06-12 10:00:14 +00:00
C24Be
3377d375d3 Update 2026.06.11 10:15:42 2026-06-11 10:15:42 +00:00
C24Be
b2863a7336 Update 2026.06.10 09:44:03 2026-06-10 09:44:03 +00:00
C24Be
ccf937e8fb Update 2026.06.09 09:30:24 2026-06-09 09:30:24 +00:00
C24Be
333af9df97 Update 2026.06.08 10:24:01 2026-06-08 10:24:01 +00:00
C24Be
322cba8846 2026.06.07 (#29)
* Update 2026.06.01 02:12:42

* Update 2026.06.01 06:57:54

* Update 2026.06.01 07:15:34

* Update 2026.06.01 07:22:28

* Update 2026.06.01 12:45:22

* Update 2026.06.01 13:04:04

* Update 2026.06.01 13:10:57

---------

Co-authored-by: C24Be <C24Be@github.com>
2026-06-07 23:00:58 +02:00
C24Be
461f2ef41a Update 2026.06.07 14:09:18 2026-06-07 14:09:19 +00:00
C24Be
9b4a6ac658 Update 2026.06.07 08:47:47 2026-06-07 08:47:48 +00:00
C24Be
ec455143a0 Update 2026.06.06 08:27:02 2026-06-06 08:27:02 +00:00
C24Be
8d0ec2e281 Update 2026.06.05 09:36:00 2026-06-05 09:36:00 +00:00
C24Be
1a2519be12 Update 2026.06.04 09:47:09 2026-06-04 09:47:09 +00:00
C24Be
86184d1574 Update 2026.06.03 10:46:53 2026-06-03 10:46:53 +00:00
C24Be
18fef879a8 Update 2026.06.02 10:10:59 2026-06-02 10:10:59 +00:00
C24Be
7bb645449c Update 2026.06.01 11:15:12 2026-06-01 11:15:13 +00:00
C24Be
fea4f99524 Update 2026.05.31 14:00:43 2026-05-31 14:00:44 +00:00
C24Be
a5db3dc8eb Update 2026.05.31 08:37:35 2026-05-31 08:37:35 +00:00
C24Be
088080c9b7 Update 2026.05.30 08:21:18 2026-05-30 08:21:18 +00:00
C24Be
3ca9d7e2bb Update 2026.05.29 09:41:11 2026-05-29 09:41:11 +00:00
C24Be
753bf11101 Update 2026.05.28 09:53:59 2026-05-28 09:53:59 +00:00
C24Be
c6de27612f Update 2026.05.27 09:34:38 2026-05-27 09:34:38 +00:00
C24Be
5ba6da1b79 Update 2026.05.26 09:40:18 2026-05-26 09:40:18 +00:00
C24Be
dfdf830f15 Update 2026.05.25 09:54:40 2026-05-25 09:54:40 +00:00
C24Be
3d85f45774 Update 2026.05.24 13:50:20 2026-05-24 13:50:21 +00:00
C24Be
74a0144db3 Update 2026.05.24 08:21:22 2026-05-24 08:21:22 +00:00
C24Be
bc98a389dc Update 2026.05.23 08:09:32 2026-05-23 08:09:33 +00:00
C24Be
a344712703 Update 2026.05.22 08:52:45 2026-05-22 08:52:45 +00:00
C24Be
b30361c636 Update 2026.05.21 09:26:09 2026-05-21 09:26:09 +00:00
C24Be
84ab762161 Update 2026.05.20 08:57:13 2026-05-20 08:57:13 +00:00
C24Be
f7394cb1a0 Update 2026.05.19 09:30:50 2026-05-19 09:30:50 +00:00
C24Be
baf8f9b15a Update 2026.05.18 09:47:55 2026-05-18 09:47:55 +00:00
C24Be
0a18577b6d Update 2026.05.17 13:46:59 2026-05-17 13:47:01 +00:00
C24Be
d9ac014e7c Update 2026.05.17 08:13:00 2026-05-17 08:13:01 +00:00
C24Be
4874df210f Update 2026.05.16 07:54:17 2026-05-16 07:54:17 +00:00
C24Be
5d24b9f367 Update 2026.05.15 08:42:24 2026-05-15 08:42:24 +00:00
C24Be
f547f21c6d Update 2026.05.14 08:30:05 2026-05-14 08:30:05 +00:00
C24Be
66ee68c146 Update 2026.05.13 08:36:53 2026-05-13 08:36:54 +00:00
C24Be
7e63f0c2dd Update 2026.05.12 08:30:42 2026-05-12 08:30:43 +00:00
C24Be
8772da22bf Update 2026.05.11 09:28:50 2026-05-11 09:28:51 +00:00
C24Be
3eaf77049b Update 2026.05.10 13:44:12 2026-05-10 13:44:13 +00:00
C24Be
0259a91167 Update 2026.05.10 08:00:57 2026-05-10 08:00:57 +00:00
C24Be
9c2c051863 Update 2026.05.09 07:47:47 2026-05-09 07:47:48 +00:00
C24Be
98033441c1 Update 2026.05.08 07:20:46 2026-05-08 07:20:47 +00:00
C24Be
1d2a8bc59d Update 2026.05.07 08:23:55 2026-05-07 08:23:55 +00:00
C24Be
9a2fdfa8fb Update 2026.05.06 08:13:23 2026-05-06 08:13:23 +00:00
C24Be
971f3eef74 Update 2026.05.05 07:59:32 2026-05-05 07:59:32 +00:00
C24Be
b705bc035f Update 2026.05.04 08:22:08 2026-05-04 08:22:08 +00:00
C24Be
5eb530f0d4 Update 2026.05.03 13:26:53 2026-05-03 13:26:54 +00:00
C24Be
ed07619d9f Update 2026.05.03 07:52:47 2026-05-03 07:52:47 +00:00
C24Be
1eafe37559 Update 2026.05.02 07:23:14 2026-05-02 07:23:15 +00:00
C24Be
72b30b9670 2026.05.01 (#27)
* Update 2026.05.01 01:47:21

* Update 2026.05.01 09:04:07

---------

Co-authored-by: C24Be <C24Be@github.com>
2026-05-01 11:07:15 +02:00
C24Be
24a8fd70fe Update 2026.05.01 08:05:13 2026-05-01 08:05:13 +00:00
C24Be
60038f6850 Update 2026.04.30 08:09:48 2026-04-30 08:09:48 +00:00
C24Be
df933121db Update 2026.04.29 08:06:09 2026-04-29 08:06:09 +00:00
C24Be
03d79f054e Update 2026.04.28 08:12:39 2026-04-28 08:12:39 +00:00
C24Be
93d8c5ccad Update 2026.04.27 08:11:21 2026-04-27 08:11:22 +00:00
C24Be
a27ccd4435 Update 2026.04.26 13:21:44 2026-04-26 13:21:45 +00:00
C24Be
87b5180092 Update 2026.04.26 07:20:29 2026-04-26 07:20:29 +00:00
C24Be
4afaec1c01 Update 2026.04.25 07:06:45 2026-04-25 07:06:45 +00:00
C24Be
000af4968f Update 2026.04.24 07:52:35 2026-04-24 07:52:35 +00:00
C24Be
235d346178 Update 2026.04.23 07:26:26 2026-04-23 07:26:27 +00:00
C24Be
26c86f2e08 Update 2026.04.22 07:24:03 2026-04-22 07:24:03 +00:00
C24Be
161e6c7e40 Update 2026.04.21 07:25:34 2026-04-21 07:25:34 +00:00
C24Be
eadc6f8bf6 Update 2026.04.20 07:56:26 2026-04-20 07:56:26 +00:00
C24Be
6d6e83e1ca Update 2026.04.19 13:17:24 2026-04-19 13:17:25 +00:00
C24Be
96fd133743 Update 2026.04.19 07:10:31 2026-04-19 07:10:31 +00:00
C24Be
6a98207d91 Update 2026.04.18 07:00:00 2026-04-18 07:00:00 +00:00
C24Be
bc5c9306be Update 2026.04.17 07:24:05 2026-04-17 07:24:05 +00:00
C24Be
4ebef8444a Update 2026.04.16 07:22:55 2026-04-16 07:22:55 +00:00
C24Be
21601142a0 Update 2026.04.15 07:22:39 2026-04-15 07:22:39 +00:00
C24Be
ecea2c67c7 Update 2026.04.14 07:21:59 2026-04-14 07:21:59 +00:00
C24Be
e0d4c586be Update 2026.04.13 07:52:34 2026-04-13 07:52:35 +00:00
C24Be
7901abc38e Update 2026.04.12 13:16:47 2026-04-12 13:16:48 +00:00
C24Be
7fa30aa879 Update 2026.04.12 07:06:47 2026-04-12 07:06:47 +00:00
C24Be
b21b4efa53 Update 2026.04.11 06:54:25 2026-04-11 06:54:25 +00:00
C24Be
9ef9acd308 Update 2026.04.10 07:18:35 2026-04-10 07:18:36 +00:00
C24Be
f1cff29dd1 Update 2026.04.09 07:14:11 2026-04-09 07:14:11 +00:00
C24Be
4cd10c2ab7 Update 2026.04.08 07:10:31 2026-04-08 07:10:31 +00:00
C24Be
39696c6cee Update 2026.04.07 07:07:25 2026-04-07 07:07:25 +00:00
C24Be
2609a465f3 Update 2026.04.06 15:59:47 2026-04-06 15:59:47 +00:00
C24Be
8bd3f4d283 readme 2026-04-06 17:57:39 +02:00
C24Be
2be4631e02 New VK Exclude rules 2026-04-06 17:55:22 +02:00
C24Be
ccf0daf829 Update 2026.04.06 07:21:15 2026-04-06 07:21:15 +00:00
C24Be
120112daa4 Update 2026.04.05 13:13:34 2026-04-05 13:13:35 +00:00
C24Be
595f1c9fc5 Update 2026.04.05 06:57:52 2026-04-05 06:57:53 +00:00
C24Be
0a61d5dc8b Update 2026.04.04 06:53:13 2026-04-04 06:53:13 +00:00
C24Be
2e6a9ddae5 Update 2026.04.03 07:00:52 2026-04-03 07:00:53 +00:00
C24Be
c3cf465574 Update 2026.04.02 07:04:49 2026-04-02 07:04:50 +00:00
C24Be
7eb67f189f Update 2026.04.02 06:22:02 2026-04-02 06:22:02 +00:00
C24Be
820501ff16 Update 2026.04.01 (#26)
* Update 2026.04.01 01:17:26

* Update 2026.04.01 04:52:43

* Update 2026.04.01 05:10:36

* Update 2026.04.01 05:17:38

* Update 2026.04.01 06:32:46

* Update 2026.04.01 06:43:40

* Update 2026.04.01 06:50:24

* Update 2026.04.01 08:20:42

* Update 2026.04.01 08:32:06

---------

Co-authored-by: C24Be <C24Be@github.com>
2026-04-02 08:18:01 +02:00
C24Be
562de399da Update 2026.04.01 07:12:29 2026-04-01 07:12:29 +00:00
C24Be
0d015fc2ff Update 2026.03.31 07:05:57 2026-03-31 07:05:57 +00:00
C24Be
dea6a75d67 Update 2026.03.30 07:19:44 2026-03-30 07:19:44 +00:00
C24Be
7690d60023 Update 2026.03.29 13:11:56 2026-03-29 13:11:57 +00:00
C24Be
1ef2a3a21e Update 2026.03.29 06:56:52 2026-03-29 06:56:52 +00:00
C24Be
128d6c3d19 Merge branch 'main' of https://github.com/C24Be/AS_Network_List 2026-03-28 12:15:26 +01:00
C24Be
4502515ab1 Readme 2026-03-28 12:15:23 +01:00
C24Be
740834b112 Update 2026.03.28 06:52:03 2026-03-28 06:52:03 +00:00
C24Be
c79108d476 Readme 2026-03-27 19:16:50 +01:00
C24Be
754f545764 Update 2026.03.27 18:14:06 2026-03-27 18:14:07 +00:00
C24Be
048810e560 big update 2026-03-27 19:12:07 +01:00
C24Be
cfed9adddf big update 2026-03-27 19:11:52 +01:00
C24Be
0107142b90 Update 2026.03.27 06:59:36 2026-03-27 06:59:36 +00:00
C24Be
5d9070946d readme 2026-03-26 11:20:52 +01:00
C24Be
4126557898 Merge branch 'main' of https://github.com/C24Be/AS_Network_List 2026-03-26 11:20:00 +01:00
C24Be
cd643625f1 readme 2026-03-26 11:19:56 +01:00
C24Be
23ca832e7d Update 2026.03.26 09:38:27 2026-03-26 09:38:27 +00:00
C24Be
760bc7409d readme files 2026-03-26 10:37:06 +01:00
C24Be
3922acb075 readme files 2026-03-26 10:34:02 +01:00
C24Be
17d64070c6 mini readmes 2026-03-26 10:17:04 +01:00
C24Be
c34ebee88f Update 2026.03.26 08:47:07 2026-03-26 08:47:07 +00:00
C24Be
96f5442eea + routes folder to commit 2026-03-26 09:45:53 +01:00
C24Be
22bbb3dd20 some fixes 2026-03-26 09:42:48 +01:00
C24Be
943e7f2498 Merge branch 'main' of https://github.com/C24Be/AS_Network_List 2026-03-26 09:41:31 +01:00
C24Be
ecc4b2e387 some fixes 2026-03-26 09:41:27 +01:00
C24Be
72d57938c0 Update 2026.03.26 08:35:16 2026-03-26 08:35:17 +00:00
C24Be
1d0162e69f some fixes 2026-03-26 09:33:42 +01:00
C24Be
75e044c01d Update 2026.03.26 08:29:31 2026-03-26 08:29:31 +00:00
C24Be
3cb9156d28 some fixes 2026-03-26 09:28:25 +01:00
C24Be
011efe4bcb some fixes 2026-03-26 09:26:41 +01:00
C24Be
849e96a16d + routes 2026-03-26 09:18:49 +01:00
C24Be
ee407903b6 + routes 2026-03-26 09:16:31 +01:00
C24Be
07284f6831 + routes 2026-03-26 09:16:11 +01:00
C24Be
f407215a72 Update 2026.03.26 07:01:14 2026-03-26 07:01:14 +00:00
C24Be
3ea564dfe8 Update 2026.03.25 06:55:56 2026-03-25 06:55:56 +00:00
C24Be
af409b55cc Update 2026.03.24 19:03:32 2026-03-24 19:03:33 +00:00
C24Be
17a668eaec Block VK / usage 2026-03-24 20:02:11 +01:00
C24Be
95d70eb428 Update 2026.03.24 18:58:35 2026-03-24 18:58:35 +00:00
C24Be
82ad171e71 usage 2026-03-24 19:57:16 +01:00
C24Be
8e3a07acc5 Update 2026.03.24 18:23:22 2026-03-24 18:23:22 +00:00
C24Be
6381ea7863 Block VK / usage 2026-03-24 19:21:52 +01:00
C24Be
4a8a10d6d6 Update 2026.03.24 18:07:56 2026-03-24 18:07:56 +00:00
C24Be
d7e0f9c7b7 Block VK / usage 2026-03-24 19:06:26 +01:00
C24Be
b98e6d008c Block VK / readme 2026-03-24 19:03:08 +01:00
C24Be
7714b6ff07 Update 2026.03.24 18:01:29 2026-03-24 18:01:30 +00:00
C24Be
2d2dfccad3 Block VK / Add special lists 2026-03-24 18:59:49 +01:00
53 changed files with 25219 additions and 17666 deletions

View File

@@ -10,7 +10,7 @@ runs:
git config --global user.email "${{ env.REPO_OWNER }}@github.com"
if [ -n "${{ env.CUSTOM_BRANCH }}" ]; then
git checkout "${daily_branch}" 2>/dev/null || git checkout -b "${daily_branch}"
git push --set origin "${daily_branch}"
git push --set-upstream origin "${daily_branch}"
fi
git add ${{ env.PUSH_FILES }}
git diff --staged --quiet || CHANGED=true

View File

@@ -8,9 +8,9 @@ runs:
if [ -n "${{ env.CUSTOM_BRANCH }}" ]; then
git reset --hard
git clean -fdx
git checkout "${daily_branch}"
git pull origin "${daily_branch}"
git push --set origin "${daily_branch}"
git checkout "${daily_branch}" 2>/dev/null || git checkout -b "${daily_branch}"
git pull origin "${daily_branch}" || true
git push --set-upstream origin "${daily_branch}"
fi
git reset --hard
git clean -fdx

View File

@@ -26,7 +26,7 @@ jobs:
with:
fetch-depth: 0 # this is required to fetch all history for all branches and tags
token: ${{ env.GH_PAT }}
ref: ${{ github.branch }}
ref: ${{ github.ref_name }}
- uses: ./.github/actions/gitReset
env:
CUSTOM_BRANCH: true
@@ -53,7 +53,7 @@ jobs:
with:
fetch-depth: 0 # this is required to fetch all history for all branches and tags
token: ${{ env.GH_PAT }}
ref: ${{ github.branch }}
ref: ${{ github.ref_name }}
- uses: ./.github/actions/gitReset
env:
CUSTOM_BRANCH: true
@@ -80,7 +80,7 @@ jobs:
with:
fetch-depth: 0 # this is required to fetch all history for all branches and tags
token: ${{ env.GH_PAT }}
ref: ${{ github.branch }}
ref: ${{ github.ref_name }}
- uses: ./.github/actions/gitReset
env:
CUSTOM_BRANCH: true

View File

@@ -33,6 +33,7 @@ jobs:
- run: ./blacklists_updater_nginx.sh
- run: ./blacklists_updater_iptables.sh
- run: ./blacklists_updater_nftables.sh
- run: ./blacklists_updater_routes.sh
- uses: ./.github/actions/gitPush
env:
PUSH_FILES: blacklists/ blacklists_nginx/ blacklists_iptables/ blacklists_nftables/
PUSH_FILES: blacklists/ blacklists_nginx/ blacklists_iptables/ blacklists_nftables/ blacklists_route/

View File

@@ -2,14 +2,22 @@
### Blacklists are updated daily!
> [!IMPORTANT]
> A very important feature has been added: dedicated lists of VK/Max/OK Service networks that can be used to block **OUTGOING** traffic from your server (iptables/ipset and nftables formats are available).
> This can help reduce the risk of Messenger MAX being used to compromise your VPN server.
> The best security option is to avoid installing Messenger MAX at all on a phone where VPN access is configured.
This repository contains Python scripts that allow you to retrieve network lists based on either an Autonomous System (AS) name or a Network name. Also you can download and parse the whole RIPE database to get information about Networks for the further analysis.
## Important Links
**Ready-to-use blacklists in multiple formats:**
- [Text blacklists in `blacklists/`](https://github.com/C24Be/AS_Network_List/tree/main/blacklists) - Plain text format with IPv4/IPv6 separation
- [Nginx configurations in `blacklists_nginx/`](https://github.com/C24Be/AS_Network_List/tree/main/blacklists_nginx) - Ready to include in your nginx config
- [IPTables/IPSet files in `blacklists_iptables/`](https://github.com/C24Be/AS_Network_List/tree/main/blacklists_iptables) - Optimized for iptables with ipset
- [Other network and ASN lists in `auto/`](https://github.com/C24Be/AS_Network_List/tree/main/auto) - Comprehensive Russian network data
- [nftables files in `blacklists_nftables/`](https://github.com/C24Be/AS_Network_List/tree/main/blacklists_nftables) - Ready-to-load sets and rules for nftables
- [Linux route files in `blacklists_route/`](https://github.com/C24Be/AS_Network_List/tree/main/blacklists_route) - VK route blackholes to loopback (IPv4/IPv6)
## Files and features
@@ -28,6 +36,8 @@ This repository contains Python scripts that allow you to retrieve network lists
- `blacklists_updater_txt.sh`: Generates text-based blacklists with IPv4/IPv6 separation
- `blacklists_updater_nginx.sh`: Generates nginx configuration files with deny directives
- `blacklists_updater_iptables.sh`: Generates ipset configuration files for iptables/ip6tables
- `blacklists_updater_nftables.sh`: Generates nftables blacklist files (mixed/v4/v6 and VK-specific)
- `blacklists_updater_routes.sh`: Generates Linux route files to send VK networks to loopback (`127.0.0.1` / `::1`)
### Generated Blacklists
@@ -47,25 +57,34 @@ This repository contains Python scripts that allow you to retrieve network lists
**IPTables/IPSet Format** (`blacklists_iptables/` folder):
- `blacklist.ipset`: IPSet configuration for mixed IPv4/IPv6 (**daily generated**)
- `blacklist-v4.ipset`: IPSet configuration for IPv4 only (**daily generated**)
- `blacklist-v6.ipset`: IPSet configuration for IPv6 only (**daily generated**)
- `blacklist-vk-v4.ipset`: IPSet configuration for VK-only IPv4 networks (**daily generated**)
- `blacklist-vk-v6.ipset`: IPSet configuration for VK-only IPv6 networks (**daily generated**)
- `README.md`: Complete usage documentation for iptables integration
**nftables Format** (`blacklists_nftables/` folder):
* `blacklist.nft`: nftables configuration for mixed IPv4/IPv6 (**daily generated**)
* `blacklist.nft`: nftables set definitions for mixed IPv4/IPv6 (**daily generated**)
* `blacklist-v4.nft`: nftables configuration for IPv4 only (**daily generated**)
* `blacklist-v6.nft`: nftables configuration for IPv6 only (**daily generated**)
* `blacklist-vk.nft`: nftables set definitions for VK-only mixed IPv4/IPv6 (**daily generated**)
* `blacklist-vk-v4.nft`: nftables configuration for VK-only IPv4 networks (**daily generated**)
* `blacklist-vk-v6.nft`: nftables configuration for VK-only IPv6 networks (**daily generated**)
* `README.md`: Complete usage documentation for nftables integration
**Linux Routes Format** (`blacklists_route/` folder):
* `blacklist-vk-v4.routes`: IPv4 routes for VK-only networks to `127.0.0.1` via `lo` (**daily generated**)
* `blacklist-vk-v6.routes`: IPv6 routes for VK-only networks to `::1` via `lo` (**daily generated**)
### Reference Lists
**Contributors are welcome!**
- `lists/ru-gov-netnames.txt`: A list of network names associated with the Russian government.
- `lists/ru-gov-asns.txt`: A list of AS numbers associated with the Russian government.
- ASN candidates used for blacklists are derived automatically from `auto/all-ru-asn.txt`.
### Auto-Generated Data
@@ -93,22 +112,55 @@ wget https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_ngi
**For IPTables/IPSet:**
```bash
# Download and load into ipset
wget https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_iptables/blacklist.ipset
ipset restore < blacklist.ipset
iptables -I INPUT -m set --match-set blacklist-v4 src -j DROP
ip6tables -I INPUT -m set --match-set blacklist-v6 src -j DROP
# Download and load IPv4/IPv6 sets into ipset
wget https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_iptables/blacklist-v4.ipset
wget https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_iptables/blacklist-v6.ipset
ipset restore < blacklist-v4.ipset
ipset restore < blacklist-v6.ipset
iptables -I INPUT -m set --match-set blacklist-v4 src -m conntrack --ctstate NEW -j DROP
ip6tables -I INPUT -m set --match-set blacklist-v6 src -m conntrack --ctstate NEW -j DROP
```
**For nftables:**
````bash
# Download and load into nftables
# Download and load nftables sets
wget https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_nftables/blacklist.nft
wget https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_nftables/blacklist-v4.nft
wget https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_nftables/blacklist-v6.nft
sudo nft -f blacklist.nft
sudo nft -f blacklist-v4.nft
sudo nft -f blacklist-v6.nft
# Protect VM from incoming blacklist sources
sudo nft add chain inet filter input '{ type filter hook input priority 0; policy accept; }'
sudo nft add rule inet filter input ip saddr @blacklist_v4 counter reject
sudo nft add rule inet filter input ip6 saddr @blacklist_v6 counter reject
# VK-only outbound blocking for VPN clients via NAT/FORWARD
wget https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_nftables/blacklist-vk.nft
wget https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_nftables/blacklist-vk-v4.nft
wget https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_nftables/blacklist-vk-v6.nft
sudo nft -f blacklist-vk.nft
sudo nft -f blacklist-vk-v4.nft
sudo nft -f blacklist-vk-v6.nft
sudo nft add chain inet filter forward '{ type filter hook forward priority 0; policy accept; }'
sudo nft add rule inet filter forward iifname "<VPN_IFACE>" ip daddr @blacklist_vk_v4 counter reject
sudo nft add rule inet filter forward iifname "<VPN_IFACE>" ip6 daddr @blacklist_vk_v6 counter reject
# View the loaded rules
sudo nft list ruleset
````
**For Linux Routes (VK loopback blackhole):**
```bash
# Download and apply VK route files
wget https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_route/blacklist-vk-v4.routes
wget https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_route/blacklist-vk-v6.routes
sudo sh blacklist-vk-v4.routes
sudo sh blacklist-vk-v6.routes
```
**For Custom Applications:**
```bash
@@ -158,16 +210,16 @@ See the README files in each folder for detailed usage instructions.
./network_list_from_as.py AS61280
```
2. Run the script with a URL to a file in a GitHub repository as an argument:
2. Run the script with a URL to a file with one ASN per line:
```bash
./network_list_from_as.py https://github.com/C24Be/AS_Network_List/blob/main/lists/ru-gov-asns.txt
./network_list_from_as.py https://example.com/asns.txt
```
Or better use the raw file link:
```bash
./network_list_from_as.py https://raw.githubusercontent.com/C24Be/AS_Network_List/main/lists/ru-gov-asns.txt
./network_list_from_as.py https://example.com/asns-raw.txt
```
3. To display a help message, use the `-h` or `--help` switch:
@@ -232,16 +284,6 @@ This repository uses GitHub Actions to automatically update blacklists:
All blacklists are automatically regenerated and committed to ensure you always have the latest data.
## Blacklist Format Comparison
| Format | Best For | Performance | Ease of Use | File Size |
|--------|----------|-------------|-------------|-----------|
| **Text** | Custom scripts, analysis | N/A | ⭐⭐⭐⭐⭐ | Small |
| **Nginx** | Web servers, reverse proxies | Good | ⭐⭐⭐⭐ | Medium |
| **IPSet** | Firewalls, large-scale blocking | Excellent | ⭐⭐⭐ | Medium |
**Recommendation**: Use IPSet for firewall-level blocking (best performance), Nginx for web application layer, and text format for custom integrations.
## Additional information
- [RIPE DB Inetnum](https://ftp.ripe.net/ripe/dbase/split/ripe.db.inetnum.gz)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -13,6 +13,7 @@
2001:678:190::/48 RU-FORESTNET-20162704 (Forest Net LTD)
2001:678:1b0::/48 RU-IMOLNIYA-20160519 (Molniya LLC)
2001:678:1bc::/48 RU-CSTNET-20160524 (Ivanteevskie telecommunicacii Ltd)
2001:678:1dc::/48 RU-IKNOWIT (Kniazev Ilia Igorevich)
2001:678:220::/48 KLIMENKO-AA-NET (Klimenko Anna Aleksandrovna)
2001:678:278::/48 RU-ROSNIIROS-20161011 ("TBANK" JSC)
2001:678:280::/48 RU-ROSNIIROS-20161014 (LLC Inventos)
@@ -34,7 +35,7 @@
2001:678:57c::/48 CYPHER-IPV6-NET (Ltd. "Cypher")
2001:678:5c8::/48 EGY4v6-NET (Ellad G. Yatsko)
2001:678:600::/48 ORG-ATL97-RIPE (Atlantic LLC.)
2001:678:614::/48 CZ-VISSADO-20180306 (UnitTelecom Ltd)
2001:678:614::/48 CZ-VISSADO-20180306 (Unittel Ltd)
2001:678:624::/48 RU-LLC-LENVENDO-M-20250918 (Andrei Listopad)
2001:678:62c::/48 IRONNET-IPV6-NET (IRONNET Ltd.)
2001:678:630::/48 MEGAPOLIS-IPV6-NET (JSC TC "Megapolis")
@@ -53,9 +54,9 @@
2001:678:85c::/48 GIVC (Main Center of Information and Computing Ministry of culture of Russian Federation)
2001:678:8f0::/48 RU-PDV (Podolskii Dmitrii Vladimirovich)
2001:678:8fc::/48 RU-ROSNIIROS-20190111 (JSC Goznak)
2001:678:978::/48 PrivateNet (Yanislav Basiuk)
2001:678:978::/48 NyaTeam (Yanislav Basiuk)
2001:678:99c::/48 CZ-VISSADO-20190515 (Mediasvyaz Ltd.)
2001:678:9c4::/48 BCC (JSC Business-center Capital)
2001:678:9c4::/48 StadionSpartak-LAN (SZ Stadion Spartak LLC)
2001:678:9d0::/48 RU-RETNNET-20190621 (LLC Zenit-Arena)
2001:678:9e8::/48 FASTMILE (LLC FASTMILE)
2001:678:9f4::/48 IT-ZAVOD-2001-678-9f4 (IT-Zavod LLC)
@@ -63,6 +64,7 @@
2001:678:a70::/48 CZ-VISSADO-20190425 (VostokMediaSvyaz Ltd.)
2001:678:ab0::/48 PlanetaTelekom (Kurochkin Evgeniy Anatolievich)
2001:678:ac0::/48 CH-SECUREBIT-20260106 (Artur Zagidullin)
2001:678:b34::/48 RU-OPTIBIT-20260428 (Severo-Eniseysk-Telecom LLC)
2001:678:b3c::/48 RU-DSP-20191017 (INVITRO-Information technology LLC)
2001:678:b40::/48 ORG-ITOA1-RIPE (Tsyapa Oleg Anatolyevich)
2001:678:b48::/48 LEMANAPRO-NET (Le Monlid LLC)
@@ -92,8 +94,8 @@
2001:678:f4c::/48 RU-EUROFIN-MOSNARBANK-NET (JSC Commercial Bank Evrofinance Mosnarbank)
2001:678:f6c::/48 RU-SMART-20210614 (RusChemAlliance LLC)
2001:678:1024::/48 SIRENATRAVEL-NETv6 (Sirena Travel AO)
2001:678:1034::/48 RU-ELKOMA (Elkoma LLC)
2001:678:1058::/48 CZ-VISSADO-20250305 (GP Internet Ltd.)
2001:678:12b0::/48 RU-EUTRU-20260626 (GK YADRO LLC)
2001:67c:20::/48 ABSOLYT-NET (Limited liability company Absolut)
2001:67c:84::/48 MANNET-6NET (MAN net Ltd.)
2001:67c:e8::/48 RU-NEMEROV (Nemerov Evgeniy Vladimirovish PE)
@@ -110,10 +112,10 @@
2001:67c:418::/48 VSU-VORONEZH (Federal State Budgetary Educational Institution of Higher Education "Voronezh State University")
2001:67c:430::/48 GYMN-PERSPEKTIVA-NET (Municipal Budgetary Educational Institution "Gymnasium Perspektiva" of the city district of Samara)
2001:67c:4b4::/48 Prosveshcheniye-NET (Joint-Stock Company "Prosveshcheniye publishers")
2001:67c:4e0::/48 RU-H-R (H-R JSC)
2001:67c:4ec::/48 IT-NET-IPV6 (IT-Net ltd.)
2001:67c:528::/48 MARIINSKY-V6 (Federal Government Cultural Organization "State Academic Mariinsky Theatre")
2001:67c:5ac::/48 ORG-LS521-RIPE (LLC STAVCOM)
2001:67c:5c4::/48 MBITCITY-NET (Mbit City Ltd.)
2001:67c:614::/48 RU-INDATA-20160728 (FOUNDATION FOR DEVELOPMENT OF NETWORKING TECHNOLOGIES "INDATA")
2001:67c:62c::/48 PRK-V6NET (JSC Trading house Perekriostok)
2001:67c:650::/48 RU-HYPERNET-20260210 (JSC ALIAS)
@@ -126,7 +128,7 @@
2001:67c:720::/48 ZENLINEv6 (Pro-Revizor LLC.)
2001:67c:73c::/48 RU-DINET-20221024 (LIMITED LIABILITY COMPANY CLOUD SOLUTIONS)
2001:67c:76c::/48 CZ-VISSADO-20200813 (TOKS Ltd)
2001:67c:780::/48 ORG-OR70-RIPE (Osinovaya Roshcha Ltd)
2001:67c:780::/48 ORG-OR70-RIPE (Osinovaya Roshcha JSC)
2001:67c:784::/48 RU-STARLINE-NET (RPA STARLINE LLC)
2001:67c:79c::/48 AVANTEL (JSC Avantel)
2001:67c:7b4::/48 ORG-IT77-RIPE (INTERNET TECHNOLOGIES LLC)
@@ -174,7 +176,7 @@
2001:67c:1264::/48 PUMORI-NET6 (Pumori-Telecom Ltd)
2001:67c:12a8::/48 RU-DINET-20220816 (OOO IPPORT)
2001:67c:12d4::/48 RU-6rw (Mikhail Alekseevich Antonov)
2001:67c:1304::/48 RU-VOROTA2000 (LLC "Avtomaticheskie vorota - 2000")
2001:67c:1304::/48 RU-VOROTA2000 (LLC "AUTOMATIC GATE - 2000")
2001:67c:131c::/48 ESH-V6 (Electronic Shield Ltd.)
2001:67c:1344::/48 SKRIN-1344 (Skrin Ltd.)
2001:67c:1358::/48 TUSUR1-NET (Federal State Budget Educational Institution of Higher Professional Education "Tomsk State University of Control Systems and Radio Electronics")
@@ -193,7 +195,7 @@
2001:67c:1584::/48 RU-ERTH-CLOUD-20230403 (JSC "ER-Telecom Holding")
2001:67c:15d0::/48 RU-SUNTEL (OOO Suntel)
2001:67c:15d4::/48 BASE-NET (Base Ltd.)
2001:67c:15f8::/48 STAVSET-6NET (Kvartal Plus Ltd)
2001:67c:15f8::/48 STAVSET-6NET (OOO SET)
2001:67c:1688::/48 Internet-Hosting (Internet Hosting LLC)
2001:67c:16f0::/48 IPV6-KALUGA-ORG (IT Ltd.)
2001:67c:1708::/48 NET-M1-1-V6 (JSC Faberlic)
@@ -213,7 +215,7 @@
2001:67c:1b00::/48 XYLONET-IPV6-NET (PE Korobeynikov Sergey Nikolaevich)
2001:67c:1b04::/48 NLMK-NET-IPV6 (PJSC NLMK)
2001:67c:1b10::/48 NTV-net (JSC Televison Company NTV)
2001:67c:1b28::/48 RU-OMKC-20150828 (Bst Ltd.)
2001:67c:1b28::/48 ORG-BL646-RIPE (BS-Telecom llc)
2001:67c:1b7c::/48 CITv6 (OOO "Center informational technologies")
2001:67c:1b80::/48 HKSIBIRv6 (Association NPHK Sibir)
2001:67c:1bc0::/48 FAITID-NETWORK (Foundation for Assistance for Internet Technologies and Infrastructure Development)
@@ -243,6 +245,7 @@
2001:67c:244c::/48 SAMARA-RTCENTER-NETWORK (RT Center LLC)
2001:67c:24c8::/48 CONS-TSK-NET (Consultant Ltd.)
2001:67c:24d0::/48 EKATERINBURG-NET (MBU Elektronnyj Ekaterinburg)
2001:67c:2568::/48 SUROVA-NET (Radio Kozerog LLC)
2001:67c:2578::/48 TELECOMNET (Zencom LTD)
2001:67c:25c8::/48 RU-MONETA-20150729 (NCO "MONETA" (LLC))
2001:67c:25d0::/48 GPM-DIGITAL-TECH (Limited Liability Company GPM Digital Technologies)
@@ -286,7 +289,7 @@
2001:67c:2e9c::/48 SANTEKHKOMPLEKT (LTD Santekhkomplekt)
2001:67c:2ec8::/48 RU-RTK-20151021 (RusAccreditation. Federal Service for accreditation)
2001:67c:2ee0::/48 VIKS-NET (Vikscom Ltd.)
2001:67c:2f90::/48 SOFTBUILD (SOFTBUILD LLC)
2001:67c:2f90::/48 EU-ZZ-2001-0600 (RIPE Network Coordination Center)
2001:67c:2fd4::/48 ORG-IO52-RIPE (IPSvyaz OOO)
2001:6d0::/32 RU-MSK-IX-20010219 (Join-stock company "Internet Exchange"MSK-IX")
2001:7f8:5::/48 RU-KTVB-NETWORK-20160125 (Truenetwork LLC)
@@ -303,7 +306,7 @@
2001:7f8:9a::/48 ORG-PK113-RIPE (Panin Kirill Evgenyevich)
2001:7f8:a3::/48 PG19-IX (Consumer Internet Cooperative PG-19)
2001:7f8:a7::/48 BAIKAL-IX-NET-v6 (LLC Zero Kilometer)
2001:7f8:ac::/48 RU-OPTIBIT-20160922 (Optibit LLC)
2001:7f8:ac::/48 RU-OPTIBIT-20160922 (Optizon Ltd)
2001:7f8:c8::/48 RU-DREAMNET-20180514 (Weacom Ltd)
2001:7f8:c9::/48 RU-CHTE-20180525 (JOINT-STOCK COMPANY "MOSCOW ENERGY COMMUNICATION NODE")
2001:7f8:e6::/48 RU-PITER-IX-SPB (Piter-IX Co. Ltd.)
@@ -311,7 +314,9 @@
2001:7f8:ee::/48 RU-LINXDATACENTER-20200218 (Svyaz VSD LLC)
2001:7f8:f1::/48 RU-RCN-20200415 (RECONN LLC)
2001:7f8:100::/48 RU-KTVB-NETWORK-20251217 (Lightcom LLC)
2001:7f8:12c::/48 RU-PITER-IX-20260518 (Piter-IX Co. Ltd.)
2001:7f8:13d::/48 RU-MEGAFON-20221111 (PJSC MegaFon)
2001:7f8:179::/48 RU-PITER-IX-20260518 (Piter-IX Co. Ltd.)
2001:a58::/32 RU-ICT-20090408 (Information and Communication Technologies LLC)
2001:b08::/32 RU-NIKS-20030214 (SCIENTIFIC RESEARCH INSTITUTE FOR SYSTEM ANALYSIS OF THE NATIONAL RESEARCH CENTRE "KURCHATOV INSTITUTE")
2001:1b00::/32 RU-SOVINTEL-20040413 (PJSC "Vimpelcom")
@@ -384,7 +389,7 @@
2a00:4420::/32 RU-IACP-20130219 (Institute for automation and control processes of Far Eastern Branch of RAS)
2a00:4480::/32 RU-CONCEPTCOMM-20110426 ('Concept comm' Ltd)
2a00:44a0::/32 RU-COMPLETEL-20130220 (Modern Solutions LTD)
2a00:4500::/32 RU-SETEL-20110210 (LLC SETEL)
2a00:4500::/32 RU-JOINT-STOCK1-20110210 (JOINT-STOCK COMPANY "TELEPORT TELECOM")
2a00:4580::/30 RU-MARKITT-20110426 (OOO "NI")
2a00:4600::/32 RU-RULLC-20150618 (RU LLC)
2a00:46e0::/32 RU-IMOB-20130222 (Invest Mobile LLC)
@@ -403,7 +408,7 @@
2a00:58e0::/32 RU-KVANT-Z-20130305 (Limited Liability Company "Kvant")
2a00:5a60::/32 RU-MNETWORKS-20130326 (Serveroid, LLC)
2a00:5cc0::/29 RU-RAID-20111213 (JSC "ER-Telecom Holding")
2a00:5d00::/32 RU-SETEL-20110211 (LLC SETEL)
2a00:5d00::/32 RU-JOINT-STOCK1-20110211 (JOINT-STOCK COMPANY "TELEPORT TELECOM")
2a00:60a0::/32 RU-CHAIKASPB-20130325 (Chaika Telecom Petersburg Limited Company)
2a00:6240::/32 RU-SISTELECOM-20111221 (SIS Laboratory, LLC)
2a00:62c0::/32 RU-RTK-20111221 (PJSC Rostelecom)
@@ -475,7 +480,7 @@
2a00:b6a0::/32 RU-CENTRINFORMNSK-20150526 (JSC "Centrinform")
2a00:b700::/29 RU-BXTGROUP-20110217 (LLC Baxet)
2a00:b880::/32 RU-RAMNET-20110523 (Ramtel Ltd.)
2a00:b940::/32 RU-IGRA-SERVICE-20150520 (Igra-Service LLC)
2a00:b940::/32 RU-IGRA-SERVICE-20150520 (IGRA-SERVICE LLC)
2a00:bcc0::/32 RU-ELIT-TV-20160601 (Viter Evgeniy Vasilevich)
2a00:bd40::/32 RU-INEWS-20120314 (INEWS LLC)
2a00:bdc0::/29 RU-VKONTAKTE-20120314 (LLC VK)
@@ -498,7 +503,6 @@
2a00:d8c0::/32 RU-IPTK-20120411 (Ltd IPTelecom)
2a00:dac0::/32 RU-ITPARK-20120413 (Autonomous public institution High technology park IT-park)
2a00:db20::/32 RU-CSTNET-20130904 ("C.S.T". Ltd.)
2a00:dc40::/32 RU-SETEL-20120416 (LLC SETEL)
2a00:de80::/32 RU-SMARTKOM-20110530 (Joint Stock Company Smartkom)
2a00:dea0::/32 RU-CONCEPTCOMM-20130912 ('Concept comm' Ltd)
2a00:df60::/32 RU-DT-NET-20130912 (Dubrovka Telecom LLC)
@@ -523,7 +527,6 @@
2a00:f920::/32 RU-AVANTEL-20131014 (JSC Avantel)
2a00:f940::/32 RU-REGRU-20120511 ("Domain names registrar REG.RU", Ltd)
2a00:fa20::/32 RU-KDV-20131015 (LLC KDV Grupp)
2a00:fee0::/32 RU-SETEL-20131021 (LLC SETEL)
2a01:d8::/32 RU-CENTER-20060508 (JSC "RU-CENTER")
2a01:210::/32 RU-TSUNET-20100729 (Tomsk State University)
2a01:220::/32 RU-INFOTEL-20061027 (JSC INFOTEL)
@@ -543,7 +546,6 @@
2a01:4380::/32 RU-TO-CITTO-20110606 (GBU TO Information Technology Center)
2a01:4420::/32 RU-RENET-20131025 (RENET COM Ltd.)
2a01:4440::/32 RU-YCC-20120524 (Ekaterinburg-2000 LLC)
2a01:4460::/32 RU-MTVS-20131025 (LLC Mobile Television Systems)
2a01:4720::/32 RU-OMNICHANNEL-20131029 (Omnichannel technologies LLC)
2a01:4880::/32 RU-TPU-20110607 (National Research Tomsk Polytechnic University)
2a01:48a0::/32 RU-AU-20131030 (Auction LLC)
@@ -628,6 +630,7 @@
2a01:be40::/32 RU-SOTCOM-20120911 (JSC Telephone Company "Sotcom")
2a01:e180::/29 RU-FLYVPS-20240821 (Kokunov Evgeny Andreevich)
2a01:e1c0::/29 RU-TSYSTEMS-20240925 (T-systems Limited Liability Company)
2a01:e5c0::/29 RU-AEZAGROUP-20241002 (AEZA GROUP LLC)
2a01:eac0::/29 RU-DAGNET-20241011 (DagNet LLC)
2a01:f880::/29 RU-MOSCOMNET-20240830 (Moscomnet LLC)
2a01:fc40::/32 RU-PRIDE-NET-20241024 (Pride LLC)
@@ -707,7 +710,6 @@
2a02:2b18::/32 RU-LANCOM-20101125 (Lancom Ltd.)
2a02:2b28::/32 RU-OSKOLNET-20101125 (Closed Joint Stock Company Oskolnet)
2a02:4120::/32 RU-MIX-CHITA-20140414 (Mix LLC)
2a02:41a0::/29 RU-TEXNOKOM-20140415 (LLC "Telekonika")
2a02:42e0::/32 RU-ISKRATELECOM-20140416 (Iskratelecom JSC)
2a02:43c0::/32 RU-TECHNOSOFT-20160115 (Technosoft LLC)
2a02:45a0::/32 RU-IESV-20140422 (EN+ TELECOM LLC)
@@ -776,12 +778,13 @@
2a02:eb00::/29 RU-QWARTA-20121129 (QWARTA LLC)
2a02:eb80::/29 RU-SETII-20121129 (Nets and Services JCS)
2a02:ec40::/29 RU-TRANSITTELECOM-20121130 (Transit Telecom LLC)
2a02:ef00::/29 RU-1C-20121204 (1C LLC)
2a02:ef00::/29 RU-1C-20121204 (JSC "1C GROUP")
2a02:efc0::/29 RU-ELITELTELECOMGROUP-20121204 (Elitel Telecom Group Ltd)
2a02:f500::/29 RU-SOVINTEL-20121214 (PJSC "Vimpelcom")
2a02:f560::/30 RU-ORTEL-20121221 (JSC Orient-Telecom)
2a02:f6c0::/29 RU-SERGEY2-20121219 (Sergey Cherentayev)
2a02:f800::/29 RU-TRANSTELECOM-20121220 (Joint Stock Company TransTeleCom)
2a02:fd40::/29 RU-IZILLC-20260608 (Limited Liability Company "IZI")
2a03:200::/32 RU-AMKOZITSKIY-20110203 (Kozitskiy A.M. PI)
2a03:220::/32 RU-START2-20140630 (Start2 LLC)
2a03:500::/32 RU-VARYAGI1-20110324 (Varyagi LLC)
@@ -863,7 +866,7 @@
2a03:6a40::/32 RU-DANCER-20121123 (Dancer LLC)
2a03:6ea0::/32 RU-TVCENTER-20151007 (TV CENTER JSC)
2a03:6f00::/29 RU-TIMEWEB2-20110406 (JSC "TIMEWEB")
2a03:70c0::/29 RU-QRATOR-20121127 (HLL LLC)
2a03:70c0::/29 RU-HLL-20121127 (HLL LLC)
2a03:7200::/29 RU-MTU-20110204 (MTS PJSC)
2a03:7320::/32 RU-QUSO-20150121 (QuickSoft LLC)
2a03:7540::/32 RU-108TELECOM-20121128 (108 TELECOM LLC)
@@ -924,6 +927,7 @@
2a03:cf80::/29 RU-RAID-20111101 (JSC "ER-Telecom Holding")
2a03:d000::/29 RU-MEGAFON-20101207 (PJSC MegaFon)
2a03:d0c0::/32 RU-REGIONSET-20130118 (Regionset Ltd)
2a03:d580::/29 RU-RATMIR-20260506 (JSC Ratmir-ADS)
2a03:d700::/32 RU-MGTS-20110418 (PJSC Moscow city telephone network)
2a03:db00::/29 RU-MTU-20110418 (MTS PJSC)
2a03:dcc0::/32 RU-PETROSVYAZ-20130122 (OOO "Petrosvyaz")
@@ -959,7 +963,7 @@
2a04:2bc0::/29 RU-RUCOMTECH-20160726 (RUCOMTECH LLC)
2a04:2c80::/29 RU-IUCH-20130419 (Iuliia Cherepanina)
2a04:2cc0::/29 RU-KOMTEL-20130419 (INTERCOMTEL Limited Company)
2a04:2fc0::/29 RU-OPTIBIT-20130425 (Optibit LLC)
2a04:2fc0::/29 RU-OPTIBIT-20130425 (Optizon Ltd)
2a04:32c0::/29 RU-PROMSERVICE-20130507 (Promservice Ltd.)
2a04:34c0::/29 RU-MAL-NET-20130514 (Malnet LTD.)
2a04:3600::/29 RU-MIXTELECOM-20130515 (Advanced Solutions LLC)
@@ -970,11 +974,10 @@
2a04:4980::/29 RU-SIBINTEK-20130708 (Siberian Internet Company LLC)
2a04:4a00::/29 RU-BSTELEHOUSE-20130708 (BUSINESS SYSTEM TELEHOUSE, OOO)
2a04:4d00::/29 RU-FORABANK-20130715 (FORA-BANK Joint-Stock Commercial Bank)
2a04:4e80::/29 RU-JSCMONOPOLY-20210419 (JSC MONOPOLY)
2a04:5180::/29 RU-STROYTELECOM-20150413 (Stroy-Telecom LTD)
2a04:5500::/29 RU-MEGAGROUP-20130731 (Megagroup.ru LLC)
2a04:6000::/29 RU-SV-EN-20130830 (Svyaz-Energo Ltd.)
2a04:61c0::/29 RU-LINKY-20150331 (Artecom Ltd)
2a04:61c0::/29 RU-NAYDENKO-20150331 (Aleksandr Naydenko)
2a04:6a40::/29 RU-TETATELECOM-20130927 ("TETA TELECOM" LLC)
2a04:6e40::/29 RU-IPMAGNAT-20240118 (Mikhail Tonkonog)
2a04:7240::/29 RU-MGTS-20131014 (PJSC Moscow city telephone network)
@@ -983,7 +986,11 @@
2a04:7c80::/29 RU-INFOTELECOMSP-20131030 (Infotelecom SP Ltd.)
2a04:7e00::/29 RU-TELEDISCOUNT-20220125 (Telediscount AO)
2a04:8240::/29 RU-RTS-20131111 (Association of financial market participants "Nonprofit Partnership for the Development of Financial Market RTS")
2a04:8580::/29 RU-DOCKER-20131115 (Docker LTD)
2a04:8580::/32 RU-CLUSTER-20131115 (Cluster LLC)
2a04:8581::/32 RU-DOCKER-20131115 (Docker LTD)
2a04:8582::/32 RU-CLUSTER-20131115 (Cluster LLC)
2a04:8583::/32 RU-DOCKER-20131115 (Docker LTD)
2a04:8584::/30 RU-DOCKER-20131115 (Docker LTD)
2a04:8a00::/29 RU-SKALA-20131122 (Company Skala LLC)
2a04:8a40::/29 RU-DFW-20131122 (DFW LLC)
2a04:8c00::/29 RU-INTSG-20131128 (LLC INTER-SVYAZ-GROUP)
@@ -996,7 +1003,6 @@
2a04:a640::/29 RU-TERALINETELECOM-20140124 (Teraline Telecom Ltd)
2a04:ac00::/29 RU-CMFT-20140205 (Comfortel Ltd.)
2a04:adc0::/29 RU-DATA-LINE-KHB-20140213 (Data-Line LLC)
2a04:b100::/29 RU-SVSTROI-20140214 (Svyazstroi LLC)
2a04:b940::/29 RU-SEMANTIC-20140304 (Semantic LLC)
2a04:bac0::/29 RU-BEGET-20140306 (Beget LLC)
2a04:bb80::/29 RU-ITK-20140307 (Innovative Telecommunications LLC)
@@ -1034,7 +1040,6 @@
2a05:29c0::/29 RU-KOMPEATELECOM-20140917 (Kompeatelecom Ltd.)
2a05:2b80::/29 RU-DT-NET-20180614 (Dubrovka Telecom LLC)
2a05:2ec0::/29 RU-UNITLINE-20140923 (OOO "MediaSeti")
2a05:3180::/29 RU-TRIVON-20140926 (OOO Trivon Networks)
2a05:3480::/29 RU-MAINACC-20190109 (Ivan Bulavkin)
2a05:3580::/29 RU-SKNT-20141001 (SkyNet Ltd.)
2a05:3740::/29 RU-ETYPE-20141002 (OOO Kompaniya Etype)
@@ -1047,7 +1052,6 @@
2a05:4f00::/29 RU-COMFORT-20150813 (Comfort XXI Century Ltd.)
2a05:4fc0::/29 RU-MST-LTD-20141029 (Multifunctional Telecommunications Systems LTD)
2a05:5080::/32 RU-QUSO-20141030 (QuickSoft LLC)
2a05:54c0::/29 RU-TOUROPERATOR-INTOURIST-20141104 (Touroperator INTOURIST LLC)
2a05:5840::/29 RU-SERGIENKO-20141107 (Nikita Sergienko)
2a05:5940::/29 RU-INTERNETHOSTING-20181018 (Internet Hosting LLC)
2a05:5c40::/29 RU-ZOLOTAYALINIA-20141112 (Zolotaya Linia JSC.)
@@ -1065,6 +1069,7 @@
2a05:7400::/29 RU-MORNING-20141201 (Orion Telecom LLC)
2a05:7e80::/29 RU-QUARTZ-TELECOM-20141209 (QUARTZ TELECOM LLC)
2a05:81c0::/29 RU-JINR-20141210 (Joint Institute for Nuclear Research)
2a05:8600::/29 RU-GOODMAN-20260513 (GOODMAN LTD)
2a05:8980::/29 RU-RAID-20141218 (JSC "ER-Telecom Holding")
2a05:8ac0::/29 RU-TRANSMEDIA-20141222 (LLC Trans Media)
2a05:8e80::/29 RU-ALEXGROUP3-20240122 (Alex Group LLC)
@@ -1196,14 +1201,14 @@
2a07:a600::/29 RU-SBRF-20160624 (Sberbank of Russia PJSC)
2a07:a6c0::/29 RU-NIKS-20160627 (The Academy of the Ministry of Education of the Russian Federation)
2a07:a940::/29 RU-7GIS-20160630 (SPA "GALILEOSKY" LLC)
2a07:ac80::/29 RU-IPSERVER-20160705 (IP SERVER LLC)
2a07:ac80::/29 RU-IPSERVER-20160705 (IP Server LLC)
2a07:b080::/29 RU-SCX-20160708 (JSC Atlas-2)
2a07:b1c0::/29 RU-NPO-UNIMACH-20200625 ("NPO Unimach" LLC)
2a07:bf80::/32 RU-UNISENDER-20250708 (Unisender Smart LLC)
2a07:c080::/29 RU-DFW-20160726 (DFW LLC)
2a07:c240::/29 RU-CRYPTOCENTRE-20160728 (CryptoCentre LLC)
2a07:c940::/29 RU-POLYBYTE-20160803 (RCNTEC RPCM LLC)
2a07:d980::/29 RU-IGRA-SERVICE-20180528 (Igra-Service LLC)
2a07:d980::/29 RU-IGRA-SERVICE-20180528 (IGRA-SERVICE LLC)
2a07:da80::/29 RU-IPDOLIN-20180528 (Yury Dolin)
2a07:dc40::/32 RU-ORN-20180703 ("Resurs-Svyaz" Ltd)
2a07:dc80::/29 RU-IPDOLIN-20180528 (Yury Dolin)
@@ -1217,12 +1222,14 @@
2a07:f540::/29 RU-ISS-20180710 (Infosecurity Ltd)
2a07:f5c0::/29 RU-PITER-IX-20180710 (Piter-IX Co. Ltd.)
2a07:f8c0::/29 RU-START2-20180711 (Start2 LLC)
2a07:fb80::/29 RU-ITSYSTEMS-20260522 (OOO "IT-Systems")
2a07:fc80::/29 RU-HAPOTELE-20220128 (LLC HAPOTELE)
2a07:fcc0::/29 RU-H3LLO-CLOUD-20250606 (Helou LLC)
2a09:180::/32 RU-NETWAY-20181126 (Netway ltd)
2a09:280::/29 RU-FIRSTDC-20181126 (Perviy TSOD LLC)
2a09:400::/29 RU-VPSVILLE1-20181101 (LLC Vpsville)
2a09:680::/29 RU-IMASTER-20181127 (Gorodskaya elektronnaya svyaz Ltd)
2a09:bc0::/29 RU-TELECOM-EVO-20260610 (Telekom.ru LLC)
2a09:c80::/29 RU-OPTIMASET-20181127 (OOO Optimaset)
2a09:d80::/29 RU-VPSVILLE1-20181127 (LLC Vpsville)
2a09:1180::/29 RU-IPADDRESS-20251204 (i7 LLC)
@@ -1244,11 +1251,12 @@
2a09:4540::/29 RU-KOMPEATELECOM-20190205 (Kompeatelecom Ltd.)
2a09:4680::/29 RU-ONLINE-STORE-SIMA-LAND-20181205 ("Online Store" SIMA-LAND" LLC")
2a09:4980::/32 RU-MOSOBLCOM-20181205 (MOSOBLCOM LLC)
2a09:4d40::/29 RU-IPSERVER-20190206 (IP SERVER LLC)
2a09:4d40::/29 RU-IPSERVER-20190206 (IP Server LLC)
2a09:4e00::/29 RU-VPSVILLE1-20210518 (LLC Vpsville)
2a09:4e80::/29 RU-MAXIMAN-20181207 (Maxima, LLC)
2a09:5380::/32 RU-KVARTPLATA-20181207 (Kvartplata Online LLC.)
2a09:5540::/29 RU-DONTEL-20190208 (OOO Dontel)
2a09:55c0::/29 RU-M-CLOUD-20260605 (M-Cloud LLC)
2a09:5a80::/32 RU-SOTLINE-20181210 (SOT LINE Limited Company)
2a09:5ac0::/29 RU-CITRT-20190211 (Information Technology Center of the Republic of Tatarstan GUP)
2a09:6280::/29 RU-IPMAGNAT-20181211 (Mikhail Tonkonog)
@@ -1256,7 +1264,7 @@
2a09:6800::/29 RU-TELECOM-20181101 (Telenet LLC)
2a09:6880::/29 RU-T2TELECOM-20210302 (M2 CONNECT LLC)
2a09:6900::/29 RU-TELECOM-20181116 (Telenet LLC)
2a09:6c00::/29 RU-GIGAVIDER-20181105 (Voltaks-Aliance LLC)
2a09:6c00::/29 RU-GIGAVIDER-20181105 (GIGAVIDER LLC)
2a09:6f00::/29 RU-VPSVILLE1-20210518 (LLC Vpsville)
2a09:7280::/32 RU-NSC-20181213 (JSC National satellite company)
2a09:79c0::/29 RU-ACN-20190219 (ACN LLC)
@@ -1290,7 +1298,7 @@
2a09:bd80::/29 RU-VPSVILLE1-20181219 (LLC Vpsville)
2a09:c140::/32 RU-MCHOST1-20190313 (McHost LLC)
2a09:c380::/32 RU-LLCSVYAZ-20230817 (LLC Svyaz Invest)
2a09:c480::/29 RU-UTEX-TELECOM-20181219 (Utex-telecom LLC)
2a09:c480::/29 RU-SHCHUROV-20181219 (Shchurov Mikhail Yurievich)
2a09:c700::/29 RU-AU-20181123 (Auction LLC)
2a09:c7c0::/29 RU-SKYNETWORK1-20190314 (Skynetwork LLC)
2a09:cc00::/29 RU-KLEYNKOM4-20181106 (Kleynkom LLC)
@@ -1507,7 +1515,7 @@
2a0c:78c0::/29 RU-RUCOMTECH-20180423 (RUCOMTECH LLC)
2a0c:7b00::/29 RU-FIRSTDC-20171114 (Perviy TSOD LLC)
2a0c:7bc0::/29 RU-TVIPMEDIA-20180424 (TVIP Media LLC)
2a0c:7c00::/29 RU-SALENAMES-20200630 (SALENAMES LLC)
2a0c:7c00::/29 RU-DOMAINSRU-20200630 (DOMENY.RU LLC)
2a0c:7d00::/29 RU-FIRSTDC-20171114 (Perviy TSOD LLC)
2a0c:8700::/29 RU-PIN-20171114 (Petersburg Internet Network ltd.)
2a0c:88c0::/29 RU-BASEALT-20180426 (LLC Basalt Svobodnoe Programnoe Obespechenie)
@@ -1526,10 +1534,8 @@
2a0c:c1c0::/29 RU-TTCRADIOTECHNIKA-20180516 (TTC Radiotechnika LTD)
2a0c:c240::/29 RU-LLCMELT-INTERNET-20200714 (LLC MELT-INTERNET)
2a0c:c580::/29 RU-RUSTELEKOM-20180118 (TK Rustelekom LLC)
2a0c:c700::/29 RU-FINTENDER-20171121 (JSC "TSIFROVYE INVESTITSII")
2a0c:cec0::/29 RU-TOUROPERATOR-INTOURIST-20180522 (Touroperator INTOURIST LLC)
2a0c:d740::/32 RU-INTESYS-20240404 (INTESYS LLC)
2a0c:d800::/29 RU-VOROTA2000-20210630 (LLC "Avtomaticheskie vorota - 2000")
2a0c:d800::/29 RU-VOROTA2000-20210630 (LLC "AUTOMATIC GATE - 2000")
2a0c:dc40::/29 RU-MOSLINE-20180718 (OOO "Gruppa MosLine")
2a0c:dcc0::/29 RU-MAINACC-20180718 (Ivan Bulavkin)
2a0c:dd80::/29 RU-SERVTECH-20210611 (ServTech LTD)
@@ -1553,7 +1559,7 @@
2a0d:940::/32 RU-GNRGROUP-20180803 (GNR Group LLC)
2a0d:b40::/29 RU-MAINACC-20180803 (Ivan Bulavkin)
2a0d:d80::/30 RU-STARTRU-20180126 (Start.Ru LLC)
2a0d:e00::/29 RU-YONET-20171027 (Objedinennye Seti Ltd.)
2a0d:e00::/29 RU-YONET-20171027 (Objedinennye Seti LLC)
2a0d:ec0::/29 RU-DOVECOM-20180807 (Dovecom LLC)
2a0d:10c0::/29 RU-SKYNETWORK1-20180807 (Skynetwork LLC)
2a0d:1500::/32 RU-TIS-DIALOG-20171129 (TIS Dialog LLC)
@@ -1613,7 +1619,7 @@
2a0d:d940::/29 RU-ECODE-20241108 (Eduard Alekseevich Ilin)
2a0d:df80::/29 RU-LEVEL-MSK-20180307 (Level-MSK Ltd.)
2a0d:e180::/32 RU-EURASIAPEERING-20180307 (Eurasia Peering LLC)
2a0d:e280::/29 RU-IPSERVER-20180307 (IP SERVER LLC)
2a0d:e280::/29 RU-IPSERVER-20180307 (IP Server LLC)
2a0d:e400::/32 RU-GALAXYSOFT-20171013 (Galaxy Software LLC)
2a0d:e4c0::/29 RU-VPSVILLE1-20181023 (LLC Vpsville)
2a0d:e840::/29 RU-VVTLLCUA-20181024 (VVT LLC)
@@ -1647,7 +1653,6 @@
2a0e:3740::/29 RU-MINZDRAV-20190710 (FSBI CENTRAL RESEARCH INSTITUTE OF ORGANIZATION AND INFORMATIZATION OF HEALTH OF THE MINISTRY OF HEALTH)
2a0e:3f40::/29 RU-AU-20190711 (Auction LLC)
2a0e:4340::/29 RU-TELECOM-20190712 (Telenet LLC)
2a0e:4380::/29 RU-ARTEMF-20250919 (Artem Filippov)
2a0e:4580::/29 RU-TELECOM-20211209 (Telenet LLC)
2a0e:4780::/29 RU-LOCAL-20190516 (LIR LLC)
2a0e:4880::/29 RU-VVTLLCUA-20190516 (VVT LLC)
@@ -1841,14 +1846,14 @@
2a10:9c40::/29 RU-FIRSTDC-20210225 (Perviy TSOD LLC)
2a10:9cc0::/29 RU-FIRSTDC-20210225 (Perviy TSOD LLC)
2a10:a680::/29 RU-INTECH-20260213 (INTEX ltd.)
2a10:aa80::/29 RU-NUBES-20201217 (NUBES llc)
2a10:aa80::/29 RU-NUBES-20201217 (NUBES LLC)
2a10:ab80::/29 RU-PREFIXLABS-20260216 (Denis Aleksandrovich Iakovlev)
2a10:ad00::/29 RU-FIRSTDC-20201117 (Perviy TSOD LLC)
2a10:ad80::/29 RU-IVC-20201218 (Information & Computing Center, Ltd.)
2a10:af00::/29 RU-FIRSTDC-20201117 (Perviy TSOD LLC)
2a10:b100::/29 RU-FIRSTDC-20201117 (Perviy TSOD LLC)
2a10:b300::/29 RU-TEKCOM-20201117 (Lavrentyev Alkesandr Arkadievich)
2a10:b500::/29 RU-TEKCOM-20201117 (Lavrentyev Alkesandr Arkadievich)
2a10:b300::/29 RU-TEKCOM-20201117 (Lavrentyev Aleksandr Arkadievich)
2a10:b500::/29 RU-TEKCOM-20201117 (Lavrentyev Aleksandr Arkadievich)
2a10:b7c0::/29 RU-LTD5COM-20210316 (LTD 5COM)
2a10:b840::/29 RU-TETRON-20210316 (Tetron LTD)
2a10:c0c0::/29 RU-VPSVILLE1-20210323 (LLC Vpsville)
@@ -2019,7 +2024,7 @@
2a12:1cc0::/29 RU-LOCAL-20211221 (LIR LLC)
2a12:1e80::/29 RU-IPMAGNAT-20211119 (Mikhail Tonkonog)
2a12:2040::/29 RU-AU-20211222 (Auction LLC)
2a12:2200::/29 RU-IPSERVER-20211104 (IP SERVER LLC)
2a12:2200::/29 RU-IPSERVER-20211104 (IP Server LLC)
2a12:24c0::/29 RU-TELECOM-20211223 (Telenet LLC)
2a12:25c0::/29 RU-LOCAL-20211223 (LIR LLC)
2a12:2740::/29 RU-TELECOM-20211227 (Telenet LLC)
@@ -2066,7 +2071,6 @@
2a12:7980::/29 RU-LOCAL-20211125 (LIR LLC)
2a12:7c00::/29 RU-VPSVILLE1-20211102 (LLC Vpsville)
2a12:7f40::/29 RU-ALEXGROUP-20220217 (Alex Group LLC)
2a12:80c0::/29 RU-REDBYTES-20220217 (Red Byte LLC)
2a12:8100::/29 RU-IPMAGNAT-20211112 (Mikhail Tonkonog)
2a12:8800::/29 RU-LOCAL-20211029 (LIR LLC)
2a12:8c40::/29 RU-VIAIP-RU-20220224 (ViaIP LLC)
@@ -2075,12 +2079,14 @@
2a12:9400::/29 RU-PLATFORMA-20211102 (Big Data Platform LLC)
2a12:9500::/29 RU-TELECOM-20211115 (Telenet LLC)
2a12:9700::/29 RU-LOCAL-20211115 (LIR LLC)
2a12:9c80::/29 RU-ENEVA-20260303 ("Eneva" Ltd)
2a12:9e00::/29 RU-LOCAL-20211108 (LIR LLC)
2a12:a340::/29 RU-IPMAGNAT-20220314 (Mikhail Tonkonog)
2a12:afc0::/29 RU-LETIT-20220318 (Letit LLC)
2a12:b2c0::/29 RU-AHOST-20220321 (Ahost LLC)
2a12:b3c0::/29 RU-ALEXGROUP-20220322 (Alex Group LLC)
2a12:b4c0::/29 RU-MTU-20220323 (MTS PJSC)
2a12:b780::/29 RU-REAL-20260304 (Nizhnevolzhskie Telecommunication Networks Real LLC)
2a12:ba40::/29 RU-SENTASERV-20220330 (Senta Service LLC)
2a12:bbc0::/29 RU-STANMIX1-20220331 (AREAL. REGIONAL CENTER LIMITED LIABILITY COMPANY)
2a12:bdc0::/29 RU-DEDIC164-20220401 (LLC "SMART CENTER")
@@ -2091,6 +2097,7 @@
2a12:cc00::/29 RU-TELECOM-20211103 (Telenet LLC)
2a12:d2c0::/29 RU-NEVALINKNET-20220422 (Nevalink, LLC)
2a12:d740::/29 RU-LLC3DATA-20220425 (LLC 3data)
2a12:d780::/29 RU-ESTELECOM-20260305 (ES TELECOM LLC)
2a12:dcc0::/29 RU-ROSTLLC-20220428 (ROST LLC)
2a12:ebc0::/29 RU-LLC3DATA1-20220506 (LLC 3data DC)
2a12:f580::/29 RU-KONSIST-OS-20211206 (Konsist-OS, joint-stock company)
@@ -2111,13 +2118,13 @@
2a13:3c80::/29 RU-IPMAGNAT-20220824 (Mikhail Tonkonog)
2a13:3d80::/29 RU-DATACHEAP1-20220824 (Datacheap LLC)
2a13:4040::/29 RU-MARIA1-20221124 (Maria Sergienko)
2a13:42c0::/29 RU-JSCTANDER-20260317 (JSC "Tander")
2a13:43c0::/29 RU-PTECH-20221125 (SIMPLE CODE LLC)
2a13:4fc0::/29 RU-IPMAGNAT-20221205 (Mikhail Tonkonog)
2a13:51c0::/29 RU-ATOMDATA-IN-20221205 (Atomdata-Innopolis JSC)
2a13:5500::/29 RU-LYTKIN-NO-1-20220712 (Nikolai Lytkin)
2a13:5540::/29 RU-TUTAEV-20221208 (Adam Muratovich Tutaev)
2a13:5980::/29 RU-KSTV-20220906 (CJSC Kolomna-Sviaz TV)
2a13:5d40::/29 RU-ETO-NET-20221213 (ETO NET, OOO)
2a13:6d40::/29 RU-AMTGROUP-20221223 (AMT Group, JSC)
2a13:6e00::/29 RU-OPTIMA-20220624 (Optima Communications, LLC)
2a13:6e40::/29 RU-IPMAGNAT-20221227 (Mikhail Tonkonog)
@@ -2129,6 +2136,7 @@
2a13:8e40::/29 RU-OFORO-20230712 (Bykov Roman Andreevich)
2a13:9340::/29 RU-IPMAGNAT-20230717 (Mikhail Tonkonog)
2a13:93c0::/29 RU-IPMAGNAT-20230717 (Mikhail Tonkonog)
2a13:95c0::/29 RU-WILDBERRIES-BANK-20260402 (WILDBERRIES Bank Company Limited)
2a13:9880::/29 RU-ALTRUMLTD-20230227 (Altrum LTD)
2a13:a500::/29 RU-ZTV2-20230208 (ZTV CORP LLC)
2a13:ac80::/29 RU-IPMAGNAT-20230306 (Mikhail Tonkonog)
@@ -2145,7 +2153,7 @@
2a13:cf40::/29 RU-NEDRIXEXPERT-20230905 (NEDRIX Joint Stock Company)
2a13:d7c0::/29 RU-BT-SOLN-20230908 (BIG Telecom-Solnechnogorsk LLC)
2a13:db40::/29 RU-IT-PARK-20230913 (IT PARK JSC)
2a13:dbc0::/32 RU-ZAMKOV-20230913 (ROMAN EDUARDOVICH ZAMKOV)
2a13:dbc0::/32 RU-ZAMKOV-20230913 (Roman Eduardovich Zamkov)
2a13:eec0::/29 RU-ASARTA1-20230925 (ASARTA LLC)
2a13:efc0::/29 RU-SITI-LAJT-NET-20230926 (OOO SITI LAJT)
2a13:f300::/29 RU-LIFE-PAY-20230221 (LTD "Payment service provider")
@@ -2175,10 +2183,7 @@
2a14:7fc0::/29 RU-SDK-20241120 (SDK Ltd.)
2a14:9700::/29 RU-TELECOM-20250106 (Telenet LLC)
2a14:a400::/29 RU-AU-20241205 (Auction LLC)
2a14:b280::/29 RU-OPTIMALLC-20250311 (OPTIMA LLC)
2a14:b380::/29 RU-PRIME-20250311 (Prime LLC)
2a14:b480::/29 RU-GALEONSERVICE-20250311 (GALEON LLC)
2a14:b780::/29 RU-STIM-20250311 (Stimul LLC)
2a14:cf00::/29 RU-MEGALINK75-20250123 (MegaLink LLC)
2a14:db00::/29 RU-NATIONAL-20250129 (National Horse-breeding Union Management Company ltd)
2a14:e080::/29 RU-UFO-20250402 (UFO Hosting LLC)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

View File

@@ -32,6 +32,12 @@
128.140.172.0/22
128.140.173.0/24
130.49.224.0/19
138.16.192.0/20
138.16.192.0/21
138.16.200.0/21
138.16.240.0/20
138.16.240.0/21
138.16.248.0/21
145.255.238.240/28
146.185.208.0/22
146.185.208.0/23
@@ -41,8 +47,12 @@
146.185.242.0/23
149.62.55.240/30
155.212.192.0/20
161.104.104.0/21
161.104.104.0/22
161.104.108.0/22
176.109.0.0/21
176.112.168.0/21
176.116.112.0/22
176.116.96.0/20
178.16.156.148/30
178.17.176.0/23
@@ -57,6 +67,10 @@
178.22.94.0/23
178.237.16.0/20
178.237.16.0/21
178.237.16.0/24
178.237.17.0/24
178.237.18.0/24
178.237.19.0/24
178.237.206.0/24
178.237.21.0/24
178.237.22.0/24
@@ -65,7 +79,6 @@
178.237.240.0/20
178.237.248.0/21
178.237.28.0/24
178.237.29.0/24
178.237.30.0/23
178.248.232.137/32
178.248.232.60/32
@@ -224,7 +237,6 @@
195.144.232.144/30
195.144.240.128/28
195.149.110.0/24
195.151.25.48/29
195.16.55.224/27
195.162.36.64/28
195.170.218.24/29
@@ -373,7 +385,6 @@
212.48.54.84/30
212.48.54.92/30
212.48.54.96/30
212.49.107.224/27
212.49.124.0/26
212.57.133.0/24
212.57.159.0/24
@@ -453,7 +464,9 @@
217.106.203.88/29
217.106.93.192/26
217.106.95.112/28
217.107.0.0/18
217.107.200.0/21
217.107.208.0/20
217.107.5.112/29
217.107.5.16/29
217.107.5.24/29
@@ -469,8 +482,10 @@
217.16.16.0/21
217.16.24.0/21
217.172.18.0/23
217.172.20.0/22
217.174.188.0/22
217.174.188.0/23
217.174.190.0/23
217.195.92.16/28
217.195.93.144/29
217.195.94.200/29
@@ -484,7 +499,10 @@
217.20.158.0/24
217.20.159.0/24
217.20.86.128/26
217.20.86.192/27
217.20.86.224/29
217.20.86.232/29
217.20.86.240/28
217.23.88.168/29
217.23.88.248/29
217.27.142.176/30
@@ -518,6 +536,7 @@
46.20.70.160/28
46.228.0.232/29
46.29.152.0/22
46.29.156.0/23
46.46.142.160/28
46.46.148.40/29
46.47.197.128/30
@@ -620,7 +639,6 @@
78.37.84.120/29
78.37.97.88/29
79.133.74.160/30
79.133.74.168/30
79.133.75.176/30
79.133.75.44/30
79.137.132.0/24
@@ -629,8 +647,6 @@
79.137.139.0/24
79.137.139.0/25
79.137.139.128/25
79.137.140.0/24
79.137.142.0/24
79.137.157.0/24
79.137.157.0/25
79.137.157.128/25
@@ -984,9 +1000,6 @@
91.217.34.0/23
91.219.192.0/22
91.219.224.0/22
91.221.140.0/23
91.221.140.0/24
91.221.141.0/24
91.226.250.0/24
91.227.32.0/24
91.231.132.0/22
@@ -1095,6 +1108,7 @@
95.167.5.80/28
95.167.54.76/30
95.167.59.244/30
95.167.59.248/30
95.167.64.20/30
95.167.68.216/29
95.167.69.116/30

View File

@@ -2,7 +2,6 @@
2a00:1148::/32
2a00:46e0:2::/48
2a00:46e0::/32
2a00:a300::/32
2a00:b4c0::/32
2a00:bdc0:8000::/34
2a00:bdc0::/33

View File

@@ -0,0 +1,204 @@
109.120.180.0/22
109.120.188.0/22
128.140.168.0/21
128.140.168.0/23
128.140.170.0/24
128.140.171.0/24
128.140.172.0/22
130.49.224.0/19
138.16.192.0/20
138.16.240.0/20
146.185.208.0/22
146.185.240.0/22
155.212.192.0/20
161.104.104.0/21
176.112.168.0/21
178.22.88.0/21
178.22.89.64/26
178.22.94.0/23
178.237.16.0/20
178.237.16.0/21
178.237.24.0/22
178.237.30.0/23
185.100.104.0/22
185.100.104.0/23
185.100.106.0/23
185.130.112.0/22
185.131.68.0/22
185.16.148.0/22
185.16.148.0/23
185.16.150.0/23
185.16.244.0/22
185.16.244.0/23
185.16.246.0/23
185.180.200.0/22
185.187.63.0/24
185.187.63.0/25
185.187.63.128/25
185.226.52.0/22
185.226.52.0/23
185.226.54.0/23
185.241.192.0/22
185.29.128.0/22
185.29.130.0/24
185.32.248.0/22
185.32.248.0/23
185.32.250.0/23
185.5.136.0/22
185.5.136.0/23
185.5.138.0/23
185.6.244.0/22
185.6.244.0/23
185.6.246.0/23
185.86.144.0/22
188.93.56.0/21
188.93.56.0/24
188.93.57.0/24
188.93.58.0/24
188.93.60.0/24
188.93.61.0/24
188.93.62.0/24
193.203.40.0/22
194.84.16.12/30
195.211.20.0/22
195.211.22.0/24
195.211.23.0/24
195.239.247.0/24
213.219.212.0/22
217.174.188.0/22
217.174.188.0/23
217.174.190.0/23
217.20.144.0/20
217.20.144.0/22
217.20.148.0/24
217.20.149.0/24
217.20.150.0/23
217.20.152.0/22
217.20.156.0/23
217.20.158.0/24
217.20.159.0/24
217.69.128.0/20
217.69.128.0/21
217.69.136.0/21
37.139.32.0/22
37.139.40.0/22
45.136.20.0/22
45.136.20.0/23
45.136.22.0/23
45.84.128.0/22
45.84.128.0/23
45.84.130.0/23
5.101.40.0/22
5.101.40.0/23
5.101.42.0/23
5.181.60.0/22
5.181.60.0/24
5.181.61.0/24
5.181.62.0/23
5.188.140.0/22
5.61.16.0/21
5.61.16.0/22
5.61.20.0/22
5.61.232.0/21
5.61.232.0/22
5.61.236.0/23
5.61.238.0/24
5.61.239.0/27
5.61.239.128/25
5.61.239.40/29
5.61.239.48/28
5.61.239.64/26
62.217.160.0/20
62.217.160.0/21
62.217.168.0/21
79.137.132.0/24
79.137.132.0/25
79.137.132.128/25
79.137.139.0/24
79.137.139.0/25
79.137.139.128/25
79.137.157.0/25
79.137.157.128/25
79.137.164.0/24
79.137.164.0/25
79.137.164.128/25
79.137.167.0/24
79.137.167.0/25
79.137.167.128/25
79.137.174.0/23
79.137.180.0/24
79.137.180.0/25
79.137.180.128/25
79.137.240.0/21
79.137.240.0/22
79.137.244.0/22
81.177.12.0/24
81.177.31.64/26
83.166.232.0/21
83.166.248.0/21
83.217.216.0/22
83.222.28.0/22
84.23.52.0/22
85.114.31.108/30
85.192.32.0/22
85.198.106.0/24
85.198.107.0/24
87.239.104.0/21
87.240.128.0/18
87.240.128.0/19
87.240.160.0/19
87.242.112.0/22
89.208.196.0/22
89.208.208.0/22
89.208.216.0/21
89.208.228.0/22
89.208.84.0/22
89.221.228.0/22
89.221.232.0/21
90.156.148.0/22
90.156.212.0/22
90.156.216.0/22
90.156.232.0/21
91.231.132.0/22
91.237.76.0/24
93.153.255.84/30
93.186.224.0/20
93.186.224.0/21
93.186.232.0/21
94.100.176.0/20
94.100.176.0/21
94.100.184.0/21
94.139.244.0/22
95.142.192.0/20
95.142.192.0/21
95.142.200.0/21
95.163.180.0/22
95.163.208.0/21
95.163.216.0/22
95.163.216.0/23
95.163.218.0/23
95.163.248.0/21
95.163.252.0/23
95.163.254.0/23
95.163.32.0/19
95.163.32.0/22
95.163.36.0/22
95.163.40.0/21
95.163.48.0/20
95.213.0.0/17
95.213.0.0/20
95.213.16.0/21
95.213.24.0/23
95.213.26.0/24
95.213.27.0/24
95.213.28.0/24
95.213.29.0/24
95.213.30.0/24
95.213.31.0/24
95.213.32.0/24
95.213.33.0/24
95.213.34.0/23
95.213.36.0/22
95.213.40.0/21
95.213.48.0/20
95.213.64.0/18

View File

@@ -0,0 +1,3 @@
2a00:1148::/29
2a00:b4c0::/29
2a00:bdc0::/29

207
blacklists/blacklist-vk.txt Normal file
View File

@@ -0,0 +1,207 @@
109.120.180.0/22
109.120.188.0/22
128.140.168.0/21
128.140.168.0/23
128.140.170.0/24
128.140.171.0/24
128.140.172.0/22
130.49.224.0/19
138.16.192.0/20
138.16.240.0/20
146.185.208.0/22
146.185.240.0/22
155.212.192.0/20
161.104.104.0/21
176.112.168.0/21
178.22.88.0/21
178.22.89.64/26
178.22.94.0/23
178.237.16.0/20
178.237.16.0/21
178.237.24.0/22
178.237.30.0/23
185.100.104.0/22
185.100.104.0/23
185.100.106.0/23
185.130.112.0/22
185.131.68.0/22
185.16.148.0/22
185.16.148.0/23
185.16.150.0/23
185.16.244.0/22
185.16.244.0/23
185.16.246.0/23
185.180.200.0/22
185.187.63.0/24
185.187.63.0/25
185.187.63.128/25
185.226.52.0/22
185.226.52.0/23
185.226.54.0/23
185.241.192.0/22
185.29.128.0/22
185.29.130.0/24
185.32.248.0/22
185.32.248.0/23
185.32.250.0/23
185.5.136.0/22
185.5.136.0/23
185.5.138.0/23
185.6.244.0/22
185.6.244.0/23
185.6.246.0/23
185.86.144.0/22
188.93.56.0/21
188.93.56.0/24
188.93.57.0/24
188.93.58.0/24
188.93.60.0/24
188.93.61.0/24
188.93.62.0/24
193.203.40.0/22
194.84.16.12/30
195.211.20.0/22
195.211.22.0/24
195.211.23.0/24
195.239.247.0/24
213.219.212.0/22
217.174.188.0/22
217.174.188.0/23
217.174.190.0/23
217.20.144.0/20
217.20.144.0/22
217.20.148.0/24
217.20.149.0/24
217.20.150.0/23
217.20.152.0/22
217.20.156.0/23
217.20.158.0/24
217.20.159.0/24
217.69.128.0/20
217.69.128.0/21
217.69.136.0/21
2a00:1148::/29
2a00:b4c0::/29
2a00:bdc0::/29
37.139.32.0/22
37.139.40.0/22
45.136.20.0/22
45.136.20.0/23
45.136.22.0/23
45.84.128.0/22
45.84.128.0/23
45.84.130.0/23
5.101.40.0/22
5.101.40.0/23
5.101.42.0/23
5.181.60.0/22
5.181.60.0/24
5.181.61.0/24
5.181.62.0/23
5.188.140.0/22
5.61.16.0/21
5.61.16.0/22
5.61.20.0/22
5.61.232.0/21
5.61.232.0/22
5.61.236.0/23
5.61.238.0/24
5.61.239.0/27
5.61.239.128/25
5.61.239.40/29
5.61.239.48/28
5.61.239.64/26
62.217.160.0/20
62.217.160.0/21
62.217.168.0/21
79.137.132.0/24
79.137.132.0/25
79.137.132.128/25
79.137.139.0/24
79.137.139.0/25
79.137.139.128/25
79.137.157.0/25
79.137.157.128/25
79.137.164.0/24
79.137.164.0/25
79.137.164.128/25
79.137.167.0/24
79.137.167.0/25
79.137.167.128/25
79.137.174.0/23
79.137.180.0/24
79.137.180.0/25
79.137.180.128/25
79.137.240.0/21
79.137.240.0/22
79.137.244.0/22
81.177.12.0/24
81.177.31.64/26
83.166.232.0/21
83.166.248.0/21
83.217.216.0/22
83.222.28.0/22
84.23.52.0/22
85.114.31.108/30
85.192.32.0/22
85.198.106.0/24
85.198.107.0/24
87.239.104.0/21
87.240.128.0/18
87.240.128.0/19
87.240.160.0/19
87.242.112.0/22
89.208.196.0/22
89.208.208.0/22
89.208.216.0/21
89.208.228.0/22
89.208.84.0/22
89.221.228.0/22
89.221.232.0/21
90.156.148.0/22
90.156.212.0/22
90.156.216.0/22
90.156.232.0/21
91.231.132.0/22
91.237.76.0/24
93.153.255.84/30
93.186.224.0/20
93.186.224.0/21
93.186.232.0/21
94.100.176.0/20
94.100.176.0/21
94.100.184.0/21
94.139.244.0/22
95.142.192.0/20
95.142.192.0/21
95.142.200.0/21
95.163.180.0/22
95.163.208.0/21
95.163.216.0/22
95.163.216.0/23
95.163.218.0/23
95.163.248.0/21
95.163.252.0/23
95.163.254.0/23
95.163.32.0/19
95.163.32.0/22
95.163.36.0/22
95.163.40.0/21
95.163.48.0/20
95.213.0.0/17
95.213.0.0/20
95.213.16.0/21
95.213.24.0/23
95.213.26.0/24
95.213.27.0/24
95.213.28.0/24
95.213.29.0/24
95.213.30.0/24
95.213.31.0/24
95.213.32.0/24
95.213.33.0/24
95.213.34.0/23
95.213.36.0/22
95.213.40.0/21
95.213.48.0/20
95.213.64.0/18

View File

@@ -32,6 +32,12 @@
128.140.172.0/22
128.140.173.0/24
130.49.224.0/19
138.16.192.0/20
138.16.192.0/21
138.16.200.0/21
138.16.240.0/20
138.16.240.0/21
138.16.248.0/21
145.255.238.240/28
146.185.208.0/22
146.185.208.0/23
@@ -41,8 +47,12 @@
146.185.242.0/23
149.62.55.240/30
155.212.192.0/20
161.104.104.0/21
161.104.104.0/22
161.104.108.0/22
176.109.0.0/21
176.112.168.0/21
176.116.112.0/22
176.116.96.0/20
178.16.156.148/30
178.17.176.0/23
@@ -57,6 +67,10 @@
178.22.94.0/23
178.237.16.0/20
178.237.16.0/21
178.237.16.0/24
178.237.17.0/24
178.237.18.0/24
178.237.19.0/24
178.237.206.0/24
178.237.21.0/24
178.237.22.0/24
@@ -65,7 +79,6 @@
178.237.240.0/20
178.237.248.0/21
178.237.28.0/24
178.237.29.0/24
178.237.30.0/23
178.248.232.137/32
178.248.232.60/32
@@ -224,7 +237,6 @@
195.144.232.144/30
195.144.240.128/28
195.149.110.0/24
195.151.25.48/29
195.16.55.224/27
195.162.36.64/28
195.170.218.24/29
@@ -373,7 +385,6 @@
212.48.54.84/30
212.48.54.92/30
212.48.54.96/30
212.49.107.224/27
212.49.124.0/26
212.57.133.0/24
212.57.159.0/24
@@ -453,7 +464,9 @@
217.106.203.88/29
217.106.93.192/26
217.106.95.112/28
217.107.0.0/18
217.107.200.0/21
217.107.208.0/20
217.107.5.112/29
217.107.5.16/29
217.107.5.24/29
@@ -469,8 +482,10 @@
217.16.16.0/21
217.16.24.0/21
217.172.18.0/23
217.172.20.0/22
217.174.188.0/22
217.174.188.0/23
217.174.190.0/23
217.195.92.16/28
217.195.93.144/29
217.195.94.200/29
@@ -484,7 +499,10 @@
217.20.158.0/24
217.20.159.0/24
217.20.86.128/26
217.20.86.192/27
217.20.86.224/29
217.20.86.232/29
217.20.86.240/28
217.23.88.168/29
217.23.88.248/29
217.27.142.176/30
@@ -499,7 +517,6 @@
2a00:1148::/32
2a00:46e0:2::/48
2a00:46e0::/32
2a00:a300::/32
2a00:b4c0::/32
2a00:bdc0:8000::/34
2a00:bdc0::/33
@@ -540,6 +557,7 @@
46.20.70.160/28
46.228.0.232/29
46.29.152.0/22
46.29.156.0/23
46.46.142.160/28
46.46.148.40/29
46.47.197.128/30
@@ -642,7 +660,6 @@
78.37.84.120/29
78.37.97.88/29
79.133.74.160/30
79.133.74.168/30
79.133.75.176/30
79.133.75.44/30
79.137.132.0/24
@@ -651,8 +668,6 @@
79.137.139.0/24
79.137.139.0/25
79.137.139.128/25
79.137.140.0/24
79.137.142.0/24
79.137.157.0/24
79.137.157.0/25
79.137.157.128/25
@@ -1006,9 +1021,6 @@
91.217.34.0/23
91.219.192.0/22
91.219.224.0/22
91.221.140.0/23
91.221.140.0/24
91.221.141.0/24
91.226.250.0/24
91.227.32.0/24
91.231.132.0/22
@@ -1117,6 +1129,7 @@
95.167.5.80/28
95.167.54.76/30
95.167.59.244/30
95.167.59.248/30
95.167.64.20/30
95.167.68.216/29
95.167.69.116/30

View File

@@ -1,20 +1,58 @@
# Networks announced by AS28709
# AS-Name (ORG): VKONTAKTE-REGIONAL-CDN (LLC VK)
185.32.249.0/24
95.142.203.0/24
178.237.24.0/24
2a00:bdc0:e003::/48
178.237.22.0/24
2a00:bdc0:e004::/48
128.140.170.0/24
95.142.202.0/24
87.240.166.0/24
178.237.19.0/24
178.237.24.0/24
95.213.44.0/24
95.142.203.0/24
95.213.45.0/24
95.142.201.0/24
178.237.28.0/24
185.32.249.0/24
178.237.21.0/24
178.237.18.0/24
185.32.251.0/24
2a00:bdc0:e005::/48
178.237.21.0/24
95.142.201.0/24
2a00:bdc0:e007::/48
2a00:bdc0:e002::/48
178.237.17.0/24
87.240.167.0/24
178.237.16.0/24
2a00:bdc0:e007::/48
128.140.170.0/24
# Networks announced by AS28709
# AS-Name (ORG): VKONTAKTE-REGIONAL-CDN (LLC VK)
2a00:bdc0:e003::/48
178.237.22.0/24
2a00:bdc0:e004::/48
95.142.202.0/24
87.240.166.0/24
178.237.19.0/24
178.237.24.0/24
95.213.44.0/24
95.142.203.0/24
95.213.45.0/24
95.142.201.0/24
178.237.28.0/24
185.32.249.0/24
178.237.21.0/24
178.237.18.0/24
185.32.251.0/24
2a00:bdc0:e005::/48
2a00:bdc0:e002::/48
178.237.17.0/24
87.240.167.0/24
178.237.16.0/24
2a00:bdc0:e007::/48
128.140.170.0/24
# Networks announced by AS34500
# AS-Name (ORG): CTSPI (FGUP CTSPI MGA Russia)
80.73.16.0/21
80.73.16.0/24
80.73.16.0/20
# Networks announced by AS34500
# AS-Name (ORG): CTSPI (FGUP CTSPI MGA Russia)
80.73.16.0/21
@@ -22,188 +60,344 @@
80.73.16.0/20
# Networks announced by AS43038
# AS-Name (ORG): TVK-AS (MTS PJSC)
79.143.229.0/24
81.195.151.0/24
79.143.232.0/24
178.17.180.0/23
91.208.20.0/24
178.17.182.0/23
79.143.230.0/24
195.226.203.0/24
213.176.232.0/23
178.17.178.0/23
193.33.230.0/23
178.17.188.0/22
178.17.176.0/23
178.17.184.0/22
79.143.232.0/24
213.176.234.0/23
193.33.230.0/23
79.143.230.0/24
91.208.20.0/24
178.17.188.0/22
178.17.180.0/23
178.17.182.0/23
195.226.203.0/24
81.195.151.0/24
178.17.184.0/22
79.143.229.0/24
178.17.178.0/23
178.17.176.0/23
# Networks announced by AS43038
# AS-Name (ORG): TVK-AS (MTS PJSC)
213.176.232.0/23
79.143.232.0/24
213.176.234.0/23
193.33.230.0/23
79.143.230.0/24
91.208.20.0/24
178.17.188.0/22
178.17.180.0/23
178.17.182.0/23
195.226.203.0/24
81.195.151.0/24
178.17.184.0/22
79.143.229.0/24
178.17.178.0/23
178.17.176.0/23
# Networks announced by AS43720
# AS-Name (ORG): TVK-AS (MTS OJSC)
91.135.220.0/24
81.195.164.0/24
91.135.212.0/22
91.135.221.0/24
91.195.136.0/23
91.135.216.0/21
91.135.212.0/22
81.195.164.0/24
91.135.221.0/24
# Networks announced by AS43720
# AS-Name (ORG): TVK-AS (MTS OJSC)
91.135.220.0/24
81.195.164.0/24
91.135.212.0/22
91.135.221.0/24
91.195.136.0/23
91.135.216.0/21
# Networks announced by AS47541
# AS-Name (ORG): VKONTAKTE-SPB-AS (LLC VK)
95.213.0.0/18
79.137.180.0/24
95.142.192.0/20
87.240.167.0/24
2a00:bdc1::/32
93.186.224.0/21
2a14:25c5::/32
185.131.68.0/23
95.213.0.0/17
2a00:bdc0:c000::/35
217.69.132.0/24
95.213.44.0/24
2a00:bdc4::/30
91.231.132.0/24
87.240.128.0/18
95.213.45.0/24
79.137.183.0/24
2a00:bdc0:8000::/34
2a14:25c7::/32
91.231.133.0/24
79.137.139.0/24
95.142.192.0/21
93.186.232.0/21
185.32.248.0/22
79.137.164.0/24
87.240.166.0/24
2a00:bdc0::/33
91.231.134.0/24
95.142.192.0/20
2a00:bdc0:c000::/35
91.231.133.0/24
95.213.45.0/24
79.137.164.0/24
95.142.192.0/21
79.137.180.0/24
87.240.167.0/24
87.240.128.0/18
95.213.0.0/17
95.213.0.0/18
2a14:25c7::/32
185.32.248.0/22
79.137.139.0/24
2a14:25c5::/32
217.69.132.0/24
2a00:bdc0:8000::/34
2a00:bdc2::/31
91.231.134.0/24
91.231.132.0/24
95.213.44.0/24
2a00:bdc1::/32
185.131.68.0/23
93.186.232.0/21
2a00:bdc4::/30
87.240.166.0/24
93.186.224.0/21
# Networks announced by AS47541
# AS-Name (ORG): VKONTAKTE-SPB-AS (LLC VK)
79.137.183.0/24
2a00:bdc0::/33
95.142.192.0/20
2a00:bdc0:c000::/35
91.231.133.0/24
95.213.45.0/24
79.137.164.0/24
95.142.192.0/21
79.137.180.0/24
87.240.167.0/24
87.240.128.0/18
95.213.0.0/17
95.213.0.0/18
2a14:25c7::/32
185.32.248.0/22
79.137.139.0/24
2a14:25c5::/32
217.69.132.0/24
2a00:bdc0:8000::/34
2a00:bdc2::/31
91.231.134.0/24
91.231.132.0/24
95.213.44.0/24
2a00:bdc1::/32
185.131.68.0/23
93.186.232.0/21
2a00:bdc4::/30
87.240.166.0/24
93.186.224.0/21
# Networks announced by AS47542
# AS-Name (ORG): VKONTAKTE-MSK-CDN-AS (LLC VK)
87.240.166.0/24
95.213.45.0/24
2a00:bdc0:f000::/36
95.213.45.0/24
87.240.167.0/24
128.140.173.0/24
95.213.44.0/24
95.142.207.0/24
128.140.173.0/24
95.142.204.0/23
95.142.207.0/24
87.240.166.0/24
# Networks announced by AS47542
# AS-Name (ORG): VKONTAKTE-MSK-CDN-AS (LLC VK)
2a00:bdc0:f000::/36
95.213.45.0/24
87.240.167.0/24
95.213.44.0/24
128.140.173.0/24
95.142.204.0/23
95.142.207.0/24
87.240.166.0/24
# Networks announced by AS47764
# AS-Name (ORG): VK-AS (LLC VK)
212.233.96.0/22
185.16.244.0/23
79.137.240.0/21
45.84.128.0/22
83.166.248.0/21
5.181.61.0/24
185.180.200.0/22
5.181.60.0/22
185.187.63.0/24
2a14:25c0::/32
90.156.212.0/22
2a00:46e0::/32
185.86.144.0/22
217.69.128.0/20
79.137.157.0/24
178.237.29.0/24
89.221.232.0/22
83.222.28.0/22
94.100.176.0/20
130.49.224.0/19
89.208.208.0/22
89.208.196.0/22
87.239.104.0/21
94.139.244.0/24
89.208.218.0/23
87.242.112.0/22
2a00:46e0:2::/48
109.120.180.0/22
85.192.32.0/22
5.61.16.0/21
37.139.32.0/22
195.218.190.0/23
109.120.188.0/22
94.139.244.0/22
178.237.16.0/20
89.208.220.0/22
185.100.104.0/22
91.231.132.0/22
217.20.144.0/20
95.163.133.0/24
91.231.134.0/24
84.23.52.0/22
185.241.192.0/22
185.5.136.0/22
2a14:25c6::/32
213.219.212.0/22
89.208.216.0/23
95.163.133.0/24
185.241.192.0/22
89.208.84.0/22
5.61.16.0/21
91.231.132.0/22
212.233.120.0/22
83.166.248.0/21
5.181.60.0/22
31.177.104.0/22
95.163.32.0/19
185.180.200.0/22
90.156.232.0/21
91.219.224.0/22
95.163.180.0/22
45.136.20.0/22
83.166.232.0/21
212.233.96.0/22
37.139.32.0/22
212.233.72.0/21
90.156.216.0/22
94.139.244.0/22
45.84.128.0/22
5.61.232.0/21
95.163.248.0/21
185.226.52.0/22
178.237.16.0/20
185.187.63.0/24
89.208.220.0/22
185.5.136.0/22
193.203.40.0/22
217.20.144.0/20
83.217.216.0/22
217.16.16.0/20
195.218.190.0/23
155.212.192.0/20
89.221.228.0/22
185.100.104.0/22
176.112.168.0/21
212.233.88.0/21
185.131.68.0/22
185.16.148.0/22
2a00:1148::/32
188.93.56.0/21
212.111.84.0/22
37.139.40.0/22
84.23.52.0/22
95.163.216.0/22
185.130.112.0/22
178.22.88.0/21
217.174.188.0/22
89.208.196.0/22
90.156.212.0/22
130.49.224.0/19
89.208.208.0/22
87.239.104.0/21
79.137.174.0/23
146.185.208.0/22
146.185.240.0/22
185.16.247.0/24
195.211.20.0/22
89.221.236.0/22
2a00:46e0:2::/48
185.16.244.0/22
89.208.218.0/23
91.231.133.0/24
85.192.32.0/22
89.221.235.0/24
91.219.224.0/22
5.61.232.0/21
83.166.232.0/21
155.212.192.0/20
217.16.16.0/20
185.16.148.0/22
5.188.140.0/22
194.186.63.0/24
89.208.228.0/22
62.217.160.0/20
90.156.148.0/22
185.16.246.0/24
2a00:1148::/29
2a00:b4c0::/32
87.242.112.0/22
161.104.104.0/21
91.231.133.0/24
185.226.52.0/22
188.93.56.0/21
185.131.68.0/22
94.100.176.0/20
83.222.28.0/22
95.163.208.0/21
128.140.168.0/21
95.163.216.0/22
195.211.20.0/22
185.86.144.0/22
146.185.240.0/22
37.139.40.0/22
83.217.216.0/22
89.221.236.0/22
89.221.228.0/22
185.130.112.0/22
194.186.63.0/24
79.137.240.0/21
138.16.240.0/20
90.156.151.0/24
5.181.61.0/24
91.231.134.0/24
109.120.180.0/22
94.139.244.0/24
90.156.148.0/22
138.16.192.0/20
185.16.246.0/24
185.16.244.0/22
2a00:1148::/29
5.101.40.0/22
2a00:b4c0::/32
217.69.128.0/20
185.16.247.0/24
89.221.232.0/22
128.140.168.0/21
2a00:46e0::/32
95.163.180.0/22
89.208.228.0/22
89.221.235.0/24
89.208.216.0/23
217.174.188.0/22
62.217.160.0/20
146.185.208.0/22
178.22.88.0/21
45.136.20.0/22
95.163.32.0/19
31.177.104.0/22
212.233.88.0/21
90.156.232.0/21
79.137.157.0/24
193.203.40.0/22
89.208.84.0/22
90.156.216.0/22
92.38.217.0/24
# Networks announced by AS49281
# AS-Name (ORG): M100 (M100 LLC)
85.198.106.0/24
2a00:a300::/32
# Networks announced by AS49797
# AS-Name (ORG): NESSLY (LLC VK)
79.137.142.0/24
# Networks announced by AS49988
# AS-Name (ORG): odkl-as (LLC VK)
79.137.140.0/24
85.198.107.0/24
# Networks announced by AS51932
# AS-Name (ORG): ORVD-AS (FGUP Goskorporatsiya po OrVD)
91.221.140.0/23
91.221.140.0/24
91.221.141.0/24
95.163.248.0/21
212.233.120.0/22
212.233.72.0/21
2a00:1148::/32
212.111.84.0/22
# Networks announced by AS47764
# AS-Name (ORG): VK-AS (LLC VK)
212.233.96.0/22
185.16.244.0/23
45.84.128.0/22
83.166.248.0/21
5.181.61.0/24
185.180.200.0/22
5.181.60.0/22
185.187.63.0/24
2a14:25c0::/32
94.139.244.0/24
89.208.218.0/23
87.242.112.0/22
2a00:46e0:2::/48
109.120.180.0/22
85.192.32.0/22
5.61.16.0/21
37.139.32.0/22
195.218.190.0/23
109.120.188.0/22
94.139.244.0/22
178.237.16.0/20
89.208.220.0/22
185.100.104.0/22
91.231.132.0/22
217.20.144.0/20
95.163.133.0/24
91.231.134.0/24
84.23.52.0/22
185.241.192.0/22
185.5.136.0/22
2a14:25c6::/32
213.219.212.0/22
176.112.168.0/21
89.208.196.0/22
90.156.212.0/22
130.49.224.0/19
89.208.208.0/22
87.239.104.0/21
79.137.174.0/23
91.219.224.0/22
5.61.232.0/21
83.166.232.0/21
155.212.192.0/20
217.16.16.0/20
185.16.148.0/22
5.188.140.0/22
161.104.104.0/21
91.231.133.0/24
185.226.52.0/22
188.93.56.0/21
185.131.68.0/22
94.100.176.0/20
83.222.28.0/22
95.163.208.0/21
95.163.216.0/22
195.211.20.0/22
185.86.144.0/22
146.185.240.0/22
37.139.40.0/22
83.217.216.0/22
89.221.236.0/22
89.221.228.0/22
185.130.112.0/22
194.186.63.0/24
79.137.240.0/21
138.16.240.0/20
90.156.151.0/24
90.156.148.0/22
138.16.192.0/20
185.16.246.0/24
185.16.244.0/22
2a00:1148::/29
5.101.40.0/22
2a00:b4c0::/32
217.69.128.0/20
185.16.247.0/24
89.221.232.0/22
128.140.168.0/21
2a00:46e0::/32
95.163.180.0/22
89.208.228.0/22
89.221.235.0/24
89.208.216.0/23
217.174.188.0/22
62.217.160.0/20
146.185.208.0/22
178.22.88.0/21
45.136.20.0/22
95.163.32.0/19
31.177.104.0/22
212.233.88.0/21
90.156.232.0/21
79.137.157.0/24
193.203.40.0/22
89.208.84.0/22
90.156.216.0/22
92.38.217.0/24
95.163.248.0/21
212.233.120.0/22
212.233.72.0/21
2a00:1148::/32
212.111.84.0/22
# Network name: Roskomnadzor-net
46.228.0.232/29
87.226.213.0/24
@@ -212,7 +406,9 @@
78.108.200.0/24
# Network name: RU-RTCOMM-20001220
217.106.0.0/16
217.107.0.0/18
217.107.200.0/21
217.107.208.0/20
# Network name: MMT
46.61.208.0/24
# Network name: RTCOMM-GNIVC
@@ -226,6 +422,7 @@
95.173.128.0/20
95.173.144.0/20
176.116.96.0/20
176.116.112.0/22
185.183.172.0/23
185.183.174.0/23
194.226.80.0/21
@@ -246,6 +443,7 @@
95.173.128.0/20
95.173.144.0/20
176.116.96.0/20
176.116.112.0/22
185.183.172.0/23
185.183.174.0/23
194.226.80.0/21
@@ -332,6 +530,7 @@
95.173.128.0/20
95.173.144.0/20
176.116.96.0/20
176.116.112.0/22
185.183.172.0/23
185.183.174.0/23
194.226.80.0/21
@@ -341,6 +540,7 @@
# Network name: RU_FSKN
92.50.198.72/30
95.167.59.244/30
95.167.59.248/30
# Network name: UMNS-NOVGOROD
213.59.91.48/29
# Network name: FOMS
@@ -362,6 +562,7 @@
217.106.147.8/29
# Network name: GLAVNIVZ
46.29.152.0/22
46.29.156.0/23
185.168.60.0/24
185.168.61.0/24
185.168.62.0/24
@@ -399,7 +600,10 @@
94.25.70.64/30
# Network name: MNSHMAO
217.20.86.128/26
217.20.86.192/27
217.20.86.224/29
217.20.86.232/29
217.20.86.240/28
# Network name: UMNS-TUMEN
213.59.59.120/29
213.59.59.144/29
@@ -538,6 +742,7 @@
77.37.128.0/17
# Network name: STARNET-VPN
217.172.18.0/23
217.172.20.0/22
# Network name: CCC-HC
89.111.176.0/22
# Network name: RU-NIC-HOSTING
@@ -738,7 +943,7 @@
85.90.127.16/29
# NET-Name: 85.90.98.144/30 NCPLG-NET MNT-TELECOM-TZ () [FGUP GosNII GA (NC PLGVS GosNII GA)]
85.90.98.144/30
# NET-Name: 89.109.250.28/30 CTC_CLIENTS MNT-CTC () [FGKU UVO GU MVD Rossii po Moskovskoy oblasti SPAM issues: balovo@mail.ru]
# NET-Name: 89.109.250.28/30 CTC_CLIENTS ROSTELECOM-MNT () [FGKU UVO GU MVD Rossii po Moskovskoy oblasti SPAM issues: balovo@mail.ru]
89.109.250.28/30
# NET-Name: 85.90.125.96/29 NICITEP-NET MNT-TELECOM-TZ () [FGUP NIC ITEP]
85.90.125.96/29
@@ -828,7 +1033,7 @@
85.21.204.208/28
# NET-Name: 195.170.218.88/29 INF-CLNT-GRPZ INFOTEL-MNT () [CLIENT FGUP Gosudarstvennyj Ryazanskij Pribornyj Zavod]
195.170.218.88/29
# NET-Name: 89.109.250.132/30 CTC_CLIENTS MNT-CTC () [FGKU UVO GU MVD Rossii po Moskovskoy oblasti SPAM issues: balovo@mail.ru]
# NET-Name: 89.109.250.132/30 CTC_CLIENTS ROSTELECOM-MNT () [FGKU UVO GU MVD Rossii po Moskovskoy oblasti SPAM issues: balovo@mail.ru]
89.109.250.132/30
# NET-Name: 89.179.155.192/28 CORBINA-FGUPVNIITF RU-CORBINA-MNT () [FGUP VNIIT FA Moscow, Varshavskoe shosse, 46]
89.179.155.192/28
@@ -860,7 +1065,7 @@
89.175.165.208/28
# NET-Name: 195.218.190.0/23 RU-SOVINTEL-MSK-MAILRU-OFFICE-NET SOVINTEL-MNT () [121005 Moscow Russia Leningradsky pr-t, 47 NetBridge Services, CRC-1011761 http://corp.mail.ru/]
195.218.190.0/23
# NET-Name: 89.109.250.140/30 CTC_CLIENTS MNT-CTC () [FGKU UVO GU MVD Rossii po Moskovskoy oblasti SPAM issues: ovo_5012@mail.ru]
# NET-Name: 89.109.250.140/30 CTC_CLIENTS ROSTELECOM-MNT () [FGKU UVO GU MVD Rossii po Moskovskoy oblasti SPAM issues: ovo_5012@mail.ru]
89.109.250.140/30
# NET-Name: 81.1.195.0/28 FFGUPKO-NET ZSTTK-MNT () [FFGUP "Oxrana" MVD RF po Kemerovo area Kemerovo, Russia]
81.1.195.0/28
@@ -876,7 +1081,7 @@
217.147.23.112/28
# NET-Name: 89.175.170.144/28 ELEKTROPRIBOR COMSTAR-MNT () [FGUP "Elektropribor"]
89.175.170.144/28
# NET-Name: 82.208.77.104/29 OHRANA-NN1-NET NMTS-MNT () [FGUP OHRANA-NN Nizhny Novgorod, Russia]
# NET-Name: 82.208.77.104/29 OHRANA-NN1-NET ROSTELECOM-MNT () [FGUP OHRANA-NN Nizhny Novgorod, Russia]
82.208.77.104/29
# NET-Name: 86.102.126.160/28 POL-ORTOPROTEZ-NET PRIMORYE-NCC-MNT () [FGUP Vladivostokskoe Protezno-Ortopedicheskoe Predpriyatie 8, Magnitogorskaya, st., Vladivostok, Russia +7 4232 317610]
86.102.126.160/28
@@ -912,8 +1117,6 @@
89.21.152.104/29
# NET-Name: 89.175.176.140/30 GBUMSE COMSTAR-MNT () [FGUP «GBUMSE»]
89.175.176.140/30
# NET-Name: 195.151.25.48/29 UFSB-NET ROSPRINT-NCC () [(99999960) UFSB, Ekaterinburg]
195.151.25.48/29
# NET-Name: 87.249.16.32/28 TEL-NET-5728 TEL-NET-MNT () [object-VARSHAVSKOE125, client-FGUP "NII "Argon"]
87.249.16.32/28
# NET-Name: 87.249.18.60/30 TEL-NET-5728 TEL-NET-MNT () [object-VARSHAVSKOE125, client-FGUP "NII "Argon"]
@@ -1084,8 +1287,6 @@
95.167.21.104/29
# NET-Name: 95.167.29.104/29 FGUP_Avtomatika ROSTELECOM-MNT () [Ticket 09-43230, DVF]
95.167.29.104/29
# NET-Name: 79.133.74.168/30 UFSB ROSTELECOM-MNT () [Ticket 09-08632-1]
79.133.74.168/30
# NET-Name: 79.133.74.160/30 FGUP_GTRK_Smolensk ROSTELECOM-MNT () [Ticket 09-02269-1]
79.133.74.160/30
# NET-Name: 79.133.75.176/30 UVD_po_Kirovskoy_oblasti ROSTELECOM-MNT () [Ticket 08-02440-1]
@@ -1386,12 +1587,10 @@
185.7.234.188/30
# NET-Name: 92.39.111.84/30 FGUP-GNIVC-FNS-VLG UNICO-MNT () [FGUP GNIVC FNS, Volgograd (Unico Network)]
92.39.111.84/30
# NET-Name: 89.109.250.88/29 CTC_CLIENTS MNT-CTC () [FGUP MNIIRIP]
# NET-Name: 89.109.250.88/29 CTC_CLIENTS ROSTELECOM-MNT () [FGUP MNIIRIP]
89.109.250.88/29
# NET-Name: 62.33.34.16/28 GUVD-NET TRANSTELECOM-MNT () [(RS000417) GUVD po KDR, Krasnodar, Russia]
62.33.34.16/28
# NET-Name: 212.49.107.224/27 MIRALOGIC-NET-173 EXTRIM-MNT () [FGUP NTC Atlas FSB Rossii Yekaterinburg, Russian Federation]
212.49.107.224/27
# NET-Name: 212.49.124.0/26 MIRALOGIC-NET-191 EXTRIM-MNT () [FGUP Pochta Rossii Yekaterinburg, Russian Federation]
212.49.124.0/26
# NET-Name: 213.24.143.0/24 RTCOMM-RFCCFO AS8342-MNT () [FGUP Radio Frequency Center]
@@ -1408,9 +1607,9 @@
109.124.66.160/28
# NET-Name: 84.204.7.144/29 FGUP-GosNIIPP-LAN PSTAR-MNT () [FGUP-GosNIIPP-LAN St.Petersburg JSC PeterStar]
84.204.7.144/29
# NET-Name: 89.109.250.96/30 CTC_CLIENTS MNT-CTC () [FGKU UVO GU MVD Rossii po Moskovskoy oblasti SPAM issues: balovo@mail.ru]
# NET-Name: 89.109.250.96/30 CTC_CLIENTS ROSTELECOM-MNT () [FGKU UVO GU MVD Rossii po Moskovskoy oblasti SPAM issues: balovo@mail.ru]
89.109.250.96/30
# NET-Name: 89.109.250.80/30 CTC_CLIENTS MNT-CTC () [FGKU UVO GU MVD Rossii po Moskovskoy oblasti SPAM issues: ovo-chehov@mail.ru]
# NET-Name: 89.109.250.80/30 CTC_CLIENTS ROSTELECOM-MNT () [FGKU UVO GU MVD Rossii po Moskovskoy oblasti SPAM issues: ovo-chehov@mail.ru]
89.109.250.80/30
# NET-Name: 185.32.248.0/22 RU-VKONTAKTE-20130814 RIPE-NCC-HM-MNT VKCOMPANY-MNT (ORG-VL47-RIPE) []
185.32.248.0/22
@@ -1698,7 +1897,7 @@
212.13.113.100/30
# NET-Name: 79.137.174.0/23 RU-NETBRIDGE-20071018 RIPE-NCC-HM-MNT VKCOMPANY-MNT (ORG-LLCn4-RIPE) []
79.137.174.0/23
# NET-Name: 82.208.68.240/28 SPORT-IN-NN-NET NMTS-MNT () [Personal network for FGUP Sport Inzhiniring]
# NET-Name: 82.208.68.240/28 SPORT-IN-NN-NET ROSTELECOM-MNT () [Personal network for FGUP Sport Inzhiniring]
82.208.68.240/28
# NET-Name: 212.59.99.96/27 FGUP-KIM-NET EUT-MNT () [Moscow]
212.59.99.96/27
@@ -1890,6 +2089,8 @@
195.209.120.0/22
# NET-Name: 185.86.144.0/22 RU-NETBRIDGE-20150203 RIPE-NCC-HM-MNT VKCOMPANY-MNT (ORG-LLCn4-RIPE) []
185.86.144.0/22
# NET-Name: 217.174.188.0/22 RU-ODNOKLASSNIKI-20040901 RIPE-NCC-HM-MNT VKCOMPANY-MNT (ORG-OL67-RIPE) []
217.174.188.0/22
# NET-Name: 185.86.144.0/23 VKCS VKCOMPANY-MNT () [VK Cloud Solutions VK Hosting]
185.86.144.0/23
# NET-Name: 185.86.146.0/23 VKCS VKCOMPANY-MNT () [VK Cloud Solutions VK Hosting]
@@ -1976,6 +2177,8 @@
185.100.106.0/23
# NET-Name: 217.174.188.0/23 ODNOKLASSNIKI-FRONT VKCOMPANY-MNT () [Odnoklassniki Services]
217.174.188.0/23
# NET-Name: 217.174.190.0/23 ODNOKLASSNIKI-FRONT VKCOMPANY-MNT () [Odnoklassniki Services]
217.174.190.0/23
# NET-Name: 84.23.52.0/23 VKCS VKCOMPANY-MNT () [VK Cloud Solutions VK Hosting]
84.23.52.0/23
# NET-Name: 84.23.54.0/23 VKCS VKCOMPANY-MNT () [VK Cloud Solutions VK Hosting]
@@ -2308,3 +2511,21 @@
155.212.192.0/20
# NET-Name: 130.49.224.0/19 RU-NETBRIDGE-19880518 VKCOMPANY-MNT RIPE-NCC-HM-MNT (ORG-LLCn4-RIPE) []
130.49.224.0/19
# NET-Name: 161.104.104.0/21 RU-NETBRIDGE-19920624 VKCOMPANY-MNT RIPE-NCC-HM-MNT (ORG-LLCn4-RIPE) []
161.104.104.0/21
# NET-Name: 161.104.104.0/22 VKCS VKCOMPANY-MNT () [VK Cloud Solutions VK Hosting]
161.104.104.0/22
# NET-Name: 161.104.108.0/22 VKCS VKCOMPANY-MNT () [VK Cloud Solutions VK Hosting]
161.104.108.0/22
# NET-Name: 138.16.240.0/20 RU-NETBRIDGE-19900123 VKCOMPANY-MNT RIPE-NCC-HM-MNT (ORG-LLCn4-RIPE) []
138.16.240.0/20
# NET-Name: 138.16.192.0/20 RU-NETBRIDGE-19900123 VKCOMPANY-MNT RIPE-NCC-HM-MNT (ORG-LLCn4-RIPE) []
138.16.192.0/20
# NET-Name: 138.16.192.0/21 VKCS VKCOMPANY-MNT () [VK Cloud Solutions VK Hosting]
138.16.192.0/21
# NET-Name: 138.16.200.0/21 VKCS VKCOMPANY-MNT () [VK Cloud Solutions VK Hosting]
138.16.200.0/21
# NET-Name: 138.16.240.0/21 VKCS VKCOMPANY-MNT () [VK Cloud Solutions VK Hosting]
138.16.240.0/21
# NET-Name: 138.16.248.0/21 VKCS VKCOMPANY-MNT () [VK Cloud Solutions VK Hosting]
138.16.248.0/21

View File

@@ -1,109 +0,0 @@
# IPTables/IPSet Blacklist Configurations
Auto-generated ipset configuration files for blocking networks and IP addresses with iptables/ip6tables.
## Available Files
### IPv4 Only
- **`blacklist-v4.ipset`** - Contains only IPv4 networks (806 entries)
### IPv6 Only
- **`blacklist-v6.ipset`** - Contains only IPv6 networks (3 entries)
### Mixed IPv4/IPv6
- **`blacklist.ipset`** - Contains both IPv4 and IPv6 sets (809 total entries)
## Usage
### 1. Load the IPSet
```bash
# For IPv4 only
ipset restore < blacklist-v4.ipset
# For IPv6 only
ipset restore < blacklist-v6.ipset
# For both IPv4 and IPv6 (loads both sets)
ipset restore < blacklist.ipset
```
### 2. Apply IPTables Rules
```bash
# For IPv4
iptables -I INPUT -m set --match-set blacklist-v4 src -j DROP
iptables -I FORWARD -m set --match-set blacklist-v4 src -j DROP
# For IPv6
ip6tables -I INPUT -m set --match-set blacklist-v6 src -j DROP
ip6tables -I FORWARD -m set --match-set blacklist-v6 src -j DROP
```
### 3. Persist Rules (Optional)
To make the rules persistent across reboots:
**On Debian/Ubuntu:**
```bash
# Save iptables rules
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
# Save ipset
ipset save > /etc/ipset.conf
```
**On RHEL/CentOS:**
```bash
# Save iptables rules
service iptables save
service ip6tables save
# Save ipset
ipset save > /etc/sysconfig/ipset
```
### 4. Update Existing Sets
To update the blacklist without restarting iptables:
```bash
# Flush and reload
ipset flush blacklist-v4
ipset restore < blacklist-v4.ipset
```
### 5. Remove Sets
```bash
# Remove IPv4 set
ipset flush blacklist-v4
ipset destroy blacklist-v4
# Remove IPv6 set
ipset flush blacklist-v6
ipset destroy blacklist-v6
```
## Performance Benefits
IPSet uses hash tables for O(1) lookup performance, making it ideal for large blacklists:
- Much faster than individual iptables rules
- Minimal CPU overhead
- Supports up to 65536 entries per set (configurable)
- Kernel-level implementation for maximum efficiency
## Automatic Updates
These files are automatically regenerated when the blacklists are updated via the GitHub Actions workflow.
## Source
Generated from the blacklist files in the `blacklists/` directory.

View File

@@ -1,6 +1,6 @@
# IPSet blacklist configuration (IPv4 only)
# Auto-generated from blacklist-v4.txt
# Last updated: 2026-03-24 06:56:56 UTC
# Last updated: 2026-06-30 09:22:08 UTC
#
# Usage:
# 1. Load the ipset:
@@ -15,7 +15,7 @@
# ipset destroy blacklist-v4
#
create blacklist-v4 hash:net family inet hashsize 1135 maxelem 2270
create blacklist-v4 hash:net family inet hashsize 1149 maxelem 2298
add blacklist-v4 109.120.180.0/22
add blacklist-v4 109.120.180.0/23
add blacklist-v4 109.120.182.0/23
@@ -50,6 +50,12 @@ add blacklist-v4 128.140.171.0/24
add blacklist-v4 128.140.172.0/22
add blacklist-v4 128.140.173.0/24
add blacklist-v4 130.49.224.0/19
add blacklist-v4 138.16.192.0/20
add blacklist-v4 138.16.192.0/21
add blacklist-v4 138.16.200.0/21
add blacklist-v4 138.16.240.0/20
add blacklist-v4 138.16.240.0/21
add blacklist-v4 138.16.248.0/21
add blacklist-v4 145.255.238.240/28
add blacklist-v4 146.185.208.0/22
add blacklist-v4 146.185.208.0/23
@@ -59,8 +65,12 @@ add blacklist-v4 146.185.240.0/23
add blacklist-v4 146.185.242.0/23
add blacklist-v4 149.62.55.240/30
add blacklist-v4 155.212.192.0/20
add blacklist-v4 161.104.104.0/21
add blacklist-v4 161.104.104.0/22
add blacklist-v4 161.104.108.0/22
add blacklist-v4 176.109.0.0/21
add blacklist-v4 176.112.168.0/21
add blacklist-v4 176.116.112.0/22
add blacklist-v4 176.116.96.0/20
add blacklist-v4 178.16.156.148/30
add blacklist-v4 178.17.176.0/23
@@ -75,6 +85,10 @@ add blacklist-v4 178.22.89.64/26
add blacklist-v4 178.22.94.0/23
add blacklist-v4 178.237.16.0/20
add blacklist-v4 178.237.16.0/21
add blacklist-v4 178.237.16.0/24
add blacklist-v4 178.237.17.0/24
add blacklist-v4 178.237.18.0/24
add blacklist-v4 178.237.19.0/24
add blacklist-v4 178.237.206.0/24
add blacklist-v4 178.237.21.0/24
add blacklist-v4 178.237.22.0/24
@@ -83,7 +97,6 @@ add blacklist-v4 178.237.24.0/24
add blacklist-v4 178.237.240.0/20
add blacklist-v4 178.237.248.0/21
add blacklist-v4 178.237.28.0/24
add blacklist-v4 178.237.29.0/24
add blacklist-v4 178.237.30.0/23
add blacklist-v4 178.248.232.137/32
add blacklist-v4 178.248.232.60/32
@@ -242,7 +255,6 @@ add blacklist-v4 195.144.226.224/28
add blacklist-v4 195.144.232.144/30
add blacklist-v4 195.144.240.128/28
add blacklist-v4 195.149.110.0/24
add blacklist-v4 195.151.25.48/29
add blacklist-v4 195.16.55.224/27
add blacklist-v4 195.162.36.64/28
add blacklist-v4 195.170.218.24/29
@@ -391,7 +403,6 @@ add blacklist-v4 212.48.54.80/30
add blacklist-v4 212.48.54.84/30
add blacklist-v4 212.48.54.92/30
add blacklist-v4 212.48.54.96/30
add blacklist-v4 212.49.107.224/27
add blacklist-v4 212.49.124.0/26
add blacklist-v4 212.57.133.0/24
add blacklist-v4 212.57.159.0/24
@@ -471,7 +482,9 @@ add blacklist-v4 217.106.203.240/29
add blacklist-v4 217.106.203.88/29
add blacklist-v4 217.106.93.192/26
add blacklist-v4 217.106.95.112/28
add blacklist-v4 217.107.0.0/18
add blacklist-v4 217.107.200.0/21
add blacklist-v4 217.107.208.0/20
add blacklist-v4 217.107.5.112/29
add blacklist-v4 217.107.5.16/29
add blacklist-v4 217.107.5.24/29
@@ -487,8 +500,10 @@ add blacklist-v4 217.16.16.0/20
add blacklist-v4 217.16.16.0/21
add blacklist-v4 217.16.24.0/21
add blacklist-v4 217.172.18.0/23
add blacklist-v4 217.172.20.0/22
add blacklist-v4 217.174.188.0/22
add blacklist-v4 217.174.188.0/23
add blacklist-v4 217.174.190.0/23
add blacklist-v4 217.195.92.16/28
add blacklist-v4 217.195.93.144/29
add blacklist-v4 217.195.94.200/29
@@ -502,7 +517,10 @@ add blacklist-v4 217.20.156.0/23
add blacklist-v4 217.20.158.0/24
add blacklist-v4 217.20.159.0/24
add blacklist-v4 217.20.86.128/26
add blacklist-v4 217.20.86.192/27
add blacklist-v4 217.20.86.224/29
add blacklist-v4 217.20.86.232/29
add blacklist-v4 217.20.86.240/28
add blacklist-v4 217.23.88.168/29
add blacklist-v4 217.23.88.248/29
add blacklist-v4 217.27.142.176/30
@@ -536,6 +554,7 @@ add blacklist-v4 45.84.130.0/23
add blacklist-v4 46.20.70.160/28
add blacklist-v4 46.228.0.232/29
add blacklist-v4 46.29.152.0/22
add blacklist-v4 46.29.156.0/23
add blacklist-v4 46.46.142.160/28
add blacklist-v4 46.46.148.40/29
add blacklist-v4 46.47.197.128/30
@@ -638,7 +657,6 @@ add blacklist-v4 78.37.69.160/27
add blacklist-v4 78.37.84.120/29
add blacklist-v4 78.37.97.88/29
add blacklist-v4 79.133.74.160/30
add blacklist-v4 79.133.74.168/30
add blacklist-v4 79.133.75.176/30
add blacklist-v4 79.133.75.44/30
add blacklist-v4 79.137.132.0/24
@@ -647,8 +665,6 @@ add blacklist-v4 79.137.132.128/25
add blacklist-v4 79.137.139.0/24
add blacklist-v4 79.137.139.0/25
add blacklist-v4 79.137.139.128/25
add blacklist-v4 79.137.140.0/24
add blacklist-v4 79.137.142.0/24
add blacklist-v4 79.137.157.0/24
add blacklist-v4 79.137.157.0/25
add blacklist-v4 79.137.157.128/25
@@ -1002,9 +1018,6 @@ add blacklist-v4 91.215.168.0/22
add blacklist-v4 91.217.34.0/23
add blacklist-v4 91.219.192.0/22
add blacklist-v4 91.219.224.0/22
add blacklist-v4 91.221.140.0/23
add blacklist-v4 91.221.140.0/24
add blacklist-v4 91.221.141.0/24
add blacklist-v4 91.226.250.0/24
add blacklist-v4 91.227.32.0/24
add blacklist-v4 91.231.132.0/22
@@ -1113,6 +1126,7 @@ add blacklist-v4 95.167.5.64/28
add blacklist-v4 95.167.5.80/28
add blacklist-v4 95.167.54.76/30
add blacklist-v4 95.167.59.244/30
add blacklist-v4 95.167.59.248/30
add blacklist-v4 95.167.64.20/30
add blacklist-v4 95.167.68.216/29
add blacklist-v4 95.167.69.116/30

View File

@@ -1,26 +1,25 @@
# IPSet blacklist configuration (IPv6 only)
# Auto-generated from blacklist-v6.txt
# Last updated: 2026-03-24 06:56:56 UTC
# Last updated: 2026-06-30 09:22:08 UTC
#
# Usage:
# 1. Load the ipset:
# ipset restore < blacklist-v6.ipset
#
# 2. Use with iptables/ip6tables:
# iptables -I INPUT -m set --match-set blacklist-v6 src -m conntrack --ctstate NEW -j DROP
# iptables -I FORWARD -m set --match-set blacklist-v6 src -m conntrack --ctstate NEW -j DROP
# ip6tables -I INPUT -m set --match-set blacklist-v6 src -m conntrack --ctstate NEW -j DROP
# ip6tables -I FORWARD -m set --match-set blacklist-v6 src -m conntrack --ctstate NEW -j DROP
#
# 3. To flush/delete the set:
# ipset flush blacklist-v6
# ipset destroy blacklist-v6
#
create blacklist-v6 hash:net family inet6 hashsize 1024 maxelem 44
create blacklist-v6 hash:net family inet6 hashsize 1024 maxelem 42
add blacklist-v6 2a00:1148::/29
add blacklist-v6 2a00:1148::/32
add blacklist-v6 2a00:46e0:2::/48
add blacklist-v6 2a00:46e0::/32
add blacklist-v6 2a00:a300::/32
add blacklist-v6 2a00:b4c0::/32
add blacklist-v6 2a00:bdc0:8000::/34
add blacklist-v6 2a00:bdc0::/33

View File

@@ -0,0 +1,222 @@
# IPSet blacklist configuration (VK names, IPv4 only)
# Auto-generated from blacklist-vk-v4.txt
# Last updated: 2026-06-30 09:22:08 UTC
#
# Usage:
# 1. Load the ipset:
# ipset restore < blacklist-vk-v4.ipset
#
# 2. Use with iptables/ip6tables:
# iptables -I OUTPUT -m set --match-set blacklist-vk-v4 dst -j REJECT
# iptables -I FORWARD -m set --match-set blacklist-vk-v4 dst -j REJECT
#
# 3. To flush/delete the set:
# ipset flush blacklist-vk-v4
# ipset destroy blacklist-vk-v4
#
create blacklist-vk-v4 hash:net family inet hashsize 1024 maxelem 408
add blacklist-vk-v4 109.120.180.0/22
add blacklist-vk-v4 109.120.188.0/22
add blacklist-vk-v4 128.140.168.0/21
add blacklist-vk-v4 128.140.168.0/23
add blacklist-vk-v4 128.140.170.0/24
add blacklist-vk-v4 128.140.171.0/24
add blacklist-vk-v4 128.140.172.0/22
add blacklist-vk-v4 130.49.224.0/19
add blacklist-vk-v4 138.16.192.0/20
add blacklist-vk-v4 138.16.240.0/20
add blacklist-vk-v4 146.185.208.0/22
add blacklist-vk-v4 146.185.240.0/22
add blacklist-vk-v4 155.212.192.0/20
add blacklist-vk-v4 161.104.104.0/21
add blacklist-vk-v4 176.112.168.0/21
add blacklist-vk-v4 178.22.88.0/21
add blacklist-vk-v4 178.22.89.64/26
add blacklist-vk-v4 178.22.94.0/23
add blacklist-vk-v4 178.237.16.0/20
add blacklist-vk-v4 178.237.16.0/21
add blacklist-vk-v4 178.237.24.0/22
add blacklist-vk-v4 178.237.30.0/23
add blacklist-vk-v4 185.100.104.0/22
add blacklist-vk-v4 185.100.104.0/23
add blacklist-vk-v4 185.100.106.0/23
add blacklist-vk-v4 185.130.112.0/22
add blacklist-vk-v4 185.131.68.0/22
add blacklist-vk-v4 185.16.148.0/22
add blacklist-vk-v4 185.16.148.0/23
add blacklist-vk-v4 185.16.150.0/23
add blacklist-vk-v4 185.16.244.0/22
add blacklist-vk-v4 185.16.244.0/23
add blacklist-vk-v4 185.16.246.0/23
add blacklist-vk-v4 185.180.200.0/22
add blacklist-vk-v4 185.187.63.0/24
add blacklist-vk-v4 185.187.63.0/25
add blacklist-vk-v4 185.187.63.128/25
add blacklist-vk-v4 185.226.52.0/22
add blacklist-vk-v4 185.226.52.0/23
add blacklist-vk-v4 185.226.54.0/23
add blacklist-vk-v4 185.241.192.0/22
add blacklist-vk-v4 185.29.128.0/22
add blacklist-vk-v4 185.29.130.0/24
add blacklist-vk-v4 185.32.248.0/22
add blacklist-vk-v4 185.32.248.0/23
add blacklist-vk-v4 185.32.250.0/23
add blacklist-vk-v4 185.5.136.0/22
add blacklist-vk-v4 185.5.136.0/23
add blacklist-vk-v4 185.5.138.0/23
add blacklist-vk-v4 185.6.244.0/22
add blacklist-vk-v4 185.6.244.0/23
add blacklist-vk-v4 185.6.246.0/23
add blacklist-vk-v4 185.86.144.0/22
add blacklist-vk-v4 188.93.56.0/21
add blacklist-vk-v4 188.93.56.0/24
add blacklist-vk-v4 188.93.57.0/24
add blacklist-vk-v4 188.93.58.0/24
add blacklist-vk-v4 188.93.60.0/24
add blacklist-vk-v4 188.93.61.0/24
add blacklist-vk-v4 188.93.62.0/24
add blacklist-vk-v4 193.203.40.0/22
add blacklist-vk-v4 194.84.16.12/30
add blacklist-vk-v4 195.211.20.0/22
add blacklist-vk-v4 195.211.22.0/24
add blacklist-vk-v4 195.211.23.0/24
add blacklist-vk-v4 195.239.247.0/24
add blacklist-vk-v4 213.219.212.0/22
add blacklist-vk-v4 217.174.188.0/22
add blacklist-vk-v4 217.174.188.0/23
add blacklist-vk-v4 217.174.190.0/23
add blacklist-vk-v4 217.20.144.0/20
add blacklist-vk-v4 217.20.144.0/22
add blacklist-vk-v4 217.20.148.0/24
add blacklist-vk-v4 217.20.149.0/24
add blacklist-vk-v4 217.20.150.0/23
add blacklist-vk-v4 217.20.152.0/22
add blacklist-vk-v4 217.20.156.0/23
add blacklist-vk-v4 217.20.158.0/24
add blacklist-vk-v4 217.20.159.0/24
add blacklist-vk-v4 217.69.128.0/20
add blacklist-vk-v4 217.69.128.0/21
add blacklist-vk-v4 217.69.136.0/21
add blacklist-vk-v4 37.139.32.0/22
add blacklist-vk-v4 37.139.40.0/22
add blacklist-vk-v4 45.136.20.0/22
add blacklist-vk-v4 45.136.20.0/23
add blacklist-vk-v4 45.136.22.0/23
add blacklist-vk-v4 45.84.128.0/22
add blacklist-vk-v4 45.84.128.0/23
add blacklist-vk-v4 45.84.130.0/23
add blacklist-vk-v4 5.101.40.0/22
add blacklist-vk-v4 5.101.40.0/23
add blacklist-vk-v4 5.101.42.0/23
add blacklist-vk-v4 5.181.60.0/22
add blacklist-vk-v4 5.181.60.0/24
add blacklist-vk-v4 5.181.61.0/24
add blacklist-vk-v4 5.181.62.0/23
add blacklist-vk-v4 5.188.140.0/22
add blacklist-vk-v4 5.61.16.0/21
add blacklist-vk-v4 5.61.16.0/22
add blacklist-vk-v4 5.61.20.0/22
add blacklist-vk-v4 5.61.232.0/21
add blacklist-vk-v4 5.61.232.0/22
add blacklist-vk-v4 5.61.236.0/23
add blacklist-vk-v4 5.61.238.0/24
add blacklist-vk-v4 5.61.239.0/27
add blacklist-vk-v4 5.61.239.128/25
add blacklist-vk-v4 5.61.239.40/29
add blacklist-vk-v4 5.61.239.48/28
add blacklist-vk-v4 5.61.239.64/26
add blacklist-vk-v4 62.217.160.0/20
add blacklist-vk-v4 62.217.160.0/21
add blacklist-vk-v4 62.217.168.0/21
add blacklist-vk-v4 79.137.132.0/24
add blacklist-vk-v4 79.137.132.0/25
add blacklist-vk-v4 79.137.132.128/25
add blacklist-vk-v4 79.137.139.0/24
add blacklist-vk-v4 79.137.139.0/25
add blacklist-vk-v4 79.137.139.128/25
add blacklist-vk-v4 79.137.157.0/25
add blacklist-vk-v4 79.137.157.128/25
add blacklist-vk-v4 79.137.164.0/24
add blacklist-vk-v4 79.137.164.0/25
add blacklist-vk-v4 79.137.164.128/25
add blacklist-vk-v4 79.137.167.0/24
add blacklist-vk-v4 79.137.167.0/25
add blacklist-vk-v4 79.137.167.128/25
add blacklist-vk-v4 79.137.174.0/23
add blacklist-vk-v4 79.137.180.0/24
add blacklist-vk-v4 79.137.180.0/25
add blacklist-vk-v4 79.137.180.128/25
add blacklist-vk-v4 79.137.240.0/21
add blacklist-vk-v4 79.137.240.0/22
add blacklist-vk-v4 79.137.244.0/22
add blacklist-vk-v4 81.177.12.0/24
add blacklist-vk-v4 81.177.31.64/26
add blacklist-vk-v4 83.166.232.0/21
add blacklist-vk-v4 83.166.248.0/21
add blacklist-vk-v4 83.217.216.0/22
add blacklist-vk-v4 83.222.28.0/22
add blacklist-vk-v4 84.23.52.0/22
add blacklist-vk-v4 85.114.31.108/30
add blacklist-vk-v4 85.192.32.0/22
add blacklist-vk-v4 85.198.106.0/24
add blacklist-vk-v4 85.198.107.0/24
add blacklist-vk-v4 87.239.104.0/21
add blacklist-vk-v4 87.240.128.0/18
add blacklist-vk-v4 87.240.128.0/19
add blacklist-vk-v4 87.240.160.0/19
add blacklist-vk-v4 87.242.112.0/22
add blacklist-vk-v4 89.208.196.0/22
add blacklist-vk-v4 89.208.208.0/22
add blacklist-vk-v4 89.208.216.0/21
add blacklist-vk-v4 89.208.228.0/22
add blacklist-vk-v4 89.208.84.0/22
add blacklist-vk-v4 89.221.228.0/22
add blacklist-vk-v4 89.221.232.0/21
add blacklist-vk-v4 90.156.148.0/22
add blacklist-vk-v4 90.156.212.0/22
add blacklist-vk-v4 90.156.216.0/22
add blacklist-vk-v4 90.156.232.0/21
add blacklist-vk-v4 91.231.132.0/22
add blacklist-vk-v4 91.237.76.0/24
add blacklist-vk-v4 93.153.255.84/30
add blacklist-vk-v4 93.186.224.0/20
add blacklist-vk-v4 93.186.224.0/21
add blacklist-vk-v4 93.186.232.0/21
add blacklist-vk-v4 94.100.176.0/20
add blacklist-vk-v4 94.100.176.0/21
add blacklist-vk-v4 94.100.184.0/21
add blacklist-vk-v4 94.139.244.0/22
add blacklist-vk-v4 95.142.192.0/20
add blacklist-vk-v4 95.142.192.0/21
add blacklist-vk-v4 95.142.200.0/21
add blacklist-vk-v4 95.163.180.0/22
add blacklist-vk-v4 95.163.208.0/21
add blacklist-vk-v4 95.163.216.0/22
add blacklist-vk-v4 95.163.216.0/23
add blacklist-vk-v4 95.163.218.0/23
add blacklist-vk-v4 95.163.248.0/21
add blacklist-vk-v4 95.163.252.0/23
add blacklist-vk-v4 95.163.254.0/23
add blacklist-vk-v4 95.163.32.0/19
add blacklist-vk-v4 95.163.32.0/22
add blacklist-vk-v4 95.163.36.0/22
add blacklist-vk-v4 95.163.40.0/21
add blacklist-vk-v4 95.163.48.0/20
add blacklist-vk-v4 95.213.0.0/17
add blacklist-vk-v4 95.213.0.0/20
add blacklist-vk-v4 95.213.16.0/21
add blacklist-vk-v4 95.213.24.0/23
add blacklist-vk-v4 95.213.26.0/24
add blacklist-vk-v4 95.213.27.0/24
add blacklist-vk-v4 95.213.28.0/24
add blacklist-vk-v4 95.213.29.0/24
add blacklist-vk-v4 95.213.30.0/24
add blacklist-vk-v4 95.213.31.0/24
add blacklist-vk-v4 95.213.32.0/24
add blacklist-vk-v4 95.213.33.0/24
add blacklist-vk-v4 95.213.34.0/23
add blacklist-vk-v4 95.213.36.0/22
add blacklist-vk-v4 95.213.40.0/21
add blacklist-vk-v4 95.213.48.0/20
add blacklist-vk-v4 95.213.64.0/18

View File

@@ -0,0 +1,21 @@
# IPSet blacklist configuration (VK names, IPv6 only)
# Auto-generated from blacklist-vk-v6.txt
# Last updated: 2026-06-30 09:22:08 UTC
#
# Usage:
# 1. Load the ipset:
# ipset restore < blacklist-vk-v6.ipset
#
# 2. Use with iptables/ip6tables:
# ip6tables -I OUTPUT -m set --match-set blacklist-vk-v6 dst -j REJECT
# ip6tables -I FORWARD -m set --match-set blacklist-vk-v6 dst -j REJECT
#
# 3. To flush/delete the set:
# ipset flush blacklist-vk-v6
# ipset destroy blacklist-vk-v6
#
create blacklist-vk-v6 hash:net family inet6 hashsize 1024 maxelem 6
add blacklist-vk-v6 2a00:1148::/29
add blacklist-vk-v6 2a00:b4c0::/29
add blacklist-vk-v6 2a00:bdc0::/29

File diff suppressed because it is too large Load Diff

View File

@@ -1,185 +1,52 @@
# nftables Blacklist Configuration
# nftables blacklists
This folder contains nftables blacklist configurations generated from Russian government agency network lists.
Short: ready-to-use nftables set files (general and VK-only, separated by IPv4/IPv6).
## Available Files
## Download links
- `blacklist.nft` - Mixed IPv4/IPv6 blacklist (**daily generated**)
- `blacklist-v4.nft` - IPv4-only blacklist (**daily generated**)
- `blacklist-v6.nft` - IPv6-only blacklist (**daily generated**)
- https://raw.githubusercontent.com/C24Be/AS_Network_List/refs/heads/main/blacklists_nftables/blacklist.nft
- https://raw.githubusercontent.com/C24Be/AS_Network_List/refs/heads/main/blacklists_nftables/blacklist-v4.nft
- https://raw.githubusercontent.com/C24Be/AS_Network_List/refs/heads/main/blacklists_nftables/blacklist-v6.nft
- https://raw.githubusercontent.com/C24Be/AS_Network_List/refs/heads/main/blacklists_nftables/blacklist-vk.nft
- https://raw.githubusercontent.com/C24Be/AS_Network_List/refs/heads/main/blacklists_nftables/blacklist-vk-v4.nft
- https://raw.githubusercontent.com/C24Be/AS_Network_List/refs/heads/main/blacklists_nftables/blacklist-vk-v6.nft
## Quick Start
## How to use
### Download and Load
````bash
# Download the blacklist
wget https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_nftables/blacklist.nft
### 1) Protect VM from incoming connections (general blacklists)
# Load the configuration
Load either mixed or split general set files:
```bash
sudo nft -f blacklist.nft
# or:
sudo nft -f blacklist-v4.nft
sudo nft -f blacklist-v6.nft
```
# Verify it's loaded
sudo nft list ruleset
````
Apply rules for inbound traffic to the VM:
### Automatic Updates
```bash
sudo nft add chain inet filter input '{ type filter hook input priority 0; policy accept; }'
sudo nft add rule inet filter input ip saddr @blacklist_v4 counter reject
sudo nft add rule inet filter input ip6 saddr @blacklist_v6 counter reject
```
Add to crontab for daily updates:
````bash
0 2 * * * wget -O /etc/nftables.d/blacklist.nft https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_nftables/blacklist.nft && nft -f /etc/nftables.d/blacklist.nft
````
### 2) Block VK outbound traffic for VPN clients via NAT/FORWARD
## Configuration Details
Load either mixed or split VK set files:
The generated nftables configuration uses:
- **Sets with interval flag** for efficient CIDR matching
- **Named sets** (`blacklist_v4` and `blacklist_v6`) for easy management
- **Counter** directive to track dropped packets
- **Stateful filtering** to allow established connections
```bash
sudo nft -f blacklist-vk.nft
# or:
sudo nft -f blacklist-vk-v4.nft
sudo nft -f blacklist-vk-v6.nft
```
### Configuration Structure
table inet filter {
set blacklist_v4 {
type ipv4_addr
flags interval
elements = { 1.2.3.0/24, 5.6.7.0/24, ... }
}
set blacklist_v6 {
type ipv6_addr
flags interval
elements = { 2001:db8::/32, ... }
}
Apply rules for forwarded client traffic (replace `<VPN_IFACE>`):
chain input {
type filter hook input priority 0;
policy accept;
ct state { established, related } accept
ip saddr @blacklist_v4 counter drop
ip6 saddr @blacklist_v6 counter drop
}
}
## Integration Options
### Option 1: Standalone Configuration
Load the blacklist as a complete ruleset:
````bash
sudo nft -f blacklist.nft
````
### Option 2: Include in Existing Configuration
If you have an existing nftables configuration:
1. Copy only the set definitions from the generated file
2. Add set lookups to your existing input chain:
````bash
ip saddr @blacklist_v4 counter drop
ip6 saddr @blacklist_v6 counter drop
````
### Option 3: Persistent Configuration
For systemd-based systems:
````bash
# Copy to nftables config directory
sudo cp blacklist.nft /etc/nftables.d/
# Edit /etc/nftables.conf to include:
# include "/etc/nftables.d/blacklist.nft"
# Enable and restart
sudo systemctl enable nftables
sudo systemctl restart nftables
````
## Checking IPs Against the Blacklist
Use the `check_nft_blacklist.py` script to verify if an IP is blocked:
````bash
# Check an IPv4 address
python3 check_nft_blacklist.py blacklist.nft 192.168.1.1
# Check an IPv6 address
python3 check_nft_blacklist.py blacklist.nft 2001:db8::1
````
## Monitoring
### View Dropped Packets
````bash
# View all rules with counters
sudo nft list chain inet filter input -a
# Monitor in real-time
sudo nft monitor
````
### Check Set Contents
````bash
# View IPv4 blacklist
sudo nft list set inet filter blacklist_v4
# View IPv6 blacklist
sudo nft list set inet filter blacklist_v6
````
## Advantages of nftables
- **Better Performance**: O(1) lookup time with sets vs O(n) for sequential rules
- **Lower Memory Usage**: More efficient than iptables for large rulesets
- **Atomic Updates**: All rules updated in a single transaction
- **Modern Syntax**: Cleaner, more readable configuration
- **Unified Tool**: Single tool for IPv4, IPv6, and ARP filtering
## File Format Comparison
| Format | Use Case | Performance | Memory |
|--------|----------|-------------|--------|
| **nftables** | Modern firewalls | Excellent | Low |
| **iptables** | Legacy systems | Good | Medium |
| **nginx** | Web layer | Good | Low |
## Troubleshooting
### Configuration Won't Load
````bash
# Check syntax
sudo nft -c -f blacklist.nft
# View detailed errors
sudo nft -f blacklist.nft 2>&1 | less
````
### Rules Not Blocking Traffic
````bash
# Verify sets are populated
sudo nft list set inet filter blacklist_v4 | wc -l
# Check rule priority
sudo nft list chain inet filter input
# Test with logging temporarily
sudo nft add rule inet filter input ip saddr @blacklist_v4 log prefix "BLOCKED: "
````
### Performance Issues
If experiencing performance problems with very large sets:
1. Consider splitting into multiple smaller sets
2. Use `blacklist-v4.nft` or `blacklist-v6.nft` if only one protocol is needed
3. Ensure kernel supports nftables fully (Linux 4.0+)
## Additional Resources
- [nftables Wiki](https://wiki.nftables.org/)
- [nftables Quick Reference](https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_10_minutes)
- [Netfilter Documentation](https://www.netfilter.org/documentation/)
## Contributing
Found an issue or have suggestions? Please open an issue or submit a pull request!
```bash
sudo nft add chain inet filter forward '{ type filter hook forward priority 0; policy accept; }'
sudo nft add rule inet filter forward iifname "<VPN_IFACE>" ip daddr @blacklist_vk_v4 counter reject
sudo nft add rule inet filter forward iifname "<VPN_IFACE>" ip6 daddr @blacklist_vk_v6 counter reject
```

View File

@@ -1,7 +1,14 @@
# Autogenerated nftables blacklist
# Generated: 2026-03-24T06:56:56.649518Z
# Generated: 2026-06-30T09:22:08.990919Z
# Source: /tmp/blacklist-v4.txt
# IPv4: 804, IPv6: 0
# IPv4: 800, IPv6: 0
#
# Usage:
# sudo nft -f <this-file>
# # VM protection from incoming blacklist sources
# sudo nft add chain inet filter input '{ type filter hook input priority 0; policy accept; }'
# sudo nft add rule inet filter input ip saddr @blacklist_v4 counter reject
# sudo nft add rule inet filter input ip6 saddr @blacklist_v6 counter reject
table inet filter {
@@ -28,6 +35,7 @@ table inet filter {
45.136.20.0/22,
46.20.70.160/28,
46.29.152.0/22,
46.29.156.0/23,
46.46.142.160/28,
46.46.148.40/29,
46.47.197.128/30,
@@ -107,13 +115,10 @@ table inet filter {
78.108.200.0/24,
78.109.140.112/29,
79.133.74.160/30,
79.133.74.168/30,
79.133.75.44/30,
79.133.75.176/30,
79.137.132.0/24,
79.137.139.0/24,
79.137.140.0/24,
79.137.142.0/24,
79.137.157.0/24,
79.137.164.0/24,
79.137.167.0/24,
@@ -388,7 +393,6 @@ table inet filter {
91.217.34.0/23,
91.219.192.0/22,
91.219.224.0/22,
91.221.140.0/23,
91.226.250.0/24,
91.227.32.0/24,
91.231.132.0/22,
@@ -455,6 +459,7 @@ table inet filter {
95.167.29.104/29,
95.167.54.76/30,
95.167.59.244/30,
95.167.59.248/30,
95.167.64.20/30,
95.167.68.216/29,
95.167.69.116/30,
@@ -505,14 +510,18 @@ table inet filter {
109.248.197.0/24,
128.140.168.0/21,
130.49.224.0/19,
138.16.192.0/20,
138.16.240.0/20,
145.255.238.240/28,
146.185.208.0/22,
146.185.240.0/22,
149.62.55.240/30,
155.212.192.0/20,
161.104.104.0/21,
176.109.0.0/21,
176.112.168.0/21,
176.116.96.0/20,
176.116.112.0/22,
178.16.156.148/30,
178.17.176.0/20,
178.20.234.224/29,
@@ -640,7 +649,6 @@ table inet filter {
195.144.232.144/30,
195.144.240.128/28,
195.149.110.0/24,
195.151.25.48/29,
195.162.36.64/28,
195.170.218.24/29,
195.170.218.88/29,
@@ -705,7 +713,6 @@ table inet filter {
212.48.134.192/26,
212.48.138.240/28,
212.48.141.160/27,
212.49.107.224/27,
212.49.124.0/26,
212.57.133.0/24,
212.57.159.0/24,
@@ -787,8 +794,7 @@ table inet filter {
213.243.106.48/28,
213.243.116.0/24,
217.16.16.0/20,
217.20.86.128/26,
217.20.86.232/29,
217.20.86.128/25,
217.20.144.0/20,
217.23.88.168/29,
217.23.88.248/29,
@@ -798,17 +804,14 @@ table inet filter {
217.67.177.208/29,
217.69.128.0/20,
217.106.0.0/16,
217.107.5.8/29,
217.107.5.16/28,
217.107.5.40/29,
217.107.5.80/28,
217.107.5.96/29,
217.107.5.112/29,
217.107.0.0/18,
217.107.200.0/21,
217.107.208.0/20,
217.147.23.112/28,
217.148.216.156/30,
217.148.220.160/29,
217.172.18.0/23,
217.172.20.0/22,
217.174.188.0/22,
217.195.92.16/28,
217.195.93.144/29,
@@ -821,12 +824,4 @@ table inet filter {
flags interval
}
chain input {
type filter hook input priority 0;
policy accept;
ct state { established, related } accept
ip saddr @blacklist_v4 counter drop
}
}

View File

@@ -1,7 +1,14 @@
# Autogenerated nftables blacklist
# Generated: 2026-03-24T06:56:56.681422Z
# Generated: 2026-06-30T09:22:09.025757Z
# Source: /tmp/blacklist-v6.txt
# IPv4: 0, IPv6: 17
# IPv4: 0, IPv6: 16
#
# Usage:
# sudo nft -f <this-file>
# # VM protection from incoming blacklist sources
# sudo nft add chain inet filter input '{ type filter hook input priority 0; policy accept; }'
# sudo nft add rule inet filter input ip saddr @blacklist_v4 counter reject
# sudo nft add rule inet filter input ip6 saddr @blacklist_v6 counter reject
table inet filter {
@@ -16,7 +23,6 @@ table inet filter {
elements = {
2a00:1148::/29,
2a00:46e0::/32,
2a00:a300::/32,
2a00:b4c0::/32,
2a00:bdc0::/33,
2a00:bdc0:8000::/34,
@@ -34,12 +40,4 @@ table inet filter {
}
}
chain input {
type filter hook input priority 0;
policy accept;
ct state { established, related } accept
ip6 saddr @blacklist_v6 counter drop
}
}

View File

@@ -0,0 +1,118 @@
# Autogenerated nftables blacklist
# Generated: 2026-06-30T09:22:09.089531Z
# Source: /home/runner/work/AS_Network_List/AS_Network_List/blacklists/blacklist-vk-v4.txt
# IPv4: 91, IPv6: 0
#
# Usage:
# sudo nft -f <this-file>
# # VK egress blocking for VPN clients via NAT/FORWARD
# sudo nft add chain inet filter forward '{ type filter hook forward priority 0; policy accept; }'
# sudo nft add rule inet filter forward iifname "<VPN_IFACE>" ip daddr @blacklist_vk_v4 counter reject
# sudo nft add rule inet filter forward iifname "<VPN_IFACE>" ip6 daddr @blacklist_vk_v6 counter reject
table inet filter {
set blacklist_vk_v4 {
type ipv4_addr
flags interval
elements = {
5.61.16.0/21,
5.61.232.0/21,
5.101.40.0/22,
5.181.60.0/22,
5.188.140.0/22,
37.139.32.0/22,
37.139.40.0/22,
45.84.128.0/22,
45.136.20.0/22,
62.217.160.0/20,
79.137.132.0/24,
79.137.139.0/24,
79.137.157.0/24,
79.137.164.0/24,
79.137.167.0/24,
79.137.174.0/23,
79.137.180.0/24,
79.137.240.0/21,
81.177.12.0/24,
81.177.31.64/26,
83.166.232.0/21,
83.166.248.0/21,
83.217.216.0/22,
83.222.28.0/22,
84.23.52.0/22,
85.114.31.108/30,
85.192.32.0/22,
85.198.106.0/23,
87.239.104.0/21,
87.240.128.0/18,
87.242.112.0/22,
89.208.84.0/22,
89.208.196.0/22,
89.208.208.0/22,
89.208.216.0/21,
89.208.228.0/22,
89.221.228.0/22,
89.221.232.0/21,
90.156.148.0/22,
90.156.212.0/22,
90.156.216.0/22,
90.156.232.0/21,
91.231.132.0/22,
91.237.76.0/24,
93.153.255.84/30,
93.186.224.0/20,
94.100.176.0/20,
94.139.244.0/22,
95.142.192.0/20,
95.163.32.0/19,
95.163.180.0/22,
95.163.208.0/21,
95.163.216.0/22,
95.163.248.0/21,
95.213.0.0/17,
109.120.180.0/22,
109.120.188.0/22,
128.140.168.0/21,
130.49.224.0/19,
138.16.192.0/20,
138.16.240.0/20,
146.185.208.0/22,
146.185.240.0/22,
155.212.192.0/20,
161.104.104.0/21,
176.112.168.0/21,
178.22.88.0/21,
178.237.16.0/20,
185.5.136.0/22,
185.6.244.0/22,
185.16.148.0/22,
185.16.244.0/22,
185.29.128.0/22,
185.32.248.0/22,
185.86.144.0/22,
185.100.104.0/22,
185.130.112.0/22,
185.131.68.0/22,
185.180.200.0/22,
185.187.63.0/24,
185.226.52.0/22,
185.241.192.0/22,
188.93.56.0/21,
193.203.40.0/22,
194.84.16.12/30,
195.211.20.0/22,
195.239.247.0/24,
213.219.212.0/22,
217.20.144.0/20,
217.69.128.0/20,
217.174.188.0/22
}
}
set blacklist_vk_v6 {
type ipv6_addr
flags interval
}
}

View File

@@ -0,0 +1,30 @@
# Autogenerated nftables blacklist
# Generated: 2026-06-30T09:22:09.119467Z
# Source: /home/runner/work/AS_Network_List/AS_Network_List/blacklists/blacklist-vk-v6.txt
# IPv4: 0, IPv6: 3
#
# Usage:
# sudo nft -f <this-file>
# # VK egress blocking for VPN clients via NAT/FORWARD
# sudo nft add chain inet filter forward '{ type filter hook forward priority 0; policy accept; }'
# sudo nft add rule inet filter forward iifname "<VPN_IFACE>" ip daddr @blacklist_vk_v4 counter reject
# sudo nft add rule inet filter forward iifname "<VPN_IFACE>" ip6 daddr @blacklist_vk_v6 counter reject
table inet filter {
set blacklist_vk_v4 {
type ipv4_addr
flags interval
}
set blacklist_vk_v6 {
type ipv6_addr
flags interval
elements = {
2a00:1148::/29,
2a00:b4c0::/29,
2a00:bdc0::/29
}
}
}

View File

@@ -0,0 +1,123 @@
# Autogenerated nftables blacklist
# Generated: 2026-06-30T09:22:09.057529Z
# Source: /home/runner/work/AS_Network_List/AS_Network_List/blacklists/blacklist-vk.txt
# IPv4: 91, IPv6: 3
#
# Usage:
# sudo nft -f <this-file>
# # VK egress blocking for VPN clients via NAT/FORWARD
# sudo nft add chain inet filter forward '{ type filter hook forward priority 0; policy accept; }'
# sudo nft add rule inet filter forward iifname "<VPN_IFACE>" ip daddr @blacklist_vk_v4 counter reject
# sudo nft add rule inet filter forward iifname "<VPN_IFACE>" ip6 daddr @blacklist_vk_v6 counter reject
table inet filter {
set blacklist_vk_v4 {
type ipv4_addr
flags interval
elements = {
5.61.16.0/21,
5.61.232.0/21,
5.101.40.0/22,
5.181.60.0/22,
5.188.140.0/22,
37.139.32.0/22,
37.139.40.0/22,
45.84.128.0/22,
45.136.20.0/22,
62.217.160.0/20,
79.137.132.0/24,
79.137.139.0/24,
79.137.157.0/24,
79.137.164.0/24,
79.137.167.0/24,
79.137.174.0/23,
79.137.180.0/24,
79.137.240.0/21,
81.177.12.0/24,
81.177.31.64/26,
83.166.232.0/21,
83.166.248.0/21,
83.217.216.0/22,
83.222.28.0/22,
84.23.52.0/22,
85.114.31.108/30,
85.192.32.0/22,
85.198.106.0/23,
87.239.104.0/21,
87.240.128.0/18,
87.242.112.0/22,
89.208.84.0/22,
89.208.196.0/22,
89.208.208.0/22,
89.208.216.0/21,
89.208.228.0/22,
89.221.228.0/22,
89.221.232.0/21,
90.156.148.0/22,
90.156.212.0/22,
90.156.216.0/22,
90.156.232.0/21,
91.231.132.0/22,
91.237.76.0/24,
93.153.255.84/30,
93.186.224.0/20,
94.100.176.0/20,
94.139.244.0/22,
95.142.192.0/20,
95.163.32.0/19,
95.163.180.0/22,
95.163.208.0/21,
95.163.216.0/22,
95.163.248.0/21,
95.213.0.0/17,
109.120.180.0/22,
109.120.188.0/22,
128.140.168.0/21,
130.49.224.0/19,
138.16.192.0/20,
138.16.240.0/20,
146.185.208.0/22,
146.185.240.0/22,
155.212.192.0/20,
161.104.104.0/21,
176.112.168.0/21,
178.22.88.0/21,
178.237.16.0/20,
185.5.136.0/22,
185.6.244.0/22,
185.16.148.0/22,
185.16.244.0/22,
185.29.128.0/22,
185.32.248.0/22,
185.86.144.0/22,
185.100.104.0/22,
185.130.112.0/22,
185.131.68.0/22,
185.180.200.0/22,
185.187.63.0/24,
185.226.52.0/22,
185.241.192.0/22,
188.93.56.0/21,
193.203.40.0/22,
194.84.16.12/30,
195.211.20.0/22,
195.239.247.0/24,
213.219.212.0/22,
217.20.144.0/20,
217.69.128.0/20,
217.174.188.0/22
}
}
set blacklist_vk_v6 {
type ipv6_addr
flags interval
elements = {
2a00:1148::/29,
2a00:b4c0::/29,
2a00:bdc0::/29
}
}
}

View File

@@ -1,7 +1,14 @@
# Autogenerated nftables blacklist
# Generated: 2026-03-24T06:56:56.602107Z
# Generated: 2026-06-30T09:22:08.941410Z
# Source: /home/runner/work/AS_Network_List/AS_Network_List/blacklists/blacklist.txt
# IPv4: 804, IPv6: 17
# IPv4: 800, IPv6: 16
#
# Usage:
# sudo nft -f <this-file>
# # VM protection from incoming blacklist sources
# sudo nft add chain inet filter input '{ type filter hook input priority 0; policy accept; }'
# sudo nft add rule inet filter input ip saddr @blacklist_v4 counter reject
# sudo nft add rule inet filter input ip6 saddr @blacklist_v6 counter reject
table inet filter {
@@ -28,6 +35,7 @@ table inet filter {
45.136.20.0/22,
46.20.70.160/28,
46.29.152.0/22,
46.29.156.0/23,
46.46.142.160/28,
46.46.148.40/29,
46.47.197.128/30,
@@ -107,13 +115,10 @@ table inet filter {
78.108.200.0/24,
78.109.140.112/29,
79.133.74.160/30,
79.133.74.168/30,
79.133.75.44/30,
79.133.75.176/30,
79.137.132.0/24,
79.137.139.0/24,
79.137.140.0/24,
79.137.142.0/24,
79.137.157.0/24,
79.137.164.0/24,
79.137.167.0/24,
@@ -388,7 +393,6 @@ table inet filter {
91.217.34.0/23,
91.219.192.0/22,
91.219.224.0/22,
91.221.140.0/23,
91.226.250.0/24,
91.227.32.0/24,
91.231.132.0/22,
@@ -455,6 +459,7 @@ table inet filter {
95.167.29.104/29,
95.167.54.76/30,
95.167.59.244/30,
95.167.59.248/30,
95.167.64.20/30,
95.167.68.216/29,
95.167.69.116/30,
@@ -505,14 +510,18 @@ table inet filter {
109.248.197.0/24,
128.140.168.0/21,
130.49.224.0/19,
138.16.192.0/20,
138.16.240.0/20,
145.255.238.240/28,
146.185.208.0/22,
146.185.240.0/22,
149.62.55.240/30,
155.212.192.0/20,
161.104.104.0/21,
176.109.0.0/21,
176.112.168.0/21,
176.116.96.0/20,
176.116.112.0/22,
178.16.156.148/30,
178.17.176.0/20,
178.20.234.224/29,
@@ -640,7 +649,6 @@ table inet filter {
195.144.232.144/30,
195.144.240.128/28,
195.149.110.0/24,
195.151.25.48/29,
195.162.36.64/28,
195.170.218.24/29,
195.170.218.88/29,
@@ -705,7 +713,6 @@ table inet filter {
212.48.134.192/26,
212.48.138.240/28,
212.48.141.160/27,
212.49.107.224/27,
212.49.124.0/26,
212.57.133.0/24,
212.57.159.0/24,
@@ -787,8 +794,7 @@ table inet filter {
213.243.106.48/28,
213.243.116.0/24,
217.16.16.0/20,
217.20.86.128/26,
217.20.86.232/29,
217.20.86.128/25,
217.20.144.0/20,
217.23.88.168/29,
217.23.88.248/29,
@@ -798,17 +804,14 @@ table inet filter {
217.67.177.208/29,
217.69.128.0/20,
217.106.0.0/16,
217.107.5.8/29,
217.107.5.16/28,
217.107.5.40/29,
217.107.5.80/28,
217.107.5.96/29,
217.107.5.112/29,
217.107.0.0/18,
217.107.200.0/21,
217.107.208.0/20,
217.147.23.112/28,
217.148.216.156/30,
217.148.220.160/29,
217.172.18.0/23,
217.172.20.0/22,
217.174.188.0/22,
217.195.92.16/28,
217.195.93.144/29,
@@ -822,7 +825,6 @@ table inet filter {
elements = {
2a00:1148::/29,
2a00:46e0::/32,
2a00:a300::/32,
2a00:b4c0::/32,
2a00:bdc0::/33,
2a00:bdc0:8000::/34,
@@ -840,13 +842,4 @@ table inet filter {
}
}
chain input {
type filter hook input priority 0;
policy accept;
ct state { established, related } accept
ip saddr @blacklist_v4 counter drop
ip6 saddr @blacklist_v6 counter drop
}
}

View File

View File

@@ -1,302 +1,24 @@
# Nginx Blacklist Configurations
# nginx blacklists
Auto-generated nginx configuration files for blocking networks and IP addresses.
Short: ready-to-use deny lists for nginx (mixed, IPv4-only, and IPv6-only).
## Available Files
## Download links
### Mixed IPv4/IPv6
- https://raw.githubusercontent.com/C24Be/AS_Network_List/refs/heads/main/blacklists_nginx/blacklist.conf
- https://raw.githubusercontent.com/C24Be/AS_Network_List/refs/heads/main/blacklists_nginx/blacklist-v4.conf
- https://raw.githubusercontent.com/C24Be/AS_Network_List/refs/heads/main/blacklists_nginx/blacklist-v6.conf
- **`blacklist.conf`** - Contains both IPv4 and IPv6 deny rules (809 entries)
## How to use
### IPv4 Only
- **`blacklist-v4.conf`** - Contains only IPv4 deny rules (806 entries)
### IPv6 Only
- **`blacklist-v6.conf`** - Contains only IPv6 deny rules (3 entries)
## Usage
### Basic Usage
Include the desired configuration file in your nginx `server` or `location` block:
1. Download one file (`blacklist.conf`, `blacklist-v4.conf`, or `blacklist-v6.conf`).
2. Include it in your `server` or `location` block:
```nginx
server {
listen 80;
server_name example.com;
# Include the blacklist
include /path/to/blacklist.conf;
location / {
# your configuration
}
}
include /etc/nginx/blacklist.conf;
```
### Separate IPv4/IPv6 Files
For more granular control, use separate files:
```nginx
server {
listen 80;
listen [::]:80;
server_name example.com;
# Include both IPv4 and IPv6 blacklists
include /path/to/blacklist-v4.conf;
include /path/to/blacklist-v6.conf;
location / {
# your configuration
}
}
```
### HTTP Block Level
Apply the blacklist globally to all virtual hosts:
```nginx
http {
# Apply blacklist globally
include /path/to/blacklist.conf;
server {
listen 80;
server_name example.com;
# ...
}
server {
listen 80;
server_name another.com;
# ...
}
}
```
### Location Block Level
For selective blocking within specific locations:
```nginx
server {
listen 80;
server_name example.com;
location /admin {
# Apply blacklist only to admin area
include /path/to/blacklist.conf;
# ...
}
location /public {
# Public area without blacklist
# ...
}
}
```
## Testing Configuration
After adding the blacklist, always test your nginx configuration:
3. Test and reload nginx:
```bash
# Test configuration
nginx -t
# Reload nginx if test passes
nginx -s reload
# or
systemctl reload nginx
sudo nginx -t && sudo systemctl reload nginx
```
## Custom Response
By default, denied IPs receive a connection drop. To customize the response:
```nginx
server {
listen 80;
server_name example.com;
# Return custom error page
error_page 403 /403.html;
include /path/to/blacklist.conf;
location = /403.html {
root /usr/share/nginx/html;
internal;
}
}
```
Note: For large blacklists, using `deny` directives (as in these files) is more efficient than `if` statements.
## Performance Considerations
- **Deny directives** are processed in order and stop at the first match
- For optimal performance, most frequently matched IPs should be at the top
- Current files are sorted for consistency
- Nginx handles hundreds of deny rules efficiently
- For very large blacklists (10,000+ entries), consider using:
- Nginx GeoIP2 module for geographic blocking
- nftables/iptables at the firewall level for better performance
- Stream module for TCP/UDP level blocking
## Integration Examples
### Docker Deployment
```dockerfile
FROM nginx:alpine
# Copy blacklist
COPY blacklist.conf /etc/nginx/blacklist.conf
# Copy nginx config that includes the blacklist
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80 443
CMD ["nginx", "-g", "daemon off;"]
```
### Kubernetes ConfigMap
```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-blacklist
data:
blacklist.conf: |
# Include blacklist content here
deny 109.124.119.88/29;
deny 109.124.66.128/30;
# ...
```
### Automated Updates
Set up a cron job to automatically fetch the latest blacklist:
```bash
#!/bin/bash
# /etc/cron.daily/update-nginx-blacklist
# Download latest blacklist
wget -q https://raw.githubusercontent.com/C24Be/AS_Network_List/main/blacklists_nginx/blacklist.conf \
-O /etc/nginx/blacklist.conf.new
# Test nginx configuration
nginx -t -c /etc/nginx/nginx.conf
# If test passes, reload nginx
if [ $? -eq 0 ]; then
mv /etc/nginx/blacklist.conf.new /etc/nginx/blacklist.conf
systemctl reload nginx
echo "Blacklist updated successfully"
else
rm /etc/nginx/blacklist.conf.new
echo "Nginx config test failed, blacklist not updated"
fi
```
## Logging Blocked Requests
To log denied requests:
```nginx
server {
listen 80;
server_name example.com;
# Custom log format for denied IPs
log_format blocked '$remote_addr - $remote_user [$time_local] '
'"$request" 403 0 '
'"$http_referer" "$http_user_agent"';
access_log /var/log/nginx/blocked.log blocked;
include /path/to/blacklist.conf;
location / {
# your configuration
}
}
```
## Monitoring
Check how many IPs are being blocked:
```bash
# Count deny rules
grep -c "deny" /path/to/blacklist.conf
# Check blocked access logs
tail -f /var/log/nginx/blocked.log
# Count blocked requests today
grep "$(date +%d/%b/%Y)" /var/log/nginx/access.log | grep " 403 " | wc -l
```
## Troubleshooting
### Configuration Test Fails
```bash
# Check syntax
nginx -t
# Check for duplicate includes
grep -r "include.*blacklist" /etc/nginx/
# Verify file permissions
ls -l /path/to/blacklist.conf
```
### Legitimate Users Blocked
Check if their IP is in the blacklist:
```bash
grep "YOUR_IP" /path/to/blacklist.conf
```
Whitelist specific IPs before applying the blacklist:
```nginx
server {
listen 80;
server_name example.com;
# Whitelist before blacklist
allow 192.168.1.100; # Trusted IP
# Then apply blacklist
include /path/to/blacklist.conf;
# Deny all others not explicitly allowed
# deny all; # Optional
}
```
## Automatic Updates
These files are automatically regenerated daily when the blacklists are updated via the GitHub Actions workflow.
## Source
Generated from the blacklist files in the `blacklists/` directory by `blacklists_updater_nginx.sh`.
## See Also
- [IPTables/IPSet Format](../blacklists_iptables/README.md) - For firewall-level blocking
- [Text Format](../blacklists/README.md) - For custom integrations
- [Main Repository](https://github.com/C24Be/AS_Network_List) - Complete documentation

View File

@@ -1,6 +1,6 @@
# Nginx blacklist configuration (IPv4 only)
# Auto-generated from blacklist-v4.txt
# Last updated: 2026-03-24 06:56:56 UTC
# Last updated: 2026-06-30 09:22:07 UTC
#
# Usage: Include this file in your nginx server or location block:
# include /path/to/blacklist-v4.conf;
@@ -40,6 +40,12 @@ deny 128.140.171.0/24;
deny 128.140.172.0/22;
deny 128.140.173.0/24;
deny 130.49.224.0/19;
deny 138.16.192.0/20;
deny 138.16.192.0/21;
deny 138.16.200.0/21;
deny 138.16.240.0/20;
deny 138.16.240.0/21;
deny 138.16.248.0/21;
deny 145.255.238.240/28;
deny 146.185.208.0/22;
deny 146.185.208.0/23;
@@ -49,8 +55,12 @@ deny 146.185.240.0/23;
deny 146.185.242.0/23;
deny 149.62.55.240/30;
deny 155.212.192.0/20;
deny 161.104.104.0/21;
deny 161.104.104.0/22;
deny 161.104.108.0/22;
deny 176.109.0.0/21;
deny 176.112.168.0/21;
deny 176.116.112.0/22;
deny 176.116.96.0/20;
deny 178.16.156.148/30;
deny 178.17.176.0/23;
@@ -65,6 +75,10 @@ deny 178.22.89.64/26;
deny 178.22.94.0/23;
deny 178.237.16.0/20;
deny 178.237.16.0/21;
deny 178.237.16.0/24;
deny 178.237.17.0/24;
deny 178.237.18.0/24;
deny 178.237.19.0/24;
deny 178.237.206.0/24;
deny 178.237.21.0/24;
deny 178.237.22.0/24;
@@ -73,7 +87,6 @@ deny 178.237.24.0/24;
deny 178.237.240.0/20;
deny 178.237.248.0/21;
deny 178.237.28.0/24;
deny 178.237.29.0/24;
deny 178.237.30.0/23;
deny 178.248.232.137/32;
deny 178.248.232.60/32;
@@ -232,7 +245,6 @@ deny 195.144.226.224/28;
deny 195.144.232.144/30;
deny 195.144.240.128/28;
deny 195.149.110.0/24;
deny 195.151.25.48/29;
deny 195.16.55.224/27;
deny 195.162.36.64/28;
deny 195.170.218.24/29;
@@ -381,7 +393,6 @@ deny 212.48.54.80/30;
deny 212.48.54.84/30;
deny 212.48.54.92/30;
deny 212.48.54.96/30;
deny 212.49.107.224/27;
deny 212.49.124.0/26;
deny 212.57.133.0/24;
deny 212.57.159.0/24;
@@ -461,7 +472,9 @@ deny 217.106.203.240/29;
deny 217.106.203.88/29;
deny 217.106.93.192/26;
deny 217.106.95.112/28;
deny 217.107.0.0/18;
deny 217.107.200.0/21;
deny 217.107.208.0/20;
deny 217.107.5.112/29;
deny 217.107.5.16/29;
deny 217.107.5.24/29;
@@ -477,8 +490,10 @@ deny 217.16.16.0/20;
deny 217.16.16.0/21;
deny 217.16.24.0/21;
deny 217.172.18.0/23;
deny 217.172.20.0/22;
deny 217.174.188.0/22;
deny 217.174.188.0/23;
deny 217.174.190.0/23;
deny 217.195.92.16/28;
deny 217.195.93.144/29;
deny 217.195.94.200/29;
@@ -492,7 +507,10 @@ deny 217.20.156.0/23;
deny 217.20.158.0/24;
deny 217.20.159.0/24;
deny 217.20.86.128/26;
deny 217.20.86.192/27;
deny 217.20.86.224/29;
deny 217.20.86.232/29;
deny 217.20.86.240/28;
deny 217.23.88.168/29;
deny 217.23.88.248/29;
deny 217.27.142.176/30;
@@ -526,6 +544,7 @@ deny 45.84.130.0/23;
deny 46.20.70.160/28;
deny 46.228.0.232/29;
deny 46.29.152.0/22;
deny 46.29.156.0/23;
deny 46.46.142.160/28;
deny 46.46.148.40/29;
deny 46.47.197.128/30;
@@ -628,7 +647,6 @@ deny 78.37.69.160/27;
deny 78.37.84.120/29;
deny 78.37.97.88/29;
deny 79.133.74.160/30;
deny 79.133.74.168/30;
deny 79.133.75.176/30;
deny 79.133.75.44/30;
deny 79.137.132.0/24;
@@ -637,8 +655,6 @@ deny 79.137.132.128/25;
deny 79.137.139.0/24;
deny 79.137.139.0/25;
deny 79.137.139.128/25;
deny 79.137.140.0/24;
deny 79.137.142.0/24;
deny 79.137.157.0/24;
deny 79.137.157.0/25;
deny 79.137.157.128/25;
@@ -992,9 +1008,6 @@ deny 91.215.168.0/22;
deny 91.217.34.0/23;
deny 91.219.192.0/22;
deny 91.219.224.0/22;
deny 91.221.140.0/23;
deny 91.221.140.0/24;
deny 91.221.141.0/24;
deny 91.226.250.0/24;
deny 91.227.32.0/24;
deny 91.231.132.0/22;
@@ -1103,6 +1116,7 @@ deny 95.167.5.64/28;
deny 95.167.5.80/28;
deny 95.167.54.76/30;
deny 95.167.59.244/30;
deny 95.167.59.248/30;
deny 95.167.64.20/30;
deny 95.167.68.216/29;
deny 95.167.69.116/30;

View File

@@ -1,6 +1,6 @@
# Nginx blacklist configuration (IPv6 only)
# Auto-generated from blacklist-v6.txt
# Last updated: 2026-03-24 06:56:56 UTC
# Last updated: 2026-06-30 09:22:07 UTC
#
# Usage: Include this file in your nginx server or location block:
# include /path/to/blacklist-v6.conf;
@@ -10,7 +10,6 @@ deny 2a00:1148::/29;
deny 2a00:1148::/32;
deny 2a00:46e0:2::/48;
deny 2a00:46e0::/32;
deny 2a00:a300::/32;
deny 2a00:b4c0::/32;
deny 2a00:bdc0:8000::/34;
deny 2a00:bdc0::/33;

View File

@@ -1,6 +1,6 @@
# Nginx blacklist configuration (mixed IPv4/IPv6)
# Auto-generated from blacklist.txt
# Last updated: 2026-03-24 06:56:56 UTC
# Last updated: 2026-06-30 09:22:07 UTC
#
# Usage: Include this file in your nginx server or location block:
# include /path/to/blacklist.conf;
@@ -40,6 +40,12 @@ deny 128.140.171.0/24;
deny 128.140.172.0/22;
deny 128.140.173.0/24;
deny 130.49.224.0/19;
deny 138.16.192.0/20;
deny 138.16.192.0/21;
deny 138.16.200.0/21;
deny 138.16.240.0/20;
deny 138.16.240.0/21;
deny 138.16.248.0/21;
deny 145.255.238.240/28;
deny 146.185.208.0/22;
deny 146.185.208.0/23;
@@ -49,8 +55,12 @@ deny 146.185.240.0/23;
deny 146.185.242.0/23;
deny 149.62.55.240/30;
deny 155.212.192.0/20;
deny 161.104.104.0/21;
deny 161.104.104.0/22;
deny 161.104.108.0/22;
deny 176.109.0.0/21;
deny 176.112.168.0/21;
deny 176.116.112.0/22;
deny 176.116.96.0/20;
deny 178.16.156.148/30;
deny 178.17.176.0/23;
@@ -65,6 +75,10 @@ deny 178.22.89.64/26;
deny 178.22.94.0/23;
deny 178.237.16.0/20;
deny 178.237.16.0/21;
deny 178.237.16.0/24;
deny 178.237.17.0/24;
deny 178.237.18.0/24;
deny 178.237.19.0/24;
deny 178.237.206.0/24;
deny 178.237.21.0/24;
deny 178.237.22.0/24;
@@ -73,7 +87,6 @@ deny 178.237.24.0/24;
deny 178.237.240.0/20;
deny 178.237.248.0/21;
deny 178.237.28.0/24;
deny 178.237.29.0/24;
deny 178.237.30.0/23;
deny 178.248.232.137/32;
deny 178.248.232.60/32;
@@ -232,7 +245,6 @@ deny 195.144.226.224/28;
deny 195.144.232.144/30;
deny 195.144.240.128/28;
deny 195.149.110.0/24;
deny 195.151.25.48/29;
deny 195.16.55.224/27;
deny 195.162.36.64/28;
deny 195.170.218.24/29;
@@ -381,7 +393,6 @@ deny 212.48.54.80/30;
deny 212.48.54.84/30;
deny 212.48.54.92/30;
deny 212.48.54.96/30;
deny 212.49.107.224/27;
deny 212.49.124.0/26;
deny 212.57.133.0/24;
deny 212.57.159.0/24;
@@ -461,7 +472,9 @@ deny 217.106.203.240/29;
deny 217.106.203.88/29;
deny 217.106.93.192/26;
deny 217.106.95.112/28;
deny 217.107.0.0/18;
deny 217.107.200.0/21;
deny 217.107.208.0/20;
deny 217.107.5.112/29;
deny 217.107.5.16/29;
deny 217.107.5.24/29;
@@ -477,8 +490,10 @@ deny 217.16.16.0/20;
deny 217.16.16.0/21;
deny 217.16.24.0/21;
deny 217.172.18.0/23;
deny 217.172.20.0/22;
deny 217.174.188.0/22;
deny 217.174.188.0/23;
deny 217.174.190.0/23;
deny 217.195.92.16/28;
deny 217.195.93.144/29;
deny 217.195.94.200/29;
@@ -492,7 +507,10 @@ deny 217.20.156.0/23;
deny 217.20.158.0/24;
deny 217.20.159.0/24;
deny 217.20.86.128/26;
deny 217.20.86.192/27;
deny 217.20.86.224/29;
deny 217.20.86.232/29;
deny 217.20.86.240/28;
deny 217.23.88.168/29;
deny 217.23.88.248/29;
deny 217.27.142.176/30;
@@ -507,7 +525,6 @@ deny 2a00:1148::/29;
deny 2a00:1148::/32;
deny 2a00:46e0:2::/48;
deny 2a00:46e0::/32;
deny 2a00:a300::/32;
deny 2a00:b4c0::/32;
deny 2a00:bdc0:8000::/34;
deny 2a00:bdc0::/33;
@@ -548,6 +565,7 @@ deny 45.84.130.0/23;
deny 46.20.70.160/28;
deny 46.228.0.232/29;
deny 46.29.152.0/22;
deny 46.29.156.0/23;
deny 46.46.142.160/28;
deny 46.46.148.40/29;
deny 46.47.197.128/30;
@@ -650,7 +668,6 @@ deny 78.37.69.160/27;
deny 78.37.84.120/29;
deny 78.37.97.88/29;
deny 79.133.74.160/30;
deny 79.133.74.168/30;
deny 79.133.75.176/30;
deny 79.133.75.44/30;
deny 79.137.132.0/24;
@@ -659,8 +676,6 @@ deny 79.137.132.128/25;
deny 79.137.139.0/24;
deny 79.137.139.0/25;
deny 79.137.139.128/25;
deny 79.137.140.0/24;
deny 79.137.142.0/24;
deny 79.137.157.0/24;
deny 79.137.157.0/25;
deny 79.137.157.128/25;
@@ -1014,9 +1029,6 @@ deny 91.215.168.0/22;
deny 91.217.34.0/23;
deny 91.219.192.0/22;
deny 91.219.224.0/22;
deny 91.221.140.0/23;
deny 91.221.140.0/24;
deny 91.221.141.0/24;
deny 91.226.250.0/24;
deny 91.227.32.0/24;
deny 91.231.132.0/22;
@@ -1125,6 +1137,7 @@ deny 95.167.5.64/28;
deny 95.167.5.80/28;
deny 95.167.54.76/30;
deny 95.167.59.244/30;
deny 95.167.59.248/30;
deny 95.167.64.20/30;
deny 95.167.68.216/29;
deny 95.167.69.116/30;

View File

@@ -0,0 +1,212 @@
# Linux routes for VK networks (IPv4)
# Auto-generated by blacklists_updater_routes.sh
# Last updated: 2026-06-30 09:22:09 UTC
#
# Apply:
# sudo sh blacklist-vk-v4.routes
#
ip route replace 109.120.180.0/22 via 127.0.0.1 dev lo onlink
ip route replace 109.120.188.0/22 via 127.0.0.1 dev lo onlink
ip route replace 128.140.168.0/21 via 127.0.0.1 dev lo onlink
ip route replace 128.140.168.0/23 via 127.0.0.1 dev lo onlink
ip route replace 128.140.170.0/24 via 127.0.0.1 dev lo onlink
ip route replace 128.140.171.0/24 via 127.0.0.1 dev lo onlink
ip route replace 128.140.172.0/22 via 127.0.0.1 dev lo onlink
ip route replace 130.49.224.0/19 via 127.0.0.1 dev lo onlink
ip route replace 138.16.192.0/20 via 127.0.0.1 dev lo onlink
ip route replace 138.16.240.0/20 via 127.0.0.1 dev lo onlink
ip route replace 146.185.208.0/22 via 127.0.0.1 dev lo onlink
ip route replace 146.185.240.0/22 via 127.0.0.1 dev lo onlink
ip route replace 155.212.192.0/20 via 127.0.0.1 dev lo onlink
ip route replace 161.104.104.0/21 via 127.0.0.1 dev lo onlink
ip route replace 176.112.168.0/21 via 127.0.0.1 dev lo onlink
ip route replace 178.22.88.0/21 via 127.0.0.1 dev lo onlink
ip route replace 178.22.89.64/26 via 127.0.0.1 dev lo onlink
ip route replace 178.22.94.0/23 via 127.0.0.1 dev lo onlink
ip route replace 178.237.16.0/20 via 127.0.0.1 dev lo onlink
ip route replace 178.237.16.0/21 via 127.0.0.1 dev lo onlink
ip route replace 178.237.24.0/22 via 127.0.0.1 dev lo onlink
ip route replace 178.237.30.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.100.104.0/22 via 127.0.0.1 dev lo onlink
ip route replace 185.100.104.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.100.106.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.130.112.0/22 via 127.0.0.1 dev lo onlink
ip route replace 185.131.68.0/22 via 127.0.0.1 dev lo onlink
ip route replace 185.16.148.0/22 via 127.0.0.1 dev lo onlink
ip route replace 185.16.148.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.16.150.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.16.244.0/22 via 127.0.0.1 dev lo onlink
ip route replace 185.16.244.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.16.246.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.180.200.0/22 via 127.0.0.1 dev lo onlink
ip route replace 185.187.63.0/24 via 127.0.0.1 dev lo onlink
ip route replace 185.187.63.0/25 via 127.0.0.1 dev lo onlink
ip route replace 185.187.63.128/25 via 127.0.0.1 dev lo onlink
ip route replace 185.226.52.0/22 via 127.0.0.1 dev lo onlink
ip route replace 185.226.52.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.226.54.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.241.192.0/22 via 127.0.0.1 dev lo onlink
ip route replace 185.29.128.0/22 via 127.0.0.1 dev lo onlink
ip route replace 185.29.130.0/24 via 127.0.0.1 dev lo onlink
ip route replace 185.32.248.0/22 via 127.0.0.1 dev lo onlink
ip route replace 185.32.248.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.32.250.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.5.136.0/22 via 127.0.0.1 dev lo onlink
ip route replace 185.5.136.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.5.138.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.6.244.0/22 via 127.0.0.1 dev lo onlink
ip route replace 185.6.244.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.6.246.0/23 via 127.0.0.1 dev lo onlink
ip route replace 185.86.144.0/22 via 127.0.0.1 dev lo onlink
ip route replace 188.93.56.0/21 via 127.0.0.1 dev lo onlink
ip route replace 188.93.56.0/24 via 127.0.0.1 dev lo onlink
ip route replace 188.93.57.0/24 via 127.0.0.1 dev lo onlink
ip route replace 188.93.58.0/24 via 127.0.0.1 dev lo onlink
ip route replace 188.93.60.0/24 via 127.0.0.1 dev lo onlink
ip route replace 188.93.61.0/24 via 127.0.0.1 dev lo onlink
ip route replace 188.93.62.0/24 via 127.0.0.1 dev lo onlink
ip route replace 193.203.40.0/22 via 127.0.0.1 dev lo onlink
ip route replace 194.84.16.12/30 via 127.0.0.1 dev lo onlink
ip route replace 195.211.20.0/22 via 127.0.0.1 dev lo onlink
ip route replace 195.211.22.0/24 via 127.0.0.1 dev lo onlink
ip route replace 195.211.23.0/24 via 127.0.0.1 dev lo onlink
ip route replace 195.239.247.0/24 via 127.0.0.1 dev lo onlink
ip route replace 213.219.212.0/22 via 127.0.0.1 dev lo onlink
ip route replace 217.174.188.0/22 via 127.0.0.1 dev lo onlink
ip route replace 217.174.188.0/23 via 127.0.0.1 dev lo onlink
ip route replace 217.174.190.0/23 via 127.0.0.1 dev lo onlink
ip route replace 217.20.144.0/20 via 127.0.0.1 dev lo onlink
ip route replace 217.20.144.0/22 via 127.0.0.1 dev lo onlink
ip route replace 217.20.148.0/24 via 127.0.0.1 dev lo onlink
ip route replace 217.20.149.0/24 via 127.0.0.1 dev lo onlink
ip route replace 217.20.150.0/23 via 127.0.0.1 dev lo onlink
ip route replace 217.20.152.0/22 via 127.0.0.1 dev lo onlink
ip route replace 217.20.156.0/23 via 127.0.0.1 dev lo onlink
ip route replace 217.20.158.0/24 via 127.0.0.1 dev lo onlink
ip route replace 217.20.159.0/24 via 127.0.0.1 dev lo onlink
ip route replace 217.69.128.0/20 via 127.0.0.1 dev lo onlink
ip route replace 217.69.128.0/21 via 127.0.0.1 dev lo onlink
ip route replace 217.69.136.0/21 via 127.0.0.1 dev lo onlink
ip route replace 37.139.32.0/22 via 127.0.0.1 dev lo onlink
ip route replace 37.139.40.0/22 via 127.0.0.1 dev lo onlink
ip route replace 45.136.20.0/22 via 127.0.0.1 dev lo onlink
ip route replace 45.136.20.0/23 via 127.0.0.1 dev lo onlink
ip route replace 45.136.22.0/23 via 127.0.0.1 dev lo onlink
ip route replace 45.84.128.0/22 via 127.0.0.1 dev lo onlink
ip route replace 45.84.128.0/23 via 127.0.0.1 dev lo onlink
ip route replace 45.84.130.0/23 via 127.0.0.1 dev lo onlink
ip route replace 5.101.40.0/22 via 127.0.0.1 dev lo onlink
ip route replace 5.101.40.0/23 via 127.0.0.1 dev lo onlink
ip route replace 5.101.42.0/23 via 127.0.0.1 dev lo onlink
ip route replace 5.181.60.0/22 via 127.0.0.1 dev lo onlink
ip route replace 5.181.60.0/24 via 127.0.0.1 dev lo onlink
ip route replace 5.181.61.0/24 via 127.0.0.1 dev lo onlink
ip route replace 5.181.62.0/23 via 127.0.0.1 dev lo onlink
ip route replace 5.188.140.0/22 via 127.0.0.1 dev lo onlink
ip route replace 5.61.16.0/21 via 127.0.0.1 dev lo onlink
ip route replace 5.61.16.0/22 via 127.0.0.1 dev lo onlink
ip route replace 5.61.20.0/22 via 127.0.0.1 dev lo onlink
ip route replace 5.61.232.0/21 via 127.0.0.1 dev lo onlink
ip route replace 5.61.232.0/22 via 127.0.0.1 dev lo onlink
ip route replace 5.61.236.0/23 via 127.0.0.1 dev lo onlink
ip route replace 5.61.238.0/24 via 127.0.0.1 dev lo onlink
ip route replace 5.61.239.0/27 via 127.0.0.1 dev lo onlink
ip route replace 5.61.239.128/25 via 127.0.0.1 dev lo onlink
ip route replace 5.61.239.40/29 via 127.0.0.1 dev lo onlink
ip route replace 5.61.239.48/28 via 127.0.0.1 dev lo onlink
ip route replace 5.61.239.64/26 via 127.0.0.1 dev lo onlink
ip route replace 62.217.160.0/20 via 127.0.0.1 dev lo onlink
ip route replace 62.217.160.0/21 via 127.0.0.1 dev lo onlink
ip route replace 62.217.168.0/21 via 127.0.0.1 dev lo onlink
ip route replace 79.137.132.0/24 via 127.0.0.1 dev lo onlink
ip route replace 79.137.132.0/25 via 127.0.0.1 dev lo onlink
ip route replace 79.137.132.128/25 via 127.0.0.1 dev lo onlink
ip route replace 79.137.139.0/24 via 127.0.0.1 dev lo onlink
ip route replace 79.137.139.0/25 via 127.0.0.1 dev lo onlink
ip route replace 79.137.139.128/25 via 127.0.0.1 dev lo onlink
ip route replace 79.137.157.0/25 via 127.0.0.1 dev lo onlink
ip route replace 79.137.157.128/25 via 127.0.0.1 dev lo onlink
ip route replace 79.137.164.0/24 via 127.0.0.1 dev lo onlink
ip route replace 79.137.164.0/25 via 127.0.0.1 dev lo onlink
ip route replace 79.137.164.128/25 via 127.0.0.1 dev lo onlink
ip route replace 79.137.167.0/24 via 127.0.0.1 dev lo onlink
ip route replace 79.137.167.0/25 via 127.0.0.1 dev lo onlink
ip route replace 79.137.167.128/25 via 127.0.0.1 dev lo onlink
ip route replace 79.137.174.0/23 via 127.0.0.1 dev lo onlink
ip route replace 79.137.180.0/24 via 127.0.0.1 dev lo onlink
ip route replace 79.137.180.0/25 via 127.0.0.1 dev lo onlink
ip route replace 79.137.180.128/25 via 127.0.0.1 dev lo onlink
ip route replace 79.137.240.0/21 via 127.0.0.1 dev lo onlink
ip route replace 79.137.240.0/22 via 127.0.0.1 dev lo onlink
ip route replace 79.137.244.0/22 via 127.0.0.1 dev lo onlink
ip route replace 81.177.12.0/24 via 127.0.0.1 dev lo onlink
ip route replace 81.177.31.64/26 via 127.0.0.1 dev lo onlink
ip route replace 83.166.232.0/21 via 127.0.0.1 dev lo onlink
ip route replace 83.166.248.0/21 via 127.0.0.1 dev lo onlink
ip route replace 83.217.216.0/22 via 127.0.0.1 dev lo onlink
ip route replace 83.222.28.0/22 via 127.0.0.1 dev lo onlink
ip route replace 84.23.52.0/22 via 127.0.0.1 dev lo onlink
ip route replace 85.114.31.108/30 via 127.0.0.1 dev lo onlink
ip route replace 85.192.32.0/22 via 127.0.0.1 dev lo onlink
ip route replace 85.198.106.0/24 via 127.0.0.1 dev lo onlink
ip route replace 85.198.107.0/24 via 127.0.0.1 dev lo onlink
ip route replace 87.239.104.0/21 via 127.0.0.1 dev lo onlink
ip route replace 87.240.128.0/18 via 127.0.0.1 dev lo onlink
ip route replace 87.240.128.0/19 via 127.0.0.1 dev lo onlink
ip route replace 87.240.160.0/19 via 127.0.0.1 dev lo onlink
ip route replace 87.242.112.0/22 via 127.0.0.1 dev lo onlink
ip route replace 89.208.196.0/22 via 127.0.0.1 dev lo onlink
ip route replace 89.208.208.0/22 via 127.0.0.1 dev lo onlink
ip route replace 89.208.216.0/21 via 127.0.0.1 dev lo onlink
ip route replace 89.208.228.0/22 via 127.0.0.1 dev lo onlink
ip route replace 89.208.84.0/22 via 127.0.0.1 dev lo onlink
ip route replace 89.221.228.0/22 via 127.0.0.1 dev lo onlink
ip route replace 89.221.232.0/21 via 127.0.0.1 dev lo onlink
ip route replace 90.156.148.0/22 via 127.0.0.1 dev lo onlink
ip route replace 90.156.212.0/22 via 127.0.0.1 dev lo onlink
ip route replace 90.156.216.0/22 via 127.0.0.1 dev lo onlink
ip route replace 90.156.232.0/21 via 127.0.0.1 dev lo onlink
ip route replace 91.231.132.0/22 via 127.0.0.1 dev lo onlink
ip route replace 91.237.76.0/24 via 127.0.0.1 dev lo onlink
ip route replace 93.153.255.84/30 via 127.0.0.1 dev lo onlink
ip route replace 93.186.224.0/20 via 127.0.0.1 dev lo onlink
ip route replace 93.186.224.0/21 via 127.0.0.1 dev lo onlink
ip route replace 93.186.232.0/21 via 127.0.0.1 dev lo onlink
ip route replace 94.100.176.0/20 via 127.0.0.1 dev lo onlink
ip route replace 94.100.176.0/21 via 127.0.0.1 dev lo onlink
ip route replace 94.100.184.0/21 via 127.0.0.1 dev lo onlink
ip route replace 94.139.244.0/22 via 127.0.0.1 dev lo onlink
ip route replace 95.142.192.0/20 via 127.0.0.1 dev lo onlink
ip route replace 95.142.192.0/21 via 127.0.0.1 dev lo onlink
ip route replace 95.142.200.0/21 via 127.0.0.1 dev lo onlink
ip route replace 95.163.180.0/22 via 127.0.0.1 dev lo onlink
ip route replace 95.163.208.0/21 via 127.0.0.1 dev lo onlink
ip route replace 95.163.216.0/22 via 127.0.0.1 dev lo onlink
ip route replace 95.163.216.0/23 via 127.0.0.1 dev lo onlink
ip route replace 95.163.218.0/23 via 127.0.0.1 dev lo onlink
ip route replace 95.163.248.0/21 via 127.0.0.1 dev lo onlink
ip route replace 95.163.252.0/23 via 127.0.0.1 dev lo onlink
ip route replace 95.163.254.0/23 via 127.0.0.1 dev lo onlink
ip route replace 95.163.32.0/19 via 127.0.0.1 dev lo onlink
ip route replace 95.163.32.0/22 via 127.0.0.1 dev lo onlink
ip route replace 95.163.36.0/22 via 127.0.0.1 dev lo onlink
ip route replace 95.163.40.0/21 via 127.0.0.1 dev lo onlink
ip route replace 95.163.48.0/20 via 127.0.0.1 dev lo onlink
ip route replace 95.213.0.0/17 via 127.0.0.1 dev lo onlink
ip route replace 95.213.0.0/20 via 127.0.0.1 dev lo onlink
ip route replace 95.213.16.0/21 via 127.0.0.1 dev lo onlink
ip route replace 95.213.24.0/23 via 127.0.0.1 dev lo onlink
ip route replace 95.213.26.0/24 via 127.0.0.1 dev lo onlink
ip route replace 95.213.27.0/24 via 127.0.0.1 dev lo onlink
ip route replace 95.213.28.0/24 via 127.0.0.1 dev lo onlink
ip route replace 95.213.29.0/24 via 127.0.0.1 dev lo onlink
ip route replace 95.213.30.0/24 via 127.0.0.1 dev lo onlink
ip route replace 95.213.31.0/24 via 127.0.0.1 dev lo onlink
ip route replace 95.213.32.0/24 via 127.0.0.1 dev lo onlink
ip route replace 95.213.33.0/24 via 127.0.0.1 dev lo onlink
ip route replace 95.213.34.0/23 via 127.0.0.1 dev lo onlink
ip route replace 95.213.36.0/22 via 127.0.0.1 dev lo onlink
ip route replace 95.213.40.0/21 via 127.0.0.1 dev lo onlink
ip route replace 95.213.48.0/20 via 127.0.0.1 dev lo onlink
ip route replace 95.213.64.0/18 via 127.0.0.1 dev lo onlink

View File

@@ -0,0 +1,11 @@
# Linux routes for VK networks (IPv6)
# Auto-generated by blacklists_updater_routes.sh
# Last updated: 2026-06-30 09:22:09 UTC
#
# Apply:
# sudo sh blacklist-vk-v6.routes
#
ip -6 route replace 2a00:1148::/29 via ::1 dev lo
ip -6 route replace 2a00:b4c0::/29 via ::1 dev lo
ip -6 route replace 2a00:bdc0::/29 via ::1 dev lo

View File

@@ -0,0 +1,56 @@
#!/bin/sh
# Shared config for blacklists_updater_*.sh scripts.
# Scripts are expected to define SCRIPT_DIR before sourcing this file.
: "${SCRIPT_DIR:?SCRIPT_DIR must be set before sourcing blacklists_updater_common.subr}"
BLACKLISTS_DIR="${SCRIPT_DIR}/blacklists"
AUTO_DIR="${SCRIPT_DIR}/auto"
BLACKLIST_FILE="${BLACKLISTS_DIR}/blacklist.txt"
BLACKLIST_WITH_COMMENTS_FILE="${BLACKLISTS_DIR}/blacklist_with_comments.txt"
BLACKLIST_V4_FILE="${BLACKLISTS_DIR}/blacklist-v4.txt"
BLACKLIST_V6_FILE="${BLACKLISTS_DIR}/blacklist-v6.txt"
BLACKLIST_VK_FILE="${BLACKLISTS_DIR}/blacklist-vk.txt"
BLACKLIST_VK_V4_FILE="${BLACKLISTS_DIR}/blacklist-vk-v4.txt"
BLACKLIST_VK_V6_FILE="${BLACKLISTS_DIR}/blacklist-vk-v6.txt"
AUTO_ALL_ASN_FILE="${AUTO_DIR}/all-ru-asn.txt"
AUTO_ALL_V4_FILE="${AUTO_DIR}/all-ru-ipv4.txt"
AUTO_ALL_V6_FILE="${AUTO_DIR}/all-ru-ipv6.txt"
AUTO_RIPE_V4_FILE="${AUTO_DIR}/ripe-ru-ipv4.txt"
AUTO_BLACK_ASS_FILE="${AUTO_DIR}/black_ass.txt"
NETWORK_LIST_FROM_AS="${SCRIPT_DIR}/network_list_from_as.py"
NETWORK_LIST_FROM_NETNAME="${SCRIPT_DIR}/network_list_from_netname.py"
RU_GOV_NETNAMES_FILE="${SCRIPT_DIR}/lists/ru-gov-netnames.txt"
BLACK_NAMES='uvd|umvd|fgup|grchc|roskomnad|federalnaya sluzhba|ufsb|zonatelecom|llc vk|vkontakte|ODNOKLASSNIKI|VKCOMPANY|mail.ru|mail-ru|mail_ru|VK-AS|M100'
WHITE_NAMES='ruvds'
#VK_NAME_PATTERN='ru-netbridge-(19911202|20061117)|ru-odnoklassniki-(20100830|20120307|20120626)|odnoklassniki-front'
#VK_NAME_PATTERN='ru-netbridge-(19911202|20061117)|odnoklassniki'
VK_NAME_PATTERN='ru-netbridge-(19911202|20061117)|odnoklassniki|vkcompany|vkontakte|llc vk'
VK_NAME_EXCLUDE_PATTERN='VK Cloud Solutions VK Hosting'
ensure_blacklist_base_dirs() {
mkdir -p "${BLACKLISTS_DIR}" "${AUTO_DIR}"
}
build_vk_name_blacklists() {
ensure_blacklist_base_dirs
tmp_vk_file="$(mktemp "${BLACKLISTS_DIR}/.blacklist-vk.XXXXXX")" || return 1
for source_file in "${AUTO_ALL_V4_FILE}" "${AUTO_ALL_V6_FILE}" "${AUTO_RIPE_V4_FILE}"; do
[ -f "${source_file}" ] || continue
awk -v pattern="${VK_NAME_PATTERN}" 'tolower($0) ~ pattern { print }' "${source_file}" \
| grep -viF "${VK_NAME_EXCLUDE_PATTERN}" \
| awk '{ print $1 }' >> "${tmp_vk_file}"
done
sort -u "${tmp_vk_file}" > "${BLACKLIST_VK_FILE}"
grep ':' "${BLACKLIST_VK_FILE}" | sort -u > "${BLACKLIST_VK_V6_FILE}" || true
grep -v ':' "${BLACKLIST_VK_FILE}" | sort -u > "${BLACKLIST_VK_V4_FILE}" || true
rm -f "${tmp_vk_file}"
}

View File

@@ -1,18 +1,18 @@
#!/bin/sh
# Input files (generated by blacklists_updater_txt.sh)
blacklist_file="blacklists/blacklist.txt"
blacklist_v4_file="blacklists/blacklist-v4.txt"
blacklist_v6_file="blacklists/blacklist-v6.txt"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
. "${SCRIPT_DIR}/blacklists_updater_common.subr"
# Output directory and files
iptables_output_dir="blacklists_iptables"
iptables_output_file="${iptables_output_dir}/blacklist.ipset"
iptables_output_dir="${SCRIPT_DIR}/blacklists_iptables"
iptables_v4_output_file="${iptables_output_dir}/blacklist-v4.ipset"
iptables_v6_output_file="${iptables_output_dir}/blacklist-v6.ipset"
iptables_vk_v4_output_file="${iptables_output_dir}/blacklist-vk-v4.ipset"
iptables_vk_v6_output_file="${iptables_output_dir}/blacklist-vk-v6.ipset"
# Create iptables directory if it doesn't exist
mkdir -p "${iptables_output_dir}"
# Create required directories if they don't exist
mkdir -p "${iptables_output_dir}" "${BLACKLISTS_DIR}"
build_vk_name_blacklists
# Function to generate ipset config from input file
generate_ipset_config() {
@@ -21,6 +21,19 @@ generate_ipset_config() {
local ip_version="$3"
local set_name="$4"
local family="$5"
local iptables_cmd="iptables"
local rule_primary=""
local rule_secondary=""
[ "${family}" = "inet6" ] && iptables_cmd="ip6tables"
if printf "%s" "${set_name}" | grep -q '^blacklist-vk'; then
rule_primary="${iptables_cmd} -I OUTPUT -m set --match-set ${set_name} dst -j REJECT"
rule_secondary="${iptables_cmd} -I FORWARD -m set --match-set ${set_name} dst -j REJECT"
else
rule_primary="${iptables_cmd} -I INPUT -m set --match-set ${set_name} src -m conntrack --ctstate NEW -j DROP"
rule_secondary="${iptables_cmd} -I FORWARD -m set --match-set ${set_name} src -m conntrack --ctstate NEW -j DROP"
fi
# Count entries for hash size calculation
local count=$(wc -l < "${input_file}" | tr -d ' ')
@@ -38,8 +51,8 @@ generate_ipset_config() {
# ipset restore < $(basename ${output_file})
#
# 2. Use with iptables/ip6tables:
# iptables -I INPUT -m set --match-set ${set_name} src -m conntrack --ctstate NEW -j DROP
# iptables -I FORWARD -m set --match-set ${set_name} src -m conntrack --ctstate NEW -j DROP
# ${rule_primary}
${rule_secondary:+# ${rule_secondary}}
#
# 3. To flush/delete the set:
# ipset flush ${set_name}
@@ -61,36 +74,18 @@ EOF
}
# Generate ipset configurations from blacklist files
generate_ipset_config "${blacklist_v4_file}" "${iptables_v4_output_file}" "(IPv4 only)" "blacklist-v4" "inet"
generate_ipset_config "${blacklist_v6_file}" "${iptables_v6_output_file}" "(IPv6 only)" "blacklist-v6" "inet6"
generate_ipset_config "${BLACKLIST_V4_FILE}" "${iptables_v4_output_file}" "(IPv4 only)" "blacklist-v4" "inet"
generate_ipset_config "${BLACKLIST_V6_FILE}" "${iptables_v6_output_file}" "(IPv6 only)" "blacklist-v6" "inet6"
generate_ipset_config "${BLACKLIST_VK_V4_FILE}" "${iptables_vk_v4_output_file}" "(VK names, IPv4 only)" "blacklist-vk-v4" "inet"
generate_ipset_config "${BLACKLIST_VK_V6_FILE}" "${iptables_vk_v6_output_file}" "(VK names, IPv6 only)" "blacklist-vk-v6" "inet6"
# For mixed file, we need to create two sets (IPv4 and IPv6) as ipset doesn't support mixed families
cat > "${iptables_output_file}" << EOF
# IPSet blacklist configuration (mixed IPv4/IPv6)
# Auto-generated from $(basename ${blacklist_file})
# Last updated: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
#
# Usage:
# 1. Load the ipset:
# ipset restore < $(basename ${iptables_output_file})
#
# 2. Use with iptables/ip6tables:
# iptables -I INPUT -m set --match-set blacklist-v4 src -m conntrack --ctstate NEW -j DROP
# iptables -I FORWARD -m set --match-set blacklist-v4 src -m conntrack --ctstate NEW -j DROP
# ip6tables -I INPUT -m set --match-set blacklist-v6 src -m conntrack --ctstate NEW -j DROP
# ip6tables -I FORWARD -m set --match-set blacklist-v6 src -m conntrack --ctstate NEW -j DROP
#
# 3. To flush/delete the sets:
# ipset flush blacklist-v4 && ipset destroy blacklist-v4
# ipset flush blacklist-v6 && ipset destroy blacklist-v6
#
EOF
# Append both IPv4 and IPv6 sets to the mixed file
tail -n +2 "${iptables_v4_output_file}" | grep -E "^(create|add)" >> "${iptables_output_file}"
echo "" >> "${iptables_output_file}"
tail -n +2 "${iptables_v6_output_file}" | grep -E "^(create|add)" >> "${iptables_output_file}"
echo "✓ Generated (mixed IPv4/IPv6): ${iptables_output_file}"
echo " Total entries: $(wc -l < "${blacklist_file}" | tr -d ' ')"
echo ""
echo "VK outgoing block examples (iptables/ipset):"
echo " ipset restore < ${iptables_vk_v4_output_file}"
echo " ipset restore < ${iptables_vk_v6_output_file}"
echo " iptables -I OUTPUT -m set --match-set blacklist-vk-v4 dst -j REJECT"
echo " iptables -I FORWARD -m set --match-set blacklist-vk-v4 dst -j REJECT"
echo " ip6tables -I OUTPUT -m set --match-set blacklist-vk-v6 dst -j REJECT"
echo " ip6tables -I FORWARD -m set --match-set blacklist-vk-v6 dst -j REJECT"
echo ""
echo "Tip: Do not install Messenger MAX on the same phone/device that has VPN access configured."

View File

@@ -4,32 +4,66 @@
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
INPUT_FILE="$SCRIPT_DIR/blacklists/blacklist.txt"
. "${SCRIPT_DIR}/blacklists_updater_common.subr"
INPUT_FILE="${BLACKLIST_FILE}"
OUTPUT_DIR="$SCRIPT_DIR/blacklists_nftables"
# Create output directory if it doesn't exist
mkdir -p "$OUTPUT_DIR"
# Create required directories if they don't exist
mkdir -p "$OUTPUT_DIR" "${BLACKLISTS_DIR}"
echo "Generating nftables blacklists..."
# Generate mixed IPv4/IPv6 blacklist
build_vk_name_blacklists
# Generate mixed IPv4/IPv6 blacklist (recommended single-file load)
python3 "$SCRIPT_DIR/generate_nft_blacklist.py" \
"$INPUT_FILE" \
"$OUTPUT_DIR/blacklist.nft"
# Generate IPv4-only blacklist
grep -E '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' "$INPUT_FILE" > /tmp/blacklist-v4.txt || true
TMP_V4_FILE="/tmp/blacklist-v4.txt"
TMP_V6_FILE="/tmp/blacklist-v6.txt"
grep -E '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' "$INPUT_FILE" > "$TMP_V4_FILE" || true
python3 "$SCRIPT_DIR/generate_nft_blacklist.py" \
/tmp/blacklist-v4.txt \
"$TMP_V4_FILE" \
"$OUTPUT_DIR/blacklist-v4.nft"
# Generate IPv6-only blacklist
grep -E '^[0-9a-fA-F:]+:' "$INPUT_FILE" > /tmp/blacklist-v6.txt || true
grep -E '^[0-9a-fA-F:]+:' "$INPUT_FILE" > "$TMP_V6_FILE" || true
python3 "$SCRIPT_DIR/generate_nft_blacklist.py" \
/tmp/blacklist-v6.txt \
"$TMP_V6_FILE" \
"$OUTPUT_DIR/blacklist-v6.nft"
# Generate VK-only blacklists from the narrowed MAX/VK service name filter
python3 "$SCRIPT_DIR/generate_nft_blacklist.py" \
"${BLACKLIST_VK_FILE}" \
"$OUTPUT_DIR/blacklist-vk.nft"
python3 "$SCRIPT_DIR/generate_nft_blacklist.py" \
"${BLACKLIST_VK_V4_FILE}" \
"$OUTPUT_DIR/blacklist-vk-v4.nft"
python3 "$SCRIPT_DIR/generate_nft_blacklist.py" \
"${BLACKLIST_VK_V6_FILE}" \
"$OUTPUT_DIR/blacklist-vk-v6.nft"
# Clean up temp files
rm -f /tmp/blacklist-v4.txt /tmp/blacklist-v6.txt
rm -f "$TMP_V4_FILE" "$TMP_V6_FILE"
echo "nftables blacklists generated successfully!"
echo ""
echo "VM incoming block examples (all lists, nftables):"
echo " sudo nft -f $OUTPUT_DIR/blacklist.nft"
echo " sudo nft -f $OUTPUT_DIR/blacklist-v4.nft"
echo " sudo nft -f $OUTPUT_DIR/blacklist-v6.nft"
echo " sudo nft add chain inet filter input '{ type filter hook input priority 0; policy accept; }'"
echo " sudo nft add rule inet filter input ip saddr @blacklist_v4 counter reject"
echo " sudo nft add rule inet filter input ip6 saddr @blacklist_v6 counter reject"
echo ""
echo "VK outbound block examples for VPN clients via NAT (nftables):"
echo " sudo nft -f $OUTPUT_DIR/blacklist-vk.nft"
echo " sudo nft -f $OUTPUT_DIR/blacklist-vk-v4.nft"
echo " sudo nft -f $OUTPUT_DIR/blacklist-vk-v6.nft"
echo " sudo nft add chain inet filter forward '{ type filter hook forward priority 0; policy accept; }'"
echo " sudo nft add rule inet filter forward iifname \"<VPN_IFACE>\" ip daddr @blacklist_vk_v4 counter reject"
echo " sudo nft add rule inet filter forward iifname \"<VPN_IFACE>\" ip6 daddr @blacklist_vk_v6 counter reject"
echo ""
echo "Tip: Do not install Messenger MAX on the same phone/device that has VPN access configured."

View File

@@ -1,18 +1,16 @@
#!/bin/sh
# Input files (generated by blacklists_updater_txt.sh)
blacklist_file="blacklists/blacklist.txt"
blacklist_v4_file="blacklists/blacklist-v4.txt"
blacklist_v6_file="blacklists/blacklist-v6.txt"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
. "${SCRIPT_DIR}/blacklists_updater_common.subr"
# Output directory and files
nginx_output_dir="blacklists_nginx"
nginx_output_dir="${SCRIPT_DIR}/blacklists_nginx"
nginx_output_file="${nginx_output_dir}/blacklist.conf"
nginx_v4_output_file="${nginx_output_dir}/blacklist-v4.conf"
nginx_v6_output_file="${nginx_output_dir}/blacklist-v6.conf"
# Create nginx directory if it doesn't exist
mkdir -p "${nginx_output_dir}"
# Create required directories if they don't exist
mkdir -p "${nginx_output_dir}" "${BLACKLISTS_DIR}"
# Function to generate nginx config from input file
generate_nginx_config() {
@@ -47,6 +45,6 @@ EOF
}
# Generate nginx configurations from blacklist files
generate_nginx_config "${blacklist_file}" "${nginx_output_file}" "(mixed IPv4/IPv6)"
generate_nginx_config "${blacklist_v4_file}" "${nginx_v4_output_file}" "(IPv4 only)"
generate_nginx_config "${blacklist_v6_file}" "${nginx_v6_output_file}" "(IPv6 only)"
generate_nginx_config "${BLACKLIST_FILE}" "${nginx_output_file}" "(mixed IPv4/IPv6)"
generate_nginx_config "${BLACKLIST_V4_FILE}" "${nginx_v4_output_file}" "(IPv4 only)"
generate_nginx_config "${BLACKLIST_V6_FILE}" "${nginx_v6_output_file}" "(IPv6 only)"

58
blacklists_updater_routes.sh Executable file
View File

@@ -0,0 +1,58 @@
#!/bin/sh
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
. "${SCRIPT_DIR}/blacklists_updater_common.subr"
# Output directory and files
ROUTES_OUTPUT_DIR="${SCRIPT_DIR}/blacklists_route"
ROUTES_V4_FILE="${ROUTES_OUTPUT_DIR}/blacklist-vk-v4.routes"
ROUTES_V6_FILE="${ROUTES_OUTPUT_DIR}/blacklist-vk-v6.routes"
mkdir -p "${ROUTES_OUTPUT_DIR}" "${BLACKLISTS_DIR}"
echo "Generating VK route blacklists..."
build_vk_name_blacklists
# Generate IPv4 routes file (route VK prefixes to loopback via 127.0.0.1)
cat > "${ROUTES_V4_FILE}" << EOF
# Linux routes for VK networks (IPv4)
# Auto-generated by $(basename "$0")
# Last updated: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
#
# Apply:
# sudo sh $(basename "${ROUTES_V4_FILE}")
#
EOF
while IFS= read -r network; do
[ -n "${network}" ] || continue
printf 'ip route replace %s via 127.0.0.1 dev lo onlink\n' "${network}" >> "${ROUTES_V4_FILE}"
done < "${BLACKLIST_VK_V4_FILE}"
# Generate IPv6 routes file (route VK prefixes to loopback via ::1)
cat > "${ROUTES_V6_FILE}" << EOF
# Linux routes for VK networks (IPv6)
# Auto-generated by $(basename "$0")
# Last updated: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
#
# Apply:
# sudo sh $(basename "${ROUTES_V6_FILE}")
#
EOF
while IFS= read -r network; do
[ -n "${network}" ] || continue
printf 'ip -6 route replace %s via ::1 dev lo\n' "${network}" >> "${ROUTES_V6_FILE}"
done < "${BLACKLIST_VK_V6_FILE}"
echo "✓ Generated: ${ROUTES_V4_FILE} (entries: $(wc -l < "${BLACKLIST_VK_V4_FILE}" | tr -d ' '))"
echo "✓ Generated: ${ROUTES_V6_FILE} (entries: $(wc -l < "${BLACKLIST_VK_V6_FILE}" | tr -d ' '))"
echo ""
echo "Examples:"
echo " sudo sh ${ROUTES_V4_FILE}"
echo " sudo sh ${ROUTES_V6_FILE}"

View File

@@ -1,30 +1,24 @@
#!/bin/sh
outfile_wo_comments="blacklists/blacklist.txt"
outfile_w_comments="blacklists/blacklist_with_comments.txt"
blacklist_v4_file="blacklists/blacklist-v4.txt"
blacklist_v6_file="blacklists/blacklist-v6.txt"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
. "${SCRIPT_DIR}/blacklists_updater_common.subr"
auto_black_ass="auto/black_ass.txt"
ensure_blacklist_base_dirs
black_names="uvd|umvd|fgup|grchc|roskomnad|federalnaya sluzhba|ufsb|zonatelecom|llc vk|vkontakte|ODNOKLASSNIKI|VKCOMPANY|mail.ru|mail-ru|mail_ru|VK-AS|M100"
# M100 - mail.ru
white_names="ruvds"
grep -iE "${black_names}" auto/all-ru-asn.txt | grep -viE "${white_names}" | awk '{ print "# AS-Name: " $0 "\n" $1}' > ${auto_black_ass}
./network_list_from_as.py ${auto_black_ass} > ${outfile_w_comments}
./network_list_from_netname.py lists/ru-gov-netnames.txt >> ${outfile_w_comments}
grep -iE "${black_names}" auto/all-ru-ipv4.txt | grep -viE "${white_names}" | awk '{ print "# NET-Name: " $0 "\n" $1}' >> ${outfile_w_comments}
grep -iE "${black_names}" auto/ripe-ru-ipv4.txt | grep -viE "${white_names}" | awk '{ print "# NET-Name: " $0 "\n" $1}' >> ${outfile_w_comments}
grep -iE "${BLACK_NAMES}" "${AUTO_ALL_ASN_FILE}" | grep -viE "${WHITE_NAMES}" | awk '{ print "# AS-Name: " $0 "\n" $1}' > "${AUTO_BLACK_ASS_FILE}"
"${NETWORK_LIST_FROM_AS}" "${AUTO_BLACK_ASS_FILE}" > "${BLACKLIST_WITH_COMMENTS_FILE}"
"${NETWORK_LIST_FROM_NETNAME}" "${RU_GOV_NETNAMES_FILE}" >> "${BLACKLIST_WITH_COMMENTS_FILE}"
grep -iE "${BLACK_NAMES}" "${AUTO_ALL_V4_FILE}" | grep -viE "${WHITE_NAMES}" | awk '{ print "# NET-Name: " $0 "\n" $1}' >> "${BLACKLIST_WITH_COMMENTS_FILE}"
grep -iE "${BLACK_NAMES}" "${AUTO_RIPE_V4_FILE}" | grep -viE "${WHITE_NAMES}" | awk '{ print "# NET-Name: " $0 "\n" $1}' >> "${BLACKLIST_WITH_COMMENTS_FILE}"
# Remove comments by sed to avoid flooding WHOIS servers
grep -v "#" ${outfile_w_comments} | sort | uniq > ${outfile_wo_comments}
grep -v "#" "${BLACKLIST_WITH_COMMENTS_FILE}" | sort | uniq > "${BLACKLIST_FILE}"
# Split blacklist into IPv4 and IPv6
grep ':' "${outfile_wo_comments}" | sort | uniq > "${blacklist_v6_file}"
grep -v ':' "${outfile_wo_comments}" | sort | uniq > "${blacklist_v4_file}"
grep ':' "${BLACKLIST_FILE}" | sort | uniq > "${BLACKLIST_V6_FILE}"
grep -v ':' "${BLACKLIST_FILE}" | sort | uniq > "${BLACKLIST_V4_FILE}"
echo "✓ Generated blacklist files"
echo " Mixed (IPv4/IPv6): ${outfile_wo_comments} ($(wc -l < "${outfile_wo_comments}" | tr -d ' ') entries)"
echo " IPv4 only: ${blacklist_v4_file} ($(wc -l < "${blacklist_v4_file}" | tr -d ' ') entries)"
echo " IPv6 only: ${blacklist_v6_file} ($(wc -l < "${blacklist_v6_file}" | tr -d ' ') entries)"
echo " Mixed (IPv4/IPv6): ${BLACKLIST_FILE} ($(wc -l < "${BLACKLIST_FILE}" | tr -d ' ') entries)"
echo " IPv4 only: ${BLACKLIST_V4_FILE} ($(wc -l < "${BLACKLIST_V4_FILE}" | tr -d ' ') entries)"
echo " IPv6 only: ${BLACKLIST_V6_FILE} ($(wc -l < "${BLACKLIST_V6_FILE}" | tr -d ' ') entries)"

View File

@@ -12,6 +12,27 @@ import re
from ipaddress import ip_address, ip_network, AddressValueError
from pathlib import Path
def iter_set_blocks(content):
current_name = None
current_lines = []
brace_depth = 0
for line in content.splitlines():
if current_name is None:
match = re.match(r"\s*set\s+([A-Za-z0-9_]+)\s*\{", line)
if match:
current_name = match.group(1)
current_lines = [line]
brace_depth = line.count("{") - line.count("}")
continue
current_lines.append(line)
brace_depth += line.count("{") - line.count("}")
if brace_depth == 0:
yield current_name, "\n".join(current_lines)
current_name = None
current_lines = []
def parse_nft_config(config_path):
"""Extract IPv4 and IPv6 prefixes from nftables config."""
p = Path(config_path)
@@ -21,37 +42,20 @@ def parse_nft_config(config_path):
content = p.read_text(encoding="utf-8")
v4_prefixes = []
v6_prefixes = []
# Parse IPv4 set (blacklist_v4)
v4_match = re.search(
r'set blacklist_v4\s*\{[^}]*elements\s*=\s*\{([^}]+)\}',
content,
re.DOTALL
)
if v4_match:
elements = v4_match.group(1)
# Extract all CIDR notations
for match in re.finditer(r'(\d+\.\d+\.\d+\.\d+(?:/\d+)?)', elements):
try:
v4_prefixes.append(ip_network(match.group(1), strict=False))
except Exception as e:
print(f"Warning: Could not parse IPv4 prefix '{match.group(1)}': {e}", file=sys.stderr)
# Parse IPv6 set (blacklist_v6)
v6_match = re.search(
r'set blacklist_v6\s*\{[^}]*elements\s*=\s*\{([^}]+)\}',
content,
re.DOTALL
)
if v6_match:
elements = v6_match.group(1)
# Extract all IPv6 CIDR notations
for match in re.finditer(r'([0-9a-fA-F:]+(?:/\d+)?)', elements):
try:
v6_prefixes.append(ip_network(match.group(1), strict=False))
except Exception as e:
# Skip false matches from comments or other text
pass
for _, block in iter_set_blocks(content):
if "type ipv4_addr" in block:
for match in re.finditer(r"(\d+\.\d+\.\d+\.\d+(?:/\d+)?)", block):
try:
v4_prefixes.append(ip_network(match.group(1), strict=False))
except Exception as e:
print(f"Warning: Could not parse IPv4 prefix '{match.group(1)}': {e}", file=sys.stderr)
elif "type ipv6_addr" in block:
for match in re.finditer(r"([0-9a-fA-F:]+(?:/\d+)?)", block):
try:
v6_prefixes.append(ip_network(match.group(1), strict=False))
except Exception:
pass
return v4_prefixes, v6_prefixes

View File

@@ -13,7 +13,7 @@ Usage:
import sys
from ipaddress import ip_network, collapse_addresses
from pathlib import Path
from datetime import datetime
from datetime import datetime, UTC
def read_lines(path_or_dash):
if path_or_dash == "-":
@@ -43,55 +43,69 @@ def aggregate_prefixes(lines):
agg_v6 = list(collapse_addresses(sorted(v6, key=lambda x: (int(x.network_address), x.prefixlen))))
return agg_v4, agg_v6, invalid
def make_nft_config(agg_v4, agg_v6, comment=None):
def make_nft_config(agg_v4, agg_v6, comment=None, usage_profile="vm_input"):
if usage_profile == "vk_forward":
set_v4_name = "blacklist_vk_v4"
set_v6_name = "blacklist_vk_v6"
rule_v4 = f'sudo nft add rule inet filter forward iifname "<VPN_IFACE>" ip daddr @{set_v4_name} counter reject'
rule_v6 = f'sudo nft add rule inet filter forward iifname "<VPN_IFACE>" ip6 daddr @{set_v6_name} counter reject'
else:
set_v4_name = "blacklist_v4"
set_v6_name = "blacklist_v6"
rule_v4 = f"sudo nft add rule inet filter input ip saddr @{set_v4_name} counter reject"
rule_v6 = f"sudo nft add rule inet filter input ip6 saddr @{set_v6_name} counter reject"
lines = []
lines.append("# Autogenerated nftables blacklist")
lines.append(f"# Generated: {datetime.utcnow().isoformat()}Z")
lines.append(f"# Generated: {datetime.now(UTC).isoformat().replace('+00:00', 'Z')}")
if comment:
lines.append(f"# {comment}")
lines.append(f"# IPv4: {len(agg_v4)}, IPv6: {len(agg_v6)}")
lines.append("#")
lines.append("# Usage:")
lines.append("# sudo nft -f <this-file>")
if usage_profile == "vk_forward":
lines.append("# # VK egress blocking for VPN clients via NAT/FORWARD")
lines.append("# sudo nft add chain inet filter forward '{ type filter hook forward priority 0; policy accept; }'")
lines.append(f"# {rule_v4}")
lines.append(f"# {rule_v6}")
else:
lines.append("# # VM protection from incoming blacklist sources")
lines.append("# sudo nft add chain inet filter input '{ type filter hook input priority 0; policy accept; }'")
lines.append(f"# {rule_v4}")
lines.append(f"# {rule_v6}")
lines.append("")
lines.append("table inet filter {")
lines.append("")
# Define IPv4 blacklist set
lines.append(" set blacklist_v4 {")
lines.append(f" set {set_v4_name} {{")
lines.append(" type ipv4_addr")
lines.append(" flags interval")
if agg_v4:
lines.append(" elements = {")
for i, net in enumerate(agg_v4):
comma = "," if i < len(agg_v4) - 1 else ""
lines.append(f" {net.with_prefixlen}{comma}")
rendered_net = net.with_prefixlen if hasattr(net, "with_prefixlen") else str(net)
lines.append(f" {rendered_net}{comma}")
lines.append(" }")
lines.append(" }")
lines.append("")
# Define IPv6 blacklist set
lines.append(" set blacklist_v6 {")
lines.append(f" set {set_v6_name} {{")
lines.append(" type ipv6_addr")
lines.append(" flags interval")
if agg_v6:
lines.append(" elements = {")
for i, net in enumerate(agg_v6):
comma = "," if i < len(agg_v6) - 1 else ""
lines.append(f" {net.with_prefixlen}{comma}")
rendered_net = net.with_prefixlen if hasattr(net, "with_prefixlen") else str(net)
lines.append(f" {rendered_net}{comma}")
lines.append(" }")
lines.append(" }")
lines.append("")
# Define input chain with set lookups
lines.append(" chain input {")
lines.append(" type filter hook input priority 0;")
lines.append(" policy accept;")
lines.append("")
lines.append(" ct state { established, related } accept")
lines.append("")
if agg_v4:
lines.append(" ip saddr @blacklist_v4 counter drop")
if agg_v6:
lines.append(" ip6 saddr @blacklist_v6 counter drop")
lines.append(" }")
lines.append("}")
return "\n".join(lines)
@@ -119,7 +133,8 @@ def main(argv):
if not any(line.strip() and not line.strip().startswith("#") for line in lines):
print("WARNING: input contains no prefixes (empty or only comments). Nothing to aggregate.")
nft_conf = make_nft_config([], [], comment="Empty input produced no prefixes")
profile = "vk_forward" if "vk" in Path(infile).name.lower() else "vm_input"
nft_conf = make_nft_config([], [], comment="Empty input produced no prefixes", usage_profile=profile)
write_output(outfile, nft_conf)
return 0
@@ -137,7 +152,8 @@ def main(argv):
for n in agg_v6:
print(" v6:", n)
nft_conf = make_nft_config(agg_v4, agg_v6, comment=f"Source: {infile}")
profile = "vk_forward" if "vk" in Path(infile).name.lower() else "vm_input"
nft_conf = make_nft_config(agg_v4, agg_v6, comment=f"Source: {infile}", usage_profile=profile)
try:
write_output(outfile, nft_conf)
except Exception as e:
@@ -146,9 +162,12 @@ def main(argv):
print("Done.")
print("Load with: sudo nft -f <output.conf>")
print("View counters: sudo nft list chain inet filter input -a")
print("View sets: sudo nft list set inet filter blacklist_v4")
print(" sudo nft list set inet filter blacklist_v6")
if profile == "vk_forward":
print("View sets: sudo nft list set inet filter blacklist_vk_v4")
print(" sudo nft list set inet filter blacklist_vk_v6")
else:
print("View sets: sudo nft list set inet filter blacklist_v4")
print(" sudo nft list set inet filter blacklist_v6")
return 0
if __name__ == "__main__":

View File

@@ -1,60 +1,94 @@
#!/usr/bin/env python3
import requests
import argparse
import re
from cymruwhois import Client
import sys
import requests
from pylib.whois import whois_query
ASN_RE = re.compile(r"\bAS\d+\b", re.IGNORECASE)
def get_as_prefixes(asn):
url = f"https://stat.ripe.net/data/announced-prefixes/data.json?resource={asn}"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
prefixes = data['data']['prefixes']
return [prefix['prefix'] for prefix in prefixes]
else:
return []
response = requests.get(url, timeout=30)
response.raise_for_status()
data = response.json()
prefixes = data["data"]["prefixes"]
return [prefix["prefix"] for prefix in prefixes]
def convert_to_raw_github_url(url):
return url.replace("https://github.com/", "https://raw.githubusercontent.com/").replace("/blob", "")
def print_prefixes(asn):
line = re.sub(r'[^AS0-9]', '', asn)
if not args.quiet:
print(f"# Networks announced by {line}")
response = whois_query(line, "as-name", True)
def normalize_asn(value):
match = ASN_RE.search(value)
if match:
return match.group(0).upper()
return None
def print_prefixes(asn, quiet=False):
normalized_asn = normalize_asn(asn)
if normalized_asn is None:
return
if not quiet:
print(f"# Networks announced by {normalized_asn}")
response = whois_query(normalized_asn, "as-name", True)
if response is not None:
info = response.strip()
print(f"# AS-Name (ORG): {info}")
prefixes = get_as_prefixes(line)
prefixes = get_as_prefixes(normalized_asn)
for prefix in prefixes:
print(prefix)
def extract_asses(asn_filename_or_url):
if asn_filename_or_url.startswith('AS'):
print_prefixes(asn_filename_or_url)
def extract_asses(asn_filename_or_url, quiet=False):
if normalize_asn(asn_filename_or_url) and not asn_filename_or_url.startswith(("http://", "https://")):
print_prefixes(asn_filename_or_url, quiet=quiet)
return None
if asn_filename_or_url.startswith('http://') or asn_filename_or_url.startswith('https://'):
if 'github.com' in asn_filename_or_url:
if asn_filename_or_url.startswith("http://") or asn_filename_or_url.startswith("https://"):
if "github.com" in asn_filename_or_url:
asn_filename_or_url = convert_to_raw_github_url(asn_filename_or_url)
response = requests.get(asn_filename_or_url)
lines = response.text.split('\n')
response = requests.get(asn_filename_or_url, timeout=30)
response.raise_for_status()
lines = response.text.splitlines()
else:
with open(asn_filename_or_url, 'r') as file:
with open(asn_filename_or_url, "r", encoding="utf-8") as file:
lines = file.readlines()
for line in lines:
if re.match(r'^AS.*', line):
print_prefixes(line)
normalized_asn = normalize_asn(line)
if normalized_asn:
print_prefixes(normalized_asn, quiet=quiet)
return None
parser = argparse.ArgumentParser(description='./as_network_list.py -q AS61280')
parser.add_argument('asn_filename_or_url', help='The AS number to get networks / The file or URL to extract AS numbers from.')
parser.add_argument('-q', '--quiet', action='store_true', help='Disable all output except prefixes.')
args = parser.parse_args()
extract_asses(args.asn_filename_or_url)
def build_parser():
parser = argparse.ArgumentParser(description="./network_list_from_as.py -q AS61280")
parser.add_argument("asn_filename_or_url", help="The AS number to get networks / The file or URL to extract AS numbers from.")
parser.add_argument("-q", "--quiet", action="store_true", help="Disable all output except prefixes.")
return parser
def main(argv=None):
parser = build_parser()
args = parser.parse_args(argv)
try:
extract_asses(args.asn_filename_or_url, quiet=args.quiet)
except requests.RequestException as exc:
print(f"ERROR: failed to fetch ASN data: {exc}", file=sys.stderr)
return 1
except OSError as exc:
print(f"ERROR: failed to read input: {exc}", file=sys.stderr)
return 1
return 0
if __name__ == "__main__":
sys.exit(main())

View File

@@ -1,41 +1,72 @@
#!/usr/bin/env python3
import argparse
import requests
import re
from pylib.whois import whois_query
from pylib.ip import convert_to_cidr
import sys
import requests
from pylib.ip import convert_to_cidr
from pylib.whois import whois_query
def convert_to_raw_github_url(url):
return url.replace("https://github.com/", "https://raw.githubusercontent.com/").replace("/blob", "")
def extract_netname(filename_or_url):
if filename_or_url.startswith('http://') or filename_or_url.startswith('https://'):
if 'github.com' in filename_or_url:
def iter_netnames(lines):
for line in lines:
stripped = line.strip()
if not stripped or stripped.startswith("#"):
continue
if re.match(r"^netname:", stripped, re.IGNORECASE):
yield stripped.split(":", 1)[1].strip()
else:
yield stripped
def extract_netname(filename_or_url, quiet=False):
if filename_or_url.startswith("http://") or filename_or_url.startswith("https://"):
if "github.com" in filename_or_url:
filename_or_url = convert_to_raw_github_url(filename_or_url)
response = requests.get(filename_or_url)
lines = response.text.split('\n')
response = requests.get(filename_or_url, timeout=30)
response.raise_for_status()
lines = response.text.splitlines()
else:
with open(filename_or_url, 'r') as file:
with open(filename_or_url, "r", encoding="utf-8") as file:
lines = file.readlines()
for line in lines:
if re.match(r'^netname:', line):
netname = line.split(':')[1].strip()
response = whois_query(netname, "inetnum")
if response is not None and len(response) > 0:
if not args.quiet:
print(f"# Network name: {netname}")
for cidr in response:
net = convert_to_cidr(cidr)
net = net[0]
print(net)
for netname in iter_netnames(lines):
response = whois_query(netname, "inetnum")
if response is not None and len(response) > 0:
if not quiet:
print(f"# Network name: {netname}")
for cidr in response:
for network in convert_to_cidr(cidr):
print(network)
return None
parser = argparse.ArgumentParser(description='Extract netname from file.')
parser.add_argument('filename_or_url', help='The file or URL to extract netnames from.')
parser.add_argument('-q', '--quiet', action='store_true', help='Disable all output except prefixes.')
args = parser.parse_args()
extract_netname(args.filename_or_url)
def build_parser():
parser = argparse.ArgumentParser(description="Extract netname from file.")
parser.add_argument("filename_or_url", help="The file or URL to extract netnames from.")
parser.add_argument("-q", "--quiet", action="store_true", help="Disable all output except prefixes.")
return parser
def main(argv=None):
parser = build_parser()
args = parser.parse_args(argv)
try:
extract_netname(args.filename_or_url, quiet=args.quiet)
except requests.RequestException as exc:
print(f"ERROR: failed to fetch netname data: {exc}", file=sys.stderr)
return 1
except OSError as exc:
print(f"ERROR: failed to read input: {exc}", file=sys.stderr)
return 1
return 0
if __name__ == "__main__":
sys.exit(main())

View File

@@ -1,62 +1,84 @@
#!/usr/bin/env python3
import argparse
import re
import json
from pylib.ip import convert_to_cidr
import sys
from pylib.ip import convert_to_cidr
country = "RU"
def normalize_record(record):
if not record:
return None
if record.get("country") != country:
return None
normalized = dict(record)
normalized["inetnum"] = convert_to_cidr(record["inetnum"])
return normalized
def parse(filename, output_text, output_json):
cList = []
c_list = []
record = {}
with open(filename, 'r', encoding='latin-1') as f:
with open(filename, "r", encoding="latin-1") as f:
lines = f.readlines()
f.close()
for line in lines:
if re.match(r'^inetnum:', line):
if record:
record['inetnum'] = convert_to_cidr(record['inetnum'])
if record['country'] == country:
# print(record)
cList.append(record)
if line.startswith("inetnum:"):
normalized = normalize_record(record)
if normalized is not None:
c_list.append(normalized)
record = {}
record['inetnum'] = line.split('inetnum:', 1)[1].strip()
record['descr'] = ''
record['netname'] = ''
record['country'] = ''
record['org'] = ''
if re.match(r'^netname:', line):
record['netname'] = line.split('netname:', 1)[1].strip()
if re.match(r'^descr:', line):
record['descr'] = str(record['descr'].strip() + ' ' + line.split('descr:', 1)[1].strip()).strip()
if re.match(r'^mnt-by:', line):
record['netname'] = str(record['netname'].strip() + ' ' + line.split('mnt-by:', 1)[1].strip()).strip()
if re.match(r'^country:', line):
record['country'] = line.split('country:', 1)[1].strip()
if re.match(r'^org:', line):
record['org'] = line.split('org:', 1)[1].strip()
if record:
cList.append(record)
record["inetnum"] = line.split("inetnum:", 1)[1].strip()
record["descr"] = ""
record["netname"] = ""
record["country"] = ""
record["org"] = ""
if line.startswith("netname:"):
record["netname"] = line.split("netname:", 1)[1].strip()
if line.startswith("descr:"):
record["descr"] = str(record["descr"].strip() + " " + line.split("descr:", 1)[1].strip()).strip()
if line.startswith("mnt-by:"):
record["netname"] = str(record["netname"].strip() + " " + line.split("mnt-by:", 1)[1].strip()).strip()
if line.startswith("country:"):
record["country"] = line.split("country:", 1)[1].strip()
if line.startswith("org:"):
record["org"] = line.split("org:", 1)[1].strip()
with open(output_json, 'w') as f:
json.dump(cList, f, indent=4)
f.close()
normalized = normalize_record(record)
if normalized is not None:
c_list.append(normalized)
with open(output_text, 'w') as f:
for record in cList:
for net in record['inetnum']:
f.write(net + ' ' + record['netname'] + ' (' + record['org'] + ') [' + record['descr'] + ']\n')
f.close()
with open(output_json, "w", encoding="utf-8") as f:
json.dump(c_list, f, indent=4)
parser = argparse.ArgumentParser(description='Parse RIPE DB for getting a list of RU networks.')
parser.add_argument('filename', help='ripe.db.inetnum file to parse.')
parser.add_argument('output_text', help='write text db to...')
parser.add_argument('output_json', help='write json do to...')
args = parser.parse_args()
with open(output_text, "w", encoding="utf-8") as f:
for item in c_list:
for net in item["inetnum"]:
f.write(net + " " + item["netname"] + " (" + item["org"] + ") [" + item["descr"] + "]\n")
if not (args.filename):
parser.print_help()
exit()
parse(args.filename, args.output_text, args.output_json)
def build_parser():
parser = argparse.ArgumentParser(description="Parse RIPE DB for getting a list of RU networks.")
parser.add_argument("filename", help="ripe.db.inetnum file to parse.")
parser.add_argument("output_text", help="write text db to...")
parser.add_argument("output_json", help="write json db to...")
return parser
def main(argv=None):
parser = build_parser()
args = parser.parse_args(argv)
try:
parse(args.filename, args.output_text, args.output_json)
except OSError as exc:
print(f"ERROR: {exc}", file=sys.stderr)
return 1
return 0
if __name__ == "__main__":
sys.exit(main())

View File

@@ -0,0 +1,26 @@
import tempfile
import unittest
from pathlib import Path
from check_nft_blacklist import check_ip_in_blacklist, parse_nft_config
from generate_nft_blacklist import make_nft_config
class CheckNftBlacklistTests(unittest.TestCase):
def test_vk_sets_are_parsed(self):
config = make_nft_config(["87.240.128.0/18"], [], usage_profile="vk_forward")
with tempfile.TemporaryDirectory() as tmpdir:
config_path = Path(tmpdir) / "blacklist-vk-v4.nft"
config_path.write_text(config, encoding="utf-8")
v4_prefixes, v6_prefixes = parse_nft_config(config_path)
blocked, prefix = check_ip_in_blacklist("87.240.128.1", v4_prefixes, v6_prefixes)
self.assertEqual(len(v4_prefixes), 1)
self.assertTrue(blocked)
self.assertEqual(str(prefix), "87.240.128.0/18")
if __name__ == "__main__":
unittest.main()

View File

@@ -0,0 +1,25 @@
import unittest
from generate_nft_blacklist import make_nft_config
class GenerateNftBlacklistTests(unittest.TestCase):
def test_general_profile_generates_plain_sets_only(self):
config = make_nft_config(["10.0.0.0/24"], [], usage_profile="vm_input")
self.assertIn("set blacklist_v4", config)
self.assertNotIn("chain input", config)
self.assertIn("ip saddr @blacklist_v4", config)
def test_vk_profile_uses_vk_set_names_and_forward_example(self):
config = make_nft_config(["10.0.0.0/24"], ["2001:db8::/32"], usage_profile="vk_forward")
self.assertIn("set blacklist_vk_v4", config)
self.assertIn("set blacklist_vk_v6", config)
self.assertNotIn("chain forward", config)
self.assertIn("ip daddr @blacklist_vk_v4", config)
self.assertIn("ip6 daddr @blacklist_vk_v6", config)
if __name__ == "__main__":
unittest.main()

View File

@@ -0,0 +1,41 @@
import json
import tempfile
import unittest
from pathlib import Path
from parse_ripe_db import parse
class ParseRipeDbTests(unittest.TestCase):
def test_skips_non_ru_last_record_and_normalizes_last_ru_record(self):
sample = """\
inetnum: 10.0.0.0 - 10.0.0.255
netname: TEST1
country: RU
org: ORG-1
descr: desc1
inetnum: 20.0.0.0 - 20.0.0.255
netname: TEST2
country: US
org: ORG-2
"""
with tempfile.TemporaryDirectory() as tmpdir:
source = Path(tmpdir) / "ripe.db.inetnum"
output_text = Path(tmpdir) / "out.txt"
output_json = Path(tmpdir) / "out.json"
source.write_text(sample, encoding="latin-1")
parse(str(source), str(output_text), str(output_json))
payload = json.loads(output_json.read_text(encoding="utf-8"))
self.assertEqual(len(payload), 1)
self.assertEqual(payload[0]["inetnum"], ["10.0.0.0/24"])
self.assertEqual(payload[0]["country"], "RU")
text_lines = output_text.read_text(encoding="utf-8").splitlines()
self.assertEqual(text_lines, ["10.0.0.0/24 TEST1 (ORG-1) [desc1]"])
if __name__ == "__main__":
unittest.main()