xtables-addons: ๊ตญ๊ฐ€๋ณ„๋กœ ํŒจํ‚ค์ง€ ํ•„ํ„ฐ๋ง

xtables-addons: ๊ตญ๊ฐ€๋ณ„๋กœ ํŒจํ‚ค์ง€ ํ•„ํ„ฐ๋ง
ํŠน์ • ๊ตญ๊ฐ€์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ฐจ๋‹จํ•˜๋Š” ์ž‘์—…์€ ๊ฐ„๋‹จํ•ด ๋ณด์ด์ง€๋งŒ ์ฒซ์ธ์ƒ์€ ์†์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์„ ์‚ฌ ์‹œ๋Œ€

์ด ์ฃผ์ œ์— ๋Œ€ํ•œ Google ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋Š” ์‹ค๋ง์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์†”๋ฃจ์…˜์€ ์˜ค๋žซ๋™์•ˆ "์ฉ์€" ๊ฒƒ์ด์—ˆ๊ณ  ๋•Œ๋กœ๋Š” ์ด ์ฃผ์ œ๊ฐ€ ์˜์›ํžˆ ๋ณด๋ฅ˜๋˜๊ณ  ์žŠํ˜€์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋งŽ์€ ์˜ค๋ž˜๋œ ๊ธฐ๋ก์„ ์ƒ…์ƒ…์ด ๋’ค์ ธ ํ˜„๋Œ€ ๋ฒ„์ „์˜ ์ง€์นจ์„ ๊ณต์œ ํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ „์ฒด ๊ธฐ์‚ฌ๋ฅผ ์ฝ์–ด ๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์šด์˜ ์ฒด์ œ ์ค€๋น„

ํ•„ํ„ฐ๋ง์€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. iptables์—, GeoIP ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ™•์žฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ™•์žฅ์€ ๋‹ค์Œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. xtables-์• ๋“œ์˜จ. xtables-addons๋Š” iptables์šฉ ํ™•์žฅ์„ ๋…๋ฆฝ ์ปค๋„ ๋ชจ๋“ˆ๋กœ ์„ค์น˜ํ•˜๋ฏ€๋กœ OS ์ปค๋„์„ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด ๊ธ€์„ ์“ฐ๋Š” ์‹œ์ ์—์„œ xtables-addons์˜ ํ˜„์žฌ ๋ฒ„์ „์€ 3.9์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ‘œ์ค€ Ubuntu 20.04 LTS ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ๋Š” 3.8๋งŒ ์ฐพ์„ ์ˆ˜ ์žˆ๊ณ  Ubuntu 18.04 ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ๋Š” 3.0๋งŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์—์„œ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋ฒ„์ „ 3.9์™€ ํ”„๋กœ์ ํŠธ์˜ ํ˜„์žฌ ์ƒํƒœ ์‚ฌ์ด์—๋Š” ์ž‘์ง€๋งŒ ์ค‘์š”ํ•œ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ๋Š” ๋‚˜์ค‘์— ๋…ผ์˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ์—์„œ ๋นŒ๋“œํ•˜๋ ค๋ฉด ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ๋ชจ๋‘ ์„ค์น˜ํ•˜์„ธ์š”.

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

์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค.

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

cd xtables-addons-xtables-addons

xtables-addons์—๋Š” ๋งŽ์€ ํ™•์žฅ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ์—๋งŒ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. xt_geoip. ๋ถˆํ•„์š”ํ•œ ํ™•์žฅ์„ ์‹œ์Šคํ…œ์œผ๋กœ ๋Œ์–ด์˜ค๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด ๋นŒ๋“œ์—์„œ ์ œ์™ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. mconfig. ์›ํ•˜๋Š” ๋ชจ๋“  ๋ชจ๋“ˆ์— ๋Œ€ํ•ด ์„ค์น˜ y, ๋ถˆํ•„์š”ํ•œ ํ•ญ๋ชฉ์€ ๋ชจ๋‘ ํ‘œ์‹œํ•˜์„ธ์š”. n. ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ์„ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค:

