Рейтинг
+1.21
голосов:
1
avatar

Фильтрация пакетов  

Как пакеты проходят фильтры

Ядро запускается с тремя списками правил в таблице фильтра пакетов; эти списки называются firewall chains или просто chains (цепочки). Три цепочки называются так: INPUT, OUTPUT и FORWARD.

( Читать дальше )
  • iptables

Применение iptables

iptables имеет достаточно хорошо написанную и подробную manual страницу (man iptables), там вы можете найти все интересующие вас моменты. Те из вас кто знаком с ipchains могут просто просмотреть Различия между iptables и ipchains; они очень похожи.

( Читать дальше )
  • iptables
  • +3
  • 14 августа 2009, 06:03
  • ASovetov
  • 2+2

Работа с одним правилом

Это вода и хлеб или основа работы фильтра пакетов; управление правилами. Наиболее часто вы, вероятно, будете использовать команды добавления (-A) и удаления (-D). Другие команды (-I для вставки и -R для замены) просто являются расширенными вариантами первых.

( Читать дальше )
  • iptables

Спецификации фильтра (продолжение)

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

( Читать дальше )
  • iptables

Спецификации фильтра

Мы знаем что с помощью ключа "-p" мы указываем протокол, и с помощью "-s" исходящий адрес, но есть также и другие ключи с помощью которых мы можем указывать характеристики пакета. Ниже дана исчерпывающая информация.
Указываем исходящий IP адрес и IP адрес назначения

( Читать дальше )
  • iptables

Спецификация целей

Теперь, зная какие соответствия мы можем поставить пакету, мы бы хотели иметь путь, который бы указывал ядру что делать с пакетом совпадающим с нашими условиями. Такой путь называется — целью правила.

( Читать дальше )
  • iptables

Операции над целой цепочкой

Очень полезное свойство iptables это возможность группировать взаимозависимые правила в цепочки. Вы можете называть ваши цепочки как вам удобнее, но я рекомендую вам использовать буквы малого регистра, чтобы избежать путаницы со встроенными цепочками и целями. Имена цепочек могут быть длинной до 31 символа.

( Читать дальше )
  • iptables

Применение ipchains и ipfwadm

В пакете netfilter есть специальные модули: ipchains.o и ipfwadm.o. Загрузите один из них в ваше ядро (ВНИМАНИЕ: они не совместимы с ip_tables.o). После этого вы сможете использовать ipchains или ipfwadm как в старые добрые дни.

( Читать дальше )
  • iptables

Совместная работа NAT и фильтра пакетов

Обычно люди хотят использовать совместно NAT (смотри NAT HOWTO) и фильтр пакетов. Хорошие новости в том что они работают совместно очень хорошо.

Вы разрабатываете свои правила для фильтра пакетов, полностью игнорируя NAT. Исходные адреса и адреса назначения пакетов, которые будет обрабатывать фильтр, будут «настоящими» исходными адресами и адресами назначения. Пример, если вы делаете DNAT, чтобы любые соединения на 1.2.3.4 порт 80 перенаправлялись на 10.1.1.1 порт 8080, фильтр пакетов будет видеть только пакеты идущие к 10.1.1.1 порт 8080 (настоящий пункт назначения), а не 1.2.3.4 порт 80. Подобно этому, вы можете игнорировать маскарад: для фильтра все пакеты будут казаться приходящими с их настоящих внутренних IP адресов (скажем 10.1.1.1), и ответы на эти пакеты будут как для настоящих IP адресов (ответы будут идти на 10.1.1.1 прим. перевод.).

Вы можете использовать «state» расширение без какой-либо дополнительной нагрузки на фильтр, так как NAT требует отслеживание пакетов в любом случае. Чтобы улучшить простой пример по маскараду данный в NAT HOWTO и запретить любые новые соединения приходящие с ppp0 интерфейса, вы должны сделать следующее:

# Маскарадим ppp0.iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE# Запрещаем NEW и INVALID входящие или требуемые маршрутизации пакеты с ppp0.iptables -A INPUT -i ppp0 -m state --state NEW,INVALID -j DROPiptables -A FORWARD -i ppp0 0 -m state --state NEW,INVALID -j DROP# Включаем маршрутизацию пакетов.echo 1 > /proc/sys/net/ipv4/ip_forward
  • iptables

Как я могу сделать фильтрование пакетов в Linux?

Ядра Linux имеют способность отфильтровывать пакеты еще с 1.1 серий. Первое поколение фильтров, основанное на ipfw от BSD, было спортированно Alan Cox в конце 1994г. Оно было улучшено Jos Vos и другими в Linux 2.0; пользовательская утилита «ipfwadm» контролировала правила фильтра в ядре. В середине 1998, для Linux 2.2, я с помощью Michael Neuling, переработал ядро достаточно основательно, и представил новую утилиту для управления фильтром — «ipchains». Наконец, в середине 1999, код ядра был снова полностью преписан для 2.4 версии, появилась утилита четвертого поколения «iptables». Это именна та утилита, которая послужила поводом для написания этого HOWTO.

( Читать дальше )
  • iptables