د ځینو هیوادونو څخه د ټرافيکو د بندولو دنده ساده ښکاري، مګر لومړی تاثیرات کیدای شي غولوونکي وي. نن موږ به تاسو ته ووایو چې دا څنګه پلي کیدی شي.
له تاریخ څخه دمخه
د دې موضوع په اړه د ګوګل د لټون پایلې مایوسه دي: ډیری حلونه د اوږدې مودې لپاره "سپړل شوي" دي او ځینې وختونه داسې ښکاري چې دا موضوع د تل لپاره پټه شوې او هیر شوې. موږ د ډیری پخوانیو ریکارډونو څخه تیر شوي یو او چمتو یو چې د لارښوونو عصري نسخه شریک کړو.
موږ وړاندیز کوو چې تاسو د دې امرونو پلي کولو دمخه ټوله مقاله ولولئ.
د عملیاتي سیسټم چمتو کول
فلټر کول به د یوټیلیټ په کارولو سره تنظیم شي iptables، کوم چې د GeoIP ډیټا سره کار کولو لپاره توسیع ته اړتیا لري. دا توسیع په کې موندل کیدی شي
د لیکلو په وخت کې، د 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.
پخوا، د جیو لایټ محصول، چې اوس د جیو لایټ میراث په نوم پیژندل شوی، د جواز لاندې ویشل شوی، د ډیټابیس په توګه کارول کیده
لومړی، د جنوري په 2018 کې
دوهم، د دسمبر 2019 راهیسې MaxMind
څرنګه چې موږ غواړو د دوی محصول وکاروو، موږ به په دې پاڼه کې راجستر کړو.
بیا به تاسو یو بریښنالیک ترلاسه کړئ چې تاسو څخه د پټنوم تنظیم کولو غوښتنه کوي. اوس چې موږ یو حساب جوړ کړی، موږ اړتیا لرو د جواز کلیدي جوړه کړو. ستاسو په شخصي حساب کې موږ توکي پیدا کوو زما د جواز کیلي، او بیا په تڼۍ کلیک وکړئ د نوي جواز کیلي تولید کړئ.
کله چې کیلي رامینځته کړئ ، موږ به یوازې یوه پوښتنه وپوښتل شي: ایا موږ به دا کیلي د جیو آی پی تازه برنامې کې وکاروو؟ موږ منفي ځواب ورکوو او تڼۍ فشاروو تاييد. کیلي به په پاپ اپ کړکۍ کې ښکاره شي. دا کیلي په خوندي ځای کې وساتئ، لکه څنګه چې تاسو د پاپ اپ کړکۍ وتړئ، تاسو به نور د دې توان ونلرئ چې ټوله کیلي وګورئ.
موږ د دې وړتیا لرو چې د جیو لایټ 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 کې.
او د محصول فایل شپږ کالمونه لري:
- د پتې سلسلې پیل (د تار استازیتوب)؛
- د پتې سلسلې پای (د تار نمایندګي)؛
- د پتې سلسلې پیل (شمیري نمایش)؛
- د پتې سلسلې پای (عدد نمایندګي)؛
- د هیواد کوډ؛
- د هیواد نوم
دا توپیر مهم دی او کیدای شي په دوو لارو کې سم شي:
- سمون 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 کار کولو ته چمتو دی.
په 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 نوې نسخه د بسته بندۍ مدیرانو کې ښکاره شي، کوم چې به د سیسټم مدیرانو ژوند خورا ساده کړي.
یوازې راجستر شوي کاروونکي کولی شي په سروې کې برخه واخلي.
ایا تاسو کله هم د هیواد لخوا فلټر کول کارولي دي؟
-
۸۵٪هو 13
-
۸۵٪نه 9
22 کاروونکو رایه ورکړه. 3 کاروونکي منع شوي.
سرچینه: www.habr.com