./autogen.sh

./configure

make

๊ทธ๋ฆฌ๊ณ  ์Šˆํผ์œ ์ € ๊ถŒํ•œ์œผ๋กœ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค:

make install

์ปค๋„ ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ด ์ƒํ™ฉ์€ ์ปค๋„ ๋ชจ๋“ˆ ์„œ๋ช…์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ช…ํ•  ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช‡ ๊ฐ€์ง€ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ปดํŒŒ์ผ๋œ ์ปค๋„ ๋ชจ๋“ˆ์ด ์„ค์น˜๋˜์—ˆ์ง€๋งŒ ์‹œ์Šคํ…œ์ด ์ด๋ฅผ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ชจ๋“ˆ์„ ๊ณ ๋ คํ•˜์—ฌ ์ข…์†์„ฑ ๋งต์„ ์ƒ์„ฑํ•˜๋„๋ก ์‹œ์Šคํ…œ์— ์š”์ฒญํ•œ ๋‹ค์Œ ์ด๋ฅผ ๋กœ๋“œํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

depmod -a

modprobe xt_geoip

xt_geoip๊ฐ€ ์‹œ์Šคํ…œ์— ๋กœ๋“œ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

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

๋˜ํ•œ ํ™•์žฅ์ด iptables์— ๋กœ๋“œ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

# cat /proc/net/ip_tables_matches 
geoip
icmp

์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๊ฒƒ์— ๋งŒ์กฑํ•˜๋ฉฐ ๋‚จ์€ ๊ฒƒ์€ ๋ชจ๋“ˆ ์ด๋ฆ„์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. / etc / ๋ชจ๋“ˆOS๋ฅผ ์žฌ๋ถ€ํŒ…ํ•œ ํ›„ ๋ชจ๋“ˆ์ด ์ž‘๋™ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ๋ถ€ํ„ฐ iptables๋Š” geoip ๋ช…๋ น์„ ์ดํ•ดํ•˜์ง€๋งŒ ์ž‘์—…ํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. geoip ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋กœ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

GeoIP ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ€์ ธ์˜ค๊ธฐ

iptables ํ™•์žฅ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๊ฐ€ ์ €์žฅ๋  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค:

mkdir /usr/share/xt_geoip

๊ธฐ์‚ฌ ์‹œ์ž‘ ๋ถ€๋ถ„์—์„œ ์†Œ์Šค ์ฝ”๋“œ ๋ฒ„์ „๊ณผ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๋ฒ„์ „์— ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋ˆˆ์— ๋„๋Š” ์ฐจ์ด์ ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ณต๊ธ‰์—…์ฒด์™€ ์Šคํฌ๋ฆฝํŠธ์˜ ๋ณ€๊ฒฝ์ž…๋‹ˆ๋‹ค. xt_geoip_dl, ์ตœ์‹  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๋ฒ„์ „

์Šคํฌ๋ฆฝํŠธ๋Š” /usr/lib/xtables-addons ๊ฒฝ๋กœ์— ์žˆ์ง€๋งŒ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๊ทธ๋‹ค์ง€ ์œ ์ตํ•˜์ง€ ์•Š์€ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

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

