
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 . 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 wā e tuhia ana tēnei, ko te putanga o nāianei o xtables-addons ko te 3.9. Heoi, i roto i ngā putunga raraunga paerewa Ubuntu Ka kitea noa e te 20.04 LTS te 3.8, ā, i roto i ngā putunga raraunga Ubuntu 18.04 — 3.0. Ka taea e koe te tāuta i te toronga mai i te kaiwhakahaere mōkihi mā te whakamahi i te whakahau e whai ake nei:
apt install xtables-addons-common libtext-csv-xs-perlKia 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-perlKorehia te putunga:
git clone https://git.code.sf.net/p/xtables-addons/xtables-addons xtables-addons-xtables-addons
cd xtables-addons-xtables-addonsKei 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./configuremakeA ka tāuta me te mana kaiwhakamahi super:
make installI 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 directoryKa 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/certscat <<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
EOFopenssl req -new -nodes -utf8 -sha512 -days 36500 -batch -x509 -config x509.genkey -outform DER -out signing_key.x509 -keyout signing_key.pemKua 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 -amodprobe xt_geoipMe 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_tablesI tua atu, kia mohio kei te utaina te toronga ki nga iptables:
# cat /proc/net/ip_tables_matches
geoip
icmpKei 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_geoipI 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 kamupene . 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 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 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.

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.

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.gztar xvf NetAddr-IP-4.079.tar.gzcd NetAddr-IP-4.079perl Makefile.PLmakemake installI 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.gitcd GeoLite2xtablesecho YOUR_LICENSE_KEY=’123ertyui123' > geolite2.licenseMe 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.csvKa 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:
- whakatika 20_convert_geolite2;
- whakatika xt_geoip_build.
I te keehi tuatahi ka whakaitihia e matou 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 ZWKia mahara ko te kaituhi kaore e whakaaro ana kua rite ana tuhinga mo te whakaputa me nga tuku 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 . 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_buildWhai 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 DROPKo 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.
Ko nga kaiwhakamahi kua rehita anake ka uru ki te rangahau. tē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
