#security #configuration #firewall
#Безопасность #конфигурация #брандмауэр
Вопрос:
Вступление Opensnitch
opensnitch — это инструмент безопасности с открытым исходным кодом, созданный по образцу приложения MAC OS-X. littlesnitch
Я использую на своем рабочем столе форк opensnitch Густаво Инигуэса Гойи (что является большим улучшением по сравнению с оригинальной замечательной новаторской работой Симоны Маргарителли), чтобы ограничить исходящие соединения на основе правил. Цель состоит в том, чтобы усилить безопасность исходящей сети, например, для обнаружения вредоносных программ или ограничения некоторых приложений «домашний телефон» от общения с внешним миром.
Конфигурация / правила
Правила по умолчанию, которые управляют opensnitch, создаются в соответствии /etc/opensnitchd/rules
с хранятся в виде *.json
файлов, по одному файлу на правило. Когда я использую пользовательский интерфейс для добавления правила, создается новый *.json
файл правила.
Пример правила (урезано для краткости):
{
"name": "allow-always-simple-usrbinpython",
"enabled": true,
"action": "allow",
"duration": "always",
"operator": {
"type": "simple",
"operand": "process.path",
"data": "/usr/bin/python",
}
}
Проблема
Эти правила могут быть слишком грубыми при их настройке из пользовательского интерфейса. например, когда я разрешаю определенному сценарию, который я написал, общаться с внешним миром, и этот исполняемый файл просто записывается при python
выборе executableопции и щелчкеAllow, я непреднамеренно разрешаю любому python
сценарию общаться с внешним миром.
Поискав в Интернете, я смог найти хороший обзор opensnich, в котором отсутствует подробная информация о том, как указывать конъюнктивные правила непосредственно в *.json
командной строке и сопоставлять их с полной командной строкой, с примерами.
Вопросы:
- Возможно ли ограничить такое правило и разрешить запуск только определенного исполняемого скрипта (1-й аргумент
/usr/bin/python
)? - В более общем плане: каков будет синтаксис, с примером, для
AND
соединения в правиле и предложения для регулярного выражения -сопоставление с другими аргументами командной строки или удаленными IP-адресами или обоими?
Ответ №1:
Возможно ли ограничить такое правило и разрешить запуск только определенного исполняемого скрипта (1-й аргумент в /usr/ bin / python)?
Вы можете выбрать опцию «из этой командной строки» для фильтрации по всей команде.
В более общем плане: каким будет синтаксис, с примером, для соединения AND в правиле и предложения для сопоставления регулярных выражений с другими аргументами командной строки или удаленными IP-адресами или обоими?
взгляните на документацию (возможно, вы уже это сделали… но на всякий случай):
https://github.com/gustavo-iniguez-goya/opensnitch/wiki/Rules
https://github.com/gustavo-iniguez-goya/opensnitch/wiki/Rules-editor
Например, если вы хотите выполнить фильтрацию по определенному скрипту (python):
[x] Из этой командной строки: « .*/usr/bin/dnsping.*
»
(Кстати, мы наконец-то вносим свой вклад в исходное репозиторий, поэтому вы можете использовать последние версии оттуда)
Комментарии:
1. Спасибо, Густаво. Также для всей вашей работы над
opensnitch
. С тех пор я узнал, что могу редактировать правила непосредственно из пользовательского интерфейса (opensnitch-ui
), щелкнувrules
, затем дважды щелкнув по имени правила, а затем щелкнув по маленькому белому квадратному значку (редактировать) рядом с<
обратным значком. Эта многоступенчатая последовательность была для меня неочевидной. Возможно, более интуитивное поведение: двойной щелчок в любом месте строки правила ведет непосредственно к экрану редактирования для этого правила, а на экране редактирования также есть кнопка удаления правила (может быть, в этом смысл[<x reset]
? не очевидно).2. Я согласен с arielf, мы обсуждали несколько недель назад именно для изменения этого поведения 🙂 Мы скоро это изменим.