IPtables. Введение

Если ваш компьютер подключен к Интернет, то в целях безопасности, он должен быть защищен с помощью Firewall(межсетевой экран, брандмауэр) от несанкционированного доступа. Материалы этого раздела описывают, как настроить IPTables(Firewall который идет практически во всех Linux с версией ядра 2.4 и выше) с помощью Webmin.

Firewall(читается как - файрволл) - это межсетевой экран - система, которая защищает себя и остальные хосты в сети от злоумышленников из незащищенных сетей, например, из Интернета. Firewall может блокировать пакеты и соединения на основе различных критериев, к пример, IP адрес источника пакета или соединения, IP адрес назначения пакета или соединения, порт и протокол. Обычно, межсетевой экран выполняет ещё и функции маршрутизации пакетов, между защищенной и незащищенной сетями, хотя, это и необязательно.

Firewall может выполнять функции шлюза(gateway), позволяя компьютерам из локальной сети, имеющим только внутренние IP адреса(например, 192.168.1.15), , получать доступ к сети Интернет, через единственный внешний IP адрес. Этот подход больше известен под понятием NAT (Network Address Translation).

На протяжении развития Linux, его ядро включало разные межсетевые экраны, например IPfwadm и IPchains. Начиная с версии ядра 2.4, Linux включает в себя IPtables firewall, который является более мощным и гибким в сравнении с предшественниками. Во всех дистрибутивах Linux с ядром 2.4 и выше, включена поддержка файрволла IPtables и команд необходимых для его конфигурации.

Весь сетевой трафик, согласно нотации IP протокола, разбит на пакеты, которые содержат в себе различную информацию включая сведения об источнике пакета, месте назначения и протоколе. То есть, даже огромные файлы, при передаче по сети, делятся на множество пакетов, а достигнув места назначения, пакеты соединяются в единый файл. Поскольку файрволл IPtables работает на уровне IP протокола, то все правила, будут касаться именно пакетов, а не  TCP соединений или HTTP запросов.

Говоря о структуре, IPtables состоит из трех типов объектов - таблицы, цепочки и правила. Каждая из таблиц(их всего три) содержит две или три стандартных цепочки и, возможно, несколько пользовательских цепочек. Каждая цепочка содержит правила, которые предназначены для вычленения определенных пакетов, согласно некоторым критериям, из общего потока, с тем, чтобы принять решение о дальнейшей судьбе этих пакетов.

Три таблицы и их стандартные цепочки представлены ниже:

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

2. Network address translation (nat) (Трансляция сетевых адресов) Эта таблица применяется только для пакетов которые создают новое соединение. Правила цепочки PREROUTING применяются к пакетам, как только они попадают к межсетевому экрану для маршрутизации. Цепочка POSTROUTING применяется к пакетам которые отправляются с интерфейса после маршрутизации. Правила цепочки OUTPUT применяются к локально сгененерированным пакетам для их модификации перед маршрутизацией.

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

3. Packet alteration (mangle) (Изменение содержимого пакетов) Эта таблица используется только для специального(и обдуманного) внесения изменений в пакет. Она содержит две цепочки - PREROUTING для модификации пакетов перед маршрутизацией, и OUTPUT для изменения локально сгененированных пакетов. Эта таблица редко используется в типовых решениях по настройке Firewall.

Когда пакет обрабатывается цепочкой, каждое правило в этой цепочке исполняется согласно порядка его расположения. Каждое правило имеет набор критериев, которые отвечают за срабатывание правила. То есть, если пакет подходит по всем критериям определенным в правиле, то правило сработает. В результате срабатывания правила будет выполнено некоторое действие(Action), которое прописано к этому правилу. Механизм достаточно прост - Если А, то B иначе C.

К примеру, мы отлавливаем пакеты, которые приходят на 80 порт нашего межсетевого экрана и если такой пакет приходит, то мы его отбрасываем, а все остальные пакеты пропускаем в сеть. Зачем мы это делаем, пока не так важно. Важно понять механизм. По приведенной выше схеме получается, Если пакет пришел на 80 порт, то мы его берем и выбрасываем далеко-далеко, иначе(если это пакет на другой порт, например) пропускаем пакет пройти в локальную сеть. Всё достаточно просто.

Действия, которые могут быть выполнены, следующие:

  • немедленный пропуск пакета(ACCEPT);
  • немедленное отбрасывание пакета(DROP);
  • произвести изменение пакета и продолжить его обработку.

 

Если достигнут конец цепочки и ни одно правило не сработало, то выполняется правило по умолчанию, которым обычно является пропуск пакета.

Рисунок 1 показывает в виде блок-схемы, алгоритм работы IPtables. Комментарий к алгоритму:

Пакеты приходят из внешней сети и обрабатываются двумя PREROUTING цепочками. На этом этапе принимается решение - пакеты направляющиеся в локальную систему идут по левой ветке, иначе они идут по правой ветке. Те, что идут по левой ветке, обрабатываются цепочкой INPUT, прежде чем они будут переданы локальным объектам сети типа серверов. Проходящие(FORWARDED) пакеты обрабатываются цепочкой FORWARD, прежде чем отправится к месту назначения.

Firewall может работать с пакетами, отправляемыми процессами локальной системы. Это значит, что межсетевой экран может использоваться для ограничения внешних адресов, к которым можно подключаться из локальной сети. Также можно ограничить и протоколы которые разрешено пропускать наружу. Например, можно запретить FTP протокол. А SFTP оставить.




Ссылки:

К содержанию

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

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

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