Ссылки на официальную и рекомендованную документацию имеются на веб-сайте Netfilter.
Это не новая тема, ресурсы безграничны .
Большинство основных команд довольно интуитивно понятны и могут легко ссылаться на справочную страницу .
netfilter, технология уровня ядра, которая обеспечивает фильтрацию пакетов, достаточно продвинута. Существуют дополнительные таблицы, которые могут искажать пакеты, транслировать пакеты и иным образом влиять на маршрутизацию. iptablesУтилита является инструментом для программы пользователей , взаимодействующих с Netfilter. Если вы хотите узнать о расширенных функциональных возможностях, я предлагаю вам обратиться к вышеупомянутой документации. Для ознакомления с основными функциями, пожалуйста, прочитайте дальше.
Чтобы перечислить все существующие правила:
iptables -L -n
-n не позволяет iptables разрешать ips, что приводит к более быстрому выводу.
По умолчанию используется filterтаблица, которая используется для применения основных правил брандмауэра к трем цепочкам. Три стандартные цепи в filterтаблице INPUT, OUTPUTи FORWARD.
Цепи в значительной степени говорят сами за себя. Цепочка INPUT влияет на входящие пакеты, цепочка OUTPUT влияет на локально сгенерированные пакеты и, наконец, FORWARD для любых пакетов, которые проходят через систему.
Среди целей, которые вы можете указать, вы можете DROPпакеты, то есть просто игнорировать и не отвечать. Вы можете REJECTпакеты, где ICMP-ответ будет отправлен к источнику отказа. Наконец, вы можете ACCEPTих, что позволяет пакетам продолжать маршрутизацию.
Часто с внешним обращенным брандмауэром выбор по умолчанию будет DROPпротивоположен REJECT, так как он уменьшает видимую площадь вашей сети в Интернете. Например, IP-адрес, который в противном случае ограничивает услуги конкретным хостом, будет менее заметен DROP.
Обратите внимание, -Aзначит добавить в конец цепочки. Если вы хотите вставить сверху, вы можете использовать -I. Все правила обрабатываются сверху вниз. -Dдля удаления.
Для DROPвходящего пакета, поступающего от 192.168.235.235:
iptables -A INPUT -s 192.168.235.235 -j DROP
Это переходит к DROPцели для всех протоколов, поступающих с этого IP.
Принять:
iptables -A INPUT -s 192.168.235.235 -j ACCEPT
Чтобы запретить доступ к этому IP с вашего локального сервера или сети:
iptables -A OUTPUT -d 192.168.235.235 -j DROP
Вы можете указать -pпротокол, -sисточник пакета, -dпункт назначения пакета, порт назначения, порт --dportисточника --sportи многие другие флаги, которые будут влиять на то, как правила обрабатываются для пакетов.
Если ваша INPUTполитика по умолчанию была DROPи вы хотите, чтобы все в 192.168.123.0/24подсети имели доступ к SSH на вашем сервере, вот пример:
iptables -A INPUT -s 192.168.123.0/24 -p tcp --dport 22 -j ACCEPT
Правильно, вы также можете использовать нотацию CIDR !
Вообще говоря, лучшая политика по умолчанию DROPдля всех цепочек. Каждая цепочка имеет политику по умолчанию, которая указывается -Pфлагом. Даже если для вашей политики установлено значение по умолчанию DROP, все равно рекомендуется иметь окончательную запись в цепочке DROP.
Например, чтобы изменить политику DROPдля цепочек INPUT, FORWARD и OUTPUT:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
Будьте внимательны , если вы укажете политику по умолчанию DROP для INPUT на удаленной системе, предварительно не предоставив себе доступ по SSH, вы можете запретить себе доступ к системе. Если в удаленной системе вы можете указать временный crontab для сброса всех правил каждые 5 минут в качестве отказоустойчивого.
Чтобы удалить все правила и разрешить весь трафик:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -X
iptables -F
Обратите внимание, -Xудаляет все созданные цепочки. -Fсбрасывает все правила.
Существуют встроенные инструменты для сохранения и восстановления правил. В частности, iptables-saveи iptables-restore. Большинство современных дистрибутивов Linux имеют saveи restoreфункционируют в файле инициализации iptables, поставляемом с системой.
Существуют и другие рекомендации брандмауэра, такие как удаление некорректных пакетов и другой тип нежелательного трафика. Это одно из преимуществ использования утилиты внешнего интерфейса, такой как Shorewall , поскольку она по умолчанию реализует многие из этих политик. Тем не менее, я согласен с вашим подходом и предпочитаю также поддерживать свои собственные правила напрямую, и эти самые лучшие практики могут быть реализованы без внешнего интерфейса.