Пакеты установления ТСР-соединения




Лабораторная работа

Фильтрация сетевого трафика в iptables

 

В общем случае правила фильтрации могут использовать любые данные заголовков IP (IP-адреса источника и получателя), ICMP (type и code), UDP (порт - источник и порт – получатель), TCP (порт – источник, порт-получатель, флаги), MAC (MAC- адрес источника и получателя). Кроме того, правила фильтрации могут учитывать входной и выходной интерфейс обрабатываемого пакета.

Если обрабатываемый пакет удовлетворяет правилу фильтрации, к нему применяется «действие» (передать пакет дальше, сбросить пакет, сбросить пакет и направить источнику пакета icmp-сообщение, записать сигнатуру пакета пакет в Log). Политика фильтрации трафика может иметь строгий (запрещено все, что не разрешено явно) или не строгий характер (разрешено все, что явно не запрещено).

 

За фильтрацию пакетов в iptables отвечают 3 цепочки правил: INPUT, OUTPUT и FORWARD.

· INPUT – пакеты, предназначающиеся Вашему узлу. То есть входящий трафик. Транзитный трафик сюда не попадает.

· FORWARD – пакеты, которые предназначены для другого узла, то есть транзитный трафик.

· OUTPUT - пакеты, которые уходят от узла, или исходящий трафик. Транзитный трафик сюда не попадает.

 

*Для передачи транзитного трафика возможно вам потребуется включить функцию маршрутизации в ядре net.ipv4.ip_forward = 1

(в Linux это делается как echo 1 > /proc/sys/net/ipv4/ip_forward)

 

Правила в цепочках просматриваются в порядке их следования, поэтому правила фильтрации следует вводить от частных к общим. После того, как будет найдено правило, удовлетворяющее рассматриваемому пакету, к данному пакету применяется соответствующее «действие» и последующие правила не рассматриваются.

 

Практически все правила можно привести к виду:

iptables -t ТАБЛИЦА -A ЦЕПОЧКА ПАРАМЕТРЫ_ПАКЕТА -j ДЕЙСТВИЕ

 

Создание правил

Работают с цепочками так: iptables <опция> <цепочка>

 

Для работы с цепочками предусмотрены следующие опции:

· -A - добавление нового правила в цепочку. Правило будет добавлено в конец цепочки:

iptables -A INPUT --dport 80 -j DROP

iptables -A INPUT --dport 80 -j ACCEPT

· -I - добавление правила не в конец цепочки,а туда куда вы укажите. Например, команда iptables –I INPUT 2 bla-bla-bla - сделает данное правило вторым.

· -D (-delelte) - удаление правила. Например, для удаления пятого правила введите: iptables –D INPUT 5

· -R (-replace) – заменить одно правило другим

iptables -R INPUT 1 -s 193.0.0.193 -j DROP (меняем первое правило в списке)

· -F (-flash)- сброс правил (iptables –F INPUT – очистить все правила конкретной цепочки или iptables –F – сброс всех правил).

· -N - создание пользовательской цепочки. Если не хотите создавать кашу в каждой цепочке, то создайте несколько дополнительных цепочек. Синтаксис такой: iptables –N ЦЕПОЧКА. Только русские буквы, конечно, использовать нельзя.

· -X - удаление пользовательской цепочки.

· -L - просмотр список правил цепочки

Например, iptables –L или iptables –L INPUT или iptables -L -n –v, где

-n не транслировать IP-адреса в DNS

-v, –verbose более информативный вывод

–line-numbers вывести нумерацию строк

 

*Удалить цепочки INPUT, OUTPUT и FORWARD нельзя. Если удалить все правила в такой цепочке, то цепочка окажется пустой.

 

*Для сохранения и восстановления цепочек правил iptables в инсталяционом пакете обычно имеется 2 скрипта:

iptables-save > /path/to/iptables

iptables-restore < /path/to/iptables

 

Параметры пакетов

Итак, по каким параметрам можно фильтровать пакеты:

Источник пакета

Для фильтрации по источнику используется опция -s. Например, запретим все входящие пакеты с узла 192.168.133.133:

iptables -A INPUT -s 192.168.133.133 -j DROP

Можно использовать доменное имя для указания адреса хоста, то есть:

iptables -A INPUT -s test.host.jp -j DROP

Также можно указать целую подсеть (т.е. диапазон адресов):

iptables -A INPUT -s 192.168.133.0/24 -j DROP

Вы можете использовать отрицание (знак!). Например, все пакеты с хостов, отличных от 192.168.133.156 будут уничтожаться:

iptables -A INPUT! -s 192.168.133.156 -j DROP

 

Адрес назначения

Для этого нужно использовать опцию -d. Например, запретим все исходящие пакеты на хост 192.168.156.156:

iptables -A OUTPUT -d 192.168.156.156 -j DROP

Как и в случае с источником пакета, можно использовать адреса подсети и доменные имена. Отрицание также работает.

Протокол

Опция -p указывает на протокол. Можно использовать all, icmp, tcp, udp или номер протокола (из файла /etc/protocols).

Порт источника

Указывает на порт, с которого был прислан пакет. Синтаксис такой:

iptables -A INPUT -p tcp --sport 80 -j ACCEPT

Для указания порта необходимо указать протокол (tcp или udp). Можно использовать отрицание.

Порт назначения

Порт назначения. Синтаксис: iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Как и в случае с портом источника, нужно указать протокол. Можно использовать отрицание.

Пакеты установления ТСР-соединения

Опция –p tcp --syn дает возможность применять правила только к TCP пакетам с флагом SYN (пакетам установления соединения). Например, с целью запретить устанавливать соединение с некоторым портом. И обратное, опция –p tcp! --syn означает все пакеты, кроме пакетов установления соединения.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: