?

Log in

No account? Create an account

Previous Entry | Next Entry

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 "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\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 '<HOST>:.*' - No matching peer found
    NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - No matching peer found
    NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - Username/auth name mismatch
    NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - Device does not match ACL
    NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - Peer is not supposed to register
    NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - ACL error (permit/deny)
    NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - Device does not match ACL
    NOTICE.* .*: Registration from '\".*\".*' failed for '<HOST>:.*' - No matching peer found
    NOTICE.* .*: Registration from '\".*\".*' failed for '<HOST>:.*' - Wrong password
    NOTICE.* <HOST> failed to authenticate as '.*'$
    NOTICE.* .*: No registration for peer '.*' \(from <HOST>\)
    NOTICE.* .*: Host <HOST> failed MD5 authentication for '.*' (.*)
    NOTICE.* .*: Failed to authenticate user .*@<HOST>.*
    NOTICE.* .*: <HOST> failed to authenticate as '.*'
    NOTICE.* .*: <HOST> tried  to authenticate with nonexistent user '.*'
    VERBOSE.*SIP/<HOST>-.*Received incoming SIP connection from unknown peer
    NOTICE.* .*: Sending fake auth rejection for device.* \(<HOST>:.*\)
    NOTICE.* .*: Failed to authenticate device.* \(<HOST>:.*\)
# 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


Comments

( 43 comments — Leave a comment )
Василий Пупкин
Mar. 25th, 2013 05:38 am (UTC)
Привет. Нарисовалась проблемка.
Вот ко мне товарищ ломится:
[Mar 25 09:32:03] NOTICE[3427] chan_sip.c: Sending fake auth rejection for device 4000<sip:4000@000.000.000.000>;tag=5e0f230e
(IP светится нормально, там кстати тоже Эластикс)

Судя по правилу:
NOTICE.* .*: Sending fake auth rejection for device.* \(:.*\) - он должен попадать в бан. Но этого не происходит. В чем может быть засада?

Edited at 2013-03-25 05:39 am (UTC)
icluzo
Mar. 25th, 2013 05:40 am (UTC)
количество попыток сколько было?
(no subject) - Василий Пупкин - Mar. 25th, 2013 05:42 am (UTC) - Expand
(Deleted comment)
(no subject) - icluzo - Mar. 25th, 2013 06:03 am (UTC) - Expand
(no subject) - Василий Пупкин - Mar. 25th, 2013 07:01 am (UTC) - Expand
(no subject) - icluzo - Mar. 25th, 2013 07:03 am (UTC) - Expand
(no subject) - Василий Пупкин - Mar. 25th, 2013 07:15 am (UTC) - Expand
(no subject) - icluzo - Mar. 25th, 2013 07:23 am (UTC) - Expand
(no subject) - Василий Пупкин - Mar. 25th, 2013 10:44 am (UTC) - Expand
(no subject) - icluzo - Mar. 25th, 2013 10:49 am (UTC) - Expand
(no subject) - icluzo - Mar. 25th, 2013 10:56 am (UTC) - Expand
(no subject) - Василий Пупкин - Mar. 25th, 2013 03:42 pm (UTC) - Expand
Василий Пупкин
Apr. 11th, 2013 11:21 am (UTC)
Настроил по мануалу fail2ban на другом elastix (идентичный тому, на котором все работает). По логам все поднялось, но при неправильно набранном пароле 3 раза, ничего не происходит....вообще. Хз куда копать
icluzo
Apr. 11th, 2013 11:23 am (UTC)
миллион причин
в /var/log/asterisk/full сообщение об ошибке пишет?

