Ipset script installation instructions - XIYO/asuswrt-merlin.ng-kr GitHub Wiki

์•„๋ž˜๋Š” ๋งˆํฌ๋‹ค์šด ๋ฌธ๋ฒ•์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๊ฐœ๋ฐœ ๋ฌธ์„œ ํ˜•์‹์œผ๋กœ ํ•œ๊ธ€๋กœ ๋ฒˆ์—ญํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์ถœ๋ ฅ์€ ๋ณธ๋ฌธ๋งŒ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.


์ฐธ๊ณ : ์ด ํŽ˜์ด์ง€์—๋Š” ๋‹ค์–‘ํ•œ ์œ ์ง€ ๊ด€๋ฆฌ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ์˜ ์ง€์›์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ์ €์ž์˜ ํ•ด๋‹น ์Šค๋ ˆ๋“œ๋กœ ์ด๋™ํ•˜์‹ญ์‹œ์˜ค.

์ฃผ์˜: ๋ฌด์–ธ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์„ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ JFFS ํŒŒํ‹ฐ์…˜์˜ ๋ฐฑ์—…์„ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋™์‹œ์— ์‹คํ–‰๋˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค. ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ๊ฐ„์— ์‹คํ–‰ํ•˜๋ ค๋ฉด sleep ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ &&๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋กœ ๋’ค์ด์–ด ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.


๋ชฉ์ฐจ

์ด ํŽ˜์ด์ง€์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ์ •๊ธฐ์ ์œผ๋กœ ์•ก์„ธ์Šคํ•˜๋Š” ์‚ฌ์ดํŠธ/IP ์ฃผ์†Œ๊ฐ€ ์ฐจ๋‹จ๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ ์ค‘์ธ ์Šคํฌ๋ฆฝํŠธ์˜ ์ˆ˜์— ๋”ฐ๋ผ ์–ด๋–ค ipset ๋ชฉ๋ก์ด ์ฐจ๋‹จ์„ ์ผ์œผํ‚ค๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ ๋‹จ๊ณ„๋Š” ์ œ๊ณต๋œ IP์— ๋Œ€ํ•ด ์Šคํฌ๋ฆฝํŠธ ์†Œ์Šค์™€ ๊ด€๊ณ„์—†์ด ์‚ฌ์šฉ ์ค‘์ธ ๋ชจ๋“  ipset ๋ชฉ๋ก์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ์Šคํฌ๋ฆฝํŠธ ์„ค์น˜ ์ง€์นจ์„ ๋”ฐ๋ฅด์„ธ์š”:

  • JFFS๋ฅผ ๋จผ์ € WEB UI๋ฅผ ํ†ตํ•ด ํ™œ์„ฑํ™” ๋ฐ ํฌ๋งทํŒ…ํ•˜์„ธ์š” (์ด๋ฏธ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ)

  • ์ข‹์•„ํ•˜๋Š” ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ (์˜ˆ: nano)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ์„ /jffs/configs/profile.add์— ์ถ”๊ฐ€ํ•˜์„ธ์š”.

  • ๋ผ์šฐํ„ฐ๊ฐ€ ์ง€์›ํ•˜๋Š” ipset ๋ฒ„์ „์— ํ•ด๋‹นํ•˜๋Š” ๊ธฐ๋Šฅ๋งŒ ์ถ”๊ฐ€ํ•˜์„ธ์š”.

  • ipset v4์˜ ๊ฒฝ์šฐ:

MatchIP() { # IP๋ฅผ ipset ๋ชฉ๋ก๊ณผ ๋น„๊ต
  if [ -z "$1" ]; then
    echo "ipset ๋ชฉ๋ก์„ ํ†ตํ•ด ํ™•์ธํ•  IP๋ฅผ ์ง€์ •ํ•˜์„ธ์š”. ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค."
  else
    GREEN='\033[0;32m'
    RED='\033[0;31m'
    NC='\033[0m' # ์ƒ‰์ƒ ์—†์Œ
    for TestList in $( (iptables -L -t raw && iptables -L) | grep " set" | tr -s ' ' | cut -d' ' -f7 | tr '\n' ' '); do
      ipset -q --test $TestList $1 && echo -e "$1๊ฐ€ ${GREEN}${TestList}${NC}์—์„œ ๋ฐœ๊ฒฌ๋จ" || echo -e "$1๊ฐ€ ${RED}${TestList}${NC}์—์„œ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์Œ"
    done
  fi
}
  • ipset v6์˜ ๊ฒฝ์šฐ:
MatchIP() { # IP๋ฅผ ipset ๋ชฉ๋ก๊ณผ ๋น„๊ต
  if [ -z "$1" ]; then
    echo "ipset ๋ชฉ๋ก์„ ํ†ตํ•ด ํ™•์ธํ•  IP๋ฅผ ์ง€์ •ํ•˜์„ธ์š”. ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค."
  else
    GREEN='\033[0;32m'
    RED='\033[0;31m'
    NC='\033[0m' # ์ƒ‰์ƒ ์—†์Œ
    for TestList in $( (iptables -L -t raw && iptables -L) | grep "match-set" | tr -s ' ' | cut -d' ' -f7 | tr '\n' ' '); do
      ipset -q test $TestList $1 && echo -e "$1๊ฐ€ ${GREEN}${TestList}${NC}์—์„œ ๋ฐœ๊ฒฌ๋จ" || echo -e "$1๊ฐ€ ${RED}${TestList}${NC}์—์„œ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์Œ"
    done
  fi
}
  • ํ”„๋กœํ•„ ๋ณ€๊ฒฝ์„ ์ ์šฉํ•˜๋ ค๋ฉด SSH ์„ธ์…˜์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์„ธ์š”.

  • ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

MatchIP 8.8.8.8
```# ์ƒ˜ํ”Œ ์ถœ๋ ฅ
8.8.8.8๊ฐ€ YAMalwareBlock1IP์—์„œ ์ฐพ์ง€ ๋ชปํ•จ
8.8.8.8๊ฐ€ YAMalwareBlock2IP์—์„œ ์ฐพ์ง€ ๋ชปํ•จ
8.8.8.8๊ฐ€ YAMalwareBlockCIDR์—์„œ ์ฐพ์ง€ ๋ชปํ•จ
8.8.8.8๊ฐ€ WhitelistDomains์—์„œ ์ฐพ์ง€ ๋ชปํ•จ
8.8.8.8๊ฐ€ BlacklistDomains์—์„œ ์ฐพ์ง€ ๋ชปํ•จ
8.8.8.8๊ฐ€ I-BlocklistTheOnionRouterCIDR์—์„œ ์ฐพ์ง€ ๋ชปํ•จ
8.8.8.8๊ฐ€ I-BlocklistTheOnionRouterSingle์—์„œ ์ฐพ์ง€ ๋ชปํ•จ
8.8.8.8๊ฐ€ BluetackDshieldCIDR์—์„œ ์ฐพ์ง€ ๋ชปํ•จ
8.8.8.8๊ฐ€ BluetackDshieldSingle์—์„œ ์ฐพ์ง€ ๋ชปํ•จ
8.8.8.8๊ฐ€ BluetackSpiderCIDR์—์„œ ์ฐพ์ง€ ๋ชปํ•จ
8.8.8.8๊ฐ€ BluetackSpiderSingle์—์„œ ์ฐพ์ง€ ๋ชปํ•จ

# Tor ๋ฐ ๊ตญ๊ฐ€ ์ฐจ๋‹จ

์ด ์˜ˆ์ œ์—์„œ๋Š” [Tor](https://www.torproject.org/) ๋…ธ๋“œ (iphash ์„ธํŠธ ์œ ํ˜• - IP ์ฃผ์†Œ ์ˆ˜)์—์„œ์˜ ๋“ค์–ด์˜ค๋Š” ์—ฐ๊ฒฐ ์ฐจ๋‹จ ๋ฐ ์ „์ฒด ๊ตญ๊ฐ€์—์„œ์˜ ๋“ค์–ด์˜ค๋Š” ์—ฐ๊ฒฐ ์ฐจ๋‹จ ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

* [JFFS](https://github.com/RMerl/asuswrt-merlin.ng/wiki/JFFS)๋ฅผ ๋จผ์ € WEB UI๋ฅผ ํ†ตํ•ด ํ™œ์„ฑํ™” ๋ฐ ํฌ๋งทํŒ…ํ•˜์„ธ์š” (์ด๋ฏธ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ)

* ๊ทธ๋Ÿฐ ๋‹ค์Œ [**์ด ๋‚ด์šฉ**](https://raw.githubusercontent.com/shounak-de/misc-scripts/master/create-ipset-lists.sh)์„ `/jffs/scripts/create-ipset-lists.sh`์— ๋ฐฐ์น˜ํ•˜์„ธ์š”.

* ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ์„ธ์š”:

chmod +x /jffs/scripts/create-ipset-lists.sh

* ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ธฐ์กด์˜ /jffs/scripts/services-start *๋˜๋Š”* /jffs/scripts/post-mount์˜ ๋์—์„œ ๋‹ค์Œ์„ ํ˜ธ์ถœํ•˜์„ธ์š”:# ipset ํ•„ํ„ฐ ๊ทœ์น™ ๋กœ๋“œ
sh /jffs/scripts/create-ipset-lists.sh

๋˜ํ•œ /jffs/scripts/create-ipset-lists.sh๋ฅผ ๋ช…๋ น ๋ผ์ธ์—์„œ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ผ์šฐํ„ฐ๋ฅผ ๋‹ค์‹œ ๋ถ€ํŒ…ํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ฐจ๋‹จ ๊ทœ์น™์„ ์ฆ‰์‹œ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ๊ตญ๊ฐ€ ๋ชฉ๋ก์ด๋‚˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ผ์šฐํ„ฐ๋ฅผ ๋‹ค์‹œ ๋ถ€ํŒ…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ์ง‘ํ•ฉ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์ง‘ํ•ฉ์„ ๋‹ค์‹œ๋กœ๋“œํ•˜์ง€ ์•Š๋„๋ก ํ™•์ธํ•˜๋Š” ๊ฒ€์‚ฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœํ•„์—์„œ ํŽธ๋ฆฌํ•œ ๋ณ„์นญ์„ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค (์˜ˆ: /opt/etc/profile ๋˜๋Š” /jffs/configs/profile.add ๋‚ด์—์„œ).

ipset v4๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ:

alias blockstats='iptables -vL | sed "2q;d"; (iptables -vL -t raw; iptables -vL) | grep -e " set"'

ipset v6๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ:

alias blockstats='iptables -vL | sed "2q;d"; (iptables -vL -t raw; iptables -vL) | grep "match-set"; ip6tables -vL | grep "match-set"'

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ 'blockstats'๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋ธ”๋ก ๋ชฉ๋ก์˜ ์„ฑ๋Šฅ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์ฐจ๋‹จ๋œ ๋ฐ์ดํ„ฐ ํŒจํ‚ท ์ˆ˜ ๋ฐ ๋ฐ”์ดํŠธ ์ˆ˜ ํ™•์ธ).

์›น UI ๋˜๋Š” ๋ผ์šฐํ„ฐ๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ฐ ์˜ํ–ฅ์„ ์ฃผ๋Š” ๋ชจ๋“  ์ž‘์—… (๋ผ์šฐํ„ฐ์˜ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ๋‹ค์‹œ๋กœ๋“œํ•˜๋Š”)์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค /jffs/scripts/firewall-start๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ”๊นฅ์ชฝ์—์„œ ์ •์˜๋œ iptables ๊ทœ์น™์ด ์ง€์›Œ์ง‘๋‹ˆ๋‹ค. ์ด ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ •์˜ํ•œ ๋Œ€๋กœ ๊ทœ์น™์„ ๋‹ค์‹œ ์ ์šฉํ•˜๋ ค๋ฉด ์Šคํฌ๋ฆฝํŠธ์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: /jffs/scripts/firewall-reinstate.sh):

#!/bin/sh# ์ด๋ฏธ ์ƒ์„ฑ๋œ ๊ฒฝ์šฐ ipset ๊ทœ์น™์„ ๋‹ค์‹œ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
[ "$(uname -m)" = "mips" ] && MATCH_SET='--set' || MATCH_SET='--match-set'
for ipSet in $(ipset -L | sed -n '/^Name:/s/^.* //p'); do
  case $ipSet in
    AcceptList) iptables-save | grep -q "$ipSet" || iptables -I INPUT -m set $MATCH_SET $ipSet src -j ACCEPT;;
    WhitelistDomains) iptables-save | grep -q "$ipSet" || iptables -t raw -I PREROUTING -m set $MATCH_SET $ipSet src,dst -j ACCEPT;;
    TorNodes|BlockedCountries|CustomBlock) iptables-save | grep -q "$ipSet" || iptables -I INPUT -m set $MATCH_SET $ipSet src -j DROP;;
    MicrosoftSpyServers) iptables-save | grep -q "$ipSet" || iptables -I FORWARD -m set $MATCH_SET $ipSet dst -j DROP;;
    YAMalwareBlock*) iptables-save | grep -q "$ipSet" || iptables -t raw -I PREROUTING -m set $MATCH_SET $ipSet src -j DROP;;
    *) iptables-save | grep -q "$ipSet" || iptables -t raw -I PREROUTING -m set $MATCH_SET $ipSet src,dst -j DROP;;
  esac
done

๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ธฐ์กด์˜ /jffs/scripts/firewall-start์—์„œ ๋‹ค์Œ์„ ํ˜ธ์ถœํ•˜์„ธ์š”:

sh /jffs/scripts/firewall-reinstate.sh

์ด ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ์ง€์›์€ SnBForums์˜ ์ด ํฌ๋Ÿผ ์Šค๋ ˆ๋“œ์—์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.# iblocklist-loader

์„ค๋ช…: ์ด๊ฒƒ์€ ๋‹ค๋ชฉ์  ์ฐจ๋‹จ ์Šคํฌ๋ฆฝํŠธ๋กœ, ์ด์ „ Peerguardian ์Šคํฌ๋ฆฝํŠธ์˜ ๋Œ€์ฒด๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ํ•ด์ปค, ์ŠคํŒŒ์ด๋”, ๋ณด๊ณค IP, ๋‹ค์–‘ํ•œ ๊ธฐ๊ด€ ๋ฐ ISP ๋“ฑ์„ ์ฐจ๋‹จํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Tor ๋ฐ ํ”„๋ก์‹œ๋„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์—‡์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ „์ฒด ๋ชฉ๋ก์€ iblocklist ์‚ฌ์ดํŠธ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์‚ฌ์ดํŠธ์—์„œ ๋ฌด๋ฃŒ ๋ชฉ๋ก ๋ฐ ์„ค๋ช…์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๋ชฉ๋ก ์ด๋ฆ„์„ ํด๋ฆญ).

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” iblocklist ์‚ฌ์ดํŠธ์—์„œ ์••์ถ•๋œ IP ๋ฒ”์œ„ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ipset 6.x์šฉ์œผ๋กœ ๋‹จ์ผ IP ์„ธํŠธ ๋ฐ CIDR ์„ธํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ ipset 4.x์šฉ์œผ๋กœ iptreemap์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ—ˆ์šฉ ๋˜๋Š” ์ฐจ๋‹จํ•˜๋ ค๋Š” ๋„๋ฉ”์ธ์„ ๋ช…์‹œ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ WhitelistDomains ๋ฐ BlacklistDomains ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ์Šคํฌ๋ฆฝํŠธ ์„ค์น˜ ์ง€์นจ์„ ๋”ฐ๋ฅด์„ธ์š”:

  • JFFS๋ฅผ ๋จผ์ € WEB UI๋ฅผ ํ†ตํ•ด ํ™œ์„ฑํ™” ๋ฐ ํฌ๋งทํŒ…ํ•˜์„ธ์š” (์ด๋ฏธ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ)

  • ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ๋‚ด์šฉ์„ /jffs/scripts/iblocklist-loader.sh์— ๋ฐฐ์น˜ํ•˜์„ธ์š”.

์ฐจ๋‹จํ•  ์†Œ์Šค๋ฅผ ๊ฒฐ์ •ํ•œ ํ›„, ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹จ๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ƒ๋‹จ ์„น์…˜์— ์žˆ๋Š” ๋ชฉ๋ก์„ ์‹๋ณ„ํ•˜๊ณ  List ๋‹ค์Œ์˜ ์ˆซ์ž (๋‹จ์–ด List ๋’ค์— ์˜ค๋Š” ์ˆซ์ž)๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์„ ํƒํ•œ ์ธ๋ฑ์Šค๋ฅผ BLOCKLIST_INDEXES= ๋ผ์ธ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ์„ธ์š”:
chmod +x /jffs/scripts/iblocklist-loader.sh
  • ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ธฐ์กด์˜ /jffs/scripts/services-start ๋˜๋Š” /jffs/scripts/post-mount์˜ ๋์—์„œ ๋‹ค์Œ์„ ํ˜ธ์ถœํ•˜์„ธ์š”:# ipset ํ•„ํ„ฐ ๊ทœ์น™ ๋กœ๋“œ sh /jffs/scripts/iblocklist-loader.sh

์Šคํฌ๋ฆฝํŠธ ๋‚ด์—์„œ ์ž์ฒด ๋ฌธ์„œํ™”๋œ ๋‹ค๋ฅธ ์„ค์ •์ด ์žˆ์œผ๋ฉฐ, ์ด ์„ค์ •์€ ์ž๋ช…ํ•œ ๊ฒƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์งˆ๋ฌธ์ด๋‚˜ ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ [SNBForums](https://www.snbforums.com/threads/iblocklist-com-generic-ipset-loader-for-ipset-v6-and-v4.37976/)์˜ [ํฌ๋Ÿผ ์Šค๋ ˆ๋“œ](https://www.snbforums.com/threads/iblocklist-com-generic-ipset-loader-for-ipset-v6-and-v4.37976/)์—์„œ ์งˆ๋ฌธํ•ด์ฃผ์„ธ์š”.