Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Сохранение полученных ip в формате команды для роутеров Mikrotik (ip/firewall/address-list add) #9

Closed
wants to merge 3 commits into from

Conversation

Shaman2010
Copy link

Приветствую! Погляди реквест, может захочешь добавить.
Тут просто добавил сохранение в формате команды для CLI Mikrotik роутеров.

@Ground-Zerro
Copy link
Owner

Как в итоге должна выглядеть команда для микротика? Не пользовался их техникой, разобраться не могу.
Нашел что правила для фаервола через CLI добавляются так (пример):
порт
/ip firewall filter add chain=input action=drop protocol=tcp dst-port=80,443 comment="Block HTTP/HTTPS"
ip
/ip firewall filter add chain=input src-address=100.200.1.2 action=drop comment="Block IP 100.200.1.2"
ip + порт
/ip firewall filter add chain=input src-address=100.200.1.2 protocol=tcp dst-port=443 action=drop comment="Block IP 100.200.1.2 on port 443"

@Shaman2010
Copy link
Author

Shaman2010 commented Aug 12, 2024

Привет, ещё раз!
Это команда, формат которой я добавил, добавляет ip-шик в список адресов (address-list) фаервола, а не правила самого фаервола, как в твоем примере. Я, например, использую ее, чтобы набивать разные списки и в дальнейшем заворачивать трафик в разные шлюзы/VPN каналы с их помощью.
В CLI Mikrotik-ов поддерживается пробел и "/" в качестве разделителя при навигации по иерархии "меню". В данном случае я использую "/":
ip/firewall/address-list add address=<ip or domain/dns name> list=<address-list name> comment=<comment>

Прочитать можно тут.

Upd: Можно в начало так же добавить "/", чтобы это был абсолютный путь меню, а не относительный, как я сделал. Думаю, что так будет лучше.

@Ground-Zerro
Copy link
Owner

Добавил.

Пир резолве нескольких списков в comment пишутся все сервисы через запятую:
/ip/firewall/address-list add list=Spisok comment=Antifilter community edition, Youtube, Facebook, Openai address=23.200.154.209/32
Не знаю как CLI микрота отнесется к спецсимволам и пробелам. Можно в таком случае например заменить на одно слово.
Изначально без фильтров выглядит так:
/ip/firewall/address-list add list=Spisok comment=['Antifilter community edition', 'Youtube', 'Facebook', 'Openai'] address=23.200.154.209/32

@Shaman2010
Copy link
Author

Shaman2010 commented Aug 13, 2024

Добавил.

...без фильтров выглядит так: /ip/firewall/address-list add list=Spisok comment=['Antifilter community edition', 'Youtube', 'Facebook', 'Openai'] address=23.200.154.209/32

Посмотри еще раз пож, потому как у меня (под Fedora 39, Python 3.12.3), при использовании конструкции вида ",".join(selected_services) на выходе получилось:

/ip/firewall/address-list add list=spisok comment="Antifilter community edition,Youtube,Facebook,Openai,Tik-Tok,Instagram,Twitter,Netflix,Bing,Adobe,Apple,Google,Tor-Truckers,Search-engines,Custom DNS list" address=185.88.181.56/32
/ip/firewall/address-list add list=spisok comment="Antifilter community edition,Youtube,Facebook,Openai,Tik-Tok,Instagram,Twitter,Netflix,Bing,Adobe,Apple,Google,Tor-Truckers,Search-engines,Custom DNS list" address=104.17.193.8/32
...

Добавил кавычки для комментария, так как упустил момент, что название сервиса может содержать пробелы.

@Ground-Zerro
Copy link
Owner

Так как в итоге должен выглядеть comment?
Если так:
comment="Antifilter community edition,Youtube,Facebook,Openai,Tik-Tok,Instagram,Twitter,Netflix,Bing,Adobe,Apple,Google,Tor-Truckers,Search-engines,Custom DNS list"
то вставлю \"{",".join(selected_service)}\".
Главно чтоб работало и полезно было.

@Shaman2010
Copy link
Author

Если так: comment="Antifilter community edition,Youtube,Facebook,Openai,Tik-Tok,Instagram,Twitter,Netflix,Bing,Adobe,Apple,Google,Tor-Truckers,Search-engines,Custom DNS list"

Да, именно так и должно быть.
На счет пользы - мне стало удобнее Ctrl-A Ctrl-C и потом в консоли Mikrotika Ctrl-V.
В целом это просто облегчает ручное copy-paste.

@Ground-Zerro
Copy link
Owner

Добавлено.

Небольшие изменения, на всякий случай - строка не будет содержать пробелов.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants