xtables-addons: Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎ странам

xtables-addons: Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎ странам
Π—Π°Π΄Π°Ρ‡Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… стран каТСтся простой, Π½ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΌΠ°Π½Ρ‡ΠΈΠ²ΠΎ. БСгодня расскаТСм, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΡ€Π΅Π΄Ρ‹ΡΡ‚ΠΎΡ€ΠΈΡ

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ поиска Π² Google ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ ΠΎΠ³ΠΎΡ€Ρ‡Π°ΡŽΡ‚: Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π΄Π°Π²Π½ΠΎ Β«ΠΏΡ€ΠΎΡ‚ΡƒΡ…Π»ΠΈΒ» ΠΈ ΠΏΠΎΡ€ΠΎΠΉ каТСтся, Ρ‡Ρ‚ΠΎ эту Ρ‚Π΅ΠΌΡƒ ΠΎΡ‚Π»ΠΎΠΆΠΈΠ»ΠΈ Π² Π΄ΠΎΠ»Π³ΠΈΠΉ ящик ΠΈ навсСгда Π·Π°Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎ Π½Π΅Π΅. ΠœΡ‹ ΠΆΠ΅ Β«ΠΏΡ€ΠΎΡˆΠ΅Ρ€ΡΡ‚ΠΈΠ»ΠΈΒ» ΠΌΠ½ΠΎΠ³ΠΎ старых записСй ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ соврСмСнной вСрсиСй инструкции.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ iptables, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ трСбуСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GeoIP-Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π’Π°ΠΊΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² xtables-addons. xtables-addons устанавливаСт Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для iptables Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ядра, благодаря Ρ‡Π΅ΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ядро ОБ.

На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΡΡ‚Π°Ρ‚ΡŒΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ вСрсия xtables-addons β€” 3.9. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² стандартных рСпозиториях Ubuntu 20.04 LTS ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 3.8, Π° Π² рСпозиториях Ubuntu 18.04 β€” 3.0. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

apt install xtables-addons-common libtext-csv-xs-perl

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиСй 3.9 ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ состояниСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ΡΡ‚ΡŒ нСбольшиС, Π½ΠΎ Π²Π°ΠΆΠ½Ρ‹Π΅ различия, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΠΎΠ·Π΄Π½Π΅Π΅. Для сборки ΠΈΠ· исходных ΠΊΠΎΠ΄ΠΎΠ² устанавливаСм всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹:

apt install git build-essential autoconf make libtool iptables-dev libxtables-dev pkg-config libnet-cidr-lite-perl libtext-csv-xs-perl

ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:

git clone https://git.code.sf.net/p/xtables-addons/xtables-addons xtables-addons-xtables-addons

cd xtables-addons-xtables-addons

xtables-addons содСрТит мноТСство Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, Π½ΠΎ нас интСрСсуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ xt_geoip. Если Π½Π΅ хочСтся Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ Π² систСму Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· сборки. Для этого Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» mconfig. Для всСх ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ y, Π° всС Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ n. Π‘ΠΎΠ±ΠΈΡ€Π°Π΅ΠΌ:

./autogen.sh

./configure

make

И устанавливаСм с ΠΏΡ€Π°Π²Π°ΠΌΠΈ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

make install

Π’ΠΎ врСмя установки ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ядра ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ошибка ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ содСрТания:

INSTALL /root/xtables-addons-xtables-addons/extensions/xt_geoip.ko
At main.c:160:
- SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:72
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:79
sign-file: certs/signing_key.pem: No such file or directory

Вакая ситуация Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΠ·-Π·Π° нСвозмоТности ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ядра, Ρ‚.ΠΊ. Π½Π΅Ρ‡Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ. Π Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ°Ρ€ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄:

cd /lib/modules/(uname -r)/build/certs

cat <<EOF > x509.genkey

[ req ]
default_bits = 4096
distinguished_name = req_distinguished_name
prompt = no
string_mask = utf8only
x509_extensions = myexts