์ด์ „์—๋Š” ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋˜๋Š” GeoLite Legacy๋กœ ์•Œ๋ ค์ง„ GeoLite ์ œํ’ˆ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํฌ๋ฆฌ์—์ดํ‹ฐ๋ธŒ ์ปค๋จผ์ฆˆ ASA 4.0 ํšŒ์‚ฌ ๋ณ„ MaxMind. ์ด ์ œํ’ˆ์—์„œ๋Š” iptables ํ™•์žฅ๊ณผ์˜ ํ˜ธํ™˜์„ฑ์ด "ํŒŒ๊ดด"๋˜๋Š” ๋‘ ๊ฐ€์ง€ ์ด๋ฒคํŠธ๊ฐ€ ๋™์‹œ์— ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋จผ์ € 2018๋…„ XNUMX์›” ๋ฐœํ‘œํ•˜๋‹ค ์ œํ’ˆ ์ง€์› ์ข…๋ฃŒ์— ๋Œ€ํ•ด ์•ˆ๋‚ดํ–ˆ์œผ๋ฉฐ, 2019๋…„ 2์›” 2์ผ ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์—์„œ ์ด์ „ ๋ฒ„์ „์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‹ค์šด๋กœ๋“œ ๋งํฌ๊ฐ€ ๋ชจ๋‘ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹ ๊ทœ ์‚ฌ์šฉ์ž๋Š” GeoLiteXNUMX ์ œํ’ˆ์ด๋‚˜ ์œ ๋ฃŒ ๋ฒ„์ „์ธ GeoIPXNUMX๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‘˜์งธ, 2019๋…„ XNUMX์›”๋ถ€ํ„ฐ MaxMind ๊ทธ๋Š” ์ง„์ˆ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค์— ๋Œ€ํ•œ ์ค‘์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์บ˜๋ฆฌํฌ๋‹ˆ์•„ ์†Œ๋น„์ž ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ๋ฒ•์„ ์ค€์ˆ˜ํ•˜๊ธฐ ์œ„ํ•ด MaxMind๋Š” ๋“ฑ๋ก์„ ํ†ตํ•ด GeoLite2 ๋ฐฐํฌ๋ฅผ "ํฌํ•จ"ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ํ•ด๋‹น ์ œํ’ˆ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์— ์ด ํŽ˜์ด์ง€์—์„œ ๋“ฑ๋กํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

xtables-addons: ๊ตญ๊ฐ€๋ณ„๋กœ ํŒจํ‚ค์ง€ ํ•„ํ„ฐ๋ง
๊ทธ๋Ÿฌ๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •์„ ์š”์ฒญํ•˜๋Š” ์ด๋ฉ”์ผ์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด์ œ ๊ณ„์ •์„ ๋งŒ๋“ค์—ˆ์œผ๋‹ˆ ๋ผ์ด์„ผ์Šค ํ‚ค๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ฐœ์ธ ๊ณ„์ •์—์„œ ํ•ญ๋ชฉ์„ ์ฐพ์Šต๋‹ˆ๋‹ค ๋‚ด ๋ผ์ด์„ผ์Šค ํ‚ค์„ ํด๋ฆญํ•œ ๋‹ค์Œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์„ธ์š”. ์ƒˆ ๋ผ์ด์„ผ์Šค ํ‚ค ์ƒ์„ฑ.

ํ‚ค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋‹จ ํ•˜๋‚˜์˜ ์งˆ๋ฌธ๋งŒ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. GeoIP ์—…๋ฐ์ดํŠธ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ด ํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ๊ฐ€? ๋ถ€์ •์ ์œผ๋กœ ๋Œ€๋‹ตํ•˜๊ณ  ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค ํ™•์ธํ•˜๊ธฐ. ํ‚ค๊ฐ€ ํŒ์—… ์ฐฝ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํŒ์—… ์ฐฝ์„ ๋‹ซ์œผ๋ฉด ๋” ์ด์ƒ ์ „์ฒด ํ‚ค๋ฅผ ๋ณผ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ด ํ‚ค๋ฅผ ์•ˆ์ „ํ•œ ๊ณณ์— ์ €์žฅํ•˜์„ธ์š”.

xtables-addons: ๊ตญ๊ฐ€๋ณ„๋กœ ํŒจํ‚ค์ง€ ํ•„ํ„ฐ๋ง
GeoLite2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ•ด๋‹น ํ˜•์‹์ด xt_geoip_build ์Šคํฌ๋ฆฝํŠธ์—์„œ ์˜ˆ์ƒํ•˜๋Š” ํ˜•์‹๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด GeoLite2xtables ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๊ตฌ์ถœ๋˜๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด 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

