xtables-addons: filter nga mga pakete sa nasud

xtables-addons: filter nga mga pakete sa nasud
Ang tahas sa pagbabag sa trapiko gikan sa pipila ka mga nasud ingon og yano, apan ang una nga mga impresyon mahimong makalimbong. Karon among isulti kanimo kung giunsa kini ipatuman.

sa naunang kasaysayan

Ang mga resulta sa pagpangita sa Google bahin niini nga hilisgutan makapahigawad: kadaghanan sa mga solusyon dugay na nga "dunot" ug usahay ingon og kini nga hilisgutan gipugngan ug nakalimtan sa kahangturan. Nakasuroy kami sa daghang karaan nga mga rekord ug andam nga mopaambit sa modernong bersyon sa mga instruksyon.

Girekomenda namon nga basahon nimo ang tibuuk nga artikulo sa dili pa ipatuman kini nga mga mando.

Pag-andam sa operating system

Ang pagsala ma-configure gamit ang utility iptables, nga nanginahanglan usa ka extension aron magamit sa datos sa GeoIP. Kini nga extension makita sa xtables-dugang. Ang xtables-addons nag-instalar sa mga extension alang sa mga iptables isip independente nga kernel modules, busa dili na kinahanglan nga i-compile ang OS kernel.

Sa panahon sa pagsulat, ang kasamtangan nga bersyon sa xtables-addons mao ang 3.9. Bisan pa, ang 20.04 ra ang makit-an sa standard nga Ubuntu 3.8 LTS repository, ug 18.04 sa Ubuntu 3.0 repository. Mahimo nimong i-install ang extension gikan sa manager sa package gamit ang mosunud nga mando:

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

Timan-i nga adunay gamay apan importante nga mga kalainan tali sa bersyon 3.9 ug sa kasamtangan nga kahimtang sa proyekto, nga atong hisgutan sa ulahi. Aron magtukod gikan sa source code, i-install ang tanan nga kinahanglan nga mga pakete:

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

I-clone ang repository:

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

cd xtables-addons-xtables-addons

Ang xtables-addons adunay daghang mga extension, apan interesado lang kami xt_geoip. Kung dili nimo gusto nga i-drag ang wala kinahanglana nga mga extension sa sistema, mahimo nimo nga dili iapil sila sa pagtukod. Aron mahimo kini kinahanglan nimo nga usbon ang file mconfig. Alang sa tanan nga gusto nga mga module, i-install y, ug markahi ang tanan nga wala kinahanglana n. Gikolekta namo:

./autogen.sh

./configure

make

Ug i-install gamit ang mga katungod sa superuser:

make install

Atol sa pag-instalar sa kernel modules, ang usa ka sayup nga susama sa mosunod mahimong mahitabo:

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

Kini nga sitwasyon mitungha tungod sa imposibilidad sa pagpirma sa kernel modules, tungod kay walay pirmahan. Mahimo nimong sulbaron kini nga problema gamit ang pipila ka mga sugo:

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

Ang gihugpong nga kernel module gi-install, apan ang sistema wala makamatikod niini. Atong pangutan-on ang sistema sa paghimo og dependency map nga gikonsiderar ang bag-ong module, ug dayon i-load kini:

depmod -a

modprobe xt_geoip

Atong siguroon nga ang xt_geoip gikarga sa sistema:

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

Dugang pa, siguroha nga ang extension gikarga sa iptables:

# cat /proc/net/ip_tables_matches 
geoip
icmp

Nalipay kami sa tanan ug ang nahabilin mao ang pagdugang sa ngalan sa module / etc / modulesaron ang module molihok pagkahuman sa pag-reboot sa OS. Sukad karon, ang iptables nakasabut sa geoip nga mga sugo, apan kini walay igong datos nga magamit. Magsugod ta sa pagkarga sa geoip database.

Pagkuha sa GeoIP Database

Naghimo kami usa ka direktoryo diin ang kasayuran nga masabtan sa extension sa iptables itago:

mkdir /usr/share/xt_geoip

Sa sinugdanan sa artikulo, among gihisgutan nga adunay mga kalainan tali sa bersyon gikan sa source code ug sa bersyon gikan sa package manager. Ang labing mamatikdan nga kalainan mao ang pagbag-o sa database vendor ug script xt_geoip_dl, nga nag-download sa pinakabag-o nga datos.

Package manager nga bersyon

Ang script nahimutang sa dalan /usr/lib/xtables-addons, apan sa dihang mosulay ka sa pagpadagan niini, makakita ka og dili kaayo impormasyon nga sayop:

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

Kaniadto, ang produkto nga GeoLite, karon nailhan nga GeoLite Legacy, giapod-apod ubos sa lisensya, gigamit ingon usa ka database Creative Commons ASA 4.0 pinaagi sa kompanya MaxMind. Duha ka mga panghitabo ang nahitabo sa kini nga produkto sa makausa nga "nabuak" ang pagkaangay sa extension sa iptables.

Una, sa Enero 2018 gipahibalo bahin sa pagtapos sa suporta alang sa produkto, ug kaniadtong Enero 2019, 2, ang tanan nga mga link sa pag-download sa daan nga bersyon sa database gikuha gikan sa opisyal nga website. Ang mga bag-ong tiggamit girekomenda nga gamiton ang produkto nga GeoLite2 o ang bayad nga bersyon nga GeoIPXNUMX.

Ikaduha, sukad Disyembre 2019 MaxMind giingon mahitungod sa usa ka mahinungdanon nga kausaban sa pag-access sa ilang mga database. Aron masunod ang California Consumer Privacy Act, nakahukom ang MaxMind nga "takpan" ang pag-apod-apod sa GeoLite2 nga adunay pagrehistro.

Tungod kay gusto namong gamiton ang ilang produkto, magparehistro kami niini nga panid.

xtables-addons: filter nga mga pakete sa nasud
Makadawat ka dayon usa ka email nga naghangyo kanimo nga magbutang usa ka password. Karon nga nakahimo na kami og account, kinahanglan namong maghimo og license key. Sa imong personal nga account atong makita ang butang Akong License Keys, ug dayon i-klik ang buton Paghimo og bag-ong License Key.

Kung maghimo usa ka yawe, pangutan-on lang kami usa ka pangutana: gamiton ba namon kini nga yawe sa programa sa GeoIP Update? Gitubag namon ang negatibo ug gipadayon ang buton Sa pagmatuod sa. Ang yawe ipakita sa usa ka pop-up nga bintana. I-save kini nga yawe sa usa ka luwas nga lugar, tungod kay sa higayon nga imong isira ang pop-up nga bintana, dili na nimo makita ang tibuuk nga yawe.

xtables-addons: filter nga mga pakete sa nasud
Kami adunay katakus sa pag-download sa GeoLite2 nga mga database nga mano-mano, apan ang ilang pormat dili tugma sa format nga gipaabut sa xt_geoip_build script. Dinhi diin ang mga script sa GeoLite2xtables moabut aron maluwas. Sa pagpadagan sa mga script, i-install ang 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

Sunod, gi-clone namon ang repository gamit ang mga script ug isulat ang nakuha kaniadto nga yawe sa lisensya sa usa ka file:

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

cd GeoLite2xtables

echo YOUR_LICENSE_KEY=’123ertyui123' > geolite2.license

Atong daganon ang mga script:

# Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ 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

Gipahamtang sa MaxMind ang limitasyon sa 2000 nga mga pag-download kada adlaw ug, uban ang daghang gidaghanon sa mga server, nagtanyag sa pag-cache sa update sa usa ka proxy server.

