xtables-addons: tātari pōkai mā te whenua

xtables-addons: tātari pōkai mā te whenua
Ko te mahi ki te aukati i nga waka mai i etahi whenua he ahua ngawari, engari ko nga whakaaro tuatahi ka taea te tinihanga. I tenei ra ka korero matou ki a koe me pehea e taea ai te whakatinana.

prehistory

Ko nga hua o te rapunga a Google mo tenei kaupapa he pouri: ko te nuinga o nga otinga kua roa kua "piu" a i etahi wa ka ahua kua warewarehia tenei kaupapa, kua warewarehia mo ake tonu atu. He maha nga rekoata tawhito kua paahitia e matou, a kua reri matou ki te whakapuaki i tetahi putanga hou o nga tohutohu.

Ka tūtohu mātou kia panui koe i te tuhinga katoa i mua i te mahi i enei whakahau.

Te whakarite i te punaha whakahaere

Ka whirihorahia te tātari ma te whakamahi i te taputapu iptables, e hiahia ana he toronga ki te mahi me nga raraunga GeoIP. Ka kitea tenei toronga i roto xtables-taapiri. Ko te xtables-addons ka whakauru i nga taapiri mo nga iptables hei waahanga kernel motuhake, na reira kaore he take ki te whakahiato i te kernel OS.

I te wa e tuhi ana, ko te putanga o naianei o xtables-addons ko 3.9. Engari, ko te 20.04 anake ka kitea i roto i nga rehitatanga Ubuntu 3.8 LTS paerewa, me te 18.04 i roto i nga rehitatanga Ubuntu 3.0. Ka taea e koe te whakauru i te toronga mai i te kaiwhakahaere kete me te whakahau e whai ake nei:

apt install xtables-addons-common libtext-csv-xs-perl

Kia mahara he iti noa nga rereketanga i waenga i te putanga 3.9 me te ahuatanga o te kaupapa o naianei, ka korerohia e tatou i muri mai. Hei hanga mai i te waehere puna, whakauruhia nga kohinga e tika ana:

apt install git build-essential autoconf make libtool iptables-dev libxtables-dev pkg-config libnet-cidr-lite-perl libtext-csv-xs-perl

Korehia te putunga:

git clone https://git.code.sf.net/p/xtables-addons/xtables-addons xtables-addons-xtables-addons

cd xtables-addons-xtables-addons

Kei roto i nga xtables-addons te maha o nga taapiri, engari ko taatau anake te hiahia xt_geoip. Mena kaore koe e hiahia ki te toia nga taapiri koretake ki roto i te punaha, ka taea e koe te whakakore i a raatau mai i te hanga. Ki te mahi i tenei me whakatika koe i te konae mconfig. Mo nga waahanga e hiahiatia ana, whakauruhia y, ka tohu i nga mea katoa e kore e hiahiatia n. Ka kohia e matou:

./autogen.sh

./configure

make

A ka tāuta me te mana kaiwhakamahi super:

make install

I te wa o te whakaurunga o nga waahanga kernel, ka puta he hapa rite ki enei e whai ake nei:

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

Ka puta ake tenei ahuatanga na te kore e taea te haina i nga waahanga kernel, na te mea kaore he mea hei haina. Ka taea e koe te whakaoti i tenei raru ma nga whakahau e rua:

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

Kua whakauruhia te kōwae kernel kua whakahiato, engari kaore e kitea e te punaha. Me tono ki te punaha ki te hanga mapi whakawhirinaki ma te whakaaro ki te waahanga hou, ka utaina:

depmod -a

modprobe xt_geoip

Me whakarite kei te utaina te xt_geoip ki te punaha:

# lsmod | grep xt_geoip
xt_geoip               16384  0
x_tables               40960  2 xt_geoip,ip_tables

I tua atu, kia mohio kei te utaina te toronga ki nga iptables:

# cat /proc/net/ip_tables_matches 
geoip
icmp

Kei te harikoa matou ki nga mea katoa ka toe ko te taapiri i te ingoa kōwae ki / etc / kōwaekia mahi te kōwae i muri i te whakaara ano i te OS. Mai i tenei wa, ka mohio a iptables ki nga tono geoip, engari kaore i te nui nga raraunga hei mahi. Me timata taatau ki te uta i te paataka raraunga geoip.

