631c49275aa69dae4c945189f934c820aeaac59b
10 if [ $# -eq 1 -a "x$1" = "xremove" ]
12 $IPTABLES -D INPUT
-m set --match-set "${set_name}" src
-j "${chain}" || echo "no rule '${set_name}' to remove"
13 $IP6TABLES -D INPUT
-m set --match-set "${set_name}6" src
-j "${chain}" || echo "no rule '${set_name}6' to remove"
14 $IPSET destroy
"${set_name}" || echo "no set '${set_name}' to remove"
15 $IPSET destroy
"${set_name}6" || echo "no set '${set_name}6' to remove"
19 create_set
"${set_name}" hash:net
20 create_set
"${set_name}6" hash:net family inet6
22 # create or re-init chains
23 if ! $IPTABLES -L "${chain}" >/dev
/null
25 echo "initializing chain '${chain}'"
26 $IPTABLES -N "${chain}" || $IPTABLES -F "${chain}"
27 $IPTABLES -A "${chain}" -m conntrack
--ctstate ESTABLISHED
,RELATED
-j RETURN
28 $IPTABLES -A "${chain}" -j REJECT
--reject-with icmp
-port-unreachable
29 $IPTABLES -v -L "${chain}"
32 if ! $IP6TABLES -L "${chain}" >/dev
/null
34 echo "initializing chain '${chain}' ipv6"
35 $IP6TABLES -N "${chain}" || $IP6TABLES -F "${chain}"
36 $IP6TABLES -A "${chain}" -m conntrack
--ctstate ESTABLISHED
,RELATED
-j RETURN
37 $IP6TABLES -A "${chain}" -j REJECT
--reject-with icmp6
-port-unreachable
38 $IP6TABLES -v -L "${chain}"
41 if ! $IPTABLES -C INPUT
-m set --match-set "${set_name}" src
-j "${chain}" >/dev
/null
2>&1
43 echo "initializing rule '${set_name}'"
44 $IPTABLES -I INPUT
-m set --match-set "${set_name}" src
-j "${chain}"
47 if ! $IP6TABLES -C INPUT
-m set --match-set "${set_name}6" src
-j "${chain}" >/dev
/null
2>&1
49 echo "initializing rule '${set_name}6'"
50 $IP6TABLES -I INPUT
-m set --match-set "${set_name}6" src
-j "${chain}"
53 # init new temporary set
54 if [ -e "${set_name}.cidr" ]
56 echo "updating set '${set_name}'"
57 $IPSET create
"${set_name}-tmp" hash:net
58 for s
in $(decommentcat "${set_name}.cidr" | grep '\.')
60 $IPSET add
"${set_name}-tmp" "${s}"
62 $IPSET swap
"${set_name}-tmp" "${set_name}"
63 $IPSET destroy
"${set_name}-tmp"
64 $IPSET list
-t "${set_name}"
66 echo "updating set '${set_name}'"
67 $IPSET create
"${set_name}6-tmp" hash:net family inet6
68 for s
in $(decommentcat "${set_name}.cidr" | grep '\:')
70 $IPSET add
"${set_name}6-tmp" "${s}"
72 $IPSET swap
"${set_name}6-tmp" "${set_name}6"
73 $IPSET destroy
"${set_name}6-tmp"
74 $IPSET list
-t "${set_name}6"