Asterisk: Registration from peer failed - Wrong password (chan_sip)
- В журнале Asterisk фиксируется
NOTICE chan_sip.c: Registration from peer '101' failed for '192.168.1.55:5060' - Wrong password. - IP-телефон или софтфон не может зарегистрироваться и выдает ошибку
403 Forbiddenили401 Unauthorized. - IP-адрес рабочего места сотрудника блокируется демоном
fail2ban. - Многократные попытки регистрации вызывают рост нагрузки на процесс Asterisk.
1. Принцип Digest-аутентификации SIP
При регистрации клиент шлет запрос REGISTER без данных авторизации. Сервер отвечает статусом 401 Unauthorized, содержащим заголовок WWW-Authenticate со случайным значением nonce. Клиент вычисляет MD5/SHA-256 хеш от логина, пароля, realm и nonce и отправляет повторный REGISTER с заголовком Authorization. Если хеш не совпал, фиксируется событие Wrong password.
2. Анализ журнала событий в режиме реального времени
asterisk -rvvv
module reload chan_sip.soПроверьте детальные параметры учетной записи:
asterisk -rx "sip show peer 101"3. Типовые причины расхождения паролей:
- Спецсимволы в пароле: символы
#,;,"вsip.confвоспринимаются парсером Asterisk как начало комментария. Заключайте пароли в кавычки или используйте base64-символы. - Несовпадение Auth User и Extension: логин для авторизации (authentication user / defaultuser) отличается от номера добавочного.
- Кэширование старого пароля: телефон не применил новый конфиг автопровижининга.
4. Корректная настройка `/etc/asterisk/sip.conf`
[101]
type=friend
defaultuser=101
secret=V3ry$ecureP@ssw0rd! ; Избегайте символов # и ;
host=dynamic
context=from-internal
qualify=yes
authfailureevents=yes ; Генерация событий AMI для Fail2ban5. Разблокировка IP в Fail2ban
fail2ban-client status asterisk
fail2ban-client set asterisk unbanip 192.168.1.55 Частые вопросы (FAQ)
Почему Asterisk пишет Wrong Password, хотя пароль в телефоне скопирован в точности?
Проверьте параметр 'Realm' в sip.conf и на телефоне. Если realm сервера отличается от домена, указанного в настройках аккаунта телефона, хеш-сумма Digest-авторизации будет неверной.
Как посмотреть текущий пароль пира прямо из консоли?
Выполните команду asterisk -rx "sip show peer <номер>" и найдите строку Secret.
Что делать, если происходят миллионы попыток подбора паролей с внешних IP?
Смените внешний SIP порт с 5060 на нестандартный (например, 5160), включите alwaysauthreject=yes в sip.conf и настройте правила fail2ban/iptables.
Зачем нужен параметр alwaysauthreject=yes?
Он заставляет Asterisk отвечать одинаковым кодом 401/403 как на неверный пароль, так и на несуществующее имя пользователя, не позволяя злоумышленникам сканировать список номеров компании.