ከተወሰኑ አገሮች የሚመጡ ትራፊክን የመዝጋት ተግባር ቀላል ይመስላል, ነገር ግን የመጀመሪያ ግንዛቤዎች ማታለል ይችላሉ. ዛሬ ይህ እንዴት ሊተገበር እንደሚችል እናነግርዎታለን.
prehistory
በዚህ ርዕስ ላይ የጉግል ፍለጋ ውጤቶች ተስፋ አስቆራጭ ናቸው-አብዛኞቹ መፍትሄዎች ለረጅም ጊዜ "የበሰበሰ" እና አንዳንድ ጊዜ ይህ ርዕስ ተጠብቆ እና ለዘላለም የተረሳ ይመስላል. ብዙ የቆዩ መዝገቦችን አሳልፈናል እና ዘመናዊውን የመመሪያውን ስሪት ለማጋራት ዝግጁ ነን።
እነዚህን ትዕዛዞች ከመፈፀምዎ በፊት ሙሉውን ጽሑፍ እንዲያነቡ እንመክራለን.
የስርዓተ ክወናውን በማዘጋጀት ላይ
ማጣራት መገልገያውን በመጠቀም ይዋቀራል። iptablesከጂኦአይፒ መረጃ ጋር ለመስራት ማራዘሚያ ያስፈልገዋል። ይህ ቅጥያ የሚገኘው በ ውስጥ ነው።
በሚጽፉበት ጊዜ፣ የአሁኑ የ xtables-addons ስሪት 3.9 ነው። ነገር ግን በመደበኛ የኡቡንቱ 20.04 LTS ማከማቻዎች እና 3.8 በኡቡንቱ 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_ጂኦአይፒ. አላስፈላጊ ቅጥያዎችን ወደ ስርዓቱ መጎተት ካልፈለጉ ከግንባታው ውስጥ ማስወጣት ይችላሉ. ይህንን ለማድረግ ፋይሉን ማርትዕ ያስፈልግዎታል 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 የጂኦፕ ትዕዛዞችን ይገነዘባል፣ ነገር ግን አብሮ ለመስራት በቂ ውሂብ የለውም። የጂኦፕ ዳታቤዝ መጫን እንጀምር።
የጂኦአይፒ ዳታቤዝ በማግኘት ላይ
ለ 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
ምርታቸውን መጠቀም ስለምንፈልግ በዚህ ገጽ ላይ እንመዘግባለን።
ከዚያ የይለፍ ቃል እንዲያዘጋጁ የሚጠይቅ ኢሜይል ይደርስዎታል። አሁን መለያ ስለፈጠርን የፍቃድ ቁልፍ መፍጠር አለብን። በግል መለያዎ ውስጥ ንጥሉን እናገኛለን የእኔ የፍቃድ ቁልፎች, እና ከዚያ አዝራሩን ጠቅ ያድርጉ አዲስ የፍቃድ ቁልፍ ይፍጠሩ.
ቁልፍ ስንፈጥር አንድ ጥያቄ ብቻ እንጠየቃለን፡ ይህንን ቁልፍ በጂኦአይፒ ማሻሻያ ፕሮግራም ውስጥ እንጠቀማለን? አሉታዊ ምላሽ እንሰጣለን እና አዝራሩን ይጫኑ አረጋግጥ. ቁልፉ በብቅ ባዩ መስኮት ውስጥ ይታያል. ብቅ ባይ መስኮቱን አንዴ ከዘጉ በኋላ ሙሉ ቁልፉን ማየት ስለማይችሉ ይህን ቁልፍ በአስተማማኝ ቦታ ያስቀምጡት።
GeoLite2 የውሂብ ጎታዎችን በእጅ የማውረድ ችሎታ አለን ነገር ግን ቅርጸታቸው በ xt_geoip_build ስክሪፕት ከሚጠበቀው ቅርጸት ጋር ተኳሃኝ አይደለም። እዚህ የጂኦላይት2xtables ስክሪፕቶች ለማዳን የሚመጡበት ነው። ስክሪፕቶችን ለማሄድ 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-ሀገር-lite.csv... እንደ አለመታደል ሆኖ 20_የተለወጠ_ጂኦላይት2 ፍጹም የሆነ ፋይል አያወጣም. ስክሪፕት xt_geoip_build ሶስት አምዶችን ይጠብቃል:
- የአድራሻ ክልል መጀመሪያ;
- የአድራሻ ክልል መጨረሻ;
- የአገር ኮድ በ iso-3166-alpha2.
እና የውጤት ፋይሉ ስድስት አምዶችን ይይዛል-
- የአድራሻ ክልል መጀመሪያ (የሕብረቁምፊ ውክልና);
- የአድራሻ ክልል መጨረሻ (የሕብረቁምፊ ውክልና);
- የአድራሻ ክልል መጀመሪያ (የቁጥር ውክልና);
- የአድራሻ ክልል መጨረሻ (የቁጥር ውክልና);
- የአገሪቱ ኮድ;
- የአገሪቱ ስም.
ይህ ልዩነት ወሳኝ ነው እና ከሁለት መንገዶች በአንዱ ሊስተካከል ይችላል፡-
- አርትዕ 20_የተለወጠ_ጂኦላይት2;
- አርትዕ 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_ጂኦፕ_* በካታሎግ ውስጥ ይገኛሉ /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 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%No9
22 ተጠቃሚዎች ድምጽ ሰጥተዋል። 3 ተጠቃሚዎች ድምፀ ተአቅቦ አድርገዋል።
ምንጭ: hab.com