[ req_distinguished_name ]
CN = Modules

[ myexts ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid
EOF

openssl req -new -nodes -utf8 -sha512 -days 36500 -batch -x509 -config x509.genkey -outform DER -out signing_key.x509 -keyout signing_key.pem

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ядра установлСн, Π½ΠΎ систСма Π΅Π³ΠΎ Π½Π΅ опрСдСляСт. ΠŸΠΎΠΏΡ€ΠΎΡΠΈΠΌ систСму ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ зависимостСй с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ модуля, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ Π΅Π³ΠΎ:

depmod -a

modprobe xt_geoip

УбСдимся, Ρ‡Ρ‚ΠΎ xt_geoip Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π² систСму:

# lsmod | grep xt_geoip
xt_geoip               16384  0
x_tables               40960  2 xt_geoip,ip_tables

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ убСдимся, Ρ‡Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΎΡΡŒ Π² iptables:

# cat /proc/net/ip_tables_matches 
geoip
icmp

Нас всС устраиваСт ΠΈ остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ модуля Π² /etc/modules, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π» послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ОБ. Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° iptables ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ geoip, Π½ΠΎ Π΅ΠΌΡƒ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… для Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Π΅ΠΌ ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… geoip.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… GeoIP

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ хранится информация, понятная Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ iptables:

mkdir /usr/share/xt_geoip

Π’ Π½Π°Ρ‡Π°Π»Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΌΡ‹ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиСй ΠΈΠ· исходного ΠΊΠΎΠ΄Π° ΠΈ вСрсиСй ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° Π΅ΡΡ‚ΡŒ различия. Π‘Π°ΠΌΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² смСнС поставщика Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ скриптС xt_geoip_dl, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ скачиваСт Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

ВСрсия ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°

Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π»Π΅ΠΆΠΈΡ‚ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ /usr/lib/xtables-addons, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ запуска ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π΅ ΡΠ°ΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

# ./xt_geoip_dl 
unzip:  cannot find or open GeoLite2-Country-CSV.zip, GeoLite2-Country-CSV.zip.zip or GeoLite2-Country-CSV.zip.ZIP.

Π Π°Π½Π΅Π΅ Π² качСствС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… использовался ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ GeoLite, Π½Ρ‹Π½Π΅ извСстный ΠΊΠ°ΠΊ GeoLite Legacy, распространяСмый ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Creative Commons ASA 4.0 ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ MaxMind. Π‘ этим ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ сразу Π΄Π²Π° события, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ «сломали» ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ для iptables.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π² январС 2018 Π³ΠΎΠ΄Π° объявили ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ января 2019 Π³ΠΎΠ΄Π° с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта ΡƒΠ±Ρ€Π°Π»ΠΈ всС ссылки Π½Π° скачиваниС старой вСрсии Π±Π°Π·Ρ‹. Новым ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ GeoLite2 ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ GeoIP2.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, c дСкабря 2019 Π³ΠΎΠ΄Π° MaxMind заявила ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π² доступС ΠΊ ΠΈΡ… Π±Π°Π·Π°ΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠšΠ°Π»ΠΈΡ„ΠΎΡ€Π½ΠΈΠΉΡΠΊΠΎΠΌΡƒ Π·Π°ΠΊΠΎΠ½Ρƒ ΠΎ Π·Π°Ρ‰ΠΈΡ‚Π΅ ΠΏΡ€Π°Π² ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ, компания MaxMind приняла Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Β«ΠΏΡ€ΠΈΠΊΡ€Ρ‹Ρ‚ΡŒΒ» распространСниС GeoLite2 рСгистрациСй.

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ, зарСгистрируСмся Π½Π° этой страницС.

xtables-addons: Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎ странам
ПослС Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ сообщСниС с ΠΏΡ€ΠΎΡΡŒΠ±ΠΎΠΉ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π°Π²Π΅Π»ΠΈ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡. Π’ Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΡƒΠ½ΠΊΡ‚ My License Keys, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Generate new License Key.

ΠŸΡ€ΠΈ создании ΠΊΠ»ΡŽΡ‡Π° Π½Π°ΠΌ Π·Π°Π΄Π°Π΄ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ вопрос: Π±ΡƒΠ΄Π΅ΠΌ Π»ΠΈ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠ»ΡŽΡ‡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ GeoIP Update? ΠžΡ‚Π²Π΅Ρ‡Π°Π΅ΠΌ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Confirm. Π’ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ ΠΎΠΊΠ½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ ΠΊΠ»ΡŽΡ‡. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ этот ΠΊΠ»ΡŽΡ‡ Π² Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ мСсто, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ послС закрытия Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π° Π²Ρ‹ большС Π½Π΅ смоТСтС ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ.

xtables-addons: Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎ странам
Π£ нас Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρ‹ GeoLite2 Π² Ρ€ΡƒΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π½ΠΎ ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π΅ совмСстим с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ скрипт xt_geoip_build. Π—Π΄Π΅ΡΡŒ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ приходят скрипты GeoLite2xtables. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ скриптов устанавливаСм perl-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ NetAddr::IP:

wget https://cpan.metacpan.org/authors/id/M/MI/MIKER/NetAddr-IP-4.079.tar.gz

tar xvf NetAddr-IP-4.079.tar.gz

cd NetAddr-IP-4.079

perl Makefile.PL

make

make install

Π”Π°Π»Π΅Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ со скриптами ΠΈ записываСм Π² Ρ„Π°ΠΉΠ» ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π½Π΅Π΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡:

git clone https://github.com/mschmitt/GeoLite2xtables.git

cd GeoLite2xtables

echo YOUR_LICENSE_KEY=’123ertyui123' > geolite2.license

ЗапускаСм Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ скрипты:

# Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ GeoLite2
./00_download_geolite2
# Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ странах (для соотвСтствия ΠΊΠΎΠ΄Ρƒ)
./10_download_countryinfo
# ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ GeoLite2 Π±Π°Π·Ρƒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ GeoLite Legacy 
cat /tmp/GeoLite2-Country-Blocks-IPv{4,6}.csv |
./20_convert_geolite2 /tmp/CountryInfo.txt > /usr/share/xt_geoip/dbip-country-lite.csv

MaxMind Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π² 2000 скачиваний Π² сутки ΠΈ ΠΏΡ€ΠΈ большом количСствС сСрвСров ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° прокси-сСрвСрС.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ dbip-country-lite.csv. К соТалСнию, 20_convert_geolite2 Π²Ρ‹Π΄Π°Π΅Ρ‚ Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Π‘ΠΊΡ€ΠΈΠΏΡ‚ xt_geoip_build ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ:

  • Π½Π°Ρ‡Π°Π»ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° адрСсов;
  • ΠΊΠΎΠ½Π΅Ρ† Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° адрСсов;
  • ΠΊΠΎΠ΄ страны Π² iso-3166-alpha2.

А Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» содСрТит ΡˆΠ΅ΡΡ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ:

  • Π½Π°Ρ‡Π°Π»ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° адрСсов (строковоС прСдставлСниС);
  • ΠΊΠΎΠ½Π΅Ρ† Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° адрСсов (строковоС прСдставлСниС);
  • Π½Π°Ρ‡Π°Π»ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° адрСсов (числовоС прСдставлСниС);
  • ΠΊΠΎΠ½Π΅Ρ† Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° адрСсов (числовоС прСдставлСниС);
  • ΠΊΠΎΠ΄ страны;
  • Π½Π°Π·Π²Π°Π½ΠΈΠ΅ страны.

Π­Ρ‚ΠΎ нСсоотвСтствиС ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ исправлСно ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄Π²ΡƒΡ… способов:

  1. ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ 20_convert_geolite2;
  2. ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ xt_geoip_build.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС сокращаСм printf Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ β€” измСняСм присваиваниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $cc Π½Π° $row->[4]. ПослС этого ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ сборку:

/usr/lib/xtables-addons/xt_geoip_build -S /usr/share/xt_geoip/ -D /usr/share/xt_geoip

. . .
 2239 IPv4 ranges for ZA
  348 IPv6 ranges for ZA
   56 IPv4 ranges for ZM
   12 IPv6 ranges for ZM
   56 IPv4 ranges for ZW
   15 IPv6 ranges for ZW

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€ GeoLite2xtables Π½Π΅ считаСт свои скрипты Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π° ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… скриптов xt_geoip_*. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ сборкС ΠΈΠ· исходных ΠΊΠΎΠ΄ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ эти скрипты ΡƒΠΆΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹.

ВСрсия ΠΈΠ· исходных ΠΊΠΎΠ΄ΠΎΠ²

ΠŸΡ€ΠΈ установкС ΠΈΠ· исходных ΠΊΠΎΠ΄ΠΎΠ² скрипты xt_geoip_* Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /usr/local/libexec/xtables-addons. Π’ этой вСрсии скрипта ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… IP to Country Lite. ЛицСнзия β€” Creative Commons Attribution License, Π° ΠΈΠ· доступных Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π΅ самыС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ‚Ρ€ΠΈ столбца. Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ ΠΈ собираСм Π±Π°Π·Ρƒ:

cd /usr/share/xt_geoip/

/usr/local/libexec/xtables-addons/xt_geoip_dl

/usr/local/libexec/xtables-addons/xt_geoip_build

ПослС этих дСйствий iptables Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ geoip Π² iptables

ΠœΠΎΠ΄ΡƒΠ»ΡŒ xt_geoip добавляСт всСго Π΄Π²Π° ΠΊΠ»ΡŽΡ‡Π°:

geoip match options:
[!] --src-cc, --source-country country[,country...]
	Match packet coming from (one of) the specified country(ies)
[!] --dst-cc, --destination-country country[,country...]
	Match packet going to (one of) the specified country(ies)

NOTE: The country is inputed by its ISO3166 code.

Бпособы формирования ΠΏΡ€Π°Π²ΠΈΠ» для iptables, Π² Ρ†Π΅Π»ΠΎΠΌ, ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Для использования ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈΠ· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ модуля с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ -m. НапримСр, ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ для Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ входящих TCP-соСдинСний Π½Π° 443 ΠΏΠΎΡ€Ρ‚Ρƒ Π½Π΅ ΠΈΠ· БША Π½Π° всСх интСрфСйсах:

iptables -I INPUT ! -i lo -p tcp --dport 443 -m geoip ! --src-cc US -j DROP

Π€Π°ΠΉΠ»Ρ‹, созданныС xt_geoip_build, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ создании ΠΏΡ€Π°Π²ΠΈΠ», Π½ΠΎ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ обновлСния Π±Π°Π·Ρ‹ geoip Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ iv*-Ρ„Π°ΠΉΠ»Ρ‹, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ всС ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ geoip Π² iptables.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² зависимости ΠΎΡ‚ принадлСТности ΠΊ странам β€” нСсколько забытая Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ стратСгия. НСсмотря Π½Π° это, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ срСдства для Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² скором Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°Ρ… появится новая вСрсия xt_geoip с Π½ΠΎΠ²Ρ‹ΠΌ поставщиком geoip-Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ упростит Тизнь систСмным администраторам.

xtables-addons: Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎ странам

Волько зарСгистрированныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² опросС. Π’ΠΎΠΉΠ΄ΠΈΡ‚Π΅, поТалуйста.

А Π²Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ странам?

  • 59,1%Π”Π°13

  • 40,9%НСт9

ΠŸΡ€ΠΎΠ³ΠΎΠ»ΠΎΡΠΎΠ²Π°Π»ΠΈ 22 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ΠΎΠ·Π΄Π΅Ρ€ΠΆΠ°Π»ΠΈΡΡŒ 3 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com