Вопросы
        
    
    
                    
                        
                        1                    
            Записи
        
        
                    
                        
                        1                    
            Пользователи
        
        
                    
                        
                        0                    
            Reactions
        
        
                    
                        
                        3,071                    
            Просмотры
        
        
                                        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
Иногда их бывает очень много и это нагружает сервер. Как с ними бороться?
Тема была редактированна 5 лет назад от 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 на исполнение каждую минуту.
Server Admin Авторский блог системного администратора