Edited at 2013-04-11 11:23 am (UTC)
(no subject) - Василий Пупкин - Apr. 11th, 2013 04:46 pm (UTC) - Expand
klistrod
Jun. 28th, 2013 09:57 am (UTC)
Сделал все как в доке и у меня шлюз Гранстримовский 4108 забанило ...((
icluzo
Jun. 28th, 2013 09:59 am (UTC)
Дак посмотрите в логах почему шлюз в бан попал.Возможно пароль не верный
(no subject) - klistrod - Jun. 28th, 2013 10:04 am (UTC) - Expand
(no subject) - icluzo - Jun. 28th, 2013 10:06 am (UTC) - Expand
mapcuk666
Jul. 11th, 2013 10:20 am (UTC)
fail2ban
привет не запускается fail2ban сбой в 25 и 31 строках
NOTICE.* failed to authenticate as '.*'$
VERBOSE.*SIP/-.*Received incoming SIP connection from unknown peer
что не так?
mapcuk666
Jul. 12th, 2013 03:16 am (UTC)
Re: fail2ban
не блокируется ip после трех попыток зайти
nicamx
Jul. 16th, 2013 11:26 am (UTC)
Fail2ban
Добрый день. Пытаюсь второй раз fail2ban. Все запускается все работает, только действий нет. Настраивал как указано в Вашей бесценной(совершенно серьезно) документации. Подскажите пожалуйста.
Вот /var/log/asterisk/full
[Jul 16 18:10:20] NOTICE[2617] chan_sip.c: Registration from '"55" <sip:55@192.168.1.103>' failed for '192.168.1.102' - Wrong password
[Jul 16 18:10:22] NOTICE[2617] chan_sip.c: Registration from '"55" <sip:55@192.168.1.103>' failed for '192.168.1.102' - Wrong password
[Jul 16 18:10:24] NOTICE[2617] chan_sip.c: Registration from '"55" <sip:55@192.168.1.103>' failed for '192.168.1.102' - Wrong password
[Jul 16 18:10:26] NOTICE[2617] chan_sip.c: Registration from '"55" <sip:55@192.168.1.103>' failed for '192.168.1.102' - Wrong password
[Jul 16 18:10:47] VERBOSE[2617] chan_sip.c: -- Registered SIP '55' at 192.168.1.102 port 54531
[Jul 16 18:10:47] VERBOSE[2617] chan_sip.c: > Saved useragent "Bria iOS 2.4.4" for peer 55
[Jul 16 18:10:47] NOTICE[2617] chan_sip.c: Peer '55' is now Reachable. (3ms / 2000ms)
icluzo
Jul. 17th, 2013 01:35 am (UTC)
Re: Fail2ban
добрый
в каком смысле нет действий? не банится или на почту сообщение не приходит?
количество попыток точно 3 ? (maxretry = 3)
Что в логе /var/log/fail2ban.log ?

Edited at 2013-07-17 01:37 am (UTC)
Re: Fail2ban - nicamx - Jul. 17th, 2013 05:34 am (UTC) - Expand
Re: Fail2ban - nicamx - Jul. 17th, 2013 05:35 am (UTC) - Expand
Re: Fail2ban - nicamx - Jul. 17th, 2013 05:48 am (UTC) - Expand
mapcuk666
Jul. 17th, 2013 03:41 am (UTC)
fail2ban
не блокируется не отправляет письмо на почту в логах fail2ban нету
icluzo
Jul. 17th, 2013 03:46 am (UTC)
Re: fail2ban
iptables может не запущена
service iptables stop
ок выдает ?
Re: fail2ban - mapcuk666 - Jul. 17th, 2013 04:25 am (UTC) - Expand
Re: fail2ban - icluzo - Jul. 17th, 2013 04:26 am (UTC) - Expand
Re: fail2ban - mapcuk666 - Jul. 17th, 2013 04:40 am (UTC) - Expand
Re: fail2ban - mapcuk666 - Jul. 17th, 2013 04:40 am (UTC) - Expand
Re: fail2ban - icluzo - Jul. 17th, 2013 04:45 am (UTC) - Expand
Re: fail2ban - mapcuk666 - Jul. 17th, 2013 04:49 am (UTC) - Expand
nicamx
Jul. 17th, 2013 06:35 am (UTC)
Fail2ban
Напишу в основную ветку.
Я понимаю что настройка программы fail2ban к Elastix не имеет прямого отношения, но все же большая просьба помочь в настройке в рамках проекта Elastix. Заранее очень благодарен.
Вроде все запущено, все работает, а бана нет. Посмотрите , пожалуйста, может быть весь вопрос в шаблонах поиска?
Например, разберем один из самых популярных
/etc/fail2ban/filter.d/asterisk.conf
NOTICE.* .*: Registration from '\".*\".*' failed for ':.*' - Wrong password
а в файле источнике /var/log/asterisk/full
[Jul 17 13:17:17] NOTICE[2616] chan_sip.c: Registration from '"55" <sip:55@192.168.1.103>' failed for '192.168.1.102' - Wrong password
borishighlander
Aug. 8th, 2013 11:17 am (UTC)
Выдает ошибку при старте
ConfigParser.ParsingError: File contains parsing errors: /etc/fail2ban/filter.d/asterisk.conf
[line 30]: "NOTICE.* failed to authenticate as '.*'$\n"
[line 36]: 'VERBOSE.* SIP/-.*Received incoming SIP connection from unknown peer\n'
[FAILED]
yashtagan
Aug. 21st, 2013 06:56 am (UTC)
Может быть пригодится: я в конфигурационный файл asterisk.conf добавил так же строчку
NOTICE.* .*: Registration from '\".*\".*' failed for '' - No matching peer found

Т.к. в выложенном здесь экземпляре её нет, а мне она помогла банить подбирателей паролей.
В некоторых случаях может так же пригодится и эта строчка:
NOTICE.* .*: Registration from '\".*\".*' failed for '' - Wrong password
icluzo
Aug. 21st, 2013 06:59 am (UTC)
спасибо, сейчас добавлю
(no subject) - yashtagan - Aug. 21st, 2013 10:01 am (UTC) - Expand
fail2ban - Денис Буряков - Sep. 3rd, 2013 01:14 pm (UTC) - Expand
pappa_mike
Jan. 13th, 2015 05:43 pm (UTC)
Привет. Заметил что в тексте статьи:
logpath = /var/log/asterisk/full
а потом в fail2ban-client status asterisk-iptables
File list: /var/log/asterisk/fail2ban

А у меня вот проблемка, fail2ban работает только когда logpath = /var/log/asterisk/full
Пробовал ставить /var/log/asterisk/fail2ban, чтоб не валить всё в кучу, нифига туда не пишет и вообще перестаёт работать. Но при рестарте выдаёт OK.

И с "Sending fake auth rejection for device" тоже выдаёт свой IP, но... когда коллега из дома попробовал с неправильным паролем законнектится то его определил правильно.
(у меня Эластикс 2.3)
val_in_ua
Apr. 21st, 2015 01:40 pm (UTC)
Fail2ban правильная конфига для нового Elastiks(Asterisk)
Если Asterisk в Еластике старше 10.X (asterisk -r при коннекте пишет версию)

тогда нужно настраивать как описано в статье:
http://habrahabr.ru/post/194356/
Serg Pol
Aug. 31st, 2016 11:06 am (UTC)
Защита от взлома
Есть еще 2 очень хороших способа защиты (за ранее прошу прощения, если они уже указывались):
1. изменить порт (bindport=ххххх)
2. сделать так, чтобы станция "сохраняла молчание" и злоумышленник ничего в ответ не получал (alwaysauthreject=yes)
( 43 comments — Leave a comment )

Latest Month

August 2017
S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  

Tags

Powered by LiveJournal.com
Designed by yoksel