xtables-addons: د هیواد لخوا فلټر کڅوړې

xtables-addons: د هیواد لخوا فلټر کڅوړې
د ځینو هیوادونو څخه د ټرافيکو د بندولو دنده ساده ښکاري، مګر لومړی تاثیرات کیدای شي غولوونکي وي. نن موږ به تاسو ته ووایو چې دا څنګه پلي کیدی شي.

له تاریخ څخه دمخه

د دې موضوع په اړه د ګوګل د لټون پایلې مایوسه دي: ډیری حلونه د اوږدې مودې لپاره "سپړل شوي" دي او ځینې وختونه داسې ښکاري چې دا موضوع د تل لپاره پټه شوې او هیر شوې. موږ د ډیری پخوانیو ریکارډونو څخه تیر شوي یو او چمتو یو چې د لارښوونو عصري نسخه شریک کړو.

موږ وړاندیز کوو چې تاسو د دې امرونو پلي کولو دمخه ټوله مقاله ولولئ.

د عملیاتي سیسټم چمتو کول

فلټر کول به د یوټیلیټ په کارولو سره تنظیم شي iptables، کوم چې د GeoIP ډیټا سره کار کولو لپاره توسیع ته اړتیا لري. دا توسیع په کې موندل کیدی شي xtables-addons. xtables-addons د iptables لپاره توسیعونه د خپلواک کرنل ماډلونو په توګه نصبوي، نو د OS کرنل بیا تنظیم کولو ته اړتیا نشته.

د لیکلو په وخت کې، د xtables-addons اوسنی نسخه 3.9 ده. په هرصورت ، یوازې 20.04 په معیاري اوبنټو 3.8 LTS ذخیره کې موندل کیدی شي ، او 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

موږ له هرڅه خوښ یو او ټول هغه څه چې پاتې دي د ماډل نوم اضافه کول دي / نور / ماډلونهنو دا ماډل د OS له ریبوټ کولو وروسته کار کوي. له اوس څخه ، iptables د جیوپ کمانډونه پوهیږي ، مګر دا د کار کولو لپاره کافي ډیټا نلري. راځئ چې د جیوپ ډیټابیس پورته کول پیل کړو.

د 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.

پخوا، د جیو لایټ محصول، چې اوس د جیو لایټ میراث په نوم پیژندل شوی، د جواز لاندې ویشل شوی، د ډیټابیس په توګه کارول کیده کریټیو کامنز ASA 4.0 شرکت مکس میند. د دې محصول سره په یوځل کې دوه پیښې پیښ شوي چې د iptables توسیع سره مطابقت "مات کړي".

لومړی، د جنوري په 2018 کې اعلان شو د محصول لپاره د ملاتړ پای ته رسیدو په اړه، او د جنوري په 2019، 2 کې، د ډیټابیس زاړه نسخه ډاونلوډ کولو ټولې لینکونه د رسمي ویب پاڼې څخه لیرې شوي. نوي کاروونکو ته سپارښتنه کیږي چې د GeoLite2 محصول یا د هغې تادیه شوي نسخه GeoIPXNUMX وکاروي.

دوهم، د دسمبر 2019 راهیسې MaxMind وویل د دوی ډیټابیس ته لاسرسي کې د پام وړ بدلون په اړه. د کالیفورنیا د مصرف کونکي محرمیت قانون سره سم عمل کولو لپاره، MaxMind پریکړه وکړه چې د راجستریشن سره د GeoLite2 ویش "پوښ" کړي.

څرنګه چې موږ غواړو د دوی محصول وکاروو، موږ به په دې پاڼه کې راجستر کړو.

