xtables-addons: бастаҳои филтр аз рӯи кишвар

xtables-addons: бастаҳои филтр аз рӯи кишвар
Вазифаи бастани трафик аз баъзе кишварҳо оддӣ ба назар мерасад, аммо таассуроти аввал метавонад фиребанда бошад. Имрӯз мо ба шумо мегӯям, ки чӣ тавр ин метавонад амалӣ карда шавад.

prehistory

Натоиҷи ҷустуҷӯи Google дар ин мавзӯъ ноумедкунанда аст: аксари ҳалли масъалаҳо кайҳо “пӯсида” буданд ва баъзан ба назар чунин менамояд, ки ин мавзӯъ рафъ шуда ва то абад фаромӯш шудааст. Мо бисёр сабтҳои кӯҳнаро шона кардем ва омодаем, ки версияи муосири дастурҳоро мубодила кунем.

Мо тавсия медиҳем, ки пеш аз иҷрои ин фармонҳо тамоми мақоларо хонед.

Омодасозии системаи амалиётӣ

Филтркунӣ бо истифода аз утилита танзим карда мешавад iptables, ки барои кор бо маълумоти GeoIP тамдидро талаб мекунад. Ин васеъшавиро метавон дар xtables-addons. 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

Мо аз ҳама чиз қаноатмандем ва танҳо илова кардани номи модул ба он боқӣ мемонад / etc / модулҳото ки модул пас аз бозоғозкунии ОС кор кунад. Минбаъд 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_табдил додани_геолит2 файли мукаммалро ба вучуд намеоварад. Скрипт xt_geoip_build се сутун интизор аст:

  • оғози диапазони суроға;
  • охири диапазони суроға;
  • рамзи кишвар дар iso-3166-alpha2.

Ва файли баромад дорои шаш сутун аст:

  • оғози диапазони суроғаҳо (намояндагии сатр);
  • охири диапазони суроғаҳо (намоиши сатр);
  • оғози диапазони суроғаҳо (намояндагии ададӣ);
  • охири диапазони суроға (намояндагии ададӣ);
  • рамзи кишвар;
  • номи мамлакат.

Ин ихтилоф хеле муҳим аст ва онро бо яке аз ду роҳ ислоҳ кардан мумкин аст:

  1. салтанат 20_табдил додани_геолит2;
  2. салтанат xt_geoip_build.

Дар ҳолати аввал мо кам мекунем printf ба формати зарурӣ ва дар дуюм - мо супоришро ба тағирёбанда иваз мекунем $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

Дар хотир доред, ки муаллиф GeoLite2xtables сценарияхояшро ба истех-солот тайёр намешуморад ва пешниход мекунад пайгирӣ кунед барои тартиб додани скриптхои аслии xt_geoip_*. Аз ин рӯ, биёед ба маҷлис аз рамзҳои сарчашма гузарем, ки дар он ин скриптҳо аллакай нав карда шудаанд.

Версияи манбаъ

Ҳангоми насб кардани скриптҳои коди манбаъ xt_geoip_* дар каталог ҷойгир шудаанд /usr/local/libexec/xtables-addons. Ин версияи скрипт пойгоҳи додаҳоро истифода мебарад IP ба Country Lite. Литсензия иҷозатномаи Creative Commons Attribution аст ва аз маълумоти мавҷуда се сутуни хеле зарурӣ мавҷуданд. Пойгоҳро зеркашӣ ва ҷамъ кунед:

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 бо провайдери нави геоип пайдо шавад, ки ҳаёти маъмурони системаро хеле содда мекунад.

xtables-addons: бастаҳои филтр аз рӯи кишвар

Танҳо корбарони сабтиномшуда метавонанд дар пурсиш иштирок кунанд. даромад, Лутфан.

Оё шумо ягон бор филтрро аз рӯи кишвар истифода кардаед?

  • 59,1%Ҳа 13

  • 40,9%№9

22 корбар овоз доданд. 3 корбар худдорӣ карданд.

Манбаъ: will.com

Илова Эзоҳ