version 1.317, 2008/06/15 04:49:34 |
version 1.318, 2008/07/09 20:23:47 |
|
|
fi |
fi |
} |
} |
|
|
|
fill_baddynamic() |
|
{ |
|
local _service="$1" |
|
local _sysctl="net.inet.${_service}.baddynamic" |
|
local _name _port _srv _junk _ban |
|
local _i=0 |
|
grep "/${_service}" /etc/services | { |
|
IFS=" /" |
|
while read _name _port _srv _junk; do |
|
[ "x${_srv}" = "x${_service}" ] || continue; |
|
if [ "x${_ban}" = "x" ]; then |
|
_ban="+${_port}" |
|
else |
|
_ban="${_ban},+${_port}" |
|
fi |
|
# Flush before argv gets too long |
|
if [ $((++_i)) -gt 128 ]; then |
|
sysctl ${_sysctl}=${_ban} >/dev/null |
|
_ban="" |
|
_i=0 |
|
fi |
|
done; |
|
if [ "x${_ban}" != "x" ]; then |
|
sysctl ${_sysctl}=${_ban} >/dev/null |
|
fi |
|
} |
|
} |
|
|
# End subroutines |
# End subroutines |
|
|
stty status '^T' |
stty status '^T' |
|
|
echo $RULES | pfctl -f - |
echo $RULES | pfctl -f - |
pfctl -e |
pfctl -e |
fi |
fi |
|
|
|
# Fill net.inet.(tcp|udp).baddynamic lists from /etc/services |
|
fill_baddynamic udp |
|
fill_baddynamic tcp |
|
|
sysctl_conf |
sysctl_conf |
|
|