Передача команд брандмауэру

Технические вопросы по UTM 5.0
Ответить
Iskatel
Сообщения: 19
Зарегистрирован: Пт апр 15, 2016 10:08

Передача команд брандмауэру

Сообщение Iskatel »

Подскажите, пожалуйста, где ещё может быть прописано какие команды передаются брандмауэру кроме как в настройках utm_admin "Настройки" - "Правила firewall"?

Jonson
Сообщения: 150
Зарегистрирован: Ср фев 02, 2005 21:48
Откуда: МО, Ногинский р-он

Сообщение Jonson »

Не понятна цель вопроса, поэтому предположу, что команда может передаваться не напрямую фаерволу, а скрипту, в котором могут быть дополнительные правила

Iskatel
Сообщения: 19
Зарегистрирован: Пт апр 15, 2016 10:08

Сообщение Iskatel »

Цель вопроса - исследовать систему. Где может быть прописан вызов подобного скрипта?

kirush
Сообщения: 699
Зарегистрирован: Пт фев 04, 2005 13:58

Сообщение kirush »

rfw5.cfg:

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

### firewall_path
##  Description: Path to the executable file that performs firewall management.
##  Possible values&#58; <name of an executable file>
##  Required field

Iskatel
Сообщения: 19
Зарегистрирован: Пт апр 15, 2016 10:08

Сообщение Iskatel »

В rfw5.cfg прописано:

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

firewall_type=local
firewall_path=/usr/local/bin/mikrotik_ssh.sh
rfw_name=mt1
rfw_login=mt1
dont_fork=yes
В /usr/local/bin/mikrotik_ssh.sh прописано:

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

#!/bin/sh
ssh utm5@192.168.0.4 "$*"
echo "$*" >> /netup/utm5/log/mikrotik.log
По адресу 192.168.0.4 находится устройство MikroTik RouterBoard, я так понимаю все команды передаются ему по ssh, только непонятно как это работает, если в rfw5.cfg логин - mt1, а в скрипте - utm5.
В рамках исследования системы этот вопрос конечно же интересен, но всё же изначальный вопрос был не КАК передаются команды брандмауэру, а КАКИЕ передаются команды брандмауэру. Передаются только те команды, которые прописаны в настройках utm_admin "Настройки" - "Правила firewall" или ещё какие-то?
Чтобы ещё лучше понять в чём суть вопроса - опишу практическую задачу, которая возникла вот сейчас:
Абоненты идентифицируются по MAC-адресу, DHCP-сервер, работающий на MikroTik RouterBoard выдаёт им статические ip-адреса. Соответственно чтобы поменять абоненту ip-адрес нужно передать на MikroTik RouterBoard команды.
В UTM я вижу только два правила, которые взаимодействуют с DHCP-сервером, смотрите скриншоты:
Изображение Изображение
Тут явно что-то недоработано.
Во-первых при изменении ip-адреса, после внесения изменений приходится делать "выключить Интернет", "включить Интернет", чтобы сработали эти правила, как бы сделать так чтобы команды генерировались без выключения просто на изменение данных.
Во вторых, команда "/ip dhcp-server lease add address=UIP mac-address=MAC" завершится ошибкой, если правило с таким ip-адресом или mac-адресом уже существует, поэтому получается что никакие команды не выполняются, настройки DHCP-сервера остаются прежненеми и при смене ip-адреса в UTM абонент продолжает получать старый ip-адрес.
Что со всем этим можно сделать?

Аватара пользователя
Voronok
Сообщения: 116
Зарегистрирован: Пт мар 14, 2008 19:21

Сообщение Voronok »

Непонятна Ваша логика. По событию "Включение интернета" Вы редактируете существующую связку IP-MAC на микротике, а по событию "Выключение интернета" - добавляете новую.

По-хорошему, Вам нужно у правила "MAC" изменить событие на "Изменение сервисной связки", а у правила "Add IP+MAC" на "Добавление сервисной связки". Плюс добавить еще одно правило, например, "Del IP+MAC", записать туда команду "/ip dhcp-server lease remove [find address=UIP]" и поставить событие "Удаление сервисной связки". Тогда всё будет работать так, как Вы хотите.

Только это Вам не поможет включать/выключать интернет у абонента. Во-первых, у абонентского устройства может не закончиться аренда IP-адреса и оно ещё какое-то время будет работать с назначенным адресом. Во-вторых, никто не мешает абоненту прописать IP-адрес вручную и он также будет пользоваться интернетом. Все вышеперечисленные действия позволят Вам только выдавать IP-адреса согласно маку.

