Mikrotik firewall настройка asterisk
Введение В данной статье будет рассматриваться процесс развертывания сервера телефонии Asterisk (в нашем случае версии 1.8) на внутренней памяти маршрутизатора Miokrotik. Развернуть Asterisk напрямую на RouterOS не представляется возможным, однако для подобных целей мы можем поднять виртуальный openwrt используя metaROUTER (встроенная система виртуализации MikroTik). Для чего нам вообще это может понадобится: Домашнее применение Резервирование основного […]
Настройка файрвола
- Трафик, идущий на маршрутизатор, попадает в цепочку файрвола input;
- Трафик, создаваемый маршрутизатором, попадает в цепочку файрвола output;
- Трафик, идущий через маршрутизатор, попадает в цепочку forward;
- Существуют четыре состояния соединения: new, established, related, invalid.
То есть, исходя из состояний соединения и цепочек, общие правила защиты маршрутизатора можно сформулировать как:
- Мы работаем только с цепочкой input;
- Мы пропускаем соединения с состоянием established и related, как уже установленные;
- Мы пропускаем протокол ICMP;
- Мы считаем как WAN, так и DMZ недоверенными сетями;
- Мы разрешаем прохождение некоторого трафика на маршрутизатор. Остальной трафик блокируем.
Теперь давайте определим разрешенный трафик с недоверенных интерфейсов. Итак, мы разрешаем:
- TCP порт 8291 – winbox, удаленное управление снаружи;
- 65522 ssh на измененном порту;
- Предположим, что у нас в дальнейшем будет настраиваться VPN-сервер по протоколу PPTP и мы разрешим порт 1723 по протоколу TCP.
Также с этого момента мы начинаем работать с командной строкой маршрутизатора. Все команды вставляются в терминал маршрутизатора. Если необходимо – вы можете посмотреть в графическом интерфейсе, что конкретно было сделано. Очень скоро вы научитесь читать команды и соотносить их с графическим интерфейсом.
Определяем так называемые bogon-сети (сети приватных или не распределенных IP-адресов).
Настройка цепочки input
Введение
В данной статье будет рассматриваться процесс развертывания сервера телефонии Asterisk (в нашем случае версии 1.8) на внутренней памяти маршрутизатора Miokrotik.
Развернуть Asterisk напрямую на RouterOS не представляется возможным, однако для подобных целей мы можем поднять виртуальный openwrt используя metaROUTER (встроенная система виртуализации MikroTik).
Для чего нам вообще это может понадобится:
- Домашнее применение
- Резервирование основного сервера телефонии
- Работа с DECT-аппаратами при неустойчивом интернет соединении
- В качестве эксперимента
Проблемы, с которыми можем столкнуться в процессе:
- Регулярная потеря конфигурационных файлов
- Зависания маршрутизатора при загрузке/перезагрузке и включении/выключении metaROUTER
- Износ флеш-памяти маршрутизатора
- Отсутствие поддержки openwrt
- Мертвые репозитории
- Дыры в безопасности (отсутствует fail2ban)
- Старая версия Asterisk
Этап 3. Пользователь и пароль
Теперь надо заменить пользователя по умолчанию и установить ему пароль.
Переходим в меню System/Users.
Создаем нового пользователя с правами администратора.
После чего закрываем программу Winbox, запускаем его заново и заходим под новым пользователем, открываем меню System/Users и отключаем учетную запись администратора.
На этом подготовительные операции можно считать законченными. Переходим к настройке firewall.
Настройка белого списка адресов
Для начала, создадим список адресов, с которых будет открыт дуступ к интерфейсу управления роутером.
/ip firewall address-list
Добавляем внешние адреса, с которых можно будет подключиться к роутеру
add address=1.1.1.1 list=admin
add address=2.2.2.2 list=admin
add address=3.3.3.3 list=admin
Настройка цепочки input
/ip firewall filter
1. Правило для защиты от IP-спуфинга (ответ RST-пакетом на SYN-ACK-пакет, если он является первым в соединении)
add chain=input action=reject reject-with=tcp-reset protocol=tcp tcp-flags=syn,ack connection-state=new
2. Пропуск пакетов в состоянии «established»
add chain=input action=accept connection-state=established
3. Пропуск пакетов в состоянии «related»
add chain=input action=accept connection-state=related
4. Сброс пакетов в состоянии «invalid»
add chain=input action=drop connection-state=invalid
5. Пропуск ICMP echo request
add chain=input action=accept protocol=icmp icmp-options=8
6. Пропуск ICMP time exceeded
add chain=input action=accept protocol=icmp icmp-options=11
7. Пропуск ICMP fragmentation needed
add chain=input action=accept protocol=icmp icmp-options=3:4
8. Пропуск DNS-запросов из локальной сети
add chain=input action=accept protocol=udp in-interface=bridge-local src-address=192.168.1.0/24 dst-port=53
add chain=input action=accept protocol=tcp in-interface=bridge-local src-address=192.168.1.0/24 dst-port=22,80,8291
add chain=input action=accept protocol=tcp in-interface=bridge-local src-address-list=admin dst-port=22,80,8291
11. Всё остальное сбрасываем
add chain=input action=drop
/ip firewall filter
add chain=input action=reject reject-with=tcp-reset protocol=tcp tcp-flags=syn,ack connection-state=new
add chain=input action=accept connection-state=established
add chain=input action=accept connection-state=related
add chain=input action=drop connection-state=invalid
add chain=input action=accept protocol=icmp icmp-options=8
add chain=input action=accept protocol=icmp icmp-options=11
add chain=input action=accept protocol=icmp icmp-options=3:4
add chain=input action=accept protocol=udp in-interface=bridge-local src-address=192.168.1.0/24 dst-port=53
add chain=input action=accept protocol=tcp in-interface=bridge-local src-address=192.168.1.0/24 dst-port=22,80,8291
add chain=input action=accept protocol=tcp in-interface=bridge-local src-address-list=admin dst-port=22,80,8291
add chain=input action=drop
Настройка цепочки forward
Этап 2. Отключение поиска соседей и mac-сервера на внешних интерфейсах
Заходим в меню ip/neighbors, переходим на закладку Discovery Interfaces и отключаем все кроме интерфейса LAN, нажатием на кнопку Disable.
Далее идем в меню Tools/MAC Server и на закладках Telnet Interfaces и WinBox Interfaces добавляем интерфейс LAN, удаляем если есть любые другие интерфейсы и отключаем интерфейс "*all"
Это не даст возможности подключиться к маршрутизатору снаружи, при помощи MAC - Telnet
Если кто-то считает что это излишние меры безопасности, вот что видит на WAN -портах один из установленных в работу маршрутизаторов.
При этом на два из них удалось зайти mac-telnet и получить доступ к управлению.
Настройка очередей
Для построения иерархии очередей используется механизм «Queue Tree»
Добавляем следующие очереди:
Name in
Parent global-out
Max Limit 4500k
Name def-in
Parent in
Packet Marks def_in
Max Limit 4500k
Name voip-in
Parent in
Packet Marks voip_in
Priority 1
Limit At 1M
Max Limit 2M
Name out
Parent global-out
Max Limit 4500k
Name def-out
Parent out
Packet Marks def_out
Max Limit 4500k
Name voip-out
Parent out
Packet Marks voip_out
Priority 1
Limit At 1M
Max Limit 2M
Обратите внимание на то, что очереди для входящего и исходящего трафика прицеплены к очереди global-out. Маркировка пакетов в цепочке forward и шейпинг в очереди global-out обеспечивают правильную работу QoS при использовании NAT.
Для работы QoS максимальная пропускная способность (Max Limit) корневых очередей ( у нас — in и out) должна быть ниже гарантированной пропускной способности канала. Обычно от прпускной способности канала отнимают 10%, если QoS не работает должным образом, значение следует понизить еще.
Значение «Limit At» — гарантированная пропускная способность очереди, но она будет нарушена, если очередям с большим приоритетом не будет хватать скорости.
Для приоритетных очередей voip-in и voip-out следует задавать значение «Max Limit» ниже максимальной пропускной способности корневой очереди, иначе весь канал будет занят, когда, к примеру, хост Asterisk будет выкачивать пакеты.
Из консоли это делается так:
/queue tree
add name=in parent=global-out max-limit=4500k
add name=def-in parent=in packet-mark=def_in max-limit=4500k
add name=voip-in parent=in packet-mark=voip_in priority=1 limit-at=1M max-limit=2M
add name=out parent=global-out max-limit=4500k
add name=def-out parent=out packet-mark=def_out max-limit=4500k
add name=voip-out parent=out packet-mark=voip_out priority=1 limit-at=1M max-limit=2M
Познакомьтесь с возможностями Asterisk. Найдите инструменты, которые помогут вашей компании развиваться.
В данной статье описана настройка файрвола на маршрутизаторах Mikrotik из консоли.
Настройки роутера в примере:
WAN-интерфейс: ether1
LAN-интерфейс: bridge-local
LAN-подсеть: 192.168.1.0/24
Порт 3389 WAN-интерфейса проброшен на 192.168.1.100
Установка и настройка
В первую очередь нам понадобится образ openwrt, взять его можно по адресу openwrt.wk.cz, либо поискать зеркала. Поскольку у нас используется mips-подобный микротик (а именно RB951Ui-2HnD), то и образ тянем соответствующий. Запихиваем его в Files и переходим в MetaROUTER для импорта образа. Задаем размер виртуалки.
Образ в Files.
Импорт образа в MetaROUTER.
Создаем динамический сетевой интерфейс и вешаем на него бридж. Так же задаем для виртуалки размер дискового пространства.
Сетевой интерфейс.
Размер диска.
После этого смело заходим в консоль метароутера. Там мы посмотрим полученный ip-адрес для дальнейшего подключения к нему по ssh.
Успешный вход в консоль.
Вывод команды ifconfig
Успешное подключение по ssh к метароутеру openwrt
Следующим шагом нам необходимо задать репозитории для загрузки пакетов. Редактируем файл /etc/opkg.conf следующим образом:
На момент написания статьи данный репозиторий был актуален и более или менее работал. Со временем он может стать deprecated и потерять актуальность
После этого необходимо обновить менеджер пакетов и установить модули нашего Asterisk 1.8. Так же будут установлены модули для работы с IAX и кодеки alaw (как наиболее легковесные, чтоб не загружать и без того слабую систему). Выполняем команды:
Загрузка модулей Asterisk
Установка модулей Asterisk
Запускаем службу и заходим в консоль Asterisk:
Запуск Asterisk 1.8
Поскольку в процессе был установлен базовый графический интерфейс от Digium, можно проверить и его. Заходим на ip-адрес метароутера по порту 8088 и попадаем на GUI нашего Asterisk.
Графический интерфейс. Окно Авторизации
Графический интерфейс. Главное окно
На этом установку можно считать завершенной.
Познакомьтесь с возможностями Asterisk. Найдите инструменты, которые помогут вашей компании развиваться.
И ОБЯЗАТЕЛЬНО, ПЕРЕЗАГРУЗИТЕ ВАШ РОУТЕР MIKROTIK. иначе работать ничего не будет.
Настройка белого списка адресов
9 thoughts on “ SIP Freepbx NAT Mikrotik, как настроить ваш Asterisk находящийся за сетью NAT ”
а настройки freepbx? nat=no\never?
сам asterisk может перебивать ip заголовок пакетов
Вот так полностью открыть SIP наружу? серьезно?
Lol 15.05.2019 взяли чистый микротик настроили проброс внешнего IP на freepbx. Сделали открытыми все возможные порты которые нужны и которые не нужны. Проблема такая исходящий звонок идет. А входящий не проходит гудки или неправильно набран номер.
Asterisk по умолчанию работает с диапазоном портов RTP от 10000 до 20000 и с локальными 5060 и 5061(новый и старый) также обязательны. Какие все возможные порты открыты? Скорее всего вы темой ошиблись или своим воображением.
Кстати для обратного маршрута потребуется дополнительное правило в NAT, иначе не заработает полностью
«Кстати для обратного маршрута потребуется дополнительное правило в NAT, иначе не заработает полностью» что именно нужно пробрасывать? не можем настроить, звука в одно сторону попросту нет …
Eduard Yamaltdinov :
Категорически поддерживаю Романа в вопросе. Какое такое обратное правило? Спасибо.
«Вот так полностью открыть SIP наружу? серьезно?»
Владимир все верно написал, нельзя так открывать наружу не указав хотя бы белые черные листы и т.д. у меня и 5 секунд не прошло как сразу прилетел пакет с адреса забугорного!
Всем доброго времени суток!
Подскажите пожалуйста, есть FreePBX, пробросы портов и NAT настроены и все работает с обычными sip телефонами, софтфонами для windows и с софтфонами для андроид (правда почему то не всем, mizudroid и еще несколько работает отлично). а вот на Iphone не работает исходящая не в какую, связь рвется, бывает через 6 секунд, бывает через 60. входящая работает исправно. подскажите в каком направление копать..
Введение
В данной статье будет рассматриваться процесс развертывания сервера телефонии Asterisk (в нашем случае версии 1.8) на внутренней памяти маршрутизатора Miokrotik.
Развернуть Asterisk напрямую на RouterOS не представляется возможным, однако для подобных целей мы можем поднять виртуальный openwrt используя metaROUTER (встроенная система виртуализации MikroTik).
Для чего нам вообще это может понадобится:
- Домашнее применение
- Резервирование основного сервера телефонии
- Работа с DECT-аппаратами при неустойчивом интернет соединении
- В качестве эксперимента
Проблемы, с которыми можем столкнуться в процессе:
- Регулярная потеря конфигурационных файлов
- Зависания маршрутизатора при загрузке/перезагрузке и включении/выключении metaROUTER
- Износ флеш-памяти маршрутизатора
- Отсутствие поддержки openwrt
- Мертвые репозитории
- Дыры в безопасности (отсутствует fail2ban)
- Старая версия Asterisk
Перед настройкой файрвола
В этой и следующей части статьи используется следующая топология сети:
- WAN – 172.30.10.26/24, Default Gateway 172.30.10.1
- DMZ – 10.10.10.1./24
- LAN – 192.168.88.1/24
Как это настроить — смотрите статью "Разумная настройка RB2011"
Немного повторяя статью по настройке RB 2011, я позволю себе напомнить, что для начала необходимо отключить неиспользуемые на маршрутизаторе сервисы. Фактически для настройки и работы с маршрутизатором нам достаточно сервисов:
- Winbox – порт 8291 TCP;
- Ssh – порт 22 TCP;
- www – порт 80 TCP;
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Этап 1. Отключение ненужных сервисов
Открываем меню IP / Services и воспользовавшись кнопкой Disable отключаем ненужные нам сервисы.
Если вы используете для работы с MikroTik протокол ssh, хорошей идеей будет изменить его стандартный порт на какой-нибудь другой, например 65522. Для этого дважды щелкаем по строке с ssh и в открывшемся окне меняем порт:
Нажав ОК, подтверждаем выбор.
А вот в случае атаки порта ssh к маршрутизатору, находящемуся на внешнем IP адресе, производится до нескольких сотен попыток несанкционированного подключения в сутки.
Web-интерфейс, конечно, тоже лучше отключить, но если вы по каким-то причинам не можете использовать для настройки winbox, то будет хорошим решением разрешить доступ к web-интерфейсу маршрутизатора только из локальной сети.
Для этого дважды щелкаем по строке с www и заполняем поле available from :
Нажав кнопку ОК, подтверждаем выбор.
Вам помогла эта статья?
Приглашаем пройти обучение в нашем тренинг-центре и научиться настраивать оборудование MikroTik на профессиональном уровне! Узнайте расписание ближайших курсов и бронируйте место!
Должно получиться вот так:
И запрещаем с этих подсетей соединения на WAN-порт маршрутизатора:
Разрешаем все уже установленные подключения (connection state=established):
Настройка цепочки forward
/ip firewall filter
1. Правила для пропуска established и related пакетов и сброса invalid пакетов, как и в цепочке input
add chain=forward action=accept connection-state=established
add chain=forward action=accept connection-state=related
add chain=forward action=drop connection-state=invalid
2. Пропуск запросов из локальной сети
add chain=forward action=accept in-interface=bridge-local src-address=192.168.1.0/24
3. Пропуск проброшенных пакетов на 192.168.1.100
add chain=forward action=accept protocol=tcp dst-address=192.168.1.100 dst-port=3389
4. Всё остальное сбрасываем
add chain=forward action=drop
/ip firewall filter
add chain=forward action=accept connection-state=established
add chain=forward action=accept connection-state=related
add chain=forward action=drop connection-state=invalid
add chain=forward action=accept in-interface=bridge-local src-address=192.168.1.0/24
add chain=forward action=accept protocol=tcp dst-address=192.168.1.100 dst-port=3389
add chain=forward action=drop
г. Санкт-Петербург, Крестовский остров, Северная дорога, дом 12.
г. Санкт-Петербург, ст. м. «Василеостровская»,
ул. Уральская, д. 17, корпус 3, этаж 2
Продолжение статьи . Базовая настройка безопасности маршрутизатора — настройка файрвола.
Настройка маркировки пакетов
Для работы QoS будет использоваться маркировка пакетов файрволом и механизм «Queue Tree».
Настройка:
( приведены шаги настройки через web-интерфейс и консоль)
Настраиваем маркировку пакетов файрволом
Маркировать пакеты будем в цепочке forward таблицы Mangle
Добавляем кнопкой «Add New» следующие правила:
Chain forward
Src. Address 192.168.1.0/24
Action mark packet
New Packet Mark def_out
Chain forward
Dst. Address 192.168.1.0/24
Action mark packet
New Packet Mark def_in
Chain forward
Src. Address 192.168.1.100
Action mark packet
New Packet Mark voip_out
Chain forward
Dst. Address 192.168.1.100
Action mark packet
New Packet Mark voip_in
Из консоли это делается так:
/ip firewall mangle
add action=mark-packet chain=forward new-packet-mark=def_out src-address=192.168.1.0/24
add action=mark-packet chain=forward new-packet-mark=def_in dst-address=192.168.1.0/24
add action=mark-packet chain=forward new-packet-mark=voip_out src-address=192.168.1.100
add action=mark-packet chain=forward new-packet-mark=voip_in dst-address=192.168.1.100
Таким образом весь исходящий трафик из подсети 192.168.1.0/24 маркируется меткой def_out, входящий трафик — меткой def_in, исходящий трафик с хоста Asterisk маркируется меткой voip_out, входящий — меткой voip_in.
1. Настройка маркировки пакетов
2. Настройка очередей
Читайте также: