xtables-addons: நாடு வாரியாக தொகுப்புகளை வடிகட்டவும்

xtables-addons: நாடு வாரியாக தொகுப்புகளை வடிகட்டவும்
சில நாடுகளில் இருந்து போக்குவரத்தைத் தடுக்கும் பணி எளிமையானதாகத் தோன்றுகிறது, ஆனால் முதல் பதிவுகள் ஏமாற்றும். இதை எவ்வாறு செயல்படுத்துவது என்பதை இன்று நாங்கள் உங்களுக்குச் சொல்வோம்.

முன்வரலாறு

இந்த தலைப்பில் கூகிள் தேடலின் முடிவுகள் ஏமாற்றமளிக்கின்றன: பெரும்பாலான தீர்வுகள் நீண்ட காலமாக “அழுகிவிட்டன”, சில சமயங்களில் இந்த தலைப்பு கைவிடப்பட்டு எப்போதும் மறந்துவிட்டதாகத் தெரிகிறது. நாங்கள் நிறைய பழைய பதிவுகளை இணைத்துள்ளோம், மேலும் அறிவுறுத்தல்களின் நவீன பதிப்பைப் பகிர்ந்து கொள்ள தயாராக உள்ளோம்.

இந்த கட்டளைகளை இயக்கும் முன் முழு கட்டுரையையும் படிக்குமாறு பரிந்துரைக்கிறோம்.

இயக்க முறைமையைத் தயாரித்தல்

வடிகட்டுதல் பயன்பாட்டைப் பயன்படுத்தி கட்டமைக்கப்படும் இப்போது iptables, GeoIP தரவுகளுடன் வேலை செய்ய நீட்டிப்பு தேவைப்படுகிறது. இந்த நீட்டிப்பைக் காணலாம் xtables-addons. xtables-addons ஆனது iptablesக்கான நீட்டிப்புகளை சுயாதீன கர்னல் தொகுதிகளாக நிறுவுகிறது, எனவே OS கர்னலை மீண்டும் தொகுக்க வேண்டிய அவசியமில்லை.

எழுதும் நேரத்தில், 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_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 / தொகுதிகள்OS ஐ மறுதொடக்கம் செய்த பிறகு தொகுதி வேலை செய்யும். இனிமேல், iptables 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.

முன்னதாக, உரிமத்தின் கீழ் விநியோகிக்கப்படும் ஜியோலைட் லெகசி எனப்படும் ஜியோலைட் தயாரிப்பு, தரவுத்தளமாகப் பயன்படுத்தப்பட்டது. கிரியேட்டிவ் காமன்ஸ் ASA 4.0 நிறுவனம் மேக்ஸ் மைண்ட். இந்த தயாரிப்பில் ஒரே நேரத்தில் இரண்டு நிகழ்வுகள் நடந்தன, அது iptables நீட்டிப்புடன் பொருந்தக்கூடிய தன்மையை "உடைத்தது".

முதலில், ஜனவரி 2018 இல் அறிவிக்கப்பட்டது தயாரிப்புக்கான ஆதரவை நிறுத்துவது குறித்தும், ஜனவரி 2019, 2 அன்று, தரவுத்தளத்தின் பழைய பதிப்பைப் பதிவிறக்குவதற்கான அனைத்து இணைப்புகளும் அதிகாரப்பூர்வ இணையதளத்தில் இருந்து அகற்றப்பட்டன. புதிய பயனர்கள் GeoLite2 தயாரிப்பு அல்லது அதன் கட்டணப் பதிப்பு GeoIPXNUMX ஐப் பயன்படுத்த பரிந்துரைக்கப்படுகிறார்கள்.

இரண்டாவதாக, டிசம்பர் 2019 முதல் MaxMind அவர் குறிப்பிட்டதாவது அவர்களின் தரவுத்தளங்களுக்கான அணுகலில் குறிப்பிடத்தக்க மாற்றம். கலிஃபோர்னியா நுகர்வோர் தனியுரிமைச் சட்டத்திற்கு இணங்க, MaxMind ஜியோலைட்2 விநியோகத்தை பதிவுடன் "கவர்" செய்ய முடிவு செய்தது.

அவர்களின் தயாரிப்பைப் பயன்படுத்த விரும்புவதால், இந்தப் பக்கத்தில் பதிவு செய்வோம்.

xtables-addons: நாடு வாரியாக தொகுப்புகளை வடிகட்டவும்
அதன் பிறகு, கடவுச்சொல்லை அமைக்கும்படி கேட்கும் மின்னஞ்சலைப் பெறுவீர்கள். இப்போது நாம் ஒரு கணக்கை உருவாக்கியுள்ளோம், உரிம விசையை உருவாக்க வேண்டும். உங்கள் தனிப்பட்ட கணக்கில் நாங்கள் உருப்படியைக் காண்கிறோம் எனது உரிம விசைகள், பின்னர் பொத்தானை கிளிக் செய்யவும் புதிய உரிம விசையை உருவாக்கவும்.

விசையை உருவாக்கும் போது, ​​எங்களிடம் ஒரே ஒரு கேள்வி கேட்கப்படும்: ஜியோஐபி புதுப்பிப்பு திட்டத்தில் இந்த விசையைப் பயன்படுத்தலாமா? நாங்கள் எதிர்மறையாக பதிலளிக்கிறோம் மற்றும் பொத்தானை அழுத்தவும் உறுதிப்படுத்தவும். விசை பாப்-அப் விண்டோவில் காட்டப்படும். இந்த விசையை பாதுகாப்பான இடத்தில் சேமிக்கவும், பாப்-அப் சாளரத்தை மூடியவுடன், முழு விசையையும் இனி உங்களால் பார்க்க முடியாது.

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.

முதல் வழக்கில் நாம் குறைக்கிறோம் வைட்டமின் தேவையான வடிவத்திற்கு, மற்றும் இரண்டாவது - நாங்கள் மாறிக்கு ஒதுக்கீட்டை மாற்றுகிறோம் $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. ஸ்கிரிப்ட்டின் இந்தப் பதிப்பு ஒரு தரவுத்தளத்தைப் பயன்படுத்துகிறது நாட்டு லைட்டிற்கு ஐபி. உரிமம் கிரியேட்டிவ் காமன்ஸ் பண்புக்கூறு உரிமமாகும், மேலும் கிடைக்கக்கூடிய தரவுகளிலிருந்து மிகவும் தேவையான மூன்று நெடுவரிசைகள் உள்ளன. தரவுத்தளத்தை பதிவிறக்கம் செய்து ஒருங்கிணைக்கவும்:

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 இணைப்புகளைத் தடுப்பதற்கான விதி அனைத்து இடைமுகங்களிலும் USA இல் இருந்து அல்ல:

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

xt_geoip_build ஆல் உருவாக்கப்பட்ட கோப்புகள் விதிகளை உருவாக்கும் போது மட்டுமே பயன்படுத்தப்படும், ஆனால் வடிகட்டும்போது கணக்கில் எடுத்துக்கொள்ளப்படுவதில்லை. எனவே, geoip தரவுத்தளத்தை சரியாகப் புதுப்பிக்க, நீங்கள் முதலில் iv* கோப்புகளைப் புதுப்பிக்க வேண்டும், பின்னர் iptables இல் geoip ஐப் பயன்படுத்தும் அனைத்து விதிகளையும் மீண்டும் உருவாக்க வேண்டும்.

முடிவுக்கு

நாடுகளின் அடிப்படையில் பாக்கெட்டுகளை வடிகட்டுவது காலத்தால் ஓரளவு மறந்துவிட்ட ஒரு உத்தி. இருப்பினும், அத்தகைய வடிகட்டலுக்கான மென்பொருள் கருவிகள் உருவாக்கப்பட்டு வருகின்றன, ஒருவேளை, புதிய ஜியோப் தரவு வழங்குநருடன் கூடிய xt_geoip இன் புதிய பதிப்பு விரைவில் தொகுப்பு மேலாளர்களில் தோன்றும், இது கணினி நிர்வாகிகளின் வாழ்க்கையை பெரிதும் எளிதாக்கும்.

xtables-addons: நாடு வாரியாக தொகுப்புகளை வடிகட்டவும்

பதிவு செய்த பயனர்கள் மட்டுமே கணக்கெடுப்பில் பங்கேற்க முடியும். உள்நுழையவும், தயவு செய்து.

நீங்கள் எப்போதாவது நாடு வாரியாக வடிகட்டலைப் பயன்படுத்தியுள்ளீர்களா?

  • 59,1%ஆம்13

  • 40,9%எண்9

22 பயனர்கள் வாக்களித்தனர். 3 பயனர்கள் வாக்களிக்கவில்லை.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்