Mae'r dasg o rwystro traffig o rai gwledydd yn ymddangos yn syml, ond gall argraffiadau cyntaf fod yn dwyllodrus. Heddiw, byddwn yn dweud wrthych sut y gellir gweithredu hyn.
cynhanes
Mae canlyniadau chwiliad Google ar y pwnc hwn yn siomedig: mae'r rhan fwyaf o'r atebion wedi bod yn "pydru" ers tro ac weithiau mae'n ymddangos bod y pwnc hwn wedi'i roi o'r neilltu ac wedi anghofio amdano am byth. Rydym wedi mynd trwy lawer o hen gofnodion ac yn barod i rannu fersiwn modern o'r cyfarwyddiadau.
Rydym yn argymell eich bod yn darllen yr erthygl gyfan cyn gweithredu'r gorchmynion hyn.
Paratoi'r system weithredu
Bydd hidlo yn cael ei ffurfweddu gan ddefnyddio'r cyfleustodau iptables, sy'n gofyn am estyniad i weithio gyda data GeoIP. Gellir dod o hyd i'r estyniad hwn yn
Ar adeg ysgrifennu, y fersiwn gyfredol o xtables-addons yw 3.9. Fodd bynnag, dim ond 20.04 sydd i'w gael yn y storfeydd safonol Ubuntu 3.8 LTS, a 18.04 yn ystorfeydd Ubuntu 3.0. Gallwch chi osod yr estyniad gan y rheolwr pecyn gyda'r gorchymyn canlynol:
apt install xtables-addons-common libtext-csv-xs-perl
Sylwch fod gwahaniaethau bach ond pwysig rhwng fersiwn 3.9 a chyflwr presennol y prosiect, y byddwn yn eu trafod yn nes ymlaen. I adeiladu o'r cod ffynhonnell, gosodwch yr holl becynnau angenrheidiol:
apt install git build-essential autoconf make libtool iptables-dev libxtables-dev pkg-config libnet-cidr-lite-perl libtext-csv-xs-perl
Cloniwch y storfa:
git clone https://git.code.sf.net/p/xtables-addons/xtables-addons xtables-addons-xtables-addons
cd xtables-addons-xtables-addons
Mae xtables-addons yn cynnwys llawer o estyniadau, ond dim ond diddordeb sydd gennym ni xt_geoip. Os nad ydych chi am lusgo estyniadau diangen i'r system, gallwch eu heithrio o'r adeilad. I wneud hyn mae angen i chi olygu'r ffeil mconfig. Ar gyfer pob modiwl dymunol, gosodwch y, a marcio pob un diangen n. Rydym yn casglu:
./autogen.sh
./configure
make
A gosod gyda hawliau superuser:
make install
Wrth osod modiwlau cnewyllyn, gall gwall tebyg i'r canlynol ddigwydd:
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
Mae'r sefyllfa hon yn codi oherwydd yr amhosibilrwydd o arwyddo modiwlau cnewyllyn, oherwydd dim i'w arwyddo. Gallwch chi ddatrys y broblem hon gyda chwpl o orchmynion:
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
Mae'r modiwl cnewyllyn wedi'i lunio wedi'i osod, ond nid yw'r system yn ei ganfod. Gadewch i ni ofyn i'r system greu map dibyniaeth gan ystyried y modiwl newydd, ac yna ei lwytho:
depmod -a
modprobe xt_geoip
Gadewch i ni sicrhau bod xt_geoip yn cael ei lwytho i mewn i'r system:
# lsmod | grep xt_geoip
xt_geoip 16384 0
x_tables 40960 2 xt_geoip,ip_tables
Yn ogystal, gwnewch yn siŵr bod yr estyniad yn cael ei lwytho i mewn i iptables:
# cat /proc/net/ip_tables_matches
geoip
icmp
Rydym yn hapus gyda phopeth a'r cyfan sydd ar ôl yw ychwanegu enw'r modiwl ato / etc / modiwlaufel bod y modiwl yn gweithio ar ôl ailgychwyn yr OS. O hyn ymlaen, mae iptables yn deall gorchmynion geoip, ond nid oes ganddo ddigon o ddata i weithio gyda nhw. Gadewch i ni ddechrau llwytho'r gronfa ddata geoip.
Cael Cronfa Ddata GeoIP
Rydym yn creu cyfeiriadur lle bydd gwybodaeth ddealladwy i'r estyniad iptables yn cael ei storio:
mkdir /usr/share/xt_geoip
Ar ddechrau'r erthygl, soniasom fod gwahaniaethau rhwng y fersiwn o'r cod ffynhonnell a'r fersiwn gan y rheolwr pecyn. Y gwahaniaeth mwyaf amlwg yw'r newid mewn gwerthwr cronfa ddata a sgript xt_geoip_dl, sy'n lawrlwytho'r data diweddaraf.
Fersiwn rheolwr pecyn
Mae'r sgript wedi'i lleoli yn y llwybr /usr/lib/xtables-addons, ond pan geisiwch ei redeg, fe welwch wall nad yw'n addysgiadol iawn:
# ./xt_geoip_dl
unzip: cannot find or open GeoLite2-Country-CSV.zip, GeoLite2-Country-CSV.zip.zip or GeoLite2-Country-CSV.zip.ZIP.
Yn flaenorol, defnyddiwyd y cynnyrch GeoLite, a elwir bellach yn GeoLite Legacy, a ddosbarthwyd dan drwydded, fel cronfa ddata
Yn gyntaf, ym mis Ionawr 2018
Yn ail, ers mis Rhagfyr 2019 MaxMind
Gan ein bod am ddefnyddio eu cynnyrch, byddwn yn cofrestru ar y dudalen hon.
Yna byddwch yn derbyn e-bost yn gofyn i chi osod cyfrinair. Nawr ein bod wedi creu cyfrif, mae angen i ni greu allwedd trwydded. Yn eich cyfrif personol rydym yn dod o hyd i'r eitem Allweddi fy Nhrwydded, ac yna cliciwch ar y botwm Cynhyrchu Allwedd Trwydded newydd.
Wrth greu allwedd, dim ond un cwestiwn a ofynnir inni: a fyddwn yn defnyddio'r allwedd hon yn rhaglen Diweddaru GeoIP? Rydyn ni'n ateb yn negyddol ac yn pwyso'r botwm cadarnhau. Bydd yr allwedd yn cael ei harddangos mewn ffenestr naid. Cadwch yr allwedd hon mewn man diogel, oherwydd unwaith y byddwch chi'n cau'r ffenestr naid, ni fyddwch yn gallu gweld yr allwedd gyfan mwyach.
Mae gennym y gallu i lawrlwytho cronfeydd data GeoLite2 â llaw, ond nid yw eu fformat yn gydnaws â'r fformat a ddisgwylir gan y sgript xt_geoip_build. Dyma lle mae sgriptiau GeoLite2xtables yn dod i'r adwy. I redeg sgriptiau, gosodwch y modiwl 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
Nesaf, rydym yn clonio'r ystorfa gyda sgriptiau ac yn ysgrifennu'r allwedd trwydded a gafwyd yn flaenorol i ffeil:
git clone https://github.com/mschmitt/GeoLite2xtables.git
cd GeoLite2xtables
echo YOUR_LICENSE_KEY=’123ertyui123' > geolite2.license
Gadewch i ni redeg y sgriptiau:
# Скачиваем данные 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
Mae MaxMind yn gosod terfyn o 2000 o lawrlwythiadau y dydd a, gyda nifer fawr o weinyddion, yn cynnig storio'r diweddariad ar weinydd dirprwyol.
Sylwch fod yn rhaid galw'r ffeil allbwn dbip-gwlad-lite.csv... Yn anffodus, 20_trosi_geolite2 nid yw'n cynhyrchu ffeil berffaith. Sgript xt_geoip_adeiladu yn disgwyl tair colofn:
- dechrau'r ystod cyfeiriadau;
- ystod diwedd cyfeiriadau;
- cod gwlad yn iso-3166-alpha2.
Ac mae'r ffeil allbwn yn cynnwys chwe cholofn:
- ystod dechrau'r cyfeiriad (cynrychiolaeth llinynnol);
- ystod diwedd cyfeiriad (cynrychiolaeth llinynnol);
- ystod dechrau'r cyfeiriad (cynrychiolaeth rifiadol);
- ystod diwedd cyfeiriad (cynrychiolaeth rifiadol);
- cod y wlad;
- enw'r wlad.
Mae'r anghysondeb hwn yn hollbwysig a gellir ei gywiro mewn un o ddwy ffordd:
- golygu 20_trosi_geolite2;
- golygu xt_geoip_adeiladu.
Yn yr achos cyntaf rydym yn lleihau
/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
Sylwch fod yr awdur
Fersiwn ffynhonnell
Wrth osod o sgriptiau cod ffynhonnell xt_geoip_* wedi eu lleoli yn y catalog /usr/local/libexec/xtables-addons. Mae'r fersiwn hon o'r sgript yn defnyddio cronfa ddata
cd /usr/share/xt_geoip/
/usr/local/libexec/xtables-addons/xt_geoip_dl
/usr/local/libexec/xtables-addons/xt_geoip_build
Ar ôl y camau hyn, mae iptables yn barod i weithio.
Defnyddio geoip mewn iptables
Modiwl xt_geoip yn ychwanegu dwy allwedd yn unig:
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.
Yn gyffredinol, nid yw'r dulliau ar gyfer creu rheolau ar gyfer iptables wedi newid. I ddefnyddio bysellau o fodiwlau ychwanegol, rhaid i chi nodi'n benodol enw'r modiwl gyda'r switsh -m. Er enghraifft, rheol i rwystro cysylltiadau TCP sy'n dod i mewn ar borthladd 443 nid o UDA ar bob rhyngwyneb:
iptables -I INPUT ! -i lo -p tcp --dport 443 -m geoip ! --src-cc US -j DROP
Dim ond wrth greu rheolau y defnyddir ffeiliau a grëwyd gan xt_geoip_build, ond ni chânt eu hystyried wrth hidlo. Felly, i ddiweddaru'r gronfa ddata geoip yn gywir, rhaid i chi ddiweddaru'r ffeiliau iv* yn gyntaf, ac yna ail-greu'r holl reolau sy'n defnyddio geoip mewn iptables.
Casgliad
Mae hidlo pecynnau yn seiliedig ar wledydd yn strategaeth a anghofiwyd braidd gan amser. Er gwaethaf hyn, mae offer meddalwedd ar gyfer hidlo o'r fath yn cael eu datblygu ac, efallai, yn fuan bydd fersiwn newydd o xt_geoip gyda darparwr data geoip newydd yn ymddangos mewn rheolwyr pecynnau, a fydd yn symleiddio bywyd gweinyddwyr system yn fawr.
Dim ond defnyddwyr cofrestredig all gymryd rhan yn yr arolwg.
Ydych chi erioed wedi defnyddio hidlo fesul gwlad?
-
59,1%Oes13
-
40,9%Rhif 9
Pleidleisiodd 22 defnyddiwr. Ataliodd 3 defnyddiwr.
Ffynhonnell: hab.com