xtables-addons: Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΏΠΎ Π΄ΡŠΡ€ΠΆΠ°Π²Π°

xtables-addons: Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΏΠΎ Π΄ΡŠΡ€ΠΆΠ°Π²Π°
Π—Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π΄ΡŠΡ€ΠΆΠ°Π²ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° проста, Π½ΠΎ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ впСчатлСния ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΌΠ°ΠΌΠ½ΠΈ. ДнСс Ρ‰Π΅ Π²ΠΈ ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈ Ρ‚ΠΎΠ²Π°.

праистория

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π² Google ΠΏΠΎ Ρ‚Π°Π·ΠΈ Ρ‚Π΅ΠΌΠ° са Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Ρ‰ΠΈ: ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° ΠΎΡ‚Π΄Π°Π²Π½Π° са β€žΠ³Π½ΠΈΠ»ΠΈβ€œ ΠΈ понякога ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, Ρ‡Π΅ Ρ‚Π°Π·ΠΈ Ρ‚Π΅ΠΌΠ° Π΅ оставСна ΠΈ Π·Π°Π±Ρ€Π°Π²Π΅Π½Π° Π·Π°Π²ΠΈΠ½Π°Π³ΠΈ. ΠŸΡ€Π΅Π³Π»Π΅Π΄Π°Ρ…ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ стари записи ΠΈ смС Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π΄Π° сподСлим ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Π° вСрсия Π½Π° инструкциитС.

ΠŸΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌΠ΅ Π²ΠΈ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ цялата статия, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅ Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.

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

Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Ρ‰Π΅ бъдС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° IPTABLES, ΠΊΠΎΠ΅Ρ‚ΠΎ изисква Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с GeoIP Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΌΠ΅Ρ€ΠΈ Π² xtables-Π΄ΠΎΠ±Π°Π²ΠΊΠΈ. xtables-addons инсталира Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π·Π° iptables ΠΊΠ°Ρ‚ΠΎ нСзависими ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π° ядрото, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ няма Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ядрото Π½Π° ОБ.

Към ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° писанС Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° вСрсия Π½Π° 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, разпространяван с Π»ΠΈΡ†Π΅Π½Π·, бСшС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΊΠ°Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Creative Commons ASA 4.0 компания MaxMind. Π‘ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ сС случиха Π΄Π²Π΅ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ навСднъТ, ΠΊΠΎΠΈΡ‚ΠΎ β€žΠ½Π°Ρ€ΡƒΡˆΠΈΡ…Π°β€œ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚Ρ‚Π° с Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ iptables.

ΠŸΡŠΡ€Π²ΠΎ, ΠΏΡ€Π΅Π· януари 2018 Π³ ΡΡŠΠΎΠ±Ρ‰ΠΈ относно прСкратяванСто Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Π° Π½Π° 2019 януари 2 Π³. всички Π²Ρ€ΡŠΠ·ΠΊΠΈ Π·Π° изтСглянС Π½Π° старата вСрсия Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ бяха ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ΠΈ ΠΎΡ‚ официалния уСбсайт. На Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° GeoLite2 ΠΈΠ»ΠΈ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° ΠΏΠ»Π°Ρ‚Π΅Π½Π° вСрсия GeoIPXNUMX.

Π’Ρ‚ΠΎΡ€ΠΎ, ΠΎΡ‚ Π΄Π΅ΠΊΠ΅ΠΌΠ²Ρ€ΠΈ 2019 Π³. MaxMind Π’ΠΎΠΉ заяви, Π·Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° промяна Π² Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π—Π° Π΄Π° спази ΠšΠ°Π»ΠΈΡ„ΠΎΡ€Π½ΠΈΠΉΡΠΊΠΈΡ Π·Π°ΠΊΠΎΠ½ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅, MaxMind Ρ€Π΅ΡˆΠΈ Π΄Π° "ΠΏΠΎΠΊΡ€ΠΈΠ΅" разпространСниСто Π½Π° GeoLite2 с рСгистрация.

Въй ΠΊΠ°Ρ‚ΠΎ искамС Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ тСхния ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Ρ‰Π΅ сС рСгистрирамС Π½Π° Ρ‚Π°Π·ΠΈ страница.

xtables-addons: Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΏΠΎ Π΄ΡŠΡ€ΠΆΠ°Π²Π°
Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΈΠΌΠ΅ΠΉΠ» с ΠΌΠΎΠ»Π±Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»Π°. Π‘Π΅Π³Π°, слСд ΠΊΠ°Ρ‚ΠΎ ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ Π°ΠΊΠ°ΡƒΠ½Ρ‚, трябва Π΄Π° създадСм Π»ΠΈΡ†Π΅Π½Π·Π΅Π½ ΠΊΠ»ΡŽΡ‡. Π’ΡŠΠ² вашия Π»ΠΈΡ‡Π΅Π½ Π°ΠΊΠ°ΡƒΠ½Ρ‚ Π½Π°ΠΌΠΈΡ€Π°ΠΌΠ΅ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Π° ΠœΠΎΠΈΡ‚Π΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Ρ€Π°ΠΊΠ½Π΅Ρ‚Π΅ Π²ΡŠΡ€Ρ…Ρƒ Π±ΡƒΡ‚ΠΎΠ½Π° Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΠΉΡ‚Π΅ Π½ΠΎΠ² Π»ΠΈΡ†Π΅Π½Π·Π΅Π½ ΠΊΠ»ΡŽΡ‡.