xtables-addons: د هیواد لخوا فلټر کڅوړې
بیا به تاسو یو بریښنالیک ترلاسه کړئ چې تاسو څخه د پټنوم تنظیم کولو غوښتنه کوي. اوس چې موږ یو حساب جوړ کړی، موږ اړتیا لرو د جواز کلیدي جوړه کړو. ستاسو په شخصي حساب کې موږ توکي پیدا کوو زما د جواز کیلي، او بیا په تڼۍ کلیک وکړئ د نوي جواز کیلي تولید کړئ.

کله چې کیلي رامینځته کړئ ، موږ به یوازې یوه پوښتنه وپوښتل شي: ایا موږ به دا کیلي د جیو آی پی تازه برنامې کې وکاروو؟ موږ منفي ځواب ورکوو او تڼۍ فشاروو تاييد. کیلي به په پاپ اپ کړکۍ کې ښکاره شي. دا کیلي په خوندي ځای کې وساتئ، لکه څنګه چې تاسو د پاپ اپ کړکۍ وتړئ، تاسو به نور د دې توان ونلرئ چې ټوله کیلي وګورئ.

xtables-addons: د هیواد لخوا فلټر کڅوړې
موږ د دې وړتیا لرو چې د جیو لایټ 2 ډیټابیسونه په لاسي ډول ډاونلوډ کړو ، مګر د دوی بڼه د xt_geoip_build سکریپټ لخوا تمه شوي فارمیټ سره مطابقت نلري. دا هغه ځای دی چې د GeoLite2xtables سکریپټونه ژغورنې ته راځي. د سکریپټونو چلولو لپاره، د 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 کې.

او د محصول فایل شپږ کالمونه لري:

  • د پتې سلسلې پیل (د تار استازیتوب)؛
  • د پتې سلسلې پای (د تار نمایندګي)؛
  • د پتې سلسلې پیل (شمیري نمایش)؛
  • د پتې سلسلې پای (عدد نمایندګي)؛
  • د هیواد کوډ؛
  • د هیواد نوم

دا توپیر مهم دی او کیدای شي په دوو لارو کې سم شي:

  1. سمون 20_convert_geolite2;
  2. سمون xt_geoip_build.

په لومړي صورت کې موږ کم کړو چاپ اړین شکل ته، او په دویم کې - موږ متغیر ته دنده بدلوو $cc په $row->[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 ته د هیواد لایټ. جواز د 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 کار کولو ته چمتو دی.

په 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 ارتباطاتو بندولو لپاره یو قاعده د متحده ایالاتو څخه نه په ټولو انٹرفیسونو کې:

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

د xt_geoip_build لخوا رامینځته شوي فایلونه یوازې د مقرراتو رامینځته کولو پرمهال کارول کیږي ، مګر د فلټر کولو پرمهال په پام کې نه نیول کیږي. په دې توګه، د جیوپ ډیټابیس په سمه توګه تازه کولو لپاره، تاسو باید لومړی د iv * فایلونه تازه کړئ، او بیا ټول هغه مقررات بیا جوړ کړئ چې په iptables کې geoip کاروي.

پایلې

د هیوادونو پر بنسټ د پاکټونو فلټر کول یوه ستراتیژي ده چې د وخت په تیریدو سره هیر شوي. سره له دې، د دې ډول فلټر کولو لپاره د سافټویر وسیلې رامینځته کیږي او شاید، ډیر ژر به د نوي جیوپ ډیټا چمتو کونکي سره د xt_geoip نوې نسخه د بسته بندۍ مدیرانو کې ښکاره شي، کوم چې به د سیسټم مدیرانو ژوند خورا ساده کړي.

xtables-addons: د هیواد لخوا فلټر کڅوړې

یوازې راجستر شوي کاروونکي کولی شي په سروې کې برخه واخلي. ننوزئمهرباني وکړئ

ایا تاسو کله هم د هیواد لخوا فلټر کول کارولي دي؟

  • ۸۵٪هو 13

  • ۸۵٪نه 9

22 کاروونکو رایه ورکړه. 3 کاروونکي منع شوي.

سرچینه: www.habr.com

Add a comment