Palihug timan-i nga ang output file kinahanglan nga tawagan dbip-country-lite.csv... Ikasubo, 20_convert_geolite2 dili makahimo og usa ka hingpit nga file. Script xt_geoip_build nagpaabot sa tulo ka mga kolum:

  • pagsugod sa address range;
  • katapusan sa address range;
  • country code sa iso-3166-alpha2.

Ug ang output file adunay unom ka mga kolum:

  • pagsugod sa hanay sa adres (representasyon sa hilo);
  • katapusan sa hanay sa adres (representasyon sa hilo);
  • pagsugod sa hanay sa adres (numeric nga representasyon);
  • katapusan sa hanay sa adres (numeric nga representasyon);
  • code sa nasud;
  • ang ngalan sa nasud.

Kini nga kalainan kritikal ug mahimong matul-id sa usa sa duha ka paagi:

  1. usba 20_convert_geolite2;
  2. usba xt_geoip_build.

Sa una nga kaso giminusan namon printf sa gikinahanglan nga format, ug sa ikaduha - usbon nato ang assignment ngadto sa variable $cc sa $row->[4]. Pagkahuman niini mahimo ka magtukod:

/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

Timan-i nga ang tagsulat GeoLite2xtables wala gikonsiderar ang mga script niini nga andam alang sa produksiyon ug mga tanyag track alang sa pagpalambo sa orihinal nga xt_geoip_* nga mga script. Busa, magpadayon kita sa asembliya gikan sa mga source code, diin kini nga mga script na-update na.

Tinubdan nga bersyon

Kung nag-install gikan sa mga script sa source code xt_geoip_* nahimutang sa katalogo /usr/local/libexec/xtables-addons. Kini nga bersyon sa script naggamit sa database IP ngadto sa Country Lite. Ang lisensya mao ang Creative Commons Attribution License, ug gikan sa anaa nga datos adunay gikinahanglan nga tulo ka kolum. Pag-download ug pag-assemble sa database:

cd /usr/share/xt_geoip/

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

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

Pagkahuman niini nga mga lakang, ang mga iptables andam na nga magtrabaho.

Paggamit sa geoip sa iptables

Modyul xt_geoip midugang lamang ug duha ka yawe:

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.

Ang mga pamaagi sa paghimo og mga lagda alang sa mga iptable, sa kinatibuk-an, nagpabilin nga wala mausab. Aron magamit ang mga yawe gikan sa dugang nga mga module, kinahanglan nimo nga klaro nga ipiho ang ngalan sa module nga adunay -m switch. Pananglitan, usa ka lagda aron babagan ang umaabot nga mga koneksyon sa TCP sa port 443 dili gikan sa USA sa tanan nga mga interface:

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

Ang mga file nga gihimo sa xt_geoip_build gigamit lamang sa paghimo og mga lagda, apan wala gikonsiderar kung nagsala. Busa, aron sa husto nga pag-update sa geoip database, kinahanglan una nimo nga i-update ang iv* nga mga file, ug dayon mugnaon pag-usab ang tanang mga lagda nga naggamit sa geoip sa iptables.

konklusyon

Ang pagsala sa mga pakete base sa mga nasud usa ka estratehiya nga medyo nakalimtan sa panahon. Bisan pa niini, ang mga himan sa software alang sa ingon nga pagsala gipalambo ug, tingali, sa dili madugay usa ka bag-ong bersyon sa xt_geoip nga adunay bag-ong geoip data provider ang makita sa mga managers sa package, nga labi nga makapasimple sa kinabuhi sa mga administrador sa sistema.

xtables-addons: filter nga mga pakete sa nasud

Ang mga rehistradong tiggamit lamang ang makaapil sa survey. Sign in, walay sapayan.

Nakagamit ka na ba sa pagsala sa nasud?

  • 59,1%Oo13

  • 40,9%Dili9

22 nga tiggamit ang nagboto. 3 ka tiggamit ang nag-abstain.

Source: www.habr.com

Idugang sa usa ka comment