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
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
Tuatahi, i te Hanuere 2018
Tuarua, mai i te Hakihea 2019 MaxMind
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.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:
- whakatika 20_convert_geolite2;
- whakatika xt_geoip_build.
I te keehi tuatahi ka whakaitihia e matou
/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
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
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.
Ko nga kaiwhakamahi kua rehita anake ka uru ki te rangahau.
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