Мне было интересно, может ли кто-нибудь помочь мне со следующим правилом iptables:
Мы хотели бы разрешить ЛЮБОЙ и ВСЕ локально исходящий (например, на сервере, на котором работает iptables) трафик.
DNS, HTTP и т.д ... все это. Любое соединение, инициированное сервером, на котором запущен iptables, должно быть разрешено.
В настоящее время мы используем в основном политику OUTPUT по умолчанию, ACCEPT. Это правильно? Входы заблокированы, поэтому я предполагаю, что это означает, что соединения (кроме тех, которые мы разрешаем) не могут быть запущены, потому что они будут сброшены, прежде чем наша сторона сможет выполнить политику OUTPUT?
Извините, у меня слабые навыки iptables;)
Спасибо, любезно.
-d 0.0.0.0/0
избыточно и не нужно.Этого достаточно для OUTPUT, потому что Netfilter не нуждается в специальных правилах для запуска отслеживания соединений с отслеживанием состояния.
Но если вы хотите отфильтровать входящий трафик в соответствии с политикой запрета по умолчанию, это можно сделать с помощью переключателя
INPUT
-chainDROP
:iptables -P INPUT DROP
После этого все будет установлено только с двумя правилами :
Обратите внимание на правило, разрешающее входной трафик через интерфейс обратной связи - как я отмечал в своем блоге « Минимальный брандмауэр для конечного пользователя », если явно не разрешено, трафик обратной связи не будет обрабатываться проверкой «установленного» состояния по сравнению с возвратом. трафик над, скажем,
eth0
.Чтобы гарантировать, что этот минимальный набор правил загружен « как есть » без вмешательства в правила, которые уже могут быть там, удобно использовать
iptables-restore
в SHELL-сессии:Прежде чем делать это, убедитесь, что вы не разорвете свое собственное сетевое соединение 1 , хотя уже открытые сеансы SSH должны продолжать работать в обычном режиме, попытки открыть новые сеансы не будут работать.
__
-A INPUT -j ACCEPT -p tcp --dport 22
- не нужно-m state
здесь повозиться . Также не забудьте исправитьlptables-restore
обратно ,iptables-restore
прежде чем пытаться его;)источник