fail2ban + Asterisk 1.8 баним правильно

В связи с открытием нового филиала в маленьком городе Екатеринбурге,потребовалось настроить связь с главным офисом, для этого на платформе Intel Atom были подняты сервисы: Samba4 как PDC,Squid,Asterisk. Так как это небольшая заметка, то остановимся на конкретном вопросе защиты Asterisk'a.

Из исходников был поставлен asterisk 1.8.5, который собрался без проблем. Понравилось то, что в отличии от версии 1.6, в версии 1.8 в исходники входит asterisk-addons, что немного уменьшает количество телодвижений при установке. Особых отличий в настройке для 1.8 не было замечено, конфиги (sip.conf,logger.conf,extensions.conf) из asterisk 1.6 перенеслись без проблем. Но вот на этапе защиты от перебора паролей возникли некоторые сложности!

 Для защиты от перебора использовался fail2ban. В интернете полно материалов по защите * через fail2ban. Вариант же, который ранее  использовался для 1.6 версии, не подошел, при тестировании попытки перебора не блокировались. Поэтому первым делом был задан вопрос гуглу вида: «Asterisk 1.8 fail2ban», и был найден такой вариант: http://pbxinaflash.net/source/fail2ban/asterisk18.conf,  который тоже оказался НЕРАБОЧИМ. Тогда решил вернуться к своему варианту и отлавливить ошибки.

Вариант для asterisk 1.6 был такой (авторство и комментарии удалены для краткости):

/etc/fail2ban/filter.d/asterisk.conf

# Fail2Ban configuration file

failregex = NOTICE.* .*: Registration from '.* failed for '' - Wrong password

NOTICE.* .*: Registration from '.*' failed for '' - No matching peer found

NOTICE.* .*: Registration from '.*' failed for '' - Username/auth name mismatch

NOTICE.* .*: Registration from '.*' failed for '' - Device does not match ACL

NOTICE.* failed to authenticate as '.*'$

NOTICE.* .*: No registration for peer '.*' \(from \)

NOTICE.* .*: Host failed MD5 authentication for '.*' (.*)

NOTICE.* .*: Failed to authenticate user .*@.*

Пробуем пару раз подцепить к * с неправильным паролем и сразу смотрим лог , чтобы понять, как должна правильна выглядеть строка  failregex

/var/log/asterisk/messages

[2011-08-11 10:31:32] NOTICE[994] chan_sip.c: Registration from '604' failed for '192.168.2.26:5060' - Wrong password

Для сравнения regex файла для fail2ban и messages можно запустить команду:

# fail2ban-regex /var/log/asterisk/messages /etc/fail2ban/filter.d/asterisk.conf

И в  выводе убедиться, что нет совпадений:

|- Regular expressions:| [1] NOTICE.* .*: Registration from '.* failed for '192.168.2.26:5060' - Wrong password`- Number of matches:[1] 0 match(es)

Также можно посмотреть в логах fail2ban

# tail -20 /var/log/fail2ban.log

No 'host' group in 'NOTICE.* .*: Registration from '.* failed for '192.168.2.26:5060' - Wrong password'Cannot remove regular expression. Index 0 is not valid

Если внимательно проанализировать и сравнить с выводом 1.6 версии, то видно, что добавилась запись порта, на который идет обращение от SIP клиента. Т.е. необходимо немного подкорректировать failregex, что было успешно сделано с помощью зрительно зала  chel.lug на conference.jabber.ru. В итоге файл приобрел следующий вид:

failregex = NOTICE.* .*: Registration from '.* failed for ':.*' - Wrong password

NOTICE.* .*: Registration from '.*' failed for ':.*' - No matching peer found

NOTICE.* .*: Registration from '.*' failed for ':.*' - Username/auth name mismatch

NOTICE.* .*: Registration from '.*' failed for ':.*' - Device does not match ACL

NOTICE.* failed to authenticate as '.*'$

NOTICE.* .*: No registration for peer '.*' \(from \)

NOTICE.* .*: Host failed MD5 authentication for '.*' (.*)

NOTICE.* .*: Failed to authenticate user .*@.*

Как видно, послепоявилась возможность парсить любой порт. Решение успешно прошло тест на попытку перебора, добавив злоумышленника в бан лист iptables.

П.C. маленький бонус как снять бан, пример для ssh # iptables -D fail2ban-ssh 1

You should also read:

ASTERISKNOW меняем стандартные пароли

Смена стандартных паролей

После установки сервера, обновляемся и начинаем настраивать нашу программную-АТС.

Нам необходимо сменить стандартный пароль

[admin@asteriamroot]# mysql -u freepbx -p

Вводим стандартный пароль: fpbx

Настройка AsteriskNow после установки (Eng)

Well after much researching I have complied a procedure to help people install AsteiskNow from scratch. Hope this helps.

Install AsteriskNOW 1.5.0 from CD.

After installation first boot will prompt with Setup-Agent to enter IP address, subnet mask, and gateway.

# vi /etc/resolv.conf

(add DNS servers ex. Nameserver 192.168.1.2)

# /etc/init.d/network restart

# yum update

(reply ’y’ when prompted.)

AsteriskNOW-2.0.2 не работает CDR из коробки

Докопал, Сделал, Заработало!

И так РЕЗЮМИРУЕМ:

При установке AsteriskNow не ставиться дополнительный модуль, который пишет статистику звонков.

Проверяем командой:

[root@localhost ~]# asterisk -r

localhost*CLI> module show like mysql

если пишет что-то типа:

Module Description Use Count

0 modules loaded

Запись разговоров на Asterisk

Записывать телефонные разговоры очень удобно как и в офисе для устранения разных непоняток с клиентами так и  дома.

Вот два самых простых способа чтобы настроить её: