Особенности работы файрвола.
Для базового понимания работы файрвола, необходимо ознакомиться с понятиями цепочки (chain), состояния соединения (connection state), условия и действия (action).
Кроме того, администратор имеет возможность создавать свои собственные цепочки обработки трафика, к которым можно обращаться из основных цепочек. Данная возможность будет рассмотрена в дальнейшем.
1.Пакет будет соответствовать заданному условию. При этом сработает соответствующее правило, в котором это условие было задано, после чего обработка пакета будет завершена.
2.Закончатся все условия и пакет не будет признан соответствующим ни одному из них. При этом, по умолчанию он будет пропущен дальше.
Исходя из п.2, нельзя не отметить, что есть две стратегии построения фильтра пакетов:
1.Нормально открытый файрвол. Данный тип настройки можно определить как «Все разрешено, что не запрещено». При этом мы запрещаем прохождение только некоторых типов трафика. Если пакет не соответствует этим типам – он будет пропущен. Обычно данный тип файрвола характерен для мест, где не предъявляется высоких требований к безопасности пользователей, а трафик может быть самым разнообразным и не поддающимся жесткой квалификации. Такая настройка характерна для операторов связи (Интернет-провайдеров), открытых точек доступа, домашних маршрутизаторов.
2.Нормально закрытый файрвол. Данный тип настройки можно определить как «Все запрещено, что не разрешено». При этом разрешается прохождение только определенных типов трафика, а последним правилом в файрволе стоит правило, запрещающее прохождение любого типа трафика. Такой тип настройки файрвола характерен для корпоративного использования, где существуют жесткие требования к безопасности.
Не могу сказать, что какая-то из стратегий является правильной, а какая-то неправильной. Обе стратегии имеют право на жизнь, но каждая — в определенных условиях.
Теперь подробнее распишем все варианты условий, на основании которых мы можем принимать решение о действии.
Обратите внимание, что перед частью полей можно поставить флаг восклицательного знака. Этот флаг будет обозначать отрицание. Например:
обозначает что адрес источника любой, кроме 192.168.0.0/24 . Также обратите внимание, что если поле не заполнено, оно должно быть серым. Если вы передумали заполнять поле, чтобы его исключить и сделать серым – нажмите стрелку «вверх», справа от поля.
Закладка Advanced
Итак:
Как мы видим, в маршрутизаторе существует достаточно большое количество правил выбора пакетов, которые позволяют очень гибко и тонко настраивать работы с трафиком.
Теперь, когда мы поняли, на основании каких правил мы можем найти интересующий нас пакет, давайте посмотрим, что можно сделать после срабатывания правила.
Рассмотрим их:
Опции:
Опции:
Опция – наименование цепочки.
Опция – вид сообщения.
Материл статьи взят с сайта компании «SPW» федеральный дистрибьютор оборудования и ПО Mikrotik.
Цепочки (chain)
При фильтрации трафик, в зависимости от своего предназначения попадает в одну из цепочек (chain) обработки трафика. В фильтре предопределены три основные цепочки:- input входящий трафик предназначенный для маршрутизатора. Например, когда вы подключаетесь к маршрутизатору при помощи приложения winbox, трафик как раз попадает в эту цепочку.
- output Исходящий трафик. Трафик, создаваемый самим маршрутизатором. Например, если вы выполните команду ping непосредственно с самого маршрутизатора, трафик попадет в эту цепочку.
- forward Трафик, идущий через маршрутизатор. Например, если компьютер из локальной сети, установил соединение с внешним сайтом, данный трафик попадает в цепочку forward.
Кроме того, администратор имеет возможность создавать свои собственные цепочки обработки трафика, к которым можно обращаться из основных цепочек. Данная возможность будет рассмотрена в дальнейшем.
Состояние соединения (connection state)
Каждое из сетевых соединений Mikrotik относит к одному из 4 состояний:- New – Новое соединение. Пакет, открывающий новое соединение, никак не связанное с уже имеющимися сетевыми соединениями, обрабатываемыми в данный момент маршрутизатором.
- Established – Существующее соединение. Пакет относится у уже установленному соединению, обрабатываемому в данный момент маршрутизатором.
- Related – Связанное соединение. Пакет, который связан с существующим соединением, но не является его частью. Например, пакет, который начинает соединение передачи данных в FTP-сессии (он будет связан с управляющим соединением FTP), или пакет ICMP, содержащий ошибку, отправляемый в ответ на другое соединение.
- Invalid – Маршрутизатор не может соотнести пакет ни с одним из вышеперечисленных состояний соединения.
- 1. Обрабатывать новые соединения (connection state = new), принимая решение об пропуске или блокировке трафика.
- 2. Всегда пропускать соединения в состоянии established и related, так как решение о пропуске этого трафика было принято на этапе обработки нового соединения.
- 3. Всегда блокировать трафик, для которого состояние соединения равно invalid, потому что этот трафик не относится ни к одному из соединений и фактически является паразитным.
Условие
При прохождении пакета через фильтр, маршрутизатор последовательно проверяет соответствие пакета заданным условиям, начиная от правила, расположенного первым. и последовательно проверяя пакет на соответствие правилам номер два, три и так далее, пока не произойдет одно из двух событий:1.Пакет будет соответствовать заданному условию. При этом сработает соответствующее правило, в котором это условие было задано, после чего обработка пакета будет завершена.
2.Закончатся все условия и пакет не будет признан соответствующим ни одному из них. При этом, по умолчанию он будет пропущен дальше.
Исходя из п.2, нельзя не отметить, что есть две стратегии построения фильтра пакетов:
1.Нормально открытый файрвол. Данный тип настройки можно определить как «Все разрешено, что не запрещено». При этом мы запрещаем прохождение только некоторых типов трафика. Если пакет не соответствует этим типам – он будет пропущен. Обычно данный тип файрвола характерен для мест, где не предъявляется высоких требований к безопасности пользователей, а трафик может быть самым разнообразным и не поддающимся жесткой квалификации. Такая настройка характерна для операторов связи (Интернет-провайдеров), открытых точек доступа, домашних маршрутизаторов.
2.Нормально закрытый файрвол. Данный тип настройки можно определить как «Все запрещено, что не разрешено». При этом разрешается прохождение только определенных типов трафика, а последним правилом в файрволе стоит правило, запрещающее прохождение любого типа трафика. Такой тип настройки файрвола характерен для корпоративного использования, где существуют жесткие требования к безопасности.
Не могу сказать, что какая-то из стратегий является правильной, а какая-то неправильной. Обе стратегии имеют право на жизнь, но каждая — в определенных условиях.
Теперь подробнее распишем все варианты условий, на основании которых мы можем принимать решение о действии.
Закладка general
Наименование | Описание |
Chain | Цепочка (см. выше). Варианты в списке: input, output, forward. Если ввести свое название – получим свою цепочку. |
Src. Address | Адрес источника пакета. Варианты заполнения поля: Один адрес. Например, 192.168.0.5 Подсеть. Например, 192.168.0.0/24 Диапазон адресов. Например, 192.168.0.5-192.168.0.15 Обратите внимание: если вам надо задать несвязанный диапазон адресов, то это нельзя сделать в этом поле, но можно сделать через Src. Address List на закладке Advanced |
Dst. Address | Адрес назначения пакета. Варианты заполнения поля см. выше |
Protocol | Протокол соединения. TCP, UDP, ICMP и т.п. |
Src. Port | Порт, с которого пришел пакет. Поле можно заполнить только если протокол соответствует TCP или UDP. Варианты заполнения поля: Один порт. Например, 22. Диапазон портов. Например, 10000-20000. Несколько портов. Например ,22,23,25. Несколько диапазонов портов. Например, 5060-5070,10000-20000 . Диапазон и несколько портов. Например, 22,23,10000-20000. |
Dst. Port | Порт, на который пришел пакет. Поле можно заполнить, только если протокол соответствует TCP или UDP. Варианты заполнения поля см. выше. |
Any Port | Любой порт. Например, или Src. Port, или Dst. Port Варианты заполнения поля см. выше. |
P2P | Peer-to-Peer протокол. Пакет относится к одному из P2P протоколов. Например, edonkey или BitTorrent. Обратите внимание, что шифрованные сессии не идентифицируются посредством данного поля. |
In Interface | Интерфейс, с которого пришел проверяемый пакет. (Не работает, если chain=output, т.к. источник трафика - сам маршрутизатор) |
Out Interface | Интерфейс, куда будет передан пакет. (Не работает, если chain=input, так как трафик предназначен для маршрутизатора и дальше передан быть не может). |
Packet Mark | Пакет имеет определенную маркировку, полученную ранее через Mangle. |
Connection Mark | Пакет имеет определенную маркировку, полученную ранее через Mangle. |
Routing Mark | Пакет имеет определенную маркировку, полученную ранее через Mangle. |
Connection Type | Пакет относится к определенному типу соединения, включенному на закладке Firewall/Service Ports |
Connection State | Состояние соединения. Описывалось выше. |
Обратите внимание, что перед частью полей можно поставить флаг восклицательного знака. Этот флаг будет обозначать отрицание. Например:
обозначает что адрес источника любой, кроме 192.168.0.0/24 . Также обратите внимание, что если поле не заполнено, оно должно быть серым. Если вы передумали заполнять поле, чтобы его исключить и сделать серым – нажмите стрелку «вверх», справа от поля.
Закладка Advanced
На этой закладке собраны расширенные опции выбора пакета.
Наименование | Описание |
Src. Address List | Адрес источника пакета совпадает с одним из адресов в именованном списке адресов, заданном на закладке Firewall/Address Lists. |
Dst. Address List | Адрес назначения пакета совпадает с одним из адресов в именованном списке адресов, заданном на закладке Firewall/Address Lists. |
Layer 7 Protocol | При проверке пакета L7-фильтром, заданным на закладке Firewall/Layer 7 Protocols, он был отнесен к одному из определенных на этой закладке протоколов. |
Content | Внутри пакета содержится определенная строка символов. |
Connection Bytes | Количество байт, прошедших через соединение. При этом 0 обозначает бесконечность. Например, 1000000-0 = более 1МБ. |
Connection Rates | Скорость соединения. Например, 0-128000. Это правило сработает, если скорость подключения менее 128 килобит в секунду. (Поставив флаг [!] перед таким правилом, мы заставим срабатывать правило на соединение более 128kbps) |
Per Connection Classifier | Используется при необходимости разделения трафика на несколько потоков. Позволяет держать пакеты с определенным набором опций в одном потоке. Подробнее: http://wiki.mikrotik.com/wiki/Manual:PCC |
Src. MAC Address | MAC-адрес сетевой карты источника. Сработает, только если источник пакета находится в одном Ethernet-сегменте с маршрутизатором. |
Out Bridge Port | Порт назначения интерфейса типа bridge, при активированной в Bridge опции Use IP Firewall. |
In Bridge Port | Порт источника интерфейса типа bridge, при активированной в Bridge опции Use IP Firewall. |
Ingress Priority | Приоритет пакета. Может быть получен из VLAN, WMM или MPLS ext. bit |
DSCP (TOS) | Определяет DSCP, заданный в заголовке пакета. |
TCP MSS | Размер MSS (Maximum segment size) TCP пакета. |
Packet Size | Размер пакета. |
Random | Случайное срабатывание правила. Число задается в диапазоне 1-99, что соответствует вероятности срабатывания правила от 1 до 99 процентов. Обычно используется при тестировании сервисов, когда надо изобразить случайную потерю пакетов на нестабильном канале. |
TCP Flags | Флаги TCP соединения. |
ICMP Options | Опции (типы сообщения) ICMP. |
IPv4 Options | В заголовке пакета имеется заданная опция протокола Ipv4. |
TTL | Time To Live – Время жизни пакета соответствует … |
Закладка Extra
Эта закладка продолжает список расширенных опций, не поместившихся на закладку Advanced.Итак:
Наименование | Описание |
Connection Limit | Предел количества соединений для адреса или подсети. Адрес или подсеть задается полем netmask (для 1 адреса 32). |
Limit | Предназначено для ограничения количества передаваемых пакетов: Поля: Rate – количество пакетов в секунду (минуту/час). Burst – Количество неучитываемых пакетов (пакетов не входящих в packet rate). |
Dst. Limit | Ограничение количества передаваемых пакетов по адресу источника/назначения. В отличии от limit, учитываются пакеты для каждого адреса или адреса/порта в зависимости от выбранных опций. Поля rate и burst соответствуют таковым в опции Limit. Дополнительный поля: Limit By – по какому критерию (src|dst address | address/port) учитывать пакеты. Expire - через какой промежуток времени запомненный адрес/порт будут удалены. |
Nth | Каждый из: Every – из какого числа пакетов. Packet – сколько. Например Every=3, packet=2 Обозначает «Каждые 2 из 3 пакетов или проще 2/3 пакетов). Опцию часто используют при балансировке нагрузки между каналами. |
Time | Время действия правила. Позволяет ограничить действие правила во времени и по дням недели. Так как у маршрутизатора нет аппаратно-независимых часов, для корректной работы опции требуется настроенный SNTP-клиент (System/SNTP-Client) и часовой пояс (System/Clock) |
Src. Address Type | Тип IP-адреса источника (Local, Unicast, Broadcast, Multicast) |
Dst. Address Type | Тип IP-адреса назначения (Local, Unicast, Broadcast, Multicast) |
PSD | Port Scan Detect. Опция позволяющая настроить определение события сканирования портов. Поля: Weight Threshold = При каком значении сработает. Delay Threshold = Максимальная задержка между пакетами с разными портами назначения, пришедшими с одного адреса. Low Port Weight = сколько при подсчете стоит каждый порт в диапазоне 0-1023. High Port Weight = сколько при подсчете стоит каждый порт в диапазоне 1024-65535. Например, на скриншоте правило сработает, если будет просканировано 7 и более портов в привилегированном диапазоне; Или 21 и более портов в непривилегированном диапазоне. При этом пауза между поступающими пакетами с одного источника, направленного на разные порты будет не более 3 секунд. |
Hotspot | Опции, связанные с работой хотспот, если он настроен на маршрутизаторе. |
IP Fragment | Пакет является фрагментом другого пакета. |
Теперь, когда мы поняли, на основании каких правил мы можем найти интересующий нас пакет, давайте посмотрим, что можно сделать после срабатывания правила.
Действия при фильтрации пакетов
Действия задаются на закладке Action сформированного правила.Рассмотрим их:
Accept
Разрешить прохождение пакета. Дальнейшие действия по фильтрации прекращаются, пакет передается на следующий этап обработки.add-dst-to-address-list
Добавить адрес назначения пакета в именованный список адресов (address list).Опции:
- Address-List – Имя списка адресов. Выбирается из списка или задается новое.
- Timeout – Время, которое данный адрес будет присутствовать. По истечении заданного времени адрес будет удален из списка.
add-src-to-address-list
Добавить адрес источника пакета в именованный список адресов (address list).Опции:
- Address-List – Имя списка адресов. Выбирается из списка или задается новое.
- Timeout – Время, которое данный адрес будет присутствовать. По истечении заданного времени адрес будет удален из списка.
Drop
Удалить пакет. Пакет уничтожается и никуда дальше не передается.Jump
Перейти на собственную цепочку (chain) обработки пакетов.Опция – наименование цепочки.
Log
Занести информацию о пакете в Log-файл маршрутизатора. При этом пакет будет передан на следующее правило. Данная опция часто используется при отладке.Passthrough
Ничего не делать. Передать пакет на следующее правило. Однако при этом счетчики работают, показывая сколько пакетов соответствовало этому правилу. Обычно используется для статистики.Reject
Запретить прохождение пакета и отправить отправляющему узлу ICMP-сообщение об ошибке.Опция – вид сообщения.
Return
Досрочно прервать обработку собственной цепочки (chain) и вернуться на следующее правило за правилом с Action=jump, которое передало пакет в эту цепочку.Tarpit
Очень интересная опция. Может использоваться только с протоколом TCP. Суть в том, что маршрутизатор дает разрешение на создание соединения, при этом выставляя нулевое окно передачи (т.е. скорость соединения = 0). Позволяет «завесить» атакующий хост на этом соединении.Материл статьи взят с сайта компании «SPW» федеральный дистрибьютор оборудования и ПО Mikrotik.
Комментариев нет:
Отправить комментарий