Hi Vincent,

Welcome with the first post.

Just a wild guess about your issue - the detection of what SIP domains are to be locally handled. For example, in your pastebin, like 249 you have the block for doing user authentication and authorization. And the logic there is : if the caller belongs to a local SIP domain, do auth - fine; but if the caller is not local, the call is allowed if the callee SIP domain is local. So if some foo caller is calling sip:DID@your_sip_domain, your configuration will allow the call to go further in the script (as it is targeting a local domain of yours). And later, like 354 you do diversion to PSTN, but without checking who the caller is (a local or foreign domain, which was auth'ed or not). Do you see the issue?

Fixes are:

a) on the 267 `else` branch (if the caller is not local), do all the time the 403 reply, disregarding what the called number is. So you will accept only calls from your users.

or

b) when doing the PSTN diversion at 354 line, check if the caller is a local user, to be sure PSTN calls are available only for your own users. Add `is_from_local()` to the condition there.

Best regards,

Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  https://www.opensips-solutions.com
OpenSIPS eBootcamp
  https://www.opensips.org/Training/Bootcamp

On 1/18/22 3:23 PM, Vincent Swart wrote:
First post!

So yesterday I installed the latest from Debian 10 repo and the latest cp web app using a method similar to powerpbxdotorg howto. I had 5060 open in my firewall, two user phones configured with strong passwords, and a gateway with IP auth for termination. Within 10 minutes calls were being placed via unauthenticated invites I think.

I used the residential config script with a minor beginner destination number pattern match difference:
https://pastebin.com/GPrMcWYK <https://pastebin.com/GPrMcWYK>

if ($rU=~"^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]+$") {
#if (dp_translate(10,"$rU/$rU") ) {
#strip(1);

The opensips log has a lot of this in it all the time:
Jan 17 15:56:04 dsip1 /usr/sbin/opensips[24971]: CRITICAL:db_mysql:wrapper_single_mysql_stmt_execute: driver error (1048): Column 'to_tag' cannot be null Jan 17 15:56:04 dsip1 /usr/sbin/opensips[24971]: ERROR:acc:acc_db_request: failed to insert into acc table

The illicit calls start in the log like this:
https://pastebin.com/mCNXqK7T <https://pastebin.com/mCNXqK7T>
I can post the full log but it will take some time to sanitize.

Sip call ID links in CDR viewer show this: "Sorry , sip trace for this call is unavailable." There are also only 0 durations on all legs however they incurred duration and billing on termination. I'm fairly certain the calls were not placed via the user phone accounts because of strong passwords. My next steps are to disable the gateway and packet capture on the interface to investigate illicit invites.

Where do I even start investigating how unauthenticated invites were placed and prevent it in the opensips config?
Any suggestions would be greatly appreciated.


_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to