xtables-addons: рджреЗрд╢ рдЕрдиреБрд╕рд╛рд░ рдлрд┐рд▓реНрдЯрд░ рдкреНрдпрд╛рдХреЗрдЬ

xtables-addons: рджреЗрд╢ рдЕрдиреБрд╕рд╛рд░ рдлрд┐рд▓реНрдЯрд░ рдкреНрдпрд╛рдХреЗрдЬ
рдХреЗрд╣реА рджреЗрд╢рд╣рд░реВрдмрд╛рдЯ рдЯреНрд░рд╛рдлрд┐рдХ рдЕрд╡рд░реБрджреНрдз рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдп рд╕рд░рд▓ рджреЗрдЦрд┐рдиреНрдЫ, рддрд░ рдкрд╣рд┐рд▓реЛ рдкреНрд░рднрд╛рд╡рд╣рд░реВ рдзреЛрдХрд╛ рджрд┐рди рд╕рдХреНрдЫред рдЖрдЬ рд╣рд╛рдореА рддрдкрд╛рдИрдВрд▓рд╛рдИ рдпреЛ рдХрд╕рд░реА рд▓рд╛рдЧреВ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рднрдиреЗрд░ рдмрддрд╛рдЙрдиреЗрдЫреМрдВред

рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕

рдпрд╕ рд╡рд┐рд╖рдпрдорд╛ рдЧреБрдЧрд▓ рдЦреЛрдЬрдХреЛ рдирддрд┐рдЬрд╛ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдЫ: рдзреЗрд░реИ рдЬрд╕реЛ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рд▓рд╛рдореЛ рд╕рдордпрджреЗрдЦрд┐ "рд╕рдбреЗрдХрд╛" рдЫрдиреН рд░ рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдХрд┐ рдпреЛ рд╡рд┐рд╖рдп рд╕рджрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдмрд┐рд░реНрд╕рд┐рдПрдХреЛ рдЫред рд╣рд╛рдореАрд▓реЗ рдзреЗрд░реИ рдкреБрд░рд╛рдирд╛ рд░реЗрдХрд░реНрдбрд╣рд░реВ рдорд╛рд░реНрдлрдд рдХрдореНрдмреЗрдб рдЧрд░реЗрдХрд╛ рдЫреМрдВ рд░ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдХреЛ рдЖрдзреБрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рд╕рд╛рдЭрд╛ рдЧрд░реНрди рддрдпрд╛рд░ рдЫреМрдВред

рд╣рд╛рдореА рд╕реБрдЭрд╛рд╡ рджрд┐рдиреНрдЫреМрдВ рдХрд┐ рддрдкрд╛рдЗрдБ рдпреА рдЖрджреЗрд╢рд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБ рдЕрдШрд┐ рд╕рдореНрдкреВрд░реНрдг рд▓реЗрдЦ рдкрдвреНрдиреБрд╣реЛрд╕реНред

рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдордХреЛ рддрдпрд╛рд░реА рдЧрд░реНрджреИ

рдлрд┐рд▓реНрдЯрд░рд┐рдЩ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдиреЗрдЫ iptables, рдЬрд╕рд▓рд╛рдИ GeoIP рдбрд╛рдЯрд╛рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдПрдХреНрд╕реНрдЯреЗрдиреНрд╕рди рдЪрд╛рд╣рд┐рдиреНрдЫред рдпреЛ рд╡рд┐рд╕реНрддрд╛рд░ рдорд╛ рдкрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ xtables-addonsред xtables-addons рд▓реЗ рд╕реНрд╡рддрдиреНрддреНрд░ рдХрд░реНрдиреЗрд▓ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ iptables рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджрдЫ, рддреНрдпрд╕реИрд▓реЗ рддреНрдпрд╣рд╛рдБ OS рдХрд░реНрдиреЗрд▓ рдкреБрди: рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред

рд▓реЗрдЦреНрдиреЗ рд╕рдордпрдорд╛, 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.

рдкрд╣рд┐рд▓реЗ, рдЬрд┐рдпреЛрд▓рд╛рдЗрдЯ рдЙрддреНрдкрд╛рджрди, рдЕрдм рдЬрд┐рдпреЛрд▓рд╛рдЗрдЯ рд▓рд┐рдЧреЗрд╕реА рднрдиреЗрд░ рдЪрд┐рдирд┐рдиреНрдЫ, рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд, рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдереНрдпреЛред Creative Commons ASA 4.0 рдХрдореНрдкрдиреА рдЕрдзрд┐рдХрддрдо рдордиред рджреБрдИ рдШрдЯрдирд╛рд╣рд░реВ рдпрд╕ рдЙрддреНрдкрд╛рджрдирд╕рдБрдЧ рдПрдХреИрдЪреЛрдЯрд┐ рднрдпреЛ рдЬреБрди iptables рд╡рд┐рд╕реНрддрд╛рд░рд╕рдБрдЧ рдЕрдиреБрдХреВрд▓рддрд╛ "рддреЛрдбреНрдпреЛ"ред

рдкрд╣рд┐рд▓реЛ, рдЬрдирд╡рд░реА 2018 рдорд╛ рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдпреЛ рдЙрддреНрдкрд╛рджрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердирдХреЛ рдЕрдиреНрддреНрдпрдХреЛ рдмрд╛рд░реЗрдорд╛, рд░ рдЬрдирд╡рд░реА 2019, 2 рдорд╛, рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдкреБрд░рд╛рдиреЛ рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрдиреЗ рд╕рдмреИ рд▓рд┐рдЩреНрдХрд╣рд░реВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯрдмрд╛рдЯ рд╣рдЯрд╛рдЗрдпреЛред рдирдпрд╛рдБ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ GeoLite2 рдЙрддреНрдкрд╛рджрди рд╡рд╛ рдпрд╕рдХреЛ рд╕рд╢реБрд▓реНрдХ рд╕рдВрд╕реНрдХрд░рдг GeoIPXNUMX рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдиреНрдЫред

рджреЛрд╕реНрд░реЛ, рдбрд┐рд╕реЗрдореНрдмрд░ 2019 MaxMind рдкрдЫрд┐ рднрдиреНрдпреЛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдкрд╣реБрдБрдЪрдорд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрдирдХреЛ рдмрд╛рд░реЗрдорд╛ред рдХреНрдпрд╛рд▓рд┐рдлреЛрд░реНрдирд┐рдпрд╛ рдЙрдкрднреЛрдХреНрддрд╛ рдЧреЛрдкрдиреАрдпрддрд╛ рдРрдирдХреЛ рдкрд╛рд▓рдирд╛ рдЧрд░реНрди, MaxMind рд▓реЗ рджрд░реНрддрд╛рдХреЛ рд╕рд╛рде GeoLite2 рдХреЛ рд╡рд┐рддрд░рдг "рдХрднрд░" рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреЛред

рд╣рд╛рдореА рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЙрддреНрдкрд╛рджрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ, рд╣рд╛рдореА рдпрд╕ рдкреГрд╖реНрдардорд╛ рджрд░реНрддрд╛ рдЧрд░реНрдиреЗрдЫреМрдВред

xtables-addons: рджреЗрд╢ рдЕрдиреБрд╕рд╛рд░ рдлрд┐рд▓реНрдЯрд░ рдкреНрдпрд╛рдХреЗрдЬ
рддреНрдпрд╕рдкрдЫрд┐ рддрдкрд╛рдИрд▓реЗ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдЧрд░реНрди рд╕реЛрдзреНрдиреЗ рдЗрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫред рдЕрдм рд╣рд╛рдореАрд▓реЗ рдЦрд╛рддрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдХрд╛ рдЫреМрдВ, рд╣рд╛рдореАрд▓реЗ рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдХреБрдЮреНрдЬреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рддрдкрд╛рдИрдВрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддрд╛рдорд╛ рд╣рд╛рдореА рд╡рд╕реНрддреБ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдЫреМрдВ рдореЗрд░реЛ рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдХреБрдЮреНрдЬреАрд╣рд░реВ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдмрдЯрдирдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдирдпрд╛рдБ рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдХреБрдЮреНрдЬреА рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреБрд╣реЛрд╕реН.

рдХреБрдЮреНрдЬреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛, рд╣рд╛рдореАрд▓рд╛рдИ рдПрдЙрдЯрд╛ рдорд╛рддреНрд░ рдкреНрд░рд╢реНрди рд╕реЛрдзрд┐рдиреЗрдЫ: рдХреЗ рд╣рд╛рдореА рдпреЛ рдХреБрдЮреНрдЬреА GeoIP рдЕрдкрдбреЗрдЯ рдХрд╛рд░реНрдпрдХреНрд░рдордорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ? рд╣рд╛рдореА рдирдХрд╛рд░рд╛рддреНрдордХ рдЬрд╡рд╛рдл рджрд┐рдиреНрдЫреМрдВ рд░ рдмрдЯрди рдерд┐рдЪреНрдиреБрд╣реЛрд╕реН рдкреБрд╖реНрдЯрд┐ред рдХреБрдЮреНрдЬреА рдкрдк-рдЕрдк рд╡рд┐рдиреНрдбреЛрдорд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реБрдиреЗрдЫред рдпреЛ рдХреБрдЮреНрдЬреАрд▓рд╛рдИ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реНрдерд╛рдирдорд╛ рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЬрдм рддрдкрд╛рдЗрдБ рдПрдХ рдкрдЯрдХ рдкрдк-рдЕрдк рд╡рд┐рдиреНрдбреЛ рдмрдиреНрдж рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рддрдкрд╛рдЗрдБ рдЕрдм рд╕рдореНрдкреВрд░реНрдг рдХреБрдЮреНрдЬреА рд╣реЗрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрд╣реБрдиреЗ рдЫреИрдиред

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.

рдкрд╣рд┐рд▓реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рд╣рд╛рдореА рдШрдЯрд╛рдЙрдБрдЫреМрдВ printf рдЖрд╡рд╢реНрдпрдХ рдврд╛рдБрдЪрд╛рдорд╛, рд░ рджреЛрд╕реНрд░реЛрдорд╛ - рд╣рд╛рдореА рдЪрд░рдорд╛ рдЕрд╕рд╛рдЗрдирдореЗрдиреНрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдЫреМрдВ $cc рдорд╛ $row-> [рек]ред рдпрд╕ рдкрдЫрд┐ рддрдкрд╛рдИрд▓реЗ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

/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ред рд▓рд┐рдкрд┐рдХреЛ рдпреЛ рд╕рдВрд╕реНрдХрд░рдгрд▓реЗ рдбрд╛рдЯрд╛рдмреЗрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рдХрдиреНрдЯреНрд░реА рд▓рд╛рдЗрдЯрдорд╛ рдЖрдИрдкреАред рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдХреНрд░рд┐рдПрдЯрд┐рдн рдХрдордиреНрд╕ рдПрдЯреНрд░рд┐рдмреНрдпреБрд╕рди рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рд╣реЛ, рд░ рдЙрдкрд▓рдмреНрдз рдбрд╛рдЯрд╛рдмрд╛рдЯ рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдЖрд╡рд╢реНрдпрдХ рддреАрди рд╕реНрддрдореНрднрд╣рд░реВ рдЫрдиреНред рдбрд╛рдЯрд╛рдмреЗрд╕ рдбрд╛рдЙрдирд▓реЛрдб рд░ рдЬрдореНрдорд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

cd /usr/share/xt_geoip/

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

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

рдпреА рдЪрд░рдгрд╣рд░реВ рдкрдЫрд┐, iptables рдХрд╛рдо рдЧрд░реНрди рддрдпрд╛рд░ рдЫред