๋‹ค์Œ์œผ๋กœ, ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•˜๊ณ  ์ด์ „์— ์–ป์€ ๋ผ์ด์„ผ์Šค ํ‚ค๋ฅผ ํŒŒ์ผ์— ์”๋‹ˆ๋‹ค.

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

cd GeoLite2xtables

echo YOUR_LICENSE_KEY=โ€™123ertyui123' > geolite2.license

์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

# ะกะบะฐั‡ะธะฒะฐะตะผ ะดะฐะฝะฝั‹ะต 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

MaxMind๋Š” ํ•˜๋ฃจ์— 2000๋ฒˆ์˜ ๋‹ค์šด๋กœ๋“œ ์ œํ•œ์„ ๋‘๊ณ  ์žˆ์œผ๋ฉฐ, ์„œ๋ฒ„ ์ˆ˜๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ ํ”„๋ก์‹œ ์„œ๋ฒ„์— ์—…๋ฐ์ดํŠธ๋ฅผ ์บ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ถœ๋ ฅ ํŒŒ์ผ์„ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. dbip-๊ตญ๊ฐ€-lite.csv... ์•ˆํƒ€๊น๊ฒŒ๋„, 20_convert_geolite2 ์™„๋ฒฝํ•œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ xt_geoip_build ์„ธ ๊ฐœ์˜ ์—ด์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฃผ์†Œ ๋ฒ”์œ„์˜ ์‹œ์ž‘;
  • ์ฃผ์†Œ ๋ฒ”์œ„ ๋;
  • iso-3166-alpha2์˜ ๊ตญ๊ฐ€ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ถœ๋ ฅ ํŒŒ์ผ์—๋Š” XNUMX๊ฐœ์˜ ์—ด์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ฃผ์†Œ ๋ฒ”์œ„์˜ ์‹œ์ž‘(๋ฌธ์ž์—ด ํ‘œํ˜„)
  • ์ฃผ์†Œ ๋ฒ”์œ„ ๋(๋ฌธ์ž์—ด ํ‘œํ˜„)
  • ์ฃผ์†Œ ๋ฒ”์œ„์˜ ์‹œ์ž‘(์ˆซ์ž ํ‘œํ˜„)
  • ์ฃผ์†Œ ๋ฒ”์œ„ ๋(์ˆซ์ž ํ‘œํ˜„)
  • ๊ตญ๊ฐ€ ์ฝ”๋“œ;
  • ๋‚˜๋ผ์˜ ์ด๋ฆ„.

์ด๋Ÿฌํ•œ ๋ถˆ์ผ์น˜๋Š” ๋งค์šฐ ์ค‘์š”ํ•˜๋ฉฐ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ํ†ต์น˜ํ•˜๋‹ค 20_convert_geolite2;
  2. ํ†ต์น˜ํ•˜๋‹ค xt_geoip_build.

์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ์—๋Š” ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค. printf ํ•„์š”ํ•œ ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋‘ ๋ฒˆ์งธ์—์„œ๋Š” ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ํ• ๋‹น์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. $cc ์— $ํ–‰->[4]. ๊ทธ ํ›„์—๋Š” ๋‹ค์Œ์„ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

/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

์ฐธ๊ณ ๋กœ ์ €์ž๋Š” GeoLite2xํ…Œ์ด๋ธ” ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ”„๋กœ๋•์…˜ ๋ฐ ์ œ์•ˆ ์ค€๋น„๊ฐ€ ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ฅด๋‹ค ์›๋ณธ xt_geoip_* ์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ด๋ฏธ ์—…๋ฐ์ดํŠธ๋œ ์†Œ์Šค ์ฝ”๋“œ์—์„œ ์–ด์…ˆ๋ธ”๋ฆฌ๋กœ ์ด๋™ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์†Œ์Šค ๋ฒ„์ „

