VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

И опять про безопасность

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

soh
Сообщения: 154
Зарегистрирован: 06 мар 2012, 15:42

И опять про безопасность

Сообщение soh »

Избитый вопрос конечно, но хочется расставить все точки над i.

Настроил Asterisk 1.8 с нуля и решил озаботиться безопасностью самого Астериска, и наваял такое:

1) Сменил стандартный порт Asterisk с 5060 на 5179.
2) Сменил порт для SSH на нестандартный.
3)

Код: Выделить всё

dialplan show default
[ Context 'default' created by 'pbx_config' ]

-= 0 extensions (0 priorities) in 1 context. =-
4) Межгород и прочие я не писал в диалплан. Только то, что нужно. Звонки на город + сотовые операторы. Получилось примерно такое:

Код: Выделить всё

[general]
exten => _X.,1,Hangup

[outgoing_elektron]
exten => _9XXXXXXX,n,Dial(SIP/provider/${EXTEN:1:7})
exten => _9XXXXXXX,n,Hangup()
5) Поставил лимит исходящих звонков

Код: Выделить всё

call-limit=2
6) Сделал сложные пароли всем. :)


Теперь главный вопрос. Что еще нужно предпринять. Ограничение по IP, не знаю, люди все время мотаются в командировки и IP меняются, значит это не подходит. Далее, есть ли смысл прикручивать fail2ban? Может еще посоветуете? :) Сразу скажу, Asterisk сервер смотрит мордой прямо в интернет. Нужен ли Астериску Апапч или можно его смело гасить?
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: И опять про безопасность

Сообщение ded »

Если нет вэб интерфейса - то Apache можно смело гасить. Если есть и нужен, то есть смысл его тоже увести на какой-то порт 17306 например.
Через такой набор -
exten => _9XXXXXXX,n,Dial(SIP/provider/${EXTEN:1:7})
в Мавританию или на Азорские острова не пробъются никак :)
Я бы вообще такой Астериск нарочно оставил на дефолтных портах - пусть ковыряют!
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

Re: И опять про безопасность

Сообщение Wapo »

Еще не забудьте порт 5038 - менеджер астера и естественно всяки IAX и 323 протоколы.
soh
Сообщения: 154
Зарегистрирован: 06 мар 2012, 15:42

Re: И опять про безопасность

Сообщение soh »

Упс. А где этот порт можно поправить?
И еще по поводу Экстеншнов. У меня в контексте incoming такое:

Код: Выделить всё

[inbound]
exten => [тут типа номер линии],1,Goto(menu_Elektron,s,1) 

[menu_Elektron]
exten => s,1,Wait(1)
exten => s,2,Set(TIMEOUT(response)=4)
exten => s,3,Background(priv)
exten => s,4,WaitExten()
exten => 1,1,Goto(s,1)
exten => i,1,Playback(nevernyj-vybor)
exten => i,2,Goto(s,3)
exten => t,1,Set(filename=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-FROM_${CALLERID(number)}-TO100)
exten => t,2,Set(monopt=nice -n 19 /usr/bin/lame -b 32 "/var/records/${filename}.wav"  "/var/records/${filename}.mp3" && rm -f "/var/records/${filename}.wav" && chmod 777 "/var/records/${filename}.mp3")
exten => t,3,Verbose(${WAV}/${filename}.wav)
exten => t,4,MixMonitor(/var/records/${filename}.wav,,${monopt})
exten => t,5,Verbose(${filename})
exten => t,6,Dial(SIP/100)
exten => _xxx,1,Set(filename=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-FROM_${CALLERID(number)}-TO_101)
exten => _xxx,2,Set(monopt=nice -n 19 /usr/bin/lame -b 32 "/var/records/${filename}.wav"  "/var/records/${filename}.mp3" && rm -f "/var/records/${filename}.wav" && chmod 777 "/var/records/${filename}.mp3")
exten => _xxx,3,Verbose(${WAV}/${filename}.wav)
exten => _xxx,4,MixMonitor(/var/records/${filename}.wav,,${monopt})
exten => _xxx,5,Verbose(${filename})
exten => _xxx,6,Dial(SIP/${EXTEN})
exten => _xxx,7,Hangup()

меня смущает наличиие переменной ${EXTEN}, не поломают ее случайно?. А то страшновато как-то. Или такой косяк возможен только при такой конструкции?

Код: Выделить всё

 exten => _X.,1,Dial(неважно/${EXTEN})
Последний раз редактировалось soh 21 мар 2012, 17:54, всего редактировалось 1 раз.
soh
Сообщения: 154
Зарегистрирован: 06 мар 2012, 15:42

Re: И опять про безопасность

Сообщение soh »

ded писал(а):Если нет вэб интерфейса - то Apache можно смело гасить. Если есть и нужен, то есть смысл его тоже увести на какой-то порт 17306 например.
Через такой набор -
exten => _9XXXXXXX,n,Dial(SIP/provider/${EXTEN:1:7})
в Мавританию или на Азорские острова не пробъются никак :)
Я бы вообще такой Астериск нарочно оставил на дефолтных портах - пусть ковыряют!
Вебморды никакой нету, никаких вебминов и прочей фигни тоже нет и не будет. Собственно, наверное, погашу.
Единственный косяк с самбой, для удобства у меня расшарена папка с конфигами астериска. Это огромная дырка, но я предпринял меры. Доступ к самбе выдается только определенному диапазону адресов (точнее только одному адресу, офисному) и более никому, ну и естественно только для пользователя, но скорее всего придецца и это убрать
PS: Хе-хе, а если сковырнут - будет пичаль :)
soh
Сообщения: 154
Зарегистрирован: 06 мар 2012, 15:42

Re: И опять про безопасность

Сообщение soh »

Wapo писал(а):Еще не забудьте порт 5038 - менеджер астера и естественно всяки IAX и 323 протоколы.
Поправил конфиги
h323.conf
iax.conf
Там тоже поставил левые порты
jugatsu
Сообщения: 298
Зарегистрирован: 31 май 2011, 15:56

Re: И опять про безопасность

Сообщение jugatsu »

Поправь modules.conf на предмет noload вот этих самых модулей.
Аватара пользователя
Obi Van
Сообщения: 340
Зарегистрирован: 03 сен 2010, 11:21

Re: И опять про безопасность

Сообщение Obi Van »

Про AST-2010-002: возможность инъекции в диалплан я думаю знаете.
Разумеется обязательно fail2ban с правильным конфигом. Также не помешает и поставить denyhosts.
В рингплане чётко прописать направления. Т.е, например, если люди звонят в Россию, то можно зачительно сузить шаблон до такого:

Код: Выделить всё

exten => _8[348]XXXXXXXXX,n,Dial()
Про call-limit в конфиге сказано так:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:

Код: Выделить всё

** Old configuration options **
; The "call-limit" configuation option is considered old is replaced
; by new functionality. To enable callcounters, you use the new 
; "callcounter" setting (for extension states in queue and subscriptions)
; You are encouraged to use the dialplan groupcount functionality
; to enforce call limits instead of using this channel-specific method.
; You can still set limits per device in sip.conf or in a database by using
; "setvar" to set variables that can be used in the dialplan for various limits.
Что значит, что ограничение по исходящим лучше сделать по такому принципу:

Код: Выделить всё

; Процедура ограничения исходящих линий
[check-outgoing-limit]
exten => s,1,Set(GROUP()=outgoing)
exten => s,n,NoOp(Number of occupied lines is ${GROUP_COUNT(${outgoing})})
exten => s,n,GotoIf($[${GROUP_COUNT(${outgoing})} > ${LIMIT_OUTGOING}]?limit-reached)
exten => s,n,Return
; Играем тоны "занято" и разрываем соединение
exten => s,n(limit-reached),Answer
exten => s,n,Playtones(busy)
exten => s,n,Wait(10)
exten => s,n,Hangup
;
Пока вроде как всё. :geek:
soh
Сообщения: 154
Зарегистрирован: 06 мар 2012, 15:42

Re: И опять про безопасность

Сообщение soh »

По поводу AST-2010-002, а разветакая конструкция, как у меня, подвержена инъекции в диалплан?

Код: Выделить всё

   
[general]
    exten => _X.,1,Hangup

    [outgoing_elektron]
    exten => _9XXXXXXX,n,Dial(SIP/provider/${EXTEN:1:7})
    exten => _9XXXXXXX,n,Hangup()
А этот замечательный ${LIMIT_OUTGOING} где выставлять и сколько? Не совсем понятно. :(

По поводу ограничения denyhosts, у меня народ ездит в командировки постоянно. Что с этим делать? :(
Аватара пользователя
Obi Van
Сообщения: 340
Зарегистрирован: 03 сен 2010, 11:21

Re: И опять про безопасность

Сообщение Obi Van »

Такая конструкция уже лучше чем Х. Но для меня две лишние строки рингплан не тянут, а безопасности больше. Лучше перестраховаться.
LIMIT_OUTGOING вы можете выставлять из описания глобальных переменных в разделе [globals], можете брать из базы, где оперировать этим значением как понадобится и т.д.
Т.е например так:

Код: Выделить всё

[globals]
LIMIT_OUTGOING = 5 ; ограничиваем исходящие 5 вызовами
denyhosts у меня банит по ssh, добавляю айпишник злодея в hosts.deny. Вот например статья.
Проверял на своём серваке. Фактически забанится может в 2-х местах. Залететь в бан-лист файрвола или через демон inetd в файл hosts.deny. Согласитесь, что перестраховка лишней не будет.
у меня народ ездит в командировки постоянно. Что с этим делать?
Народ к denyhosts отношения вряд ли будет иметь. А защита может быть организована сложными паролями, доскональным прописыванием всех маршрутов.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH