Сетевая фильтрация и трансляция адресов — КиберПедия 

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Сетевая фильтрация и трансляция адресов

2017-05-23 267
Сетевая фильтрация и трансляция адресов 0.00 из 5.00 0 оценок
Заказать работу

Сетевая фильтрация (брандмауэр, файрвол) предназначена для фильтрации и обработки пакетов, проходящих через сетевые интерфейсы. В GNU/Linux файрвол является модулем ядра. Интерфейсом для модификации правил сетевой фильтрации служит команда iptables. Файрвол анализирует заголовки пакетов и принимает решение, “выбросить” пакет (DROP), принять пакет (ACCEPT) или сделать с ним что-то еще.

Каждый пакет проходит по цепочке правил. Каждое правило содержит условие и действие. Если пакет удовлетворяет условию то над ним выполняется действие, в противном случае к пакету применяется следующее правило в цепочке. Если пакет не удовлетворил ни одному из условий в цепочке, то к нему применяется действие по умолчанию.

Схематично обработку пакета можно изобразить следующим образом:

 

Входящий пакет начинает обрабатываться с цепочки PREROUTING в таблице mangle. Затем он обрабатывается правилами цепочки PREROUTING таблицы nat. На этом этапе проверяется, не требуется ли изменение (трансляция) адреса назначения пакета (DNAT).

После этого пакет передается в цепочку INPUT (если целью пакета является этот компьютер) или FORWARD (если целью пакета является другой компьютер сети).

Если целью пакета является другой компьютер, то пакет фильтруется правилами цепочки FORWARD из таблиц mangle и filter, а затем к нему применяются правила цепочки POSTROUTING. На данном этапе можно использовать SNAT/MASQUARADE (подмена адреса источника/маскировка). После этих действий пакет будет отправлен в сеть.

Если назначением пакета является сам компьютер, то после маршрутизации, он обрабатывается правилами цепочек INPUT из таблиц mangle и filter. В случае прохождения цепочек пакет передается приложению.

Когда приложение отвечает на запрос или отправляет собственный пакет, то он обрабатывается цепочкой OUTPUT из таблицы filter. Затем к нему применяются правила цепочки OUTPUT из таблицы nat, для определения, требуется ли использовать DNAT (модификация назначения), пакет фильтруется цепочкой OUTPUT из таблицы filter и передается цепочке POSTROUTING которая может использовать SNAT и QoS. В случае успешного прохождения POSTROUTING пакет выходит в сеть.

Соединение TCP/IP устанавливается в 3 этапа. Если компьютер А пытается установить соединение с компьютером Б, то они обмениваются специальными TCP пакетами (состояние соединения NEW):

  • компьютер A посылает SYN пакет
  • компьютер Б отвечает ACK пакетом и SYN пакетом
  • компьютер A отвечает ACK пакетом

После успешного обмена перечисленными пакетами соединение считается установленным (состояние ESTABLISHED).

C помощью опции --state можно задавать правила для соединений находящихся в заданном состоянии:

NEW вновь устанавливаемое
ESTABLISH установленное;
RELATED создаваемое с уже установленным соединением;
INVALID не установленной принадлежности.

Опции для ввода правил сетевой фильтрации и трансляции:

Опция Описание Пример
--protocol Короткий вариант -p. Определяет протокол. Опции tcp, udp, icmp, или любой другой протокол определенный в /etc/protocols iptables -A INPUT –protocol tcp
--source Короткий вариант -s. IP-адрес источника пакета. Может быть определен как IP адрес (10.10.10.3) или подсеть (10.10.10.3/24 или 10.10.10.3/255.255.255.0) iptables -A INPUT –source 10.10.10.3
--destination Короткий вариант -d. IP-адрес назначения пакета. Может быть определен несколькими путями (см. –source) iptables -A INPUT –destination 192.168.1.0/24
--source-port Порт источник, возможен только для протоколов --protocol tcp или --protocol udp iptables -A INPUT –protocol tcp –source-port 25
--destination-port Порт назначения, возможен только для протоколов --protocol tcp или --protocol udp iptables -A INPUT –protocol udp –destination-port 67
--state Состояние соединения. Доступно, если модуль state загружен с помощью -m state. Доступные опции: NEW - все пакеты устанавливающие новое соединение ESTABLISHED - все пакеты принадлежащие установленному соединению RELATED - пакеты, не принадлежащие установленному соединению, но связанные с ним. Например - FTP в активном режиме использует разные соединения для передачи данных. Эти соединения связанны. INVALID - пакеты, которые не могут быть по тем или иным причинам идентифицированны. Например ICMP ошибки не принадлежащие существующим соединениям iptables -A INPUT -m state –state NEW,ESTABLISHED
--in-interface Короткий вариант -i. Определяет интерфейс, на который прибыл пакет. Полезно для NAT и машин с несколькими сетевыми интерфейсами iptables -t nat -A PREROUTING –in-interface eth0
--out-interface Короткий вариант -o. Определяет интерфейс, с которого уйдет пакет. Полезно для NAT и машин с несколькими сетевыми интерфейсами iptables -t nat -A POSTROUTING –in-interface eth1
--tcp-flags Определяет TCP флаги пакета. Содержит 2 параметра: Список флагов которые следует проверить и список флагов которые должны быть установлены  
--syn Сокращение для –tcp-flags SYN,RST,ACK SYN’ Поскольку проверяет TCP флаги, используется с –protocol tcp. В примере показан фильтр для пакетов с флагом NEW, но без флага SYN. Обычно такие пакеты должны быть выброшены (DROP). iptables -A INPUT –protocol tcp! –syn -m state –state NEW

Чтобы определить действие (цель), которое выполняется для пакета удовлетворяющего условию, используется ключ –jump (или просто -j). К пакету можно применить одно из следующих действий:

ACCEPT пропустить, пакет покидает данную цепочку
DROP отклонить, не сообщив об этом передавшему
REJECT отклонить, сообщив об этом передавшему.
LOG занести в протокол информацию о пакете. Полезно в комбинации с DROP и REJECT для отладки
RETURN возвратить пакет в ту цепочку, из которой он прибыл
SNAT подменить адрес источника на заданный (source NAT). Может использоваться только в цепочках POSTROUTING и OUTPUT.
DNAT подменить адрес получателя на заданный (destination NAT). Может использоваться только в цепочке POSTROUTING.
MASQUERADE подменить адрес источника на адрес интерфейса через который проходит пакет. Может применяться только в цепочке POSTROUTING. В отличии от SNAT адаптирован к соединению с динамическим IP.

Поделиться с друзьями:

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.006 с.