IP PBX Elastix для начинающих.Часть 17

Feb 20, 2013 09:27

FRAUD на VOIP сетях.Слив голосового трафика на Premium rate номера .Правила защиты Elastix от взлома.

По данным международной ассоциации COMMUNICATIONS FRAUD CONTROL ASSOCIATION  за 2011 - отраслевые потери от фрода в мире -- $ 40.1 миллиардов  , или 1,88 % общих доходов.
Из этих 40 миллиардов, 3 миллиарда приходится на потери связанные со взломом   IP PBX систем и сливом голосового трафика на полулегальные premium rate номерные емкости с повышенной стоимостью входящих звонков.
5 стран “лидеров”, где функционируют фродстеры: США, Индия, Великобритания, Пакистан, Филиппины
5 стран “лидеров”, терминирующих фродстерский трафик: Куба, Сомали, Сьерра-Леоне, Зимбабве, Латвия

По мнению Ростелекома проблемы с фродом в России связаны со следующими моментами:
• легкость и простота использования IP технологий - низкая цена
• недостаточная квалификация персонала - низкий уровень оборудования администрирования сетей
• недостаточный уровень поддержки сетей клиентов со стороны PBX / VoIP - PBX операторов
• нежелание тратиться на безопасность со стороны клиента
• недостаточность законодательной базы по противодействию
• исторический дисбаланс тарифов ( местная связь - МГ/МН)
• борьба за клиента ( безлимитные тарифы)
• широкое распространение IP технологий ( простота использования Терминация - VoIP решений)
• желание разжиться за счет коллег-операторов By-pass fraud

Для защиты IP PBX систем, а в частности Elastix существует два механизма  - организационный и технический.

А) Организационные методы.
Так как все сливы трафика происходят на международные направления-договоритесь, если это возможно, с провайдером о  закрытии мн направления.
Если это не возможно , что скорее всего так и есть, не используйте кредитных расчетов с вашим оператором связи.
Держите на счету  примерную сумму, которая уходит у вас в месяц на связь.
При заключении договора с оператором уточняйте есть ли у него  система антифрода.

B)Технические методы.

1)Не открываете Elastix во внешний мир , открывайте доступ только доверенным сетям, если это не возможно - открывайте только то, что нужно                вашим абонентам (я на 100 процентов уверен, что доступ по ssh к вашему серверу им не нужен), для удаленного админского доступа используйте защищенные каналы, например VPN

2)Используйте сложные пароли и нестандартных пользователей , как на IP PBX, так и на абонентских устройствах(их тоже ломают).

3)Не используйте одинаковые пароли на разные модули и службы системы, для mySql - один пароль , для Web оболочки другой, для AMI -третий  и т.д.

4)Если абонентскими устройствами являются софтфоны - используйте антивирусное по , так как существуют трояны, способные слить логин пароль с софтфона.

Теперь перейдем  непосредственно к Эластиксу.

1)Не используйте контексты по умолчанию.

2)Используйте сложные пароли для экстеншенов и транков. Никогда не делайте номер экстеншена = пароль, это первое что брутфорсят.

3)Используйте в экстеншенах   фильтрацию по IP :

Deny=0.0.0.0/0.0.0.0
Permit=192.168.200.105
доступ в этом случае возможен только с адреса прописанного в строчке Permit

4)Запретите гостевые вызовы , для этого в файле sip_general_custom.conf пропишите
allowguest=no

5)Отключите ответ астериска о неверном пароле, с помощью этого сообщения можно вычислить какие внутренние номера присутствуют в системе.Для этого зайдите в файл sip_general_additional.conf и проверьте наличие параметра alwaysauthreject = yes,если этой строчки там нет - добавьте ее в sip_general_custom.conf

6)Используйте программу Fail2ban, которая читает логи астериска и по определенной маске вычисляет попытку взлома.В Эластиксе она уже установлена, но ее нужно  настроить.

Создадим файл  asterisk.conf

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

Поместим в него следующее содержимое

# Fail2Ban configuration file
#
#
# $Revision: 251 $
#
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf
[Definition]
#_daemon = asterisk
# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P\S+)
# Values:  TEXT
#
# Asterisk 1.8 uses Host:Port format which is reflected here
failregex = NOTICE.* .*: Registration from '.*' failed for ':.*' - Wrong password
      NOTICE.* .*: Registration from '\".*\".*' failed for '' - Wrong password
     NOTICE.* .*: Registration from '\".*\".*' failed for '' - No matching peer found
    NOTICE.* .*: Registration from '.*' failed for ':.*' - No matching peer found
    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.* .*: Registration from '.*' failed for ':.*' - Peer is not supposed to register
    NOTICE.* .*: Registration from '.*' failed for ':.*' - ACL error (permit/deny)
    NOTICE.* .*: Registration from '.*' failed for ':.*' - Device does not match ACL
    NOTICE.* .*: Registration from '\".*\".*' failed for ':.*' - No matching peer found
    NOTICE.* .*: Registration from '\".*\".*' failed for ':.*' - Wrong password
    NOTICE.* failed to authenticate as '.*'$
    NOTICE.* .*: No registration for peer '.*' \(from \)
    NOTICE.* .*: Host failed MD5 authentication for '.*' (.*)
    NOTICE.* .*: Failed to authenticate user .*@.*
    NOTICE.* .*: failed to authenticate as '.*'
    NOTICE.* .*: tried  to authenticate with nonexistent user '.*'
    VERBOSE.*SIP/-.*Received incoming SIP connection from unknown peer
    NOTICE.* .*: Sending fake auth rejection for device.* \(:.*\)
    NOTICE.* .*: Failed to authenticate device.* \(:.*\)
# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Отредактируем файл /etc/fail2ban/jail.conf

[asterisk-iptables]
enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK,dest=ваш_емаил_куда_слать_сообщения_о_бане, sender=fail2ban@local]
logpath = /var/log/asterisk/full
maxretry = 3
bantime = 600

Стартуем

/etc/init.d/fail2ban start

Пробуем 3 раза залогиниться с неправильным паролем, проверяем есть ли IP адрес в списке забаненых командой
fail2ban-client status asterisk-iptables

Status for the jail: asterisk-iptables
|- filter
|  |- File list:        /var/log/asterisk/fail2ban
|  |- Currently failed: 0
|  `- Total failed:     7
`- action
|- Currently banned: 1
|  `- IP list:       192.168.200.147
`- Total banned:     1
Проверяем появилось ли правило в iptables
Iptables -L

Chain fail2ban-SIP (1 references)
target     prot opt source               destination
DROP       all  --  192.168.200.147        anywhere
Оповещение о попытке взлома fail2ban отправит вам на почту:

Hi,

The IP 192.168.200.147 has just been banned by Fail2Ban after
3 attempts against SIP.

При рестарте fail2ban - все забаненые IP сбрасываются.

Для автостарта fail2ban  в файл /etc/rc.d/rc.local добавим строчку
 /etc/rc.d/init.d/fail2ban start

защита Elastix от взлома

Previous post Next post
Up