diff options
author | lidl <lidl@FreeBSD.org> | 2016-06-09 15:19:48 +0000 |
---|---|---|
committer | lidl <lidl@FreeBSD.org> | 2016-06-09 15:19:48 +0000 |
commit | 291bef911fb6a47068b4032bc935fe5b42160816 (patch) | |
tree | f6f584d00236fae95c06f9fd2f2d038976b2c192 | |
parent | 8406a5cd60d83b0d5694f6ed711172431bd6b242 (diff) | |
download | FreeBSD-src-291bef911fb6a47068b4032bc935fe5b42160816.zip FreeBSD-src-291bef911fb6a47068b4032bc935fe5b42160816.tar.gz |
Add IPFW support to blacklistd-helper
Relnotes: YES
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D6753
-rw-r--r-- | contrib/blacklist/libexec/blacklistd-helper | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/contrib/blacklist/libexec/blacklistd-helper b/contrib/blacklist/libexec/blacklistd-helper index 743ccf5..befa4ae 100644 --- a/contrib/blacklist/libexec/blacklistd-helper +++ b/contrib/blacklist/libexec/blacklistd-helper @@ -16,6 +16,11 @@ for f in npf pf; do break fi done +if [ -f "/etc/ipfw-blacklist.rc" ]; then + pf="ipfw" + . /etc/ipfw-blacklist.rc + ipfw_offset=${ipfw_offset:-2000} +fi if [ -z "$pf" ]; then echo "$0: Unsupported packet filter" 1>&2 @@ -43,6 +48,13 @@ esac case "$1" in add) case "$pf" in + ipfw) + rule=$(( $ipfw_offset + $6 )) # use $ipfw_offset+$port for rule number + tname="port$6" + /sbin/ipfw table $tname create type addr 2>/dev/null + /sbin/ipfw -q table $tname add "$addr/$mask" + /sbin/ipfw -q add $rule drop $3 from "table("$tname")" to any dst-port $6 + ;; npf) /sbin/npfctl rule "$2" add block in final $proto from \ "$addr/$mask" to any $port @@ -57,6 +69,9 @@ add) ;; rem) case "$pf" in + ipfw) + /sbin/ipfw table "port$6" delete "$addr/$mask" 2>/dev/null + ;; npf) /sbin/npfctl rule "$2" rem-id "$7" ;; @@ -67,6 +82,9 @@ rem) ;; flush) case "$pf" in + ipfw) + /sbin/ipfw table "port$6" flush 2>/dev/null + ;; npf) /sbin/npfctl rule "$2" flush ;; |