Чтобы включать/выключать интернет Вам нужно использовать firewall на микротике. Схема такая же. Делаете (в IP-Firewall-Filter rules) два правила на входящий и исходящий трафик. На вкладке Advanced правила указываете адрес-лист, в котором будут абоненты с включённым интернетом. Затем (или, наоборот, в начале) создаёте адрес-лист (в IP-Firewall-Address Lists) с таким же именем, какое указали в правиле. После этого надо создать в админке три правила фаервола. Одно повесить на событие "Включение интернета", второе на "Выключение интернета", третье на "Изменение сервисной связки". Ну и, соответственно, прописать в них команды, которые будут добавлять, удалять и изменять записи в адрес-листе на микротике. Примерно как-то так.

Iskatel
Сообщения: 19
Зарегистрирован: Пт апр 15, 2016 10:08

Сообщение Iskatel »

Voronok писал(а):Непонятна Ваша логика. По событию "Включение интернета" Вы редактируете существующую связку IP-MAC на микротике, а по событию "Выключение интернета" - добавляете новую.

По-хорошему, Вам нужно у правила "MAC" изменить событие на "Изменение сервисной связки", а у правила "Add IP+MAC" на "Добавление сервисной связки". Плюс добавить еще одно правило, например, "Del IP+MAC", записать туда команду "/ip dhcp-server lease remove [find address=UIP]" и поставить событие "Удаление сервисной связки". Тогда всё будет работать так, как Вы хотите.

Только это Вам не поможет включать/выключать интернет у абонента. Во-первых, у абонентского устройства может не закончиться аренда IP-адреса и оно ещё какое-то время будет работать с назначенным адресом. Во-вторых, никто не мешает абоненту прописать IP-адрес вручную и он также будет пользоваться интернетом. Все вышеперечисленные действия позволят Вам только выдавать IP-адреса согласно маку.

Чтобы включать/выключать интернет Вам нужно использовать firewall на микротике. Схема такая же. Делаете (в IP-Firewall-Filter rules) два правила на входящий и исходящий трафик. На вкладке Advanced правила указываете адрес-лист, в котором будут абоненты с включённым интернетом. Затем (или, наоборот, в начале) создаёте адрес-лист (в IP-Firewall-Address Lists) с таким же именем, какое указали в правиле. После этого надо создать в админке три правила фаервола. Одно повесить на событие "Включение интернета", второе на "Выключение интернета", третье на "Изменение сервисной связки". Ну и, соответственно, прописать в них команды, которые будут добавлять, удалять и изменять записи в адрес-листе на микротике. Примерно как-то так.
Это не моя логика, настраивали до меня.
Я описал только правила, которые взаимодействуют с DHCP-сервером, их всего два, ещё есть правила, взаимодействующие с фаерволом, их - семь, и там свои грабли. Так на микротике разрешён трафик абонентов, включённых в группу allow_list и запрещён для группы no_money. Правила реагируют тоже только на события "включение Интернета", "выключение Интернета", включение осуществляется командой:

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

/ip firewall address-list add address=UIP list=allow_list comment=UID
грабли в том, что если абоненту ставим ip, который ранее принадлежал другому абоненту и находится в группе no_money - то в результате этот ip окажется одновременно в группах allow_list и no_money.
Про изменение сервисной связки. Я так понимаю правило будет работать если в сервисной связке изменится MAC, но не будет работать, если изменится IP?

Аватара пользователя
Voronok
Сообщения: 116
Зарегистрирован: Пт мар 14, 2008 19:21

Сообщение Voronok »

Даже простое открытие и нажатие "Ок" в сервисных связках приведёт к срабатыванию правила по событию "Изменение сервисной связки".

Ну вот правила управления DHCP у Вас, на мой взгляд, такое ощущение, что сделаны от балды. Сделайте как я написал в первой части поста и посмотрите на результат, должно работать корректно.

А вообще совет. Выпишите на бумажку (в блокнот) в виде таблицы все Ваши правила из админки, распишите, какие действия и по каким событиям они выполняют на микротиках и всё проанализируйте. Тогда станет понятна логика работы и всплывут все косяки. После этого исправить всё будет лишь делом времени.

