Utoljára aktív 1 month ago

nuno gist felülvizsgálása 1 month ago. Revízióhoz ugrás

1 file changed, 54 insertions

gistfile1.txt(fájl létrehozva)

@@ -0,0 +1,54 @@
1 + function cmd::fw::list() {
2 + local peer="" type=""
3 + local show_nflog=true show_accept=true show_drop=true
4 +
5 + while [[ $# -gt 0 ]]; do
6 + case "$1" in
7 + --peer) peer="$2"; shift 2 ;;
8 + --type) type="$2"; shift 2 ;;
9 + --no-nflog) show_nflog=false; shift ;;
10 + --no-accept) show_accept=false; shift ;;
11 + --no-drop) show_drop=false; shift ;;
12 + *) shift ;;
13 + esac
14 + done
15 +
16 + log::section "Firewall Rules (FORWARD)"
17 + printf "\n"
18 +
19 + if [[ -n "$peer" ]]; then
20 + local ip
21 + ip=$(peers::get_ip "$peer")
22 + [[ -z "$ip" ]] && log::error "Peer not found: $peer" && return 1
23 + iptables -L FORWARD -n -v | grep -F "$ip" | while IFS= read -r rule; do
24 + [[ -z "$rule" ]] && continue
25 + ! $show_nflog && [[ "$rule" =~ NFLOG ]] && continue
26 + ! $show_accept && [[ "$rule" =~ ACCEPT ]] && continue
27 + ! $show_drop && [[ "$rule" =~ DROP ]] && continue
28 + ui::firewall_rule "$rule"
29 + done
30 + elif [[ -n "$type" ]]; then
31 + local subnet
32 + subnet=$(config::subnet_for "$type")
33 + [[ -z "$subnet" ]] && log::error "Unknown type: $type" && return 1
34 + iptables -L FORWARD -n -v | grep -F "$subnet" | while IFS= read -r rule; do
35 + [[ -z "$rule" ]] && continue
36 + ! $show_nflog && [[ "$rule" =~ NFLOG ]] && continue
37 + ! $show_accept && [[ "$rule" =~ ACCEPT ]] && continue
38 + ! $show_drop && [[ "$rule" =~ DROP ]] && continue
39 + ui::firewall_rule "$rule"
40 + done
41 + else
42 + iptables -L FORWARD -n -v \
43 + | grep -v "^Chain\|^target\|^$\|ACCEPT.*0\.0\.0\.0.*0\.0\.0\.0" \
44 + | while IFS= read -r rule; do
45 + [[ -z "$rule" ]] && continue
46 + ! $show_nflog && [[ "$rule" =~ NFLOG ]] && continue
47 + ! $show_accept && [[ "$rule" =~ ACCEPT ]] && continue
48 + ! $show_drop && [[ "$rule" =~ DROP ]] && continue
49 + ui::firewall_rule "$rule"
50 + done
51 + fi
52 +
53 + printf "\n"
54 + }
Újabb Régebbi