He mea maʻalahi ka hana o ka pale ʻana i nā kaʻa mai kekahi mau ʻāina, akā hiki ke hoʻopunipuni nā manaʻo mua. I kēia lā e haʻi mākou iā ʻoe pehea e hoʻokō ai i kēia.
prehistory
ʻO nā hopena o kahi hulina Google e pili ana i kēia kumuhana he mea hōʻeha: ʻo ka hapa nui o nā hoʻonā ua lōʻihi ka "popopo" a i kekahi manawa me he mea lā ua hoʻopaʻa ʻia kēia kumuhana a poina mau loa. Ua hui mākou i nā moʻolelo kahiko he nui a ua mākaukau mākou e kaʻana like i kahi mana hou o nā kuhikuhi.
Manaʻo mākou e heluhelu ʻoe i ka ʻatikala holoʻokoʻa ma mua o ka hoʻokō ʻana i kēia mau kauoha.
Hoʻomākaukau i ka ʻōnaehana hana
E hoʻonohonoho ʻia ke kānana me ka hoʻohana ʻana i ka pono ipoku, e koi ana i ka hoʻonui e hana me ka ʻikepili GeoIP. Hiki ke loaʻa kēia hoʻonui ma
I ka manawa kākau, ʻo ka mana o kēia manawa o xtables-addons he 3.9. Eia naʻe, hiki ke loaʻa iā 20.04 wale nō i nā waihona waihona Ubuntu 3.8 LTS, a me 18.04 i nā waihona waihona Ubuntu 3.0. Hiki iā ʻoe ke hoʻouka i ka hoʻonui ʻia mai ka luna pūʻulu me kēia kauoha:
apt install xtables-addons-common libtext-csv-xs-perl
E hoʻomaopopo he ʻokoʻa liʻiliʻi akā koʻikoʻi ma waena o ka mana 3.9 a me ke kūlana o kēia manawa o ka papahana, a mākou e kūkākūkā ai ma hope. No ke kūkulu ʻana mai ka code kumu, e hoʻokomo i nā pūʻolo pono a pau:
apt install git build-essential autoconf make libtool iptables-dev libxtables-dev pkg-config libnet-cidr-lite-perl libtext-csv-xs-perl
Hoʻopili i ka waihona:
git clone https://git.code.sf.net/p/xtables-addons/xtables-addons xtables-addons-xtables-addons
cd xtables-addons-xtables-addons
Loaʻa i nā xtables-addons nā mea hoʻonui, akā makemake wale mākou xt_geoip. Inā ʻaʻole ʻoe makemake e kauo i nā hoʻonui pono ʻole i loko o ka ʻōnaehana, hiki iā ʻoe ke haʻalele iā lākou mai ka kūkulu ʻana. No ka hana ʻana i kēia, pono ʻoe e hoʻoponopono i ka faila mconfig. No nā modula makemake a pau, e hoʻouka y, a e kaha i na mea pono ole n. ʻOhi mākou:
./autogen.sh
./configure
make
A e hoʻouka me nā kuleana superuser:
make install
I ka wā o ka hoʻokomo ʻana i nā modula kernel, hiki mai kekahi hewa e like me kēia:
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
Ke kū nei kēia kūlana ma muli o ka hiki ʻole ke kau inoa i nā modula kernel, no ka mea ʻaʻohe mea e hōʻailona. Hiki iā ʻoe ke hoʻoponopono i kēia pilikia me nā kauoha ʻelua:
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
Hoʻokomo ʻia ka module kernel i hui ʻia, akā ʻaʻole ʻike ka ʻōnaehana. E noi i ka ʻōnaehana e hana i kahi palapala hilinaʻi e noʻonoʻo ana i ka module hou, a laila hoʻouka iā ia:
depmod -a
modprobe xt_geoip
E hōʻoia e hoʻouka ʻia ʻo xt_geoip i ka ʻōnaehana:
# lsmod | grep xt_geoip
xt_geoip 16384 0
x_tables 40960 2 xt_geoip,ip_tables
Eia hou, e hōʻoia e hoʻouka ʻia ka hoʻonui i nā iptables:
# cat /proc/net/ip_tables_matches
geoip
icmp
Hauʻoli mākou i nā mea āpau a ʻo nā mea i koe e hoʻohui i ka inoa module i / a pela aku / modulesno laila e hana ka module ma hope o ka hoʻomaka hou ʻana i ka OS. Mai kēia manawa, hoʻomaopopo nā iptables i nā kauoha geoip, akā ʻaʻole lawa ka ʻikepili e hana ai. E hoʻomaka kākou e hoʻouka i ka waihona geoip.
Loaʻa i ka GeoIP Database
Hoʻokumu mākou i kahi papa kuhikuhi kahi e mālama ʻia ai ka ʻike i hiki ke hoʻomaopopo ʻia i ka extension iptables:
mkdir /usr/share/xt_geoip
I ka hoʻomaka ʻana o ka ʻatikala, ua ʻōlelo mākou aia nā ʻokoʻa ma waena o ka mana mai ke kumu kumu a me ka mana mai ka luna pūʻulu. ʻO ka ʻokoʻa i ʻike ʻia ʻo ia ka hoʻololi ʻana i ka mea kūʻai waihona waihona a me ka palapala xt_geoip_dl, ka mea e hoʻoiho i ka ʻikepili hou loa.
Mana mana pūʻolo
Aia ka palapala ma ke ala /usr/lib/xtables-addons, akā ke hoʻāʻo ʻoe e holo, e ʻike ʻoe i kahi hewa ʻike ʻole:
# ./xt_geoip_dl
unzip: cannot find or open GeoLite2-Country-CSV.zip, GeoLite2-Country-CSV.zip.zip or GeoLite2-Country-CSV.zip.ZIP.
Ma mua, ua hoʻohana ʻia ka huahana GeoLite, i kapa ʻia ʻo GeoLite Legacy, i hāʻawi ʻia ma lalo o ka laikini, ma ke ʻano he waihona.
ʻO ka mea mua, ma Ianuali 2018
ʻO ka lua, mai Dekemaba 2019 MaxMind
No ka mea makemake mākou e hoʻohana i kā lākou huahana, e kākau inoa mākou ma kēia ʻaoʻao.
E loaʻa iā ʻoe kahi leka uila e noi ana iā ʻoe e hoʻonohonoho i kahi ʻōlelo huna. I kēia manawa ua hana mākou i kahi moʻokāki, pono mākou e hana i kahi kī laikini. Ma kāu moʻokāki pilikino ʻike mākou i ka mea Ka'u Ki Laikini, a laila kaomi i ke pihi E hana hou i ka Laikini Ki.
I ka hana ʻana i kī, e nīnau ʻia iā mākou hoʻokahi wale nō nīnau: e hoʻohana anei mākou i kēia kī i ka papahana GeoIP Update? Pane maikaʻi ʻole mākou a kaomi i ke pihi Eʻae. E hōʻike ʻia ke kī ma kahi pukaaniani pop-up. E mālama i kēia kī ma kahi palekana, ʻoiai ke pani ʻoe i ka pukaaniani pop-up, ʻaʻole hiki iā ʻoe ke ʻike hou i ke kī holoʻokoʻa.
Loaʻa iā mākou ka hiki ke hoʻoiho i nā waihona ʻikepili GeoLite2 me ka lima, akā ʻaʻole kūpono ko lākou ʻano me ke ʻano i manaʻo ʻia e ka palapala xt_geoip_build. ʻO kēia kahi e hele mai ai nā palapala GeoLite2xtables e hoʻopakele. No ka holo ʻana i nā palapala, e hoʻokomo i ka 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
A laila, hoʻopili mākou i ka waihona me nā palapala a kākau i ke kī laikini i loaʻa mua i kahi faila:
git clone https://github.com/mschmitt/GeoLite2xtables.git
cd GeoLite2xtables
echo YOUR_LICENSE_KEY=’123ertyui123' > geolite2.license
E holo kāua i nā palapala:
# Скачиваем данные 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
Hāʻawi ʻo MaxMind i kahi palena o 2000 downloads i kēlā me kēia lā a, me ka nui o nā kikowaena, hāʻawi e hūnā i ka mea hou ma kahi kikowaena proxy.
E ʻoluʻolu e kāhea ʻia ka faila hoʻopuka dbip-country-lite.csv... Minamina, 20_convert_geolite2 ʻaʻole i hoʻopuka i kahi faila kūpono. Palapala xt_geoip_build manaʻo ʻia ʻekolu kolamu:
- hoʻomaka o ka laulā helu wahi;
- hope o ka helu wahi;
- code ʻāina ma iso-3166-alpha2.
A he ʻeono kolamu i loko o ka waihona puka:
- ka hoʻomaka ʻana o ka pae helu wahi (hōʻike string);
- ka pau ʻana o ka helu helu wahi (hōʻike string);
- ka hoʻomaka ʻana o ka laulā helu (helu helu);
- hope o ka helu wahi helu (helu helu);
- code o ka ʻāina;
- ka inoa o ka aina.
He mea koʻikoʻi kēia ʻokoʻa a hiki ke hoʻoponopono ʻia ma kekahi o nā ala ʻelua:
- noho aliʻi 20_convert_geolite2;
- noho aliʻi xt_geoip_build.
Ma ka hihia mua mākou e ho'ēmi
/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
E hoʻomaopopo i ka mea kākau
Puna kumu
I ka hoʻouka ʻana mai nā palapala code source xt_geoip_* aia i loko o ka waihona /usr/local/libexec/xtables-addons. Hoʻohana kēia mana o ka palapala i kahi waihona
cd /usr/share/xt_geoip/
/usr/local/libexec/xtables-addons/xt_geoip_dl
/usr/local/libexec/xtables-addons/xt_geoip_build
Ma hope o kēia mau hana, ua mākaukau nā iptables e hana.
Ke hoʻohana nei i ka geoip i nā iptables
Module xt_geoip hoʻohui i ʻelua mau kī:
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.
ʻO nā ʻano hana no ka hana ʻana i nā lula no nā iptables, ma ke ʻano nui, ʻaʻole i loli. No ka hoʻohana ʻana i nā kī mai nā modula ʻē aʻe, pono ʻoe e wehewehe pono i ka inoa o ka module me ka hoʻololi -m. No ka laʻana, he lula no ka ālai ʻana i nā pilina TCP e komo mai ana ma ke awa 443 ʻaʻole mai ʻAmelika mai ma nā pilina āpau:
iptables -I INPUT ! -i lo -p tcp --dport 443 -m geoip ! --src-cc US -j DROP
Hoʻohana wale ʻia nā faila i hana ʻia e xt_geoip_build i ka wā e hana ai i nā lula, akā ʻaʻole i mālama ʻia i ka wā kānana. No laila, no ka hoʻoponopono pololei ʻana i ka waihona geoip, pono ʻoe e hōʻano mua i nā faila iv*, a laila e hana hou i nā lula āpau e hoʻohana ai i ka geoip ma iptables.
hopena
ʻO ka kānana ʻana i nā ʻeke e pili ana i nā ʻāina he hoʻolālā i poina ʻia e ka manawa. Eia naʻe, ke kūkulu ʻia nei nā lako polokalamu no ia kānana a, ʻaʻole paha, e ʻike koke ʻia kahi mana hou o xt_geoip me kahi mea hāʻawi ʻikepili geoip hou i nā mana hoʻokele, e hoʻomaʻamaʻa loa i ke ola o nā luna hoʻomalu.
Hiki i nā mea hoʻohana i hoʻopaʻa inoa ʻia ke komo i ka noiʻi.
Ua hoʻohana paha ʻoe i ka kānana ma ka ʻāina?
-
59,1%ʻAe13
-
40,9%ʻAʻole9
22 mea hoʻohana i koho. Ua hōʻole nā mea hoʻohana 3.
Source: www.habr.com