ΠšΠΎΠ³Π°Ρ‚ΠΎ създавамС ΠΊΠ»ΡŽΡ‡, Ρ‰Π΅ Π½ΠΈ бъдС Π·Π°Π΄Π°Π΄Π΅Π½ само Π΅Π΄ΠΈΠ½ Π²ΡŠΠΏΡ€ΠΎΡ: Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π»ΠΈ Ρ‚ΠΎΠ·ΠΈ ΠΊΠ»ΡŽΡ‡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° GeoIP Update? ΠžΡ‚Π³ΠΎΠ²Π°Ρ€ΡΠΌΠ΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»Π½ΠΎ ΠΈ натискамС Π±ΡƒΡ‚ΠΎΠ½Π° ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π°Π²Π°ΠΌ. ΠšΠ»ΡŽΡ‡ΡŠΡ‚ Ρ‰Π΅ сС ΠΏΠΎΠΊΠ°ΠΆΠ΅ Π² изскачащ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†. Π—Π°ΠΏΠ°Π·Π΅Ρ‚Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΊΠ»ΡŽΡ‡ Π½Π° сигурно място, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ слСд ΠΊΠ°Ρ‚ΠΎ Π·Π°Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅ изскачащия ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†, Π²Π΅Ρ‡Π΅ няма Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ цСлия ΠΊΠ»ΡŽΡ‡.

xtables-addons: Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΏΠΎ Π΄ΡŠΡ€ΠΆΠ°Π²Π°
ИмамС Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° изтСглямС Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ 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.

И изходният Ρ„Π°ΠΉΠ» ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΡˆΠ΅ΡΡ‚ ΠΊΠΎΠ»ΠΎΠ½ΠΈ:

  • Π½Π°Ρ‡Π°Π»ΠΎ Π½Π° адрСсния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (Π½ΠΈΠ·ΠΎΠ²ΠΎ прСдставянС);
  • ΠΊΡ€Π°ΠΉ Π½Π° адрСсния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (Π½ΠΈΠ·ΠΎΠ²ΠΎ прСдставянС);
  • Π½Π°Ρ‡Π°Π»ΠΎ Π½Π° адрСсния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (числово прСдставянС);
  • ΠΊΡ€Π°ΠΉ Π½Π° адрСсния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (числово прСдставянС);
  • ΠΊΠΎΠ΄ Π½Π° страната;
  • ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π΄ΡŠΡ€ΠΆΠ°Π²Π°Ρ‚Π°.

Π’ΠΎΠ²Π° Π½Π΅ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ΠΎ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π΄Π²Π°Ρ‚Π° Π½Π°Ρ‡ΠΈΠ½Π°:

  1. ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 20_convert_geolite2;
  2. ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ xt_geoip_build.

Π’ ΠΏΡŠΡ€Π²ΠΈΡ случай намалявамС ЀОРМАВ Π² нСобходимия Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π° във втория - промСнямС присвояванСто Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° $cc Π½Π° $Ρ€Π΅Π΄->[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

Π˜ΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ Π°Π²Ρ‚ΠΎΡ€ΡŠΡ‚ Π’Π°Π±Π»ΠΈΡ†ΠΈ GeoLite2x Π½Π΅ счита своитС скриптовС Π·Π° Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π·Π° производство ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° писта Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈ xt_geoip_* скриптовС. Π—Π°Ρ‚ΠΎΠ²Π° Π½Π΅ΠΊΠ° Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ към сглобяванСто ΠΎΡ‚ ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ΠΎΠ²Π΅, Π² ΠΊΠΎΠΈΡ‚ΠΎ Ρ‚Π΅Π·ΠΈ скриптовС Π²Π΅Ρ‡Π΅ са Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ.

Π˜Π·Ρ…ΠΎΠ΄Π½Π° вСрсия

ΠŸΡ€ΠΈ инсталиранС ΠΎΡ‚ скриптовС с ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ xt_geoip_* сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /usr/local/libexec/xtables-addons. Π’Π°Π·ΠΈ вСрсия Π½Π° скрипта ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ IP към 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%No9

22 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ гласуваха. 3 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ сС Π²ΡŠΠ·Π΄ΡŠΡ€ΠΆΠ°Ρ…Π°.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€