RegExp как API

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
Аватара пользователя
Brook
Сообщения: 127
Зарегистрирован: 24 май 2022, 00:29

Чтобы не использовать сервис www, нужно отлавливать пакеты в NAT, в цепочке dstnat.

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

К примеру 

http://myip:8087/securekey/scriptname

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

Отловится правилом

ip firewall nat add chain=dstnat protocol=tcp dst-port=8087 layer7-protocol=scriptName action=<на усмотрение>


Inner
Сообщения: 248
Зарегистрирован: 01 июл 2020, 16:02

xvo писал(а): 11 авг 2022, 15:05 Все, понял.
Request то только в уже установленной сессии отправляется.
Тогда хотя бы порт нестандартный используйте.

Ну а вообще, держать вебку открытой наружу ради вот этого всего...
Надо обладать недюжинной смелостью и верой в микротик :-)
Думаю, если использовать сложные логин и пароль - ничего страшного не случится. У меня 3 устройства смотрят стандартным winbox'ом в интернет. И всё хорошо уже лет 5. Главное своевременно обновлять ros и банить ip с неудачными попытками входа.


Inner
Сообщения: 248
Зарегистрирован: 01 июл 2020, 16:02

Brook писал(а): 11 авг 2022, 15:18 Чтобы не использовать сервис www, нужно отлавливать пакеты в NAT, в цепочке dstnat.

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

К примеру 

http://myip:8087/securekey/scriptname

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

Отловится правилом

ip firewall nat add chain=dstnat protocol=tcp dst-port=8087 layer7-protocol=scriptName action=<на усмотрение>
А это отличная заплатка в безопасности. Решает кучу проблем


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Brook писал(а): 11 авг 2022, 15:18 Чтобы не использовать сервис www, нужно отлавливать пакеты в NAT, в цепочке dstnat.
С чего бы?
Та же история, что и с цепочкой prerouting - нужна установленная TCP сессия, если на этом конце сессию никто не установит, то http request клиент не отправит.
Inner писал(а): 11 авг 2022, 15:47 Думаю, если использовать сложные логин и пароль - ничего страшного не случится.
Ну вот в 18ом году много у кого случилось, без разницы, какой там был пароль :)


Telegram: @thexvo
Inner
Сообщения: 248
Зарегистрирован: 01 июл 2020, 16:02

xvo писал(а): 11 авг 2022, 16:09
Brook писал(а): 11 авг 2022, 15:18 Чтобы не использовать сервис www, нужно отлавливать пакеты в NAT, в цепочке dstnat.
С чего бы?
Та же история, что и с цепочкой prerouting - нужна установленная TCP сессия, если на этом конце сессию никто не установит, то http request клиент не отправит.
Inner писал(а): 11 авг 2022, 15:47 Думаю, если использовать сложные логин и пароль - ничего страшного не случится.
Ну вот в 18ом году много у кого случилось, без разницы, какой там был пароль :)
Суть dst-nat в том, что можно 80 порт (или иной) переправить на что-то внутри. И просто перехватывать правилом L7 нужную ключевую пару. А касательно логина и пароля, я ж ещё добавил, что главное своевременно обновляться. Конечно использовать дополнительно нестандартный порт однозначно нужно. Но это уже базовые вещи.


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Inner писал(а): 11 авг 2022, 16:18 Суть dst-nat в том, что можно 80 порт (или иной) переправить на что-то внутри. И просто перехватывать правилом L7 нужную ключевую пару.
"Внутри" тогда тоже нужно что-то, что будет устанавливать соединения на этом порту.


Telegram: @thexvo
Аватара пользователя
Brook
Сообщения: 127
Зарегистрирован: 24 май 2022, 00:29

Друзья, в этом варианте никакой установленной сессии не нужно

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

ip firewall nat add chain=dstnat protocol=tcp dst-port=8087 layer7-protocol=scriptName action=add-dst-to-address-list address-list=scriptName
Мы ловим SYN пакеты и никуда дальше их не отправляем. В поле action ставим add-dst-to-address-list и получаем тот же профит, что и с mangle


Inner
Сообщения: 248
Зарегистрирован: 01 июл 2020, 16:02

xvo писал(а): 11 авг 2022, 16:21
Inner писал(а): 11 авг 2022, 16:18 Суть dst-nat в том, что можно 80 порт (или иной) переправить на что-то внутри. И просто перехватывать правилом L7 нужную ключевую пару.
"Внутри" тогда тоже нужно что-то, что будет устанавливать соединения на этом порту.
Ну, это может быть почти что угодно. Лишь бы оно могло ответить. В минимальной комплектации www включить на нестандартный порт. В средней, развернуть за роутером что-то что сможет ответить на запрос и форвордить туда (соответственно отлавливать). Максимальную даже сложно представить :-): Можно ж и порт кнокинг, и впн, и нестандартную длину пакета, и что-то за роутер, и вообще всё вместе. И наступит однажды день, когда и этого всего вместе окажется мало.

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


Inner
Сообщения: 248
Зарегистрирован: 01 июл 2020, 16:02

Brook писал(а): 11 авг 2022, 16:26 Друзья, в этом варианте никакой установленной сессии не нужно

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

ip firewall nat add chain=dstnat protocol=tcp dst-port=8087 layer7-protocol=scriptName action=add-dst-to-address-list address-list=scriptName
Мы ловим SYN пакеты и никуда дальше их не отправляем. В поле action ставим add-dst-to-address-list и получаем тот же профит, что и с mangle
Только что пробовал. Не ловит. Грешу на фаервол. С www проще, так как он игнорирует правила.


Аватара пользователя
Brook
Сообщения: 127
Зарегистрирован: 24 май 2022, 00:29

А у меня всё отработало.

Тут прописал порт 8087, можно любой прописать...
http://myip:8087/securekey/scriptname

Тут его указал... В layer7 выбрал правило Regexp
ip firewall nat add chain=dstnat protocol=tcp dst-port=8087 layer7-protocol=scriptName action=add-dst-to-address-list address-list=scriptName

Поймал пакеты. Адрес-лист создался... ЧЯДНТ?


Ответить