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

Для ограничения типов подключений и типов пакетов, которые будет пропускать(ACCEPT) или перенаправлять(FORWARD) ваш Firewall, вам необходимо создать правила для межсетевого экрана. Лучшим местом для этого будет таблица Packet filtering(Фильтрация пакетов), цепочки FORWARD и INCOMING. Если ваш firewall работает в режиме маршрутизатора и вы хотите также защитить вашу сеть с помощью него, вам необходимо обрабатывать FORWARD(проходящие) пакеты. Однако, если вы хотите также защитить сервер, где размещен файрволл, то дополнительно, необходимо внести правила в цепочку INCOMING.

Firewall также позволяет ограничить исходящие пакеты от компьютеров в локальной сети. Для этого вам необходимо добавить правила в цепочку OUTPUT таблицы Packet filtering(Фильтрация пакетов). Это может быть полезно для ограничения IP адресов хостов и портов, которые открыты наружу.

 

Для создания нового правила для блокирования трафика, проделайте следующие шаги:

1. На главной странице модуля, выберите Packet filtering из списка и нажмите кнопку Show IPtable(Показать IPtable). Вы увидите таблицу Packet filtering со всем цепочками в ней.

2. Для добавления правила для всего входящего трафика, нажмите кнопку Add Rule(Добавить правило) в секции Incoming packets(Входящие пакеты). Если вы хотите ограничить только для проходящего(FORWARD) трафика, то вам необходимо будет нажать на кнопку Add Rule(Добавить правило) в секции Forwarded packets(Проходящие пакеты). Вам откроется форма для добавления правила, как на рисунке 1.

3. Установите поле Action(Действие) в значение Drop(Отбросить) и тогда пакеты, подходящие это правило будут отброшены.

4. В поле Rule comment(Комментарий к правилу) введите краткое пояснение, для чего предназначено это правило. Это бывает полезным, чтобы не запутаться в правилах.

5. В секции Condition details(Критерии отбора), определите критерии, соответствие которым будет приводить к отбрасыванию пакета. Только пакеты, подходящие под все определенные вами критерии, будут отброшены.

 

Некоторые примеры использования критериев  для блокирования трафика:

Блокировать все подключения на определенный TCP порт Установите критерий Network protocol(Сетевой протокол) в значение Equals(Равно) и выберите TCP. Для блокировки порта, обязательно должен быть выбран протокол. Установите поле Destination TCP or UDP port(TCP или UDP порт назначение) в значение Equals(Равно) и введите номер порта в поле Port(s). Вы можете блокировать несколько портов, введя их номера через запятую в поле Port(s) или блокировать целые диапазоны выбрав Port range(Диапазон портов) и введя начальное и конечное значения в соответствующие поля.

Блокировать весь трафик с определенных адресов Установите критерий Source address or network(IP адрес источника или сеть) в значение Equals(Равно) и введите IP адрес, который необходимо блокировать. Вы можете блокировать целые сети вводя в диапазон в формате сеть/префикс, типа 192.168.1.0/24 в поле рядом.

Установите Connection state(Статус подключения) в значение Does not equal(Не равно) и выберите Existing connection(Существующее соединение) из выпадающего меню. Это шаг позволит вашей системе подключатся к блокированным адресам, но не наоборот.

Блокировать трафик к определенным адресам Установите критерий Destination address or network(IP адрес назначения или сеть) в значение Equals(Равно) и введите IP адрес или сеть, которую вы хотите блокировать в поле рядом.

6. Когда вы закончили с созданием условий, нажмите на кнопку Create(Создать). Если Webmin не выявит ошибок в написании правила, то вас вернет на главную страницу модуля и вы увидите свое новое правило в списке правил.

7. Для того, чтобы активировать новое правило, нажмите на кнопку Apply Configuration(Применить конфигурацию) внизу страницы.

 

Правила в каждой цепочке срабатывают в порядке - сверху вниз и действие(Action) применяется от того правила, которое сработало первым. Если ни одно правило не отработало, то применяется правило по умолчанию - обычно пропустить(ACCEPT) пакет.

Иногда вам может понадобится добавить правило в середину существующей цепочки. Чтобы это сделать, используйте одну из стрелок под Add column(Добавить столбец) на главной странице модуля, для создания нового правила перед или после уже существующего. Помните, порядок размещения правил, является очень важным.

Наиболее общие действия и их назначения описаны ниже. Не все из них доступны во всех цепочках и таблицах.

Do nothing (Ничего не делать) Собственно, ничего не делать. При этом обработка переходит к следующему правилу.

Accept (Пропустить) Пропустить пакет. Дальнейшая обработка не требуется. Однако правила в других таблицах, могут исключить пакет, даже если он прошел предыдущую таблицу.

