Назад | Перейти на главную страницу

iptables: изменить политику или использовать универсальное правило?

Что вы делаете при настройке iptables: измените политику по умолчанию (iptables -P INPUT DROP, например) или добавьте универсальное правило в конце набора правил (iptables -A INPUT DROP)? Если вы все же предпочитаете что-то конкретное, в чем причина вашего предпочтения?

Это может быть слишком субъективным вопросом для этого форума, но, возможно, есть несколько веских веских причин выбрать один из них, о которых я не знаю.

Против моей политики, что, вероятно, проще заблокировать себя на сервере из-за чрезмерно оптимистичного iptables -F. Для этого у меня, вероятно, проще удалить универсальное правило, не заметив его, фактически оставив сервер открытым (у меня такое случалось со мной в прошлом).

Это правда, что вы не должны полагаться на брандмауэр как на единственную защиту от Интернета (большую часть времени вы можете привязать внутренние сетевые службы только к localhost или внутренней сети, например), но иногда приходится открывать полу- общедоступные услуги для конкретной исходной сети и т. д.

Лично я предпочитаю первое, если пишу набор правил с нуля, но придерживаюсь того, что уже есть, при обновлении существующего.

Я использую и то, и другое, устанавливая политику и последнее правило отбрасывания, потому что я такой хардкор.

Мои правила определены в скрипте, который я вызываю и обновляю. Я никогда не вызываю iptables напрямую, кроме как для того, чтобы изредка перечислять правила / статистику. Я никогда не видел причины, по которой один лучше другого.

Вот две причины, по которым может быть лучше иметь универсальное правило:

  1. Политика по умолчанию имеет ограниченные возможности. Если вы не хотите, чтобы пакет прошел, у вас есть выбор: DROP (пакет падает на пол). В универсальном правиле вы можете использовать REJECT, который может отправлять ответ ICMP.
  2. Если у вас есть сценарии, которые анализируют вывод команды iptables -L, правило для всех остальных правил отображается в том же формате, что и все другие правила, что упрощает анализ.

Что касается компромисса, я бы предпочел иметь машину без брандмауэра в течение определенного периода времени, случайно (что является риском наличия -P ALLOW, если вы сбросите свои правила и забудете или что-то подобное), чем иметь машину случайно отключились от сети (что является следствием сброса, если политика DROP). Я считаю, что брандмауэр - не единственный метод защиты моих серверов, поэтому неисправность брандмауэра является скорее ошибкой, чем катастрофой. Чаще всего сервис недоступен для пользователей является катастрофа.

Я только что заметил: политика DROP позволяет добавлять правила в набор правил, используя iptables -A постфактум. Это может быть удобно, поскольку позволяет легко упорядочивать набор правил, и может быть особенно полезно, когда вы создаете набор правил на лету (сохраняя его впоследствии с помощью iptables-save или что-то в этом роде).