Iskatel
Сообщения: 19
Зарегистрирован: Пт апр 15, 2016 10:08

Сообщение Iskatel »

Ещё раз:
события "включение интернета", "выключение интернета" возникают когда оператор в карточке пользователя на вкладке лицевые счета выполняет действия "выключить Интернет", "включить Интернет"
события "изменение сервисной связки" нет (во всяком случае в моей версии utm 5.3-002 я не вижу), есть "изменение пользователя", "изменение тех. параметра" и "изменение связки IP трафик". Какое из них должно возникать когда оператор открывает и нажимает "Ок" в сервисных связках?
Также интересуюсь какие события должны возникать в определённые моменты времени на системных часах. Допустим есть два временных диапазона 00.00-07.59 и 08.00-23.59, и есть несколько тарифов в которых нужно включать "ночное ускорение"

Аватара пользователя
Voronok
Сообщения: 116
Зарегистрирован: Пт мар 14, 2008 19:21

Сообщение Voronok »

Писал по памяти. Под событием "изменение сервисной связки" подразумевалось "изменение связки IP трафик".

События "включение интернета", "выключение интернета" возникают также при окончании средств на счету и пополнении баланса.

С ночным ускорением не помогу, т.к. биллинг для этого не используем, рулим на оборудовании. По идее, нужно смотреть в сторону модуля динамического шейпирования. События - связанные с шириной входящего/исходящего каналов (там есть такие).

Iskatel
Сообщения: 19
Зарегистрирован: Пт апр 15, 2016 10:08

Сообщение Iskatel »

Сегодня попробовал поменять правила для dhcp-сервера и ничего не получилось.
Событие на изменение сервисной связки возникает, но микротик его не обрабатывает.
Попробовал в командной строке микротика ввысти сгенерированную команду:

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

/ip dhcp-server lease set &#91;find address=10.84.113.26&#93; mac-address=50&#58;AF&#58;73&#58;12&#58;B6&#58;EE
Не ругается, но ничего и не делает.
Связка с таким MAC-адресом в микротике уже существует. IP в связке не меняется.

adeep
Сообщения: 79
Зарегистрирован: Пт июн 24, 2005 18:59

Сообщение adeep »

Iskatel писал(а):Сегодня попробовал поменять правила для dhcp-сервера и ничего не получилось.
Событие на изменение сервисной связки возникает, но микротик его не обрабатывает.
Попробовал в командной строке микротика ввысти сгенерированную команду:

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

/ip dhcp-server lease set &#91;find address=10.84.113.26&#93; mac-address=50&#58;AF&#58;73&#58;12&#58;B6&#58;EE
Не ругается, но ничего и не делает.
Связка с таким MAC-адресом в микротике уже существует. IP в связке не меняется.
Поправьте скрипт так, чтобы он все команды которые посылаются на микротик складывал в лог рядом. и разбирайте по каждому варианту

Iskatel
Сообщения: 19
Зарегистрирован: Пт апр 15, 2016 10:08

Сообщение Iskatel »

Команды из лога я уже пробовал использовать непосредственно в командной строке микротика. Пришёл к выводу, что дело как раз в команде, тут нужно выполнять не одну, а сразу несколько команд. Есть ли возможность из UTM5 передавать на Микротик последовательность команд или для этого нужен скрипт на самом микротике.

Iskatel
Сообщения: 19
Зарегистрирован: Пт апр 15, 2016 10:08

Сообщение Iskatel »

Нашёл то, что команды MikroTik можно вводить в фигурных скобках через точку с запятой. Соответственно хочу передать конструкцию из трёх команд: первые две будут удалять связки, если уже существуют связки с заданным IP и заданным MAC, чтобы не было ошибки при выполнении третьей команды. Написал так:

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

&#123;/ip dhcp-server lease remove &#91;find address=UIP&#93;;/ip dhcp-server lease remove &#91;find mac-address=MAC&#93;;/ip dhcp-server lease add address=UIP mac-address=MAC&#125;
и вписал эту команду в правило возникающее при событии "Изменение связки IP трафик".
Правило срабатывает при редактировании сервисной связки, но параметры из него удаляются. В лог попадает это:

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

&#123;/ip dhcp-server lease remove &#91;find address=&#93;;/ip dhcp-server lease remove &#91;find mac-address=&#93;;/ip dhcp-server lease add address= mac-a
ddress=&#125;

Ответить