ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

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

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

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

Сообщение soh » 21 мар 2012, 13:53

Избитый вопрос конечно, но хочется расставить все точки над 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 сервер смотрит мордой прямо в интернет. Нужен ли Астериску Апапч или можно его смело гасить?
soh
 
Сообщений: 154
Зарегистрирован: 06 мар 2012, 15:42

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

Сообщение ded » 21 мар 2012, 14:29

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

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

Сообщение Wapo » 21 мар 2012, 17:33

Еще не забудьте порт 5038 - менеджер астера и естественно всяки IAX и 323 протоколы.
Аватар пользователя
Wapo
 
Сообщений: 795
Зарегистрирован: 02 мар 2011, 18:53

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

Сообщение soh » 21 мар 2012, 17:40

Упс. А где этот порт можно поправить?
И еще по поводу Экстеншнов. У меня в контексте 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 » 21 мар 2012, 17:44

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


Вебморды никакой нету, никаких вебминов и прочей фигни тоже нет и не будет. Собственно, наверное, погашу.
Единственный косяк с самбой, для удобства у меня расшарена папка с конфигами астериска. Это огромная дырка, но я предпринял меры. Доступ к самбе выдается только определенному диапазону адресов (точнее только одному адресу, офисному) и более никому, ну и естественно только для пользователя, но скорее всего придецца и это убрать
PS: Хе-хе, а если сковырнут - будет пичаль :)
soh
 
Сообщений: 154
Зарегистрирован: 06 мар 2012, 15:42

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

Сообщение soh » 21 мар 2012, 18:00

Wapo писал(а):Еще не забудьте порт 5038 - менеджер астера и естественно всяки IAX и 323 протоколы.


Поправил конфиги
h323.conf
iax.conf
Там тоже поставил левые порты
soh
 
Сообщений: 154
Зарегистрирован: 06 мар 2012, 15:42

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

Сообщение jugatsu » 21 мар 2012, 20:05

Поправь modules.conf на предмет noload вот этих самых модулей.
jugatsu
 
Сообщений: 298
Зарегистрирован: 31 май 2011, 15:56

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

Сообщение Obi Van » 22 мар 2012, 10:25

Про AST-2010-002: возможность инъекции в диалплан я думаю знаете.
Разумеется обязательно fail2ban с правильным конфигом. Также не помешает и поставить denyhosts.
В рингплане чётко прописать направления. Т.е, например, если люди звонят в Россию, то можно зачительно сузить шаблон до такого:
Код: выделить все
exten => _8[348]XXXXXXXXX,n,Dial()

Про call-limit в конфиге сказано так:
[Показать] Спойлер:
Код: выделить все
** 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:
Аватар пользователя
Obi Van
 
Сообщений: 340
Зарегистрирован: 03 сен 2010, 11:21

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

Сообщение soh » 22 мар 2012, 10:59

По поводу 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, у меня народ ездит в командировки постоянно. Что с этим делать? :(
soh
 
Сообщений: 154
Зарегистрирован: 06 мар 2012, 15:42

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

Сообщение Obi Van » 22 мар 2012, 11:27

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

denyhosts у меня банит по ssh, добавляю айпишник злодея в hosts.deny. Вот например статья.
Проверял на своём серваке. Фактически забанится может в 2-х местах. Залететь в бан-лист файрвола или через демон inetd в файл hosts.deny. Согласитесь, что перестраховка лишней не будет.
у меня народ ездит в командировки постоянно. Что с этим делать?

Народ к denyhosts отношения вряд ли будет иметь. А защита может быть организована сложными паролями, доскональным прописыванием всех маршрутов.
Аватар пользователя
Obi Van
 
Сообщений: 340
Зарегистрирован: 03 сен 2010, 11:21

След.

Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

cron
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH