
ΠΠ°Π΄Π°ΡΠ°ΡΠ° Π·Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π΄ΡΡΠΆΠ°Π²ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΡΠΎΡΡΠ°, Π½ΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎΡΠΎ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅ Π΅ ΠΈΠ·ΠΌΠ°ΠΌΠ½ΠΎ. ΠΠ½Π΅Ρ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π°.
ΠΡΠ΅Π΄ΠΈΡΡΠΎΡΠΈΡ
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΡΡΡΡΠ΅Π½Π΅ΡΠΎ Π² Google ΠΏΠΎ ΡΠ°Π·ΠΈ ΡΠ΅ΠΌΠ° ΡΠ°Π·ΠΎΡΠ°ΡΠΎΠ²Π°Ρ: ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡΠ΄Π°Π²Π½Π° ΡΠ° βΠΈΠ·ΡΠ΅Π·Π½Π°Π»ΠΈβ ΠΈ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΡΠ΅ΠΌΠ°ΡΠ° Π΅ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π° Π·Π° Π΄ΡΠ»Π³ΠΎ ΠΈ Π·Π°Π²ΠΈΠ½Π°Π³ΠΈ Π·Π°Π±ΡΠ°Π²Π΅Π½Π°. ΠΠΈΠ΅ ΠΎΠ±Π°ΡΠ΅ βΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ
ΠΌΠ΅β ΠΏΡΠ΅Π· ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΠΌΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅.
ΠΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΠ°ΡΠΈΡΡΠ° ΠΈΠ·ΡΡΠ»ΠΎ, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°
Π€ΠΈΠ»ΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠΈΠ»ΠΈΡΠ° iptables, Π·Π° ΠΊΠΎΡΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ GeoIP Π΄Π°Π½Π½ΠΈ. Π’Π°ΠΊΠΎΠ²Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΎ Π² . 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-addonsxtables-addons ΡΡΠ΄ΡΡΠΆΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, Π½ΠΎ Π½Π°Ρ Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π° ΡΠ°ΠΌΠΎ xt_geoip. ΠΠΊΠΎ Π½Π΅ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½Π΅Π½ΡΠΆΠ½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ°. ΠΠ° ΡΠ΅Π»ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΉΠ»Π° mconfig. ΠΠ° Π²ΡΠΈΡΠΊΠΈ ΠΆΠ΅Π»Π°Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΠΎΡΡΠ°Π²Π΅ΡΠ΅ y, Π° Π²ΡΠΈΡΠΊΠΈ Π½Π΅Π½ΡΠΆΠ½ΠΈ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠ΅ΡΠ΅ n. ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΠΌΠ΅:
./autogen.sh./configure, Π·Π°ΡΠΎΠ²Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Windows ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ Cygwin ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΡΡ ΡΠ°ΠΌΠΈ Ρ Visual Studio ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅.Π ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ Ρ ΠΏΡΠ°Π²Π°ΡΠ° Π½Π° ΡΡΠΏΠ΅ΡΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»:
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/certscat < 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
EOFopenssl req -new -nodes -utf8 -sha512 -days 36500 -batch -x509 -config x509.genkey -outform DER -out signing_key.x509 -keyout signing_key.pemΠ‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ» Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½, Π½ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π΅ Π³ΠΎ ΡΠ°Π·ΠΏΠΎΠ·Π½Π°Π²Π°. Π©Π΅ ΠΏΠΎΠΌΠΎΠ»ΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΠΊΠ°ΡΡΠ° Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ Ρ ΠΎΠ³Π»Π΅Π΄ Π½Π° Π½ΠΎΠ²ΠΈΡ ΠΌΠΎΠ΄ΡΠ» ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ Π³ΠΎ Π·Π°ΡΠ΅Π΄ΠΈΠΌ:
depmod -amodprobe 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, ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Π½ ΠΏΠΎ Π»ΠΈΡΠ΅Π½Π· ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° . Π‘ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡ ΡΠ΅ ΡΠ»ΡΡΠΈΡ Π° Π΄Π²Π΅ ΡΡΠ±ΠΈΡΠΈΡ, ΠΊΠΎΠΈΡΠΎ "ΡΡΡΠΏΠΈΡ Π°" ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° iptables.
ΠΠ° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, ΠΏΡΠ΅Π· ΡΠ½ΡΠ°ΡΠΈ 2018 Π³ΠΎΠ΄ΠΈΠ½Π° Π±Π΅ΡΠ΅ ΠΎΠ±ΡΠ²Π΅Π½ΠΎ Π·Π° ΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, Π° Π½Π° Π²ΡΠΎΡΠΈ ΡΠ½ΡΠ°ΡΠΈ 2019 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΎΡ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡ ΡΠ°ΠΉΡ Π±ΡΡ Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΈ Π²ΡΠΈΡΠΊΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π½Π° ΡΡΠ°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ°. ΠΠ° Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° GeoLite2 ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΠ΅Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ GeoIP2.
ΠΠ° Π²ΡΠΎΡΠΎ ΠΌΡΡΡΠΎ, ΠΎΡ Π΄Π΅ΠΊΠ΅ΠΌΠ²ΡΠΈ 2019 Π³ΠΎΠ΄ΠΈΠ½Π° MaxMind ΠΎΠ±ΡΠ²ΠΈ Π·Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½Π° ΠΏΡΠΎΠΌΡΠ½Π° Π² Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ Π±Π°Π·ΠΈ. ΠΠ° Π΄Π° ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π° Π½Π° Π·Π°ΠΊΠΎΠ½Π° Π·Π° Π·Π°ΡΠΈΡΠ° Π½Π° ΠΏΡΠ°Π²Π°ΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π² ΠΠ°Π»ΠΈΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° MaxMind ΡΠ΅ΡΠΈ Π΄Π° "ΠΏΡΠΈΠΊΡΠΈΠ΅" ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° GeoLite2 ΡΡΠ΅Π· ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΡ ΡΠ΅Ρ Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡ, ΡΠ΅ ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°ΠΌΠ΅ Π½Π° ΡΠ°Π·ΠΈ ΡΡΡΠ°Π½ΠΈΡΠ°.

