diff --git a/ChangeLog b/ChangeLog index edf4591c..b412c0f3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -54,6 +54,8 @@ ver. 0.8.12 (2013/12/XX) - things-can-only-get-better - filter.d/nsd.conf -- also amended Unix date template to match nsd format - Added filter.d/openwebmail filter thanks Ivo Truxa. Closes gh-543 - Added filter.d/horde + - Added filter for freeswitch. Thanks Jim and editors and authors of + http://wiki.freeswitch.org/wiki/Fail2ban - Enhancements: - loglines now also report "[PID]" after the name portion diff --git a/config/filter.d/freeswitch.conf b/config/filter.d/freeswitch.conf new file mode 100644 index 00000000..70a1b810 --- /dev/null +++ b/config/filter.d/freeswitch.conf @@ -0,0 +1,21 @@ +# Fail2Ban configuration file +# +# In freeswitch configuration: +# +# In the fail2ban jail.local file for this filter set ignoreip to the internal +# IP addresses on your LAN. +# + +[Definition] + +failregex = ^\.\d+ \[WARNING\] sofia_reg\.c:\d+ SIP auth (failure|challenge) \((REGISTER|INVITE)\) on sofia profile \'[^']+\' for \[.*\] from ip $ + ^\.\d+ \[WARNING\] sofia_reg\.c:\d+ Can't find user \[\d+@\d+\.\d+\.\d+\.\d+\] from $ + +ignoreregex = + +# Author: Rupa SChomaker, soapee01, Daniel Black +# http://wiki.freeswitch.org/wiki/Fail2ban +# Thanks to Jim on mailing list of samples and guidance +# +# No need to match the following. Its a duplicate of the SIP auth regex. +# ^\.\d+ \[DEBUG\] sofia\.c:\d+ IP Rejected by acl "\S+"\. Falling back to Digest auth\.$ diff --git a/config/jail.conf b/config/jail.conf index e9441416..1d58edbe 100644 --- a/config/jail.conf +++ b/config/jail.conf @@ -382,6 +382,17 @@ action = iptables-multiport[name=asterisk-tcp, port="5060,5061", protocol=tcp] logpath = /var/log/asterisk/messages maxretry = 10 + +[freeswitch] + +enabled = false +filter = freeswitch +logpath = /var/log/freeswitch.log +maxretry = 10 +action = iptables-multiport[name=freeswitch-tcp, port="5060,5061,5080,5081", protocol=tcp] + iptables-multiport[name=freeswitch-udp, port="5060,5061,5080,5081", protocol=udp] + + # Historical support (before https://github.com/fail2ban/fail2ban/issues/37 was fixed ) # use [asterisk] for new jails [asterisk-tcp] diff --git a/testcases/files/logs/freeswitch b/testcases/files/logs/freeswitch new file mode 100644 index 00000000..f151995c --- /dev/null +++ b/testcases/files/logs/freeswitch @@ -0,0 +1,11 @@ +# failJSON: { "time": "2013-12-31T17:39:54", "match": true, "host": "81.94.202.251" } +2013-12-31 17:39:54.767815 [WARNING] sofia_reg.c:1533 SIP auth challenge (INVITE) on sofia profile 'internal' for [011448708752617@192.168.2.51] from ip 81.94.202.251 +# failJSON: { "time": "2013-12-31T17:39:54", "match": true, "host": "5.11.47.236" } +2013-12-31 17:39:54.767815 [WARNING] sofia_reg.c:1478 SIP auth failure (INVITE) on sofia profile 'internal' for [000972543480510@192.168.2.51] from ip 5.11.47.236 +# failJSON: { "time": "2013-12-31T17:39:54", "match": false } +2013-12-31 17:39:54.767815 [DEBUG] sofia.c:7954 IP 185.24.234.141 Rejected by acl "domains". Falling back to Digest auth. + +# failJSON: { "time": "2013-12-31T17:39:54", "match": true, "host": "5.11.47.236" } +2013-12-31 17:39:54.767815 [WARNING] sofia_reg.c:2531 Can't find user [1001@192.168.2.51] from 5.11.47.236 +# failJSON: { "time": "2013-12-31T17:39:54", "match": true, "host": "185.24.234.141" } +2013-12-31 17:39:54.767815 [WARNING] sofia_reg.c:2531 Can't find user [100@192.168.2.51] from 185.24.234.141