iptables рдорд╛ geoip рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

рдореЛрдбреНрдпреБрд▓ 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 рд╕реНрд╡рд┐рдЪрд╕рдБрдЧ рдореЛрдбреНрдпреБрд▓рдХреЛ рдирд╛рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрдкрд░реНрдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдкреЛрд░реНрдЯ 443 рдорд╛ рдЖрдЧрдорди TCP рдЬрдбрд╛рдирд╣рд░реБ рд▓рд╛рдИ рдмреНрд▓рдХ рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдирд┐рдпрдо USA рдмрд╛рдЯ рд╕рдмреИ рдЗрдиреНрдЯрд░рдлреЗрд╕рдорд╛ рдЫреИрди:

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

xt_geoip_build рджреНрд╡рд╛рд░рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдирд┐рдпрдорд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛ рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рддрд░ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджрд╛ рдЦрд╛рддрд╛рдорд╛ рд▓рд┐рдЗрдБрджреИрдиред рдпрд╕рд░реА, geoip рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рд╣реА рд░реВрдкрдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ iv* рдлрд╛рдЗрд▓рд╣рд░реВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрдиреБрдкрд░реНрдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐ iptables рдорд╛ geoip рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕рдмреИ рдирд┐рдпрдорд╣рд░реВ рдкреБрди: рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рджреЗрд╢рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрдиреБ рднрдиреЗрдХреЛ рд╕рдордпрд▓реЗ рдмрд┐рд░реНрд╕рд┐рдПрдХреЛ рд░рдгрдиреАрддрд┐ рд╣реЛред рдпрд╕рдХрд╛ рдмрд╛рд╡рдЬреБрдж, рдпрд╕реНрддреЛ рдлрд┐рд▓реНрдЯрд░рд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдЙрдкрдХрд░рдгрд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рднрдЗрд░рд╣реЗрдХрд╛ рдЫрдиреН рд░, рд╕рд╛рдпрдж, рдЪрд╛рдБрдбреИ рдиреИ рдирдпрд╛рдБ geoip рдбрд╛рдЯрд╛ рдкреНрд░рджрд╛рдпрдХрдХреЛ рд╕рд╛рде xt_geoip рдХреЛ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХрд╣рд░реВрдорд╛ рджреЗрдЦрд╛ рдкрд░реНрдиреЗрдЫ, рдЬрд╕рд▓реЗ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╢рд╛рд╕рдХрд╣рд░реВрдХреЛ рдЬреАрд╡рдирд▓рд╛рдИ рдзреЗрд░реИ рд╕рд░рд▓ рдмрдирд╛рдЙрдиреЗрдЫред

xtables-addons: рджреЗрд╢ рдЕрдиреБрд╕рд╛рд░ рдлрд┐рд▓реНрдЯрд░ рдкреНрдпрд╛рдХреЗрдЬ

рджрд░реНрддрд╛ рднрдПрдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорд╛рддреНрд░ рд╕рд░реНрд╡реЗрдХреНрд╖рдгрдорд╛ рднрд╛рдЧ рд▓рд┐рди рд╕рдХреНрдЫрдиреНред рд╕рд╛рдЗрди рдЗрди рдЧрд░реНрдиреБрд╣реЛрд╕реНрдХреГрдкрдпрд╛

рдХреЗ рддрдкрд╛рдИрдВрд▓реЗ рдХрд╣рд┐рд▓реНрдпреИ рджреЗрд╢рдЕрдиреБрд╕рд╛рд░ рдлрд┐рд▓реНрдЯрд░рд┐рдЩ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрднрдПрдХреЛ рдЫ?

  • 59,1%рд╣реЛ 13

  • 40,9%рдирдореНрдмрд░ реореж

22 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорддрджрд╛рди рдЧрд░реЗред реи рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рд░реЛрдХрд┐рдПред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди