6835

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

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

Информатика, кибернетика и программирование

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

Русский

2013-01-08

79 KB

59 чел.

Фильтрация сетевого трафика в 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 - добавление правила не в конец цепочки,а туда куда вы укажите. Например, команда iptablesI INPUT 2 bla-bla-bla - сделает данное правило вторым.
  •  -D (-delelte) - удаление правила. Например, для удаления пятого правила введите: iptablesD INPUT 5
  •  -R (-replace) – заменить одно правило другим

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

  •  -F (-flash)- сброс правил (iptablesF INPUT – очистить все правила конкретной цепочки или iptables –F – сброс всех правил).
  •  -N - создание пользовательской цепочки. Если не хотите создавать кашу в каждой цепочке, то создайте несколько дополнительных цепочек. Синтаксис такой: iptablesN ЦЕПОЧКА. Только русские буквы, конечно, использовать нельзя.
  •  -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 означает все пакеты, кроме пакетов установления соединения.

Входящий и исходящий интерфейс

Опции i <interface_name> и o <interface_name> позволяют применять правила только к пакетам, поступающим (или отсылаемых) через определенный физический сетевой интерфейс (eth0, eth1, ppp0, ppp1…).

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

Опция p icmpicmp-type <type> позволяет указывать типы icmp- пакетов (наиболее популярные – echo-request и echo-reply).

Действия над пакетами

Правила в цепочке просматриваются последовательно на предмет соответствия текущему обрабатываемому пакету. Если пакет удовлетворяет правилу фильтрации, то к пакету применяется «действие». .Нужно указать, что надо с ним делать. Для этого служит опция -j. Рассмотрим основные действия:

  •  ACCEPT - разрешить пакет (и передать дальше).
  •  DROP - уничтожить пакет.
  •  REJECT - будет отправлено ICMP сообщение «порт недоступен».
  •  LOG - информация об этом пакете будет добавлена в системный журнал Syslog. Пакет при этом продолжает «движение» по цепочке дальше.

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

iptables -A INPUT -s 192.168.200.0/24 -j LOCAL_NET

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

Пример правил

В большинстве случаев пользователю достаточно выполнить такую последовательность комманд:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -P INPUT DROP

Примеры простых правил:

Заблокировать все входящие коннекты к 110 порту

iptables -A INPUT -p tcp --dport 110 -j DROP

Заблокировать входящие подключения по 80 порту на адрес 195.0.0.195

iptables -A INPUT -p tcp --dport 80 -d 195.0.0.195 -j DROP

Заблокировать входящие подключения по порту 80 tcp с адреса 193.0.0.193 на адрес 195.0.0.195

iptables -A INPUT -p tcp --dport 80 -s 193.0.0.193 -d 195.0.0.195 -j DROP

Указать входящий интерфейс eth0

iptables -A INPUT -p tcp --dport 80 -s 193.0.0.193 -i eth0 -j DROP

Можно также использовать символ отрицания !

Блокируем все подключения по 80 порту tcp отовсюду кроме сети 192.168.0.0/16

iptables -A INPUT -p tcp 80 -s ! 192.168.0.0/16 -j DROP

Модули

С использованием модулей iptables получит просто безграничные возможности. Для указания модуля используется опция -m. Например:

iptables -A INPUT -m модуль bla-bla

-m owner

Добавляет следующие опции (только для цепочки OUTPUT):

  •  --uid-owner UID - UID программы, пославшей пакет.
  •  --gid-owner GID - GID программы, пославшей пакет.
  •  --pid-owner PID - PID программы, пославшей пакет.
  •  --sid-owner SID - SID (идентификатор сессии; производится проверка SID пакета, значение SID наследуются дочерними процессами от "родителя").
  •  --cmd-owner NAME - имя программы, пославшей пакет.

-m multiport

Позволяет указывать фильтрацию не по одному порту, а сразу несколько:

  •  --source-ports порт1,порт2 - список портов, с которых пришел пакет;
  •  --sports порт1,порт2 - укороченый аналог --source-ports;
  •  --destination-ports порт1,порт2 - список портов назначения;
  •  --dports порт1,порт2 - укороченый аналог --destination-ports;
  •  --ports порт1,порт2 - проверяет как исходящий так и входящий порт пакета.

-m state

Предназначен для указания состояния пакета с помощью опции --state. Доступны следующие типы пакетов:

  •  NEW - пакет устанавливающий новое соединение.
  •  ESTABLISHED - пакет от уже установленного соединения.
  •  RELATED - новый пакет уже установленном соединении.
    •  

-m mac

Проверяет соответствие MAC-адреса в пакете с помощью опции --mac-source, например:

iptables -A INPUT -s 192.168.0.1 -m mac --mac-source 00:65:3F:ED:12:98 -j DROP

Дополнительная информация

Руководство по iptables 1.1.19 (Рус.): http://www.opennet.ru/docs/RUS/iptables/

Часто используемые сетевые порты:

FTP

TCP 20, 21

UUCP

TCP 540

SSH

TCP 22

RTCP

TCP 554

Telnet

TCP 23

MS Exchange

TCP 691

SMTP

TCP 25

MS SQL

TCP 1433, 1434

DNS

TCP,UDP 53

RADIUS

TCP 1645

DHCP

UDP 67,68

L2TP

TCP 1701

TFTP

UDP 69

MS PPTP

TCP 1723

HTTP

TCP 80, 8080

RADIUS

TCP 1812, 1813

Kerberos

TCP 88

NFS

TCP 2049

POP3

TCP 110

Oracle DB

TCP 2483, 2484

NNTP (Usenet)

TCP 119

HTTP Proxy

TCP 3128

NTP

UDP 123

MySQL

TCP 3306

Microsoft RPC

135

Terminal Server

TCP 3389

Службы Windows

135..139

RTP

TCP 5004, 5005

NETBIOS

TCP 137

SIP

5060

SNMP

UDP 161,162

PostgreSQL

TCP 5432

LDAP

TCP 389

X.Window

7000…7010

HTTPS

TCP 443

HTTP Proxy

TCP 8080

Microsoft DS

TCP 445

Webmin

TCP 10000

Kerberos

TCP 464

NetBus

TCP 12345

IKE (ISAKMP)

UDP 500

HalfLife

27015

SYSLOG

UDP 514

BackOrifice

31337

Варианты заданий:

  1.  Узнать, какие сетевые порты открыты на защищаемом хосте и какие программы их используют.

  1.  Запретить доступ к PC из внешних сетей

  1.  Разрешить исходящий ping – трафик.
  2.  Ограничить (запретить) входящий ping-трафик из внешней сети.

  1.  Запретить входящие ТСР- соединения из внешних сетей.

  1.  Запретить установление TELNET- соединения с данным компьютером.
  2.  Запретить SSH-трафик из внешней сети.

  1.  Разрешить пользователям внутренней сети использование почтовых сервисов SMTP и POP3. Запретить остальным использование почтовых сервисов.
  2.  Разрешить почтовому серверу обмен SMTP-трафиком с внешней сетью.
  3.  Запретить POP-трафик с внешними сетями.

  1.  Разрешить для внутренней сети использование FTP-сервера.
  2.  Разрешить всем пользователям внешней сети использование только web- и FTP-серверов.
  3.  Разрешить для внутренней сети использование только web-сервера
  4.  Запретить подключение к 80 порту Web – сервера.
  5.  Разрешить (запретить)  для PC использование только одного web-сервера во внешней сети.
  6.  Разрешить доступ к внешним web-серверам только через proxy-сервер.
  7.  Запретить трафик к определенным web-серверам во внешней сети.

  1.  Разрешите прохождение запросов между DNS-сервером во внутренней сети и внешними DNS-серверами.

  1.  Запретить использование TFTP – сервера с определенного IP -  адреса.
  2.  Разрешить подключение к MySQL – серверу только с определенного адреса.

PAGE  1


 

А также другие работы, которые могут Вас заинтересовать

40720. Инновация: сущность, источники, жизненный цикл 31.5 KB
  Эти различия затрагивают прежде всего общую продолжительность цикла продолжительность каждой стадии внутри цикла особенности развития самого цикла разное количество стадий. Виды и количество стадий жизненного цикла определяются особенностями той или иной инновации. Однако у каждой инновации можно определить стержневую то есть базовую основу жизненного цикла с четко выделенными стадиями. Схемы жизненного цикла различны у инновационного продукта и у инновационной операции процедуры.