Te tiki i te GeoIP Database

Ka waihangahia e matou he whaiaronga ka penapena nga korero e marama ana ki te toronga iptables:

mkdir /usr/share/xt_geoip

I te timatanga o te tuhinga, i korero matou he rereke nga rereketanga i waenga i te putanga mai i te waehere puna me te putanga mai i te kaiwhakahaere kete. Ko te rereketanga tino kitea ko te huringa o te kaihoko putunga raraunga me te tuhinga xt_geoip_dl, e tango ana i nga raraunga hou.

Putanga kaiwhakahaere kete

Ko te tuhinga kei roto i te ara /usr/lib/xtables-addons, engari ka ngana koe ki te whakahaere, ka kite koe i te hapa kore korero:

# ./xt_geoip_dl 
unzip:  cannot find or open GeoLite2-Country-CSV.zip, GeoLite2-Country-CSV.zip.zip or GeoLite2-Country-CSV.zip.ZIP.

I mua, ko te hua GeoLite, e mohiotia ana inaianei ko GeoLite Legacy, kua tohatohahia i raro i te raihana, i whakamahia hei putunga raraunga Creative Commons ASA 4.0 kamupene MaxMind. E rua nga huihuinga i pa ki tenei hua i te wa kotahi i "pakaru" te hototahi ki te toronga iptables.

Tuatahi, i te Hanuere 2018 i panuihia mo te whakakorenga o te tautoko mo te hua, a, i te Hanuere 2019, 2, i tangohia nga hononga katoa ki te tango i te putanga tawhito o te paataka raraunga mai i te paetukutuku mana. E taunaki ana nga kaiwhakamahi hou ki te whakamahi i te hua GeoLite2 me tana putanga utu GeoIPXNUMX ranei.

Tuarua, mai i te Hakihea 2019 MaxMind whakahuatia e pa ana ki te huringa nui o te uru ki o raatau papaa raraunga. Hei ū ki te California Consumer Privacy Act, i whakatau a MaxMind ki te "tapahia" te tohatoha o GeoLite2 me te rehitatanga.

I te mea e hiahia ana matou ki te whakamahi i a raatau hua, ka rehita matou ki tenei wharangi.

xtables-addons: tātari pōkai mā te whenua
Ka whiwhi koe i tetahi imeera e tono ana kia tautuhia he kupuhipa. Inaianei kua hangahia e matou he kaute, me hanga he taviri raihana. I roto i to putea whaiaro ka kitea e matou te taonga Taku Kī Raihana, ka paato i te paatene Waihanga Kī Raihana hou.

I te wa e hanga ana he taviri, kotahi noa te patai: ka whakamahia e matou tenei ki roto i te kaupapa GeoIP Update? Ka whakautu kino matou ka pehi i te paatene Whakaū. Ka whakaatuhia te matua ki te matapihi pakū-ake. Tiakina tenei ki tetahi waahi haumaru, na te mea ka kati koe i te matapihi pahū-ake, ka kore e taea e koe te tiro i te taviri katoa.

xtables-addons: tātari pōkai mā te whenua
Kei a matou te kaha ki te tango a-ringa i nga papaa raraunga GeoLite2, engari kaore i te hototahi ki te whakatakotoranga e tumanakohia ana e te tuhinga xt_geoip_build. Koinei te waahi ka tae mai nga tuhinga a GeoLite2xtables ki te whakaora. Hei whakahaere i nga tuhinga, whakauruhia te 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

I muri mai, ka kohia e matou te putunga me nga tuhinga ka tuhia te kii raihana kua riro i mua ki tetahi konae:

git clone https://github.com/mschmitt/GeoLite2xtables.git

cd GeoLite2xtables

echo YOUR_LICENSE_KEY=’123ertyui123' > geolite2.license

Me whakahaere nga tuhinga:

# Скачиваем данные 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

Ka tukuna e MaxMind te rohe o te 2000 nga tango i ia ra, a, me te maha o nga kaiwhakarato, ka tuku ki te keteroki i te whakahou i runga i te tūmau takawaenga.

