Есть ли инструмент для мониторинга того, что iptables (или shorewall или что-то подобное) запущены и работают с основным набором важных правил? Мне нужно что-то, что оповестит меня, если брандмауэр полностью отключится, или если одно из нескольких правил больше не будет активным по какой-либо причине.
Я не хочу проверять функциональность брандмауэра, подключаясь к портам или (что еще хуже) проверяя, подключаются ли другие.
Сервер: Debian wheezy, стандартная установка. Допустим, я хочу проверить, что правило порта 80 открыто для всего мира, а порт 8080 только для определенного ip abcd
Один из способов — сохранить рабочие правила в виде текстового файла, а затем ежедневно запускать cron-задание, которое сравнивает текущие правила с исходными, но я надеюсь, что есть что-то еще, что я могу использовать. Возможно ли добиться этого в munin или nagios?
решение1
Вы можете использоватьнмапинструмент для базового илиhping3для более продвинутого аудита безопасности правил вашего брандмауэра. Эта команда nmap, запущенная удаленно на вашем брандмауэре, может протестировать наборы правил вашего брандмауэра:
nmap -p 0-65535 -Pn FIREWALL_HOST
Или вы можете реализовать своего рода аудит с помощью LOG
расширения iptables target, чтобы регистрировать все, что не соответствовало предыдущим правилам:
# firewal rulesets
iptables -A INPUT -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -s 1.2.3.5 -j ACCEPT
....
....
....
# this rule will log everything suspicious not matched before
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP
Наконец, ваша идея сравнить дамп наборов правил тоже неплоха. Вы можете использовать diff
его для проверки кода возврата команды:
iptables -L -n > RULESET_FILE
if ! diff RULESETS_FILE <(iptables -L -n) > RULESETS_CHANGES; then
echo "Rulesets changed"
fi
решение2
попробуйте сравнить
iptabes-save
и конфигурация запуска (/etc/sysconfig/iptables и т.д.). Если все в порядке - это должно быть идентично.