В настоящее время мы используем в основном политику OUTPUT по умолчанию, ACCEPT.
Этого достаточно для OUTPUT, потому что Netfilter не нуждается в специальных правилах для запуска отслеживания соединений с отслеживанием состояния.
Но если вы хотите отфильтровать входящий трафик в соответствии с политикой запрета по умолчанию, это можно сделать с помощью переключателя INPUT
-chain DROP
:iptables -P INPUT DROP
После этого все будет установлено только с двумя правилами :
iptables -A INPUT -j ACCEPT -i lo
iptables -A INPUT -j ACCEPT -m state --state RELATED,ESTABLISHED
Обратите внимание на правило, разрешающее входной трафик через интерфейс обратной связи - как я отмечал в своем блоге « Минимальный брандмауэр для конечного пользователя », если явно не разрешено, трафик обратной связи не будет обрабатываться проверкой «установленного» состояния по сравнению с возвратом. трафик над, скажем, eth0
.
Чтобы гарантировать, что этот минимальный набор правил загружен « как есть » без вмешательства в правила, которые уже могут быть там, удобно использовать iptables-restore
в SHELL-сессии:
lptables-restore <<__EOF__
-P INPUT DROP
-A INPUT -j ACCEPT -i lo
-A INPUT -j ACCEPT -m state --state RELATED,ESTABLISHED
__EOF__
Прежде чем делать это, убедитесь, что вы не разорвете свое собственное сетевое соединение 1 , хотя уже открытые сеансы SSH должны продолжать работать в обычном режиме, попытки открыть новые сеансы не будут работать.
__
- Конечно, вы можете добавить другие правила, чтобы разрешить такие соединения. Это может быть так просто, как просто
-A INPUT -j ACCEPT -p tcp --dport 22
- не нужно -m state
здесь повозиться . Также не забудьте исправить lptables-restore
обратно , iptables-restore
прежде чем пытаться его;)