Drop (Отбросить) Пакет отбрасывается, как если бы его просто не было. Дальнейшая обработка не требуется.

Userspace (Пользовательская обработка) Пакет поступает на обработку неким локальным процессом(сервером или какой-либо программой). Это действие практически не используется.

Exit (Выход) Переход к концу цепочки и выполнение действия по умолчанию. Если это используется в пользовательской цепочке, обработка вернет пакет к правилу, которое вызвало это действие, так как в пользовательских цепочках не предусмотрено использование действия по умолчанию.

Masquerade (Маскарадинг) У пакетов будет заменен их адрес источника как будто они пришли с системы, где размещен межсетевой экран и дальнейшая обработка будет остановлена. Когда это действие выбрано, вы можете указать Source ports(Порты источника) для поля маскарадинга, с тем, чтобы определить, для каких портов будет применен маскарадинг. Смотри раздел Настройка NAT для более полной информации. Masquerade доступен только в таблице Network address translation(Трансляция сетевых адресов) в POSTROUTING цепочке.

Source NAT Схожее с опцией Masquerade, но более предпочтительно для систем имеющих статический IP адрес в Интернет. Если выбрана эта опция, вы можете указать IP адреса и порты в поле SNAT, с тем чтобы определить, для каких портов будет применен NAT. Подробнее, читай в разделе Настройка NAT. Эта опция доступна только в таблице Network address translation(Трансляция сетевых адресов) в цепочке POSTROUTING

Destination NAT У пакетов заменяется их адрес и порт назначения на те, что указаны в поле DNAT. Это основа для прозрачного проксирования. Смотри раздел Настройка прозрачного проксирования для подробностей.

Это действие доступно только в таблице Network address translation в цепочках PREROUTING и OUTPUT.

Redirect (Перенаправление) Это действие перенаправляет все пакеты на порт или порты указанные в поле Target ports for redirect(Порты для редиректа). Оно также используется для прозрачного проксирования, хотя DNAT более гибкий в этом плане.

Перенаправление доступно только в таблице Network address translation(Трансляция сетевых адресов) в цепочках PREROUTING и OUTPUT.

Вы также можете выбрать действие Run chain(Запуск цепочки), с тем чтобы пакет перешел для обработки в пользовательскую цепочку или было бы выполнено определенное действие. Смотри раздел Создание своей собственной цепочки для подробностей. Вот некоторые из действий - LOG(для записи в журнал syslog), MIRROR(для отправки пакетов отправителю) и MARK(для маркировки пакетов для последующей обработки).

Для каждого критерия доступны опции - <Ignored>(Игнорировать), Equals(Равно) и Does not equal(Не равно). Первая из них означает, что критерий не используется в отборе. Вторая означает, что пакет должен соответствовать указанному условию. А третье означает, что пакет не должен соответствовать указанному условию, с тем, чтобы определенное действие выполнилось.

Например, если условие Incoming interface(Входящий интерфейс) установлено в Does not equal(не равно) и выбран eth0, то правило будет срабатывать на все пакеты, пришедшие со всех сетевых интерфейсов, за исключением основного eth0.

Поскольку почти все сетевые протоколы пропускают трафик в двух направлениях, то закрыв входящий трафик с определенных адресов, указав их в критерии Source address or network(IP адрес источника или сеть), вы закроете и исходящий трафик, ведь ответные пакеты являющиеся частью соединения будут отброшены. То же самое происходит и при блокировке входящих данных на определенный порт используя критерии Destination TCP or UDP port(TCP или UDP порт назначения). Поэтому, хорошей идеей, при создании блокирующих правил устанавливать Connection state(Статус подключения) в значение Does not equal(не равно) Existing connection(Существующее подключение). То есть не блокировать соединения, созданные вашим сервером.

Как вы можете видеть, IPtables позволяет работать с большим количеством критериев, которые могут комбинироваться в сложные правила. Смотри раздел Применяемые критерии для создания Firewall правил для подробностей. Поскольку возможных критериев очень много, Webmin позволяет вам создавать новые правила схожие с уже существующими. Чтобы это сделать, нажмите на существующее правило, чтобы редактировать его. Затем нажмите кнопку Clone rule(Клонировать правило) внизу страницы, чтобы создать новое правило на основе выбранного(существующего).




Ссылки:

К содержанию

© Copyright 2004-2017 - CMS Made Simple
Сайт работает на CMS Made Simple version 1.4.1

© Все печеньки Break-people.ru принадлежат авторам проекта.

Яндекс цитирования Рейтинг@Mail.ru Яндекс.Метрика