์†Œ์Šค ์ฝ”๋“œ ์Šคํฌ๋ฆฝํŠธ์—์„œ ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ xt_geoip_* ์นดํƒˆ๋กœ๊ทธ์— ์žˆ์Šต๋‹ˆ๋‹ค /usr/local/libexec/xtables-addons. ์ด ๋ฒ„์ „์˜ ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. IP์—์„œ ๊ตญ๊ฐ€ ๋ผ์ดํŠธ๋กœ. ๋ผ์ด์„ ์Šค๋Š” Creative Commons Attribution License์ด๋ฉฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ์—๋Š” ๋งค์šฐ ํ•„์š”ํ•œ ์„ธ ๊ฐœ์˜ ์—ด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์–ด์…ˆ๋ธ”ํ•ฉ๋‹ˆ๋‹ค.

cd /usr/share/xt_geoip/

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

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

์ด ๋‹จ๊ณ„๋ฅผ ๋งˆ์น˜๋ฉด iptables๊ฐ€ ์ž‘๋™ํ•  ์ค€๋น„๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

iptables์—์„œ geoip ์‚ฌ์šฉ

๊ธฐ์ค€ ์น˜์ˆ˜ xt_geoip ๋‘ ๊ฐœ์˜ ํ‚ค๋งŒ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

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.

์ผ๋ฐ˜์ ์œผ๋กœ iptables์— ๋Œ€ํ•œ ๊ทœ์น™์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๋ชจ๋“ˆ์˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด -m ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“ˆ ์ด๋ฆ„์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ชจ๋“  ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๋ฏธ๊ตญ์ด ์•„๋‹Œ ํฌํŠธ 443์—์„œ ๋“ค์–ด์˜ค๋Š” TCP ์—ฐ๊ฒฐ์„ ์ฐจ๋‹จํ•˜๋Š” ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

xt_geoip_build๋กœ ์ƒ์„ฑ๋œ ํŒŒ์ผ์€ ๊ทœ์น™ ์ƒ์„ฑ ์‹œ์—๋งŒ ์‚ฌ์šฉ๋˜๋ฉฐ ํ•„ํ„ฐ๋ง ์‹œ์—๋Š” ๊ณ ๋ ค๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ geoip ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ๋จผ์ € iv* ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•œ ๋‹ค์Œ iptables์—์„œ geoip๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๊ทœ์น™์„ ๋‹ค์‹œ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

๊ตญ๊ฐ€๋ณ„๋กœ ํŒจํ‚ท์„ ํ•„ํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์€ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ๋‹ค์†Œ ์žŠํ˜€์ง„ ์ „๋žต์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด๋Ÿฌํ•œ ํ•„ํ„ฐ๋ง์„ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๋„๊ตฌ๊ฐ€ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์œผ๋ฉฐ ์•„๋งˆ๋„ ๊ณง ์ƒˆ๋กœ์šด geoip ๋ฐ์ดํ„ฐ ๊ณต๊ธ‰์ž๊ฐ€ ํฌํ•จ๋œ xt_geoip์˜ ์ƒˆ ๋ฒ„์ „์ด ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์— ๋‚˜ํƒ€๋‚˜ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž์˜ ์‚ถ์„ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

xtables-addons: ๊ตญ๊ฐ€๋ณ„๋กœ ํŒจํ‚ค์ง€ ํ•„ํ„ฐ๋ง

๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž๋งŒ ์„ค๋ฌธ ์กฐ์‚ฌ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์ œ๋ฐœ

๊ตญ๊ฐ€๋ณ„ ํ•„ํ„ฐ๋ง์„ ์‚ฌ์šฉํ•ด ๋ณธ ์ ์ด ์žˆ๋‚˜์š”?

  • 59,1%์˜ˆ13

  • 40,9%9

22๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํˆฌํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. 3๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๊ถŒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€