Kia mahara me karangahia te konae whakaputa dbip-country-lite.csv... Heoi, 20_convert_geolite2 e kore e whakaputa i te kōnae tino. Hōtuhi xt_geoip_build e toru nga pou e tatari ana:

  • te timatanga o te awhe wahitau;
  • mutunga o te awhe wāhitau;
  • waehere whenua i roto i te iso-3166-alpha2.

E ono nga pou kei roto i te konae whakaputa:

  • te timatanga o te awhe wahitau (whakaahua aho);
  • te mutunga o te awhe wahitau (whakaahua aho);
  • te timatanga o te awhe wahitau (whakaahua tau);
  • te mutunga o te awhe wāhitau (tohu tau);
  • waehere o te whenua;
  • te ingoa o te whenua.

He mea nui tenei rereketanga ka taea te whakatika ma tetahi o nga huarahi e rua:

  1. whakatika 20_convert_geolite2;
  2. whakatika xt_geoip_build.

I te keehi tuatahi ka whakaitihia e matou Tuhinga ki te whakatakotoranga e hiahiatia ana, a i te tuarua - ka huri tatou i te taumahi ki te taurangi $cc i runga i $rarangi->[4]. I muri i tenei ka taea e koe te hanga:

/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

Kia mahara ko te kaituhi GeoLite2xtables kaore e whakaaro ana kua rite ana tuhinga mo te whakaputa me nga tuku ara mo te whakawhanaketanga o nga tuhinga xt_geoip_* taketake. Na reira, kia neke atu ki te huihuinga mai i nga waehere puna, kua oti kee enei tuhinga te whakahou.

Putanga puna

I te wa e whakauru ana mai i nga tuhinga waehere puna xt_geoip_* kei roto i te raarangi /usr/local/libexec/xtables-addons. Ko tenei putanga o te tuhinga e whakamahi ana i te papanga raraunga IP ki Whenua Lite. Ko te raihana Creative Commons Attribution License, a, mai i nga raraunga e waatea ana kei reira nga pou e toru e tika ana. Tikiake me te whakahiato i te pātengi raraunga:

cd /usr/share/xt_geoip/

/usr/local/libexec/xtables-addons/xt_geoip_dl

/usr/local/libexec/xtables-addons/xt_geoip_build

Whai muri i enei mahi, kua reri a iptables ki te mahi.

Te whakamahi geoip i iptables

Takahauira xt_geoip ka taapirihia nga taviri e rua anake:

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.

Ko nga tikanga mo te hanga ture mo nga iptables, i te nuinga o te waa, ka noho tonu. Ki te whakamahi i nga taviri mai i etahi atu waahanga, me tino tohu koe i te ingoa o te kōwae me te whakakā -m. Hei tauira, he ture hei aukati i nga hononga TCP taumai i te tauranga 443 ehara i te USA i runga i nga atanga katoa:

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

Ko nga konae i hangaia e xt_geoip_build ka whakamahia anake i te wa e hanga ture ana, engari karekau e whai whakaaro ki te tātari. No reira, ki te whakahou tika i te paataka raraunga geoip, me whakahou i nga konae iv*, katahi ka hanga ano i nga ture katoa e whakamahi ana i te geoip i roto i nga iptables.

mutunga

Ko te tarai i nga paatete i runga i nga whenua he rautaki kua warewarehia e te waa. Ahakoa tenei, kei te whakawhanakehia nga taputapu rorohiko mo taua tātari, a, kare pea, ka puta mai he putanga hou o xt_geoip me tetahi kaiwhakarato raraunga geoip hou ki nga kaiwhakahaere kete, ka tino ngawari te oranga o nga kaiwhakahaere punaha.

xtables-addons: tātari pōkai mā te whenua

Ko nga kaiwhakamahi kua rehita anake ka uru ki te rangahau. Waitohu maitēnā.

Kua whakamahia e koe te tātari ma te whenua?

  • 59,1 orauAe13

  • 40,9 orauNo9

22 nga kaiwhakamahi i pooti. 3 nga kaiwhakamahi i aukati.

Source: will.com

Tāpiri i te kōrero