Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Решил приделать автоматическую банилку левых звонков

0

Гостей запрещать не хочу, поэтому озаботился банилкой. Раньше банил только за сип флуд (по количеству пакетов в минуту), но решил добраться и до остальных.

Дефолтный контекст для SIP - from-external, звонки на "правильный" did идут дальше, а остальные банить! :)
И, конечно же, звонки через транки не должны попадать в этот контекст!

[from-external]
exten => 1111111,1,Goto(ext-did,1111111,1)
exten => _X.,1,Ringing
exten => _X.,n,System(/var/lib/asterisk/bin/sipban.sh ${CHANNEL} ${EXTEN})
exten => _X.,n,Wait(900)
exten => _X.,n,Hangup

Ringing и Wait(900) для удобства отладки. Для работы ringing можно убрать и сделать Wait(10). ${EXTEN} передается просто для инфы, он в логе присутствовать будет.

скрипт /var/lib/asterisk/sipban.sh

channels=`asterisk -rx "sip show channels"|awk '/Rx: INVITE/&&/<guest>/'`
oldIFS=$IFS
IFS=$'\n'
for line in $channels
do
peer=`echo $line|awk -F' ' '{print($1)}'`
chan_id=`echo $line|awk -F' ' '{print($3)}'`
chan=`asterisk -rx "sip show channel $chan_id"|grep 'Owner channel ID'|awk '{print($4)}'`
if [[ "$chan" == "$1" ]]
then
  logger -t sipguest "peer:$peer channel:$chan extension:$2"
  break
fi
done
IFS=$oldIFS

Если при выводе каналов "sip show peers" в конце не выдается локальный пир, то нужно заменить в первой строке на аsterisk -rx "sip show channels"|grep 'Rx: INVITE'

Скрипт кидает в /var/log/messages строку

Sep 28 12:55:42 hostname sipguest: peer:192.187.115.66 channel:SIP/xx.xx.xx.xx-000000c0 extension:00441904891101

А дальше пусть с этим fail2ban разбирается.
Строка разбора для fail2ban:

.* sipguest: peer:<host> channel:SIP.* extension:.*
удалить закрыть спам изменить тег редактировать

спросил 2013-09-28 13:56:48 +0400

borispr Gravatar borispr
281 2 5

обновил 2013-09-28 14:03:39 +0400

Comments

а если клиент за натом? всю организацию забанит из-за одного? все эти банилки - от лукавого из-за возможность false positive...

octopas ( 2013-09-28 16:18:16 +0400 )редактировать

даже если астериск за натом, то пакеты все равно приходят с внешних адресов это во-первых, во-вторых ничто не мешает в fail2ban прописать исключения адресов

borispr ( 2013-09-28 16:58:36 +0400 )редактировать

2 Ответа

1
exten =_X.,1,System(/usr/sbin/fail2ban-client  set fail2ban-sip banip ${CHANNEL(peerip)})

и не недо все ваши заморочки

ссылка удалить спам редактировать

ответил 2013-09-28 15:23:28 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

О! ${CHANNEL(peerip)} искал, но не нашел переменную, поэтому пришлось так хитро получать peerip. Насчет добавления через fial2ban-client я думал, но решил, что хочу традиционным способом, чтоб в общем логе было и мыло чтоб прислал

borispr ( 2013-09-28 15:53:34 +0400 )редактировать

кстати, в 1.4 ${CHANNEL(peerip)} не работает

borispr ( 2013-09-28 16:59:06 +0400 )редактировать

открою вам секрет. а астериск встроенный хелп. вызываетая вот так asterisk -rx "core show function CHANNEL" или core show application MEETME

meral ( 2013-09-28 17:25:47 +0400 )редактировать
0

Строки:

# friendly-scanner
-I INPUT -p udp --dport 5060 -m string --string "friendly-scanner" --algo bm -j REJECT --reject-with icmp-host-unreachable
# sipvicious
-I INPUT -p udp --dport 5060 -m string --string "sipvicious" --algo bm -j REJECT --reject-with icmp-host-unreachable
# sipcli
-I INPUT -p udp --dport 5060 -m string --string "sipcli/" --algo bm -j REJECT --reject-with icmp-host-unreachable

избавят от большинства юных хакеров, а не юных Вы своими методами не остановите.

ссылка удалить спам редактировать

ответил 2013-10-23 03:44:53 +0400

tma Gravatar tma
570 2 5
http://telecomtechnology....

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
2 закладки

подписаться на rss ленту новостей

Статистика

Задан: 2013-09-28 13:56:48 +0400

Просмотрен: 3,430 раз

Обновлен: Oct 23 '13

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.