diff --git a/ChangeLog b/ChangeLog index ebe98d76..a36a010d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -44,6 +44,9 @@ ver. 0.8.11 (2013/XX/XXX) - loves-unittests avoiding problems with getpid. Also $network and iptables moved to Should- rc init fields - New Features: + Andy Fragen and Daniel Black + * filter.d/osx-ipfw.conf - ipfw action for OSX based on random rule + numbers. Daniel Black & ykimon * filter.d/3proxy.conf -- filter added Daniel Black diff --git a/THANKS b/THANKS index e57fdab6..2da6614f 100644 --- a/THANKS +++ b/THANKS @@ -7,6 +7,7 @@ will be added Adrien Clerc ache Andrey G. Grozin +Andy Fragen Arturo 'Buanzo' Busleiman Axel Thimm Bill Heaton diff --git a/config/action.d/osx-ipfw.conf b/config/action.d/osx-ipfw.conf new file mode 100644 index 00000000..8423f003 --- /dev/null +++ b/config/action.d/osx-ipfw.conf @@ -0,0 +1,87 @@ +# Fail2Ban configuration file +# +# Author: Nick Munger +# Modified by: Andy Fragen and Daniel Black +# +# Mod for OS X, using random rulenum as OSX ipfw doesn't include tables +# + +[Definition] + +# Option: actionstart +# Notes.: command executed once at the start of Fail2Ban. +# Values: CMD +# +actionstart = + + +# Option: actionstop +# Notes.: command executed once at the end of Fail2Ban +# Values: CMD +# +actionstop = + + +# Option: actioncheck +# Notes.: command executed once before each actionban command +# Values: CMD +# +actioncheck = + + +# Option: actionban +# Notes.: command executed when banning an IP. Take care that the +# command is executed with Fail2Ban user rights. +# Tags: IP address +# Values: CMD +# +actionban = ipfw add set log from to + + +# Option: actionunban +# Notes.: command executed when unbanning an IP. Take care that the +# command is executed with Fail2Ban user rights. +# Tags: IP address +# Values: CMD +# +actionunban = ipfw delete `ipfw -S list | grep -i 'set log from to ' | awk '{print $1;}'` + +[Init] + +# Option: port +# Notes.: specifies port to block. Can be blank however may require block="ip" +# Values: [ NUM | STRING ] +# +port = ssh + +# Option: dst +# Notes.: the local IP address of the network interface +# Values: IP, any, me or anything support by ipfw as a dst +# +dst = me + +# Option: block +# Notes: This is how much to block. +# Can be "ip", "tcp", "udp" or various other options. +# Values: STRING +block = tcp + +# Option: blocktype +# Notes.: How to block the traffic. Use a action from man 8 ipfw +# Common values: deny, unreach port, reset +# Values: STRING +# +blocktype = unreach port + +# Option: set number +# Notes.: The ipset number this is added to. +# Values: 0-31 +setnum = 10 + +# Option: number for ipfw rule +# Notes: This is meant to be automaticly generated and not overwritten +# Values: Random value between 10000 and 12000 +rulenum="`echo $((RANDOM%%2000+10000))`" + +# Duplicate prevention mechanism +#rulenum = "`a=$((RANDOM%%2000+10000)); while ipfw show | grep -q ^$a\ ; do a=$((RANDOM%%2000+10000)); done; echo $a`" diff --git a/config/jail.conf b/config/jail.conf index 86c61911..7f1e40b5 100644 --- a/config/jail.conf +++ b/config/jail.conf @@ -416,3 +416,8 @@ filter = perdition action = iptables-multiport[name=perdition,port="110,143,993,995"] logpath = /var/log/maillog +[osx-ssh-ipfw] +enabled = false +filter = sshd +action = osx-ipfw +logpath = /var/log/secure.log