Asterisk: manager.c AMI Authentication failed for user from IP
- Ошибка в системном логе Asterisk:
ERROR: manager.c: AMI Authentication failed for user 'admin' from 192.168.1.50. - Интеграции с CRM, панелями оператора (FOP2, QueueMetrics) или СКУД перестают получать события и управлять вызовами.
- TCP-соединение на порт 5038 мгновенно разрывается сервером после отправки Action: Login.
- Блокировка IP-адресов интеграционных сервисов подсистемой Fail2ban.
1. Проверка конфигурации доступа в /etc/asterisk/manager.conf
Убедитесь, что сервис включен и сетевые фильтры permit/deny настроены верно:
[general]
enabled = yes
webenabled = no
port = 5038
bindaddr = 0.0.0.0
[crm_user]
secret = Complex_Secure_Password_123!
; Использование списков доступа с маской подсети
deny = 0.0.0.0/0.0.0.0
permit = 127.0.0.1/255.255.255.255
permit = 192.168.1.50/255.255.255.255
read = system,call,log,verbose,command,agent,user,config
write = system,call,log,verbose,command,agent,user,config2. Перезагрузка модуля AMI без остановки Asterisk
asterisk -rx "manager reload"3. Ручная проверка подключения через Telnet/Netcat
Проверьте корректность ответа сервиса:
telnet 127.0.0.1 5038
# Вставьте следующий блок команд и нажмите дважды Enter:
Action: Login
Username: crm_user
Secret: Complex_Secure_Password_123!
ActionID: 1
Успешный ответ:
Response: Success
ActionID: 1
Message: Authentication accepted4. Проверка и разблокировка в Fail2ban
fail2ban-client status asterisk
fail2ban-client set asterisk unbanip 192.168.1.50 Частые вопросы (FAQ)
Почему AMI выдает ошибку авторизации при правильном пароле?
Служба проверяет IP-адрес клиента по директивам permit/deny. Если IP-адрес не попадает в permit, Asterisk возвращает общую ошибку Authentication failed, даже если секрет указан верно.
Как использовать хэшированные пароли в manager.conf?
Вместо открытого secret укажите md5secret = <MD5_HASH>, где хеш вычисляется как md5(username:secret).
Как ограничить права AMI учетной записи?
Используйте разделение директив read и write по категориям (system, call, log, verbose, command, agent, user, config, originate, reporting) в секции пользователя.
Как проверить список текущих активных сессий AMI?
Выполните в Asterisk CLI команду: manager show connected.