Вопросы
1
Записи
1
Пользователи
0
Reactions
2,647
Просмотры
0
15.09.2020 10:51
Создатель темы
Если asterisk открыт для доступа из инетрнета, его постоянно спамят запросами на подбор пароля. В логах это отражается подобными записями:
[2020-09-15 00:08:17] WARNING[49991] chan_sip.c: Timeout on 1195226067-1021043688-1569712822 on non-critical invite transaction.
[2020-09-15 00:08:30] WARNING[49991] chan_sip.c: Timeout on 109286858-279743962-108117291 on non-critical invite transaction.
[2020-09-15 00:08:52] WARNING[49991] chan_sip.c: Timeout on 279955036-536809874-1187128291 on non-critical invite transaction.
Если непосредственно неудачные попытки авторизации отражаются в логах и успешно банятся, то простые invite запросы в логах не видны. Посмотреть их можно так:
# rasterisk -rx "sip show channels" | grep INVITE
Иногда их бывает очень много и это нагружает сервер. Как с ними бороться?
Тема была редактированна 4 года назад от Zerox
1 Ответ
0
15.09.2020 10:54
Создатель темы
Самый простой способ в лоб. Проверяем ip адреса с количеством ivite запросов больше трех:
# rasterisk -rx "sip show channels" | grep INVITE | awk '{print $1}' | sort -n | uniq -c | sort -n | awk '{if ($1 > 3 ) print $2}'
Если команда вывела только список ip адресов, значит все в порядке. Делаем простой скрипт для автоматического блока этих ip с помощью fail2ban.
#!/bin/bash ips=`rasterisk -rx "sip show channels" | grep INVITE | awk '{print $1}' | sort -n | uniq -c | sort -n | awk '{if ($1 > 2 ) print $2}'` if [[ -z $ips ]]; then echo "pusto" else for i in $ips do fail2ban-client -vvv set asterisk banip $i done fi
Добавляем этот скурипт в cron на исполнение каждую минуту.