40721. Программно-целевой метод управления 28 KB
  Программноцелевой метод управления. Программноцелевой метод научнопрограммный и временной способ увязки планируемых целей с ресурсами. Программноцелевой метод в управлении ориентирован на достижение конечного результата в логике поэтапного действия: формирование дерева целей разработка адекватной исполняющей программы реализация управляющей программы. Ключевой идеей программноцелевого метода выступает матрица цель средство иерархическая структура строго сформулированных целей программных элементов каждый из которых служит...
40722. Инновационная стратегия фирмы 33.5 KB
  Инновационная стратегия фирмы. Обычно к таким стратегиям относят: 1. Стратегия непрерывного совершенствования кайзен продукции. Инновационная стратегия целенаправленная деятельность по определению приоритетов перспективного развития организации и их достижению в результате которой обеспечивается новое качество производства и управления.
40723. Прогрессивные формы организации инновационной деятельности :бизнес-инкубаторы, технопарки, технополисы 31 KB
  Инновационная деятельность это процесс направленный на реализацию результатов законченных научных исследований и разработку иных научно технических достижений интеллектуального продукта. Отличительные черты: комплексность по научнопроизводственному циклу научные учреждения вузы промышленные предприятия компактность расположения ограниченность площади расположение в экологически чистых районах. Технополис – научнотехнический комплекс соединяющий научнотехническую деятельность с наукоемким производством с хорошо развитой...
40724. Экономическая безопасность государства и механизм ее реализации 43 KB
  Проблемы обеспечения экономической безопасности страны стабильного экономического развития государства и общества стоят перед многими странами мира. Современное социальноэкономическое положение России обусловливает чрезвычайную актуальность целенаправленной деятельности государства в сфере обеспечения экономической безопасности страны российского общества и каждого гражданина в отдельности. Например США разрабатывают доктрину концепцию и стратегию своей национальной безопасности где особое место уделено вопросам экономической...
40725. Предпринимательство как вид экономической деятельности. Виды предпринимательства 35 KB
  Виды предпринимательства. Рыночная экономика экономика свободного предпринимательства. В зависимости от содержания и направленности предпринимательской деятельности объекта приложения капитала и получения конкретных результатов связи предпринимательской деятельности с основными стадиями воспроизводственного процесса различают следующие виды предпринимательства: 1. Коммерческое торговое предпринимательство Принцип организации торгового предпринимательства несколько отличается от производственного так как предприниматель выступает...
40726. Инфраструктурное обеспечение предпринимательской деятельности 25 KB
  Cистема общих условий воспроизводства предпринимательского типа представляющая собой совокупность техникотехнологических организационноэкономических и социальных взаимосвязей тех элементов инфраструктуры которые обеспечивают обслуживание процесса предпринимательства на уровне макро мезо и микроэкономики. являются научность и системность в формировании и развитии предпринимательства и его инфраструктуры а также постепенность и многообразие моделей инфраструктурного обеспечения предпринимательства. Прежде всего нужна трансформация...
40727. Виды и формы предпринимательской деятельности 39 KB
  Рыночная экономика экономика свободного предпринимательства. В зависимости от содержания и направленности предпринимательской деятельности объекта приложения капитала и получения конкретных результатов связи предпринимательской деятельности с основными стадиями воспроизводственного процесса различают следующие виды предпринимательства: 1. Коммерческое торговое предпринимательство Принцип организации торгового предпринимательства несколько отличается от производственного так как предприниматель выступает непосредственно в роли...
40728. Государственное регулирование предпринимательской деятельности 28.5 KB
  Целью государственного регулирования предпринимательской деятельности является создание определенных условий обеспечивающих нормальное функционирование экономики в целом и стабильное участие предпринимателей страны в международном разделении труда и получение от этого оптимальных выгод. В обобщенном виде в задачи государственного регулирования входят: разработка принятие и контроль за законодательством обеспечивающим правовую основу и защиту интересов предпринимателей; повышение эффективности государственного регулирования и снижение...