ڪجھ ملڪن کان ٽريفڪ کي بلاڪ ڪرڻ جو ڪم سادو لڳي ٿو، پر پهريون تاثر ٺڳي ٿي سگھي ٿو. اڄ اسان توهان کي ٻڌائينداسين ته اهو ڪيئن لاڳو ڪري سگهجي ٿو.
prehistory
ھن موضوع تي گوگل سرچ جا نتيجا مايوس ڪندڙ آھن: گھڻا حل ڊگھا ٿي چڪا آھن ”سڙيل“ ۽ ڪڏھن ڪڏھن ائين ٿو لڳي ته ھي موضوع ھميشه لاءِ وساري ويو آھي ۽ وساريو ويو آھي. اسان ڪيترائي پراڻا رڪارڊ گڏ ڪيا آهن ۽ هدايتن جو جديد نسخو شيئر ڪرڻ لاءِ تيار آهيون.
اسان سفارش ڪريون ٿا ته توهان انهن حڪمن تي عمل ڪرڻ کان اڳ پورو مضمون پڙهو.
آپريٽنگ سسٽم جي تياري
فلٽرنگ کي استعمال ڪندي ترتيب ڏني ويندي iptables، جنهن کي جيو آئي پي ڊيٽا سان ڪم ڪرڻ لاءِ واڌ جي ضرورت آهي. هي واڌارو حاصل ڪري سگهجي ٿو
لکڻ جي وقت، xtables-addons جو موجوده نسخو 3.9 آهي. بهرحال، صرف 20.04 معياري Ubuntu 3.8 LTS repositories ۾، ۽ 18.04 Ubuntu 3.0 repositories ۾ ملي سگھن ٿا. توھان ھيٺ ڏنل حڪم سان پيڪيج مينيجر مان ايڪسٽينشن کي انسٽال ڪري سگھو ٿا:
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.
اڳي، جيو لائيٽ پراڊڪٽ، جيڪو هاڻي جيو لائيٽ ليگسي طور سڃاتو وڃي ٿو، لائسنس تحت ورهايو ويو، ڊيٽابيس طور استعمال ڪيو ويو
پهريون، جنوري 2018 ۾
ٻيو، ڊسمبر 2019 کان وٺي MaxMind
جيئن ته اسان انهن جي پيداوار کي استعمال ڪرڻ چاهيون ٿا، اسان هن صفحي تي رجسٽر ڪنداسين.
پوءِ توھان کي ھڪ اي ميل ملي ويندي جنھن ۾ توھان کي پاسورڊ قائم ڪرڻ لاءِ چيو ويندو. هاڻي ته اسان هڪ اڪائونٽ ٺاهيو آهي، اسان کي هڪ لائسنس چيڪ ٺاهڻ جي ضرورت آهي. توهان جي ذاتي اڪائونٽ ۾ اسان شيون ڳوليندا آهيون منهنجي لائسنس ڪيز، ۽ پوءِ بٽڻ تي ڪلڪ ڪريو نئين لائسنس جي چيڪ ٺاھيو.
جڏهن هڪ ڪيچ ٺاهيندي، اسان کان صرف هڪ سوال پڇيو ويندو: ڇا اسان هي ڪيئي استعمال ڪنداسين GeoIP اپڊيٽ پروگرام ۾؟ اسان منفي جواب ڏينداسين ۽ بٽڻ کي دٻايو جي تصديق. چاٻي هڪ پاپ اپ ونڊو ۾ ڏيکاري ويندي. هن ڪنجي کي محفوظ جاءِ تي محفوظ ڪريو، جيئن هڪ دفعو توهان پاپ اپ ونڊو بند ڪري ڇڏيو، توهان هاڻي پوري ڪيئي کي ڏسي نه سگهندا.
اسان وٽ GeoLite2 ڊيٽابيس کي دستي طور تي ڊائون لوڊ ڪرڻ جي صلاحيت آهي، پر انهن جي فارميٽ xt_geoip_build اسڪرپٽ پاران متوقع فارميٽ سان مطابقت ناهي. هي آهي جتي GeoLite2xtables اسڪرپٽ بچاء لاء ايندا آهن. اسڪرپٽ هلائڻ لاءِ، انسٽال ڪريو NetAddr::IP perl module:
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 ۾ جيوپ استعمال ڪندا آهن.
ٿڪل
ملڪن جي بنياد تي پيڪن کي فلٽر ڪرڻ هڪ حڪمت عملي آهي جيڪو ڪجهه وقت کان وساريو ويو آهي. ان جي باوجود، اهڙي فلٽرنگ لاءِ سافٽ ويئر جا اوزار ٺاهيا پيا وڃن ۽، شايد، جلد ئي xt_geoip جو هڪ نئون ورزن هڪ نئين جيوپ ڊيٽا فراهم ڪندڙ سان گڏ پيڪيج مينيجرز ۾ ظاهر ٿيندو، جيڪو سسٽم جي منتظمين جي زندگي کي تمام آسان بڻائي ڇڏيندو.
صرف رجسٽرڊ استعمال ڪندڙ سروي ۾ حصو وٺي سگهن ٿا.
ڇا توهان ڪڏهن ملڪ طرفان فلٽرنگ استعمال ڪيو آهي؟
-
59,1٪ها 13
-
40,9٪نمبر 9
22 صارفين ووٽ ڪيو. 3 استعمال ڪندڙن کي روڪيو ويو.
جو ذريعو: www.habr.com