ΠΠ°Π΄Π°ΡΠ°ΡΠ° Π·Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π΄ΡΡΠΆΠ°Π²ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΡΠΎΡΡΠ°, Π½ΠΎ ΠΏΡΡΠ²ΠΈΡΠ΅ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΌΠ°ΠΌΠ½ΠΈ. ΠΠ½Π΅Ρ ΡΠ΅ Π²ΠΈ ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈ ΡΠΎΠ²Π°.
ΠΏΡΠ°ΠΈΡΡΠΎΡΠΈΡ
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΡΡΡΡΠ΅Π½Π΅ Π² Google ΠΏΠΎ ΡΠ°Π·ΠΈ ΡΠ΅ΠΌΠ° ΡΠ° ΡΠ°Π·ΠΎΡΠ°ΡΠΎΠ²Π°ΡΠΈ: ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° ΠΎΡΠ΄Π°Π²Π½Π° ΡΠ° βΠ³Π½ΠΈΠ»ΠΈβ ΠΈ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΡΠ°Π·ΠΈ ΡΠ΅ΠΌΠ° Π΅ ΠΎΡΡΠ°Π²Π΅Π½Π° ΠΈ Π·Π°Π±ΡΠ°Π²Π΅Π½Π° Π·Π°Π²ΠΈΠ½Π°Π³ΠΈ. ΠΡΠ΅Π³Π»Π΅Π΄Π°Ρ
ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΠΌΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅.
ΠΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π²ΠΈ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΠ»Π°ΡΠ° ΡΡΠ°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΡΠ΅Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°
Π€ΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° IPTABLES, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ GeoIP Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈ Π²
ΠΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΠΏΠΈΡΠ°Π½Π΅ ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° xtables-addons Π΅ 3.9. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΡΠ°ΠΌΠΎ 20.04 ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π° Ubuntu 3.8 LTS ΠΈ 18.04 Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΡΠ° Π½Π° Ubuntu 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
ΠΠΎΠ²ΠΎΠ»Π½ΠΈ ΡΠΌΠ΅ ΠΎΡ Π²ΡΠΈΡΠΊΠΎ ΠΈ ΠΎΡΡΠ°Π²Π° ΡΠ°ΠΌΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° / ΠΈ Ρ.Π½. / ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΡΡ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠ»Π΅Π΄ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΠ‘. ΠΡΡΠ΅Π³Π° Π½Π°ΡΠ°ΡΡΠΊ 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 Π³
ΠΡΠΎΡΠΎ, ΠΎΡ Π΄Π΅ΠΊΠ΅ΠΌΠ²ΡΠΈ 2019 Π³. MaxMind
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠ΅Ρ Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡ, ΡΠ΅ ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°ΠΌΠ΅ Π½Π° ΡΠ°Π·ΠΈ ΡΡΡΠ°Π½ΠΈΡΠ°.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΈΠΌΠ΅ΠΉΠ» Ρ ΠΌΠΎΠ»Π±Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΠ°ΡΠΎΠ»Π°. Π‘Π΅Π³Π°, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΡΠ·Π΄Π°Π΄ΠΎΡ
ΠΌΠ΅ Π°ΠΊΠ°ΡΠ½Ρ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π»ΠΈΡΠ΅Π½Π·Π΅Π½ ΠΊΠ»ΡΡ. ΠΡΠ² Π²Π°ΡΠΈΡ Π»ΠΈΡΠ΅Π½ Π°ΠΊΠ°ΡΠ½Ρ Π½Π°ΠΌΠΈΡΠ°ΠΌΠ΅ Π°ΡΡΠΈΠΊΡΠ»Π° ΠΠΎΠΈΡΠ΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΡΠ°ΠΊΠ½Π΅ΡΠ΅ Π²ΡΡΡ
Ρ Π±ΡΡΠΎΠ½Π° ΠΠ΅Π½Π΅ΡΠΈΡΠ°ΠΉΡΠ΅ Π½ΠΎΠ² Π»ΠΈΡΠ΅Π½Π·Π΅Π½ ΠΊΠ»ΡΡ.
ΠΠΎΠ³Π°ΡΠΎ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΊΠ»ΡΡ, ΡΠ΅ Π½ΠΈ Π±ΡΠ΄Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ Π²ΡΠΏΡΠΎΡ: ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π»ΠΈ ΡΠΎΠ·ΠΈ ΠΊΠ»ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° GeoIP Update? ΠΡΠ³ΠΎΠ²Π°ΡΡΠΌΠ΅ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½ΠΎ ΠΈ Π½Π°ΡΠΈΡΠΊΠ°ΠΌΠ΅ Π±ΡΡΠΎΠ½Π° ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π°Π²Π°ΠΌ. ΠΠ»ΡΡΡΡ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ Π² ΠΈΠ·ΡΠΊΠ°ΡΠ°Ρ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ. ΠΠ°ΠΏΠ°Π·Π΅ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΊΠ»ΡΡ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎ ΠΌΡΡΡΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π·Π°ΡΠ²ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΡΠΊΠ°ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ, Π²Π΅ΡΠ΅ Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ΅Π»ΠΈΡ ΠΊΠ»ΡΡ.
ΠΠΌΠ°ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠΌΠ΅ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ GeoLite2 ΡΡΡΠ½ΠΎ, Π½ΠΎ ΡΠ΅Ρ
Π½ΠΈΡΡ ΡΠΎΡΠΌΠ°Ρ Π½Π΅ Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΡΠΎΡΠΌΠ°ΡΠ°, ΠΎΡΠ°ΠΊΠ²Π°Π½ ΠΎΡ ΡΠΊΡΠΈΠΏΡΠ° xt_geoip_build. Π’ΡΠΊ ΠΈΠ΄Π²Π°Ρ Π½Π° ΠΏΠΎΠΌΠΎΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅ GeoLite2xtables. ΠΠ° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Π° NetAddr::IP perl:
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%No9
22 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π³Π»Π°ΡΡΠ²Π°Ρ
Π°. 3 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ Π²ΡΠ·Π΄ΡΡΠΆΠ°Ρ
Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com