ΠΠ° ΠΈΠΌΠ΅ΠΉΠ» ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΌΠΎΠ»Π±Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΠ°ΡΠΎΠ»Π°. Π‘Π΅Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠΌΠ΅ ΡΡΠ·Π΄Π°Π»ΠΈ Π°ΠΊΠ°ΡΠ½Ρ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π΅Π½ ΠΊΠ»ΡΡ. Π Π»ΠΈΡΠ½ΠΈΡ ΡΠΈ ΠΏΡΠΎΡΠΈΠ» Π½Π°ΠΌΠΈΡΠ°ΠΌΠ΅ ΠΎΠΏΡΠΈΡΡΠ° MoΠΈΡΠ΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π½Π°ΡΠΈΡΠΊΠ°ΠΌΠ΅ Π±ΡΡΠΎΠ½Π° ΠΠ΅Π½Π΅ΡΠΈΡΠ°ΠΉ Π½ΠΎΠ² Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π΅Π½ ΠΊΠ»ΡΡ.
ΠΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠΏΠΈΡΠ°Π½ΠΈ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ Π²ΡΠΏΡΠΎΡ: ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π»ΠΈ ΡΠΎΠ·ΠΈ ΠΊΠ»ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° GeoIP Update? ΠΡΠ³ΠΎΠ²Π°ΡΡΠΌΠ΅ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½ΠΎ ΠΈ Π½Π°ΡΠΈΡΠΊΠ°ΠΌΠ΅ Π±ΡΡΠΎΠ½Π° ΠΠΎΡΠ²ΡΡΠ΄ΠΈ. Π ΠΈΠ·ΡΠΊΠ°ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΠΊΠ»ΡΡΡΡ. ΠΠ°ΠΏΠ°Π·Π΅ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΊΠ»ΡΡ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎ ΠΌΡΡΡΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ»Π΅Π΄ Π·Π°ΡΠ²Π°ΡΡΠ½Π΅ Π½Π° ΠΈΠ·ΡΠΊΠ°ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ, Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ»ΡΡΠ° Π² ΠΏΡΠ»Π΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ.

ΠΠΌΠ°ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠΌΠ΅ Π±Π°Π·ΠΈ GeoLite2 ΡΡΡΠ½ΠΎ, Π½ΠΎ ΡΠ΅Ρ
Π½ΠΈΡΡ ΡΠΎΡΠΌΠ°Ρ Π½Π΅ Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΡΠΎΡΠΌΠ°ΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠ°ΠΊΠ²Π° ΡΠΊΡΠΈΠΏΡΡΡ xt_geoip_build. Π’ΡΠΊ Π½Π° ΠΏΠΎΠΌΠΎΡ ΠΈΠ΄Π²Π°Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅ GeoLite2xtables. ΠΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΡΡ
ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ perl ΠΌΠΎΠ΄ΡΠ»Π° NetAddr::IP:
wget https://cpan.metacpan.org/authors/id/M/MI/MIKER/NetAddr-IP-4.079.tar.gztar xvf NetAddr-IP-4.079.tar.gzcd NetAddr-IP-4.079perl Makefile.PL, Π·Π°ΡΠΎΠ²Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Windows ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ Cygwin ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΡΡ ΡΠ°ΠΌΠΈ Ρ Visual Studio ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅.make installΠ‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΎ ΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π² ΡΠ°ΠΉΠ» ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ-ΡΠ°Π½ΠΎ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π΅Π½ ΠΊΠ»ΡΡ:
git clone https://github.com/mschmitt/GeoLite2xtables.gitcd GeoLite2xtablesecho 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.csvMaxMind Π½Π°Π»Π°Π³Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΡ 2000 ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½ΠΈΡ Π½Π° Π΄Π΅Π½ ΠΈ ΠΏΡΠΈ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΡΡΡΠ²ΡΡΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΊΡΠΈ-ΡΡΡΠ²ΡΡ.
ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΡ ΡΠ°ΠΉΠ» Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π½Π°ΡΠΈΡΠ° dbip-country-lite.csv. ΠΠ° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅, 20_convert_geolite2 Π΄Π°Π²Π° Π½Π΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½ ΡΠ°ΠΉΠ». Π‘ΠΊΡΠΈΠΏΡΡΡ xt_geoip_build ΠΎΡΠ°ΠΊΠ²Π° ΡΡΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ:
- Π½Π°ΡΠ°Π»ΠΎ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π°Π΄ΡΠ΅ΡΠΈ;
- ΠΊΡΠ°ΠΉ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π°Π΄ΡΠ΅ΡΠΈ;
- ΠΊΠΎΠ΄ Π½Π° ΡΡΡΠ°Π½Π°ΡΠ° Π² iso-3166-alpha2.
Π ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΡ ΡΠ°ΠΉΠ» ΡΡΠ΄ΡΡΠΆΠ° ΡΠ΅ΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΈ:
- Π½Π°ΡΠ°Π»ΠΎ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π°Π΄ΡΠ΅ΡΠΈ (ΡΡΡΠΎΠΊΠΎΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅);
- ΠΊΡΠ°ΠΉ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π°Π΄ΡΠ΅ΡΠΈ (ΡΡΡΠΎΠΊΠΎΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅);
- Π½Π°ΡΠ°Π»ΠΎ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π°Π΄ΡΠ΅ΡΠΈ (ΡΠΈΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅);
- ΠΊΡΠ°ΠΉ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π°Π΄ΡΠ΅ΡΠΈ (ΡΠΈΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅);
- ΠΊΠΎΠ΄ Π½Π° ΡΡΡΠ°Π½Π°ΡΠ°;
- ΠΈΠΌΠ΅ Π½Π° ΡΡΡΠ°Π½Π°ΡΠ°.
Π’ΠΎΠ²Π° Π½Π΅ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΎ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ Π΄Π²Π° Π½Π°ΡΠΈΠ½Π°:
- ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ 20_convert_geolite2;
- ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ xt_geoip_build.
Π ΠΏΡΡΠ²ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΠΌΠ΅ Π΄ΠΎ Π½ΡΠΆΠ½ΠΈΡ ΡΠΎΡΠΌΠ°Ρ, Π° Π²ΡΠ² Π²ΡΠΎΡΠΈΡ β ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° $cc Π½Π° $row->[4]. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ±ΠΎΡΠΊΠ°ΡΠ°:
/usr/lib/xtables-addons/xt_geoip_build -S /usr/share/xt_geoip/ -D /usr/share/xt_geoip. . .
2239 IPv4 Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π° ZA
348 IPv6 Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π° ZA
56 IPv4 Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π° ZM
12 IPv6 Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π° ZM
56 IPv4 Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π° ZW
15 IPv6 Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π° ZWΠΠ°Π±Π΅Π»Π΅ΠΆΠ΅ΡΠ΅, ΡΠ΅ Π°Π²ΡΠΎΡΡΡ Π½Π΅ ΡΡΠΈΡΠ° ΡΠ²ΠΎΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π·Π° Π³ΠΎΡΠΎΠ²ΠΈ Π·Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ xt_geoip_*. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΊΡΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΎΡ ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅Π·ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π²Π΅ΡΠ΅ ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΈ.
ΠΠ΅ΡΡΠΈΡ ΠΎΡ ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄
ΠΡΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ ΠΎΡ ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄, ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅ xt_geoip_* ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° /usr/local/libexec/xtables-addons. Π ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠΊΡΠΈΠΏΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ . ΠΠΈΡΠ΅Π½Π·ΠΈΡ β 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)
ΠΠΠΠΠΠΠΠΠ: Π‘ΡΡΠ°Π½Π°ΡΠ° ΡΠ΅ Π²ΡΠ²Π΅ΠΆΠ΄Π° ΠΏΠΎ ISO3166 ΠΊΠΎΠ΄.ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° 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 Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ ΡΠ»Π΅ΡΠ½ΠΈ ΠΆΠΈΠ²ΠΎΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ.
Π‘Π°ΠΌΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ°ΡΡΠ²Π°Ρ Π² Π°Π½ΠΊΠ΅ΡΠ°ΡΠ°. , ΠΌΠΎΠ»Ρ.
ΠΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ Π»ΠΈ ΡΡΠ΅ ΡΠΈΠ»ΡΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΡΡΠ°Π½ΠΈ?
59,1%ΠΠ°13
40,9%ΠΠ΅9
ΠΠ»Π°ΡΡΠ²Π°Π»ΠΈ 22 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. ΠΡΠ·Π΄ΡΡΠΆΠ°Π»ΠΈ ΡΠ΅ 3 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
