Для блокировки вниз уровня, Вы хотите (я ответил на Ваш другой вопрос), Вы закончите тем, что повредили вещи.
Я действительно должен не согласиться с Вашим намерением.
Я объединился бы, heartbeat со здоровьем контролируют также. например, ищите блоки, запишите ЦП, используйте dmv и т.д.
Я также надеюсь, что Вы расточаете столько же внимания на остальную часть Вашей сети, сервера, ПК и т.д.
Например, SQL Server только, Вы используете Серверное шифрование протокола SQL Server? Только с помощью tcp? Используя групповую политику для ограничения, кто может получить доступ к серверу? Логины SQL следуют за политикой пароля пользователя в домене? Сервисная учетная запись SQL заблокирована вниз?
Определенные классы действительно означают, что класс включен. Только быть ясным, <% if broadcast ...
бит не является способом проверить включение широковещательного класса, а скорее к синтаксису условного выражения с помощью значения широковещательной переменной, массив классов содержит названия всех определенных классов.
Это было бы то, как Вы проверите на mod_security класс, например:
<% if classes.include?("mod_security") %> conditional text <% end %>
Править:
Возгласы... метод называют, включают? не включает?. Зафиксированный выше.
Будьте тщательным выполнением этого, потому что, включен ли класс в переменную 'классов', зависит от того, когда в марионетке работает, этот конкретный шаблон оценен, и это могло бы быть недетерминировано. Довольно возможно, что Ваш шаблон будет оценен, и затем позже во время выполнения Ваш mod_security класс включен и оценил.
Два пути вокруг этого:
если можно гарантировать, что это будет добавлено внешним классификатором узла, это безопасно
лучше все еще сделайте пользовательский факт, который устанавливает присутствие mod_security, и используйте это factname в качестве Вашей условной переменной.
Facter.add("mod_security_version") setcode делают версию = % {об/мин - обеспечение качества | grep mod_security} если version.empty? версия = 0 концов конца версии конца
Затем в Вашем шаблоне:
<% if ! mod_security_version.eql?("0") %>
Include modsecurity.d/*.conf
<% end %>
Обратите внимание, что это должно быть сравнением строк (нет mod_security_version != 0
) потому что все факторные факты являются строками, после того как они поражают ERB.