ΠΠ°Π΄Π°ΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ°ΡΠΈΠΊΠ° ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΡΡΠ°Π½ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ, Π½ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΌΠ°Π½ΡΠΈΠ²ΠΎ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ.
ΠΡΠ΅Π΄ΡΡΡΠΎΡΠΈΡ
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΈΡΠΊΠ° Π² Google ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅ ΠΎΠ³ΠΎΡΡΠ°ΡΡ: Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π°Π²Π½ΠΎ Β«ΠΏΡΠΎΡΡΡ
Π»ΠΈΒ» ΠΈ ΠΏΠΎΡΠΎΠΉ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΡΡ ΡΠ΅ΠΌΡ ΠΎΡΠ»ΠΎΠΆΠΈΠ»ΠΈ Π² Π΄ΠΎΠ»Π³ΠΈΠΉ ΡΡΠΈΠΊ ΠΈ Π½Π°Π²ΡΠ΅Π³Π΄Π° Π·Π°Π±ΡΠ»ΠΈ ΠΏΡΠΎ Π½Π΅Π΅. ΠΡ ΠΆΠ΅ Β«ΠΏΡΠΎΡΠ΅ΡΡΡΠΈΠ»ΠΈΒ» ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΡΡ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈ Π³ΠΎΡΠΎΠ²Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ iptables, ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ GeoIP-Π΄Π°Π½Π½ΡΠΌΠΈ. Π’Π°ΠΊΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π²
ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ Π°ΠΊΡΡΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ 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, ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΠΌΡΠΉ ΠΏΠΎ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, Π² ΡΠ½Π²Π°ΡΠ΅ 2018 Π³ΠΎΠ΄Π°
ΠΠΎ-Π²ΡΠΎΡΡΡ
, c Π΄Π΅ΠΊΠ°Π±ΡΡ 2019 Π³ΠΎΠ΄Π° MaxMind
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠΌ, Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΠΌΡΡ Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅.
ΠΠΎΡΠ»Π΅ Π½Π° ΠΏΠΎΡΡΡ ΠΏΡΠΈΠ΄Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΡΠΎΡΡΠ±ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΡΠΎΠ»Ρ. Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π°Π²Π΅Π»ΠΈ Π°ΠΊΠΊΠ°ΡΠ½Ρ, Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΡΠΉ ΠΊΠ»ΡΡ. Π Π»ΠΈΡΠ½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΠΌ ΠΏΡΠ½ΠΊΡ My License Keys, Π° Π·Π°ΡΠ΅ΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Generate new License Key.
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ»ΡΡΠ° Π½Π°ΠΌ Π·Π°Π΄Π°Π΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π²ΠΎΠΏΡΠΎΡ: Π±ΡΠ΄Π΅ΠΌ Π»ΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠ»ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ GeoIP Update? ΠΡΠ²Π΅ΡΠ°Π΅ΠΌ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Confirm. ΠΠΎ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΌ ΠΎΠΊΠ½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ ΠΊΠ»ΡΡ. Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΡΠΎΡ ΠΊΠ»ΡΡ Π² Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΊΡΡΡΠΈΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π° Π²Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ»ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ.
Π£ Π½Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ Π±Π°Π·Ρ 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.
Π Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΡΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ:
- Π½Π°ΡΠ°Π»ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π°Π΄ΡΠ΅ΡΠΎΠ² (ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅);
- ΠΊΠΎΠ½Π΅Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π°Π΄ΡΠ΅ΡΠΎΠ² (ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅);
- Π½Π°ΡΠ°Π»ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π°Π΄ΡΠ΅ΡΠΎΠ² (ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅);
- ΠΊΠΎΠ½Π΅Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π°Π΄ΡΠ΅ΡΠΎΠ² (ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅);
- ΠΊΠΎΠ΄ ΡΡΡΠ°Π½Ρ;
- Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΡΠ°Π½Ρ.
ΠΡΠΎ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄Π²ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ²:
- ΠΏΡΠ°Π²ΠΈΡΡ 20_convert_geolite2;
- ΠΏΡΠ°Π²ΠΈΡΡ xt_geoip_build.
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠΊΡΠ°ΡΠ°Π΅ΠΌ
/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
ΠΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π°Π²ΡΠΎΡ
ΠΠ΅ΡΡΠΈΡ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΊΠΎΠ΄ΠΎΠ²
ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈΠ· ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
ΠΊΠΎΠ΄ΠΎΠ² ΡΠΊΡΠΈΠΏΡΡ xt_geoip_* ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /usr/local/libexec/xtables-addons. Π ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠΊΡΠΈΠΏΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ
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-Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡ ΠΆΠΈΠ·Π½Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌ.
Π’ΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΎΠΏΡΠΎΡΠ΅.
Π Π²Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΡΡΠ°Π½Π°ΠΌ?
-
59,1%ΠΠ°13
-
40,9%ΠΠ΅Ρ9
ΠΡΠΎΠ³ΠΎΠ»ΠΎΡΠΎΠ²Π°Π»ΠΈ 22 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎΠ·Π΄Π΅ΡΠΆΠ°Π»ΠΈΡΡ 3 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com