7.3. Типичные фильтры iptables

Не пустить удалённых злоумышленников в локальную сеть — одна из самых важных задач сетевой безопасности, если не самая важная. Целостность сети должна быть защищена от удалённых злоумышленников с помощью точных правил брандмауэра. Однако, так как политика по умолчанию блокирует все входящие, исходящие и пересылаемые пакеты, брандмауэр/шлюз и пользователи локальной сети не способны установить соединение друг с другом или с внешними ресурсами. Чтобы пользователи выполняли связанные с сетью функции и использовали сетевые приложения, администраторы должны открыть определённые порты.

Например, чтобы разрешить доступ к 80 порту брандмауэра, добавьте следующее правило:

iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT 

Это позволит просматривать веб-содержимое сайтов, работающих на порту 80. Чтобы открыть доступ к защищённым веб-сайтам (например, https://www.example.com/), вы также должны открыть порт 443.

iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT 

ВажноВажно
 

При добавлении правил iptables важно помнить о том, что их порядок имеет значение. Например, если одно правило отбрасывает все пакеты из локальной подсети 192.168.100.0/24, и добавляется (-A) ещё одно правило, пропускающее пакеты от узла 192.168.100.13 (расположенного в запрещённой локальной подсети), добавленное правило не будет работать. Сначала вы должны добавить правило, пропускающее 192.168.100.13, а затем правило, блокирующее подсеть.

Чтобы вставить правило в произвольное место существующей цепочки, укажите -I, затем название этой цепочки и позицию (1,2,3,...,n), в которой должно располагаться правило. Например:

iptables -I INPUT 1 -i lo -p all -j ACCEPT

Это правило, пропускающее трафик устройства замыкания на себя, оказывается в цепочке INPUT первым правилом.

Иногда вам нужно организовывать удалённый доступ к локальной сети снаружи. Для шифрования соединения с удалённой сетью могут использоваться защищённые службы, например, SSH. Администраторы сетей с PPP-ресурами (например, с модемным пулом) могут безопасно организовать модемные подключения в обход барьеров брандмауэра, так как это прямые соединения. Однако для пользователей, подключающихся из открытой внешней сети, следует принять специальные меры. Вы можете разрешить в iptables подключения удалённых клиентов SSH. Например, чтобы разрешить удалённый доступ SSH, можно использовать следующие правила:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

Вам может понадобиться определять правила и для других служб. За исчерпывающей информацией о службе iptables и её различных параметрах обратитесь к Справочному руководству по Red Hat Enterprise Linux.

Эти правила разрешают входящий и исходящий доступ отдельному компьютеру, например, компьютеру, подключённому к Интернету или шлюзу/брандмауэру. Однако они не позволяют узлам по другую сторону шлюза/брандмауэру обращаться к его службам. Чтобы открыть доступ к этим службам из внутренней сети, вы можете использовать NAT в сочетании с правилами iptables.