Package: Asterisk
Version: 1.6.2.9-2+squeeze10

As mentioned on Diginum forum:
http://forums.digium.com/viewtopic.php?t=78988
http://forums.digium.com/viewtopic.php?t=77070
http://forums.asterisk.org/viewtopic.php?t=74947

Problem: Asterisk 1.6 do not log source IP address used for brute force attacks 
in some cases. Thus usage of Fail2ban or other tools is limited.

Details: When using alwaysauthreject=yes in sip.conf, then source IP of 
attacker is not logged when rejecting INVITES from not registered devices 
trying to authenticate at call beginning (only asterisk server IP itself is 
logged).

Solution: As Diginum will not solve this issue even this problem concerns a lot 
of users, I created small patch solving this it, allowing fail2ban correctly 
handling such brute force attacks.

Before patch:

[2013-04-28 19:33:01] NOTICE[32446] chan_sip.c: Sending fake auth rejection for 
device 1011<sip:1011@10.98.231.154:5060>;tag=3b82edc2

After patch:

[2013-05-04 05:10:07] NOTICE[10851] chan_sip.c: Sending fake auth rejection for 
device '303<sip:303@10.98.231.154:5060>;tag=d9210d45' to '94.23.59.135'

patch:

--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -20238,7 +20238,7 @@
                }
                if (res < 0) { /* Something failed in authentication */
                        if (res == AUTH_FAKE_AUTH) {
-                               ast_log(LOG_NOTICE, "Sending fake auth rejection for device 
%s\n", get_header(req, "From"));
+                               ast_log(LOG_NOTICE, "Sending fake auth rejection for device '%s' 
to '%s'\n", get_header(req, "From"), ast_inet_ntoa(sin->sin_addr));
                                transmit_fake_auth_response(p, SIP_INVITE, req, 
XMIT_RELIABLE);
                        } else {
                                ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", 
get_header(req, "From"));
@@ -21532,7 +21532,7 @@
                return 0;
        if (res < 0) {
                if (res == AUTH_FAKE_AUTH) {
-                       ast_log(LOG_NOTICE, "Sending fake auth rejection for device 
%s\n", get_header(req, "From"));
+                       ast_log(LOG_NOTICE, "Sending fake auth rejection for device '%s' to 
'%s'\n", get_header(req, "From"), ast_inet_ntoa(sin->sin_addr));
                        transmit_fake_auth_response(p, SIP_SUBSCRIBE, req, 
XMIT_UNRELIABLE);
                } else {
                        ast_log(LOG_NOTICE, "Failed to authenticate device %s for 
SUBSCRIBE\n", get_header(req, "From"));


I would welcome possibility to this patch be inherited in next Debian Asterisk 
package. :-)

Best Regard
Dominik Strnad


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to