Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: II Международной научно-практической конференции «Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ» (Россия, г. Новосибирск, 16 апреля 2012 г.)

Наука: Информационные технологии

Скачать книгу(-и): Часть I, Часть II, Часть III, Часть IV, Часть V

Библиографическое описание:
Богораз А.Г., Пескова О.Ю. ЗАЩИТА КОМПЬЮТЕРА НА БАЗЕ ОС LINUX С ПОМОЩЬЮ IPTABLES // Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ: сб. ст. по мат. II междунар. студ. науч.-практ. конф. № 3. URL: https://sibac.info//sites/default/files/files/2012_04_16_student/Student_16.04.2012_1.pdf, https://sibac.info/sites/default/files/files/2012_04_16_student/Student_16.04.2012_II.pdf, https://sibac.info/sites/default/files/files/2012_04_16_student/Student_16.04.2012_III.pdf, https://sibac.info/sites/default/files/files/2012_04_16_student/Student_16.04.2012_IV.pdf, https://sibac.info/sites/default/files/files/2012_04_16_student/Student_16.04.2012_5.pdf (дата обращения: 24.04.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

ЗАЩИТА КОМПЬЮТЕРА НА БАЗЕ ОС LINUX С ПОМОЩЬЮ IPTABLES

Богораз Антон Григорьевич

студент 4 курса, кафедра безопасности информационных технологий Таганрогского Технологического Института ЮФУ, г. Таганрог

E-mail:

Пескова Ольга Юрьевна

канд. техн. наук, доцент, доцент кафедры безопасности информационных технологий Таганрогского Технологического Института ЮФУ, г. Таганрог

 

Введение

 


Сейчас существует огромное количество файрволов, в том числе бесплатных, работающих под управлением ОС Windows. Многочисленные документации помогут вам подобрать файрвол на ваш собственный вкус и помогут настроить его в соответствии с вашими пожеланиями.В наш век компьютерных технологий, защита личных цифровых данных является как никогда актуальной. Многие считают, что установив на свой компьютер антивирус с самыми новыми базами, они имеют стопроцентную защиту от любых видов вирусов, хакеров, троянских коней и прочих многочисленных угроз. Однако, это далеко не так. Антивирус является достаточно превентивной мерой, впрочем, как и любой файрвол. Антивирус всего лишь повышает вероятность «неудачности» атаки на ваш компьютер со стороны вредоносного ПО или атакующего. Но не является панацеей от всех бед.

Но, в своей работе я хочу затронуть аспект файрволов в Linux-системах. Хотя Linux и является, на данный момент, гораздо более защищенной ОС, чем Windows, в случае атаки со стороны хакера-профессионала, вас вряд ли защитит то, какая у вас система. Главная задача любой защиты - атакующему нужно предоставить как можно меньший простор для работы.

 

Файрвол как средство защиты

Персональный файрвол (также персональный брандмауэр) - антивирусное программное обеспечение, осуществляющее контроль и фильтрацию перехватываемых сетевых пакетов в соответствии с заданными правилами. В отличие от межсетевого экрана, персональный файрвол устанавливается непосредственно на защищаемом компьютере [3].

В файрволе хранятся правила, которые задаются пользователем. Прежде чем отправить какие-либо пакеты, компьютер отправляет все свои пакеты файрволу. Файрвол сверяется с правилами, и решает - разрешить или запретить этому пакету доступ в Интернет. Если доступ разрешен, то пакет продолжает свое путешествие в назначенное место в Интернете. Если же нет, то пакету доступ в Интернет блокируется и на этом его путешествие заканчивается. Аналогичное происходит для пакетов, приходящих из Интернета. Файрвол перехватывает их, сверяется с правилами и разрешает, или запрещает им доступ к компьютеру. Если же правило не задано, то файрвол спрашивает пользователя компьютера - «Приложение %applicationname% пытается выйти в Интернет. Что мне с ним делать: запретить или разрешить ему доступ в Интернет?» и поступает так, как ему указал пользователь.

Архитектура iptables

Сам по себе iptables не является файрволом. iptables - название консольной пользовательской утилиты, предназначенной для управления netfilter, которая исполняет обязанности межсетевого экрана. Иногда под словом iptables имеется в виду и сам межсетевой экран netfilter, что не совсем корректно, так как iptables - это надстройка, позволяющая конфигурировать netfilter, но сама по себе не исполняющая никаких защитных функций [4].

В системе netfilter пакеты пропускаются через цепочки. Цепочка является упорядоченным списком правил, а каждое правило может содержать критерий и действие или переход. Когда пакет проходит через цепочку, система netfilter по очереди проверяет, соответствует ли пакет всем критериям очередного правила, и, если так, выполняет действие (если критериев в правиле нет, то действие выполняется для всех пакетов, проходящих через правило).

Стандартные действия доступные во всех цепочках - ACCEPT (пропустить), DROP (удалить), QUEUE (передать на анализ внешней программе), и RETURN (вернуть на анализ в предыдущую цепочку).

Существует пять типов стандартных цепочек, встроенных в систему:

·     PREROUTING - для изначальной обработки входящих пакетов.

·     INPUT - для входящих пакетов, адресованных непосредственно локальному процессу (клиенту или серверу).

·     FORWARD - для входящих пакетов, перенаправленных на выход (заметим, что перенаправляемые пакеты проходят сначала цепь PREROUTING, затем FORWARD и POSTROUTING).

·     OUTPUT - для пакетов генерируемых локальными процессами.

·     POSTROUTING - для окончательной обработки исходящих пакетов.

Также можно создавать и уничтожать собственные цепочки при помощи iptables.

Цепочки организованы в 4 таблицы:

·     raw - просматривается до передачи пакета системе определения состояний. Используется редко, например, для маркировки пакетов, которые НЕ должны обрабатываться системой определения состояний. Для этого в правиле указывается действие NOTRACK. Содержит цепочки PREROUTING и OUTPUT.

·     mangle - содержит правила модификации (обычно заголовка) IP‐пакетов. Среди прочего, поддерживает действия TTL, TOS, и MARK(для изменения полей TTL и TOS, и для изменения маркеров пакета). Редко необходима и может быть опасна. Содержит все пять стандартных цепочек.

·     nat - просматривает только пакеты, создающие новое соединение (согласно системе определения состояний). Поддерживает действия DNAT, SNAT, MASQUERADE, REDIRECT. Содержит цепочки PREROUTING, OUTPUT и POSTROUTING.

·     filter - основная таблица, используется по умолчанию, если название таблицы не указано. Содержит цепочки INPUT, FORWARD и OUTPUT.

Механизм определения состояний (state machine, connection tracking) - система трассировки соединений, важная часть netfilter, при помощи которой реализуется межсетевой экран на сеансовом уровне (stateful firewall). Система позволяет определить, к какому соединению или сеансу принадлежит пакет. Механизм определения состояний анализирует все пакеты кроме тех, которые были помечены NOTRACK в таблице raw.

В системе netfilter каждый пакет, проходящий через механизм определения состояний, может иметь одно из четырёх возможных состояний:

·     NEW - пакет открывает новый сеанс.

·     ESTABLISHED - пакет является частью уже существующего сеанса.

·     RELATED - пакет открывает новый сеанс, связанный с уже открытым сеансом.

·     INVALID - все прочие пакеты [5].

 

Практическое применение

Возможности в гибкой настройке практически безграничны. Совмещая достаточно легкий синтаксис и надежность, iptables способен защищать не только мощные серверные станции, но и обычные домашние компьютеры, при этом потребляя достаточно малое количество памяти, что позволяет использовать его на слабых машинах.

Основное назначение iptables - фильтрация пакетов по их заголовку. Сам iptables работать с содержимым пакета не умеет, но ничто не мешает нам с помощью действия QUEUE передать пакет на обработку внешней программе.

Одна из самых интересных функций - создание ловушек. Расширение TARPIT представляет собой эквивалент ловушки. Если установить соединение с портом-ловушкой, то обнаружится, что закрыть такое соединение не так-то просто. Принцип действия прост - iptables подтверждает запрос на соединение, и ставит размер окна равным 0 (нулевое значение этого поля показывает, что адресат временно не может принимать данные), что вынуждает атакующую систему прекратить передачу данных. Любые попытки атакующего закрыть соединение игнорируются, таким образом, соединение будет оставаться открытым, пока не наступит тайм-аут. На поддержание такого соединения система атакующего будет тратить системные ресурсы, в то время как система-ловушка ресурсы тратить не будет [1].

Дальнейшее развитие

В свое время iptables пришел на смену проектам ipchains и ipfwadm. iptables отработал более 10 лет и обеспечивал бесперебойную защиту огромному количеству компьютеров и серверов. iptables хорошо зарекомендовал себя и продолжает совершенствоваться. В нем до сих пор находят баги, но, в основном, система очень надежна и хорошо отлажена.

Около трех лет назад был представлен первый публичный выпуск замены iptables - nftables. Разработчиками является та же команда, что создала iptables - Netfilter Core Team.

Основными отличиями nftables называют: изменившийся синтаксис задания правил и абсолютно новый подход к трансляции самих правил: заданные пользователем правила теперь преобразуются в специальный упрощенный псевдокод, который используется для принятия решений по дальнейшим действиям с пакетом через специальный интерфейс внутри ядра.

nftables состоит из трех частей: кода фильтрации, работающего внутри ядра, связующей интерфейсной библиотеки libnl, работающей с ядром через netlink, и фронтенда, работающего на уровне пользователя. Для формирования правил фильтрации в nftables представлена утилита nft, которая проверяет корректность правил и транслирует их в псевдокод [6].

На данный момент разработка nftables идет полным ходом. Будем надеяться, что nftables будет обладать еще более упрощенным синтаксисом и еще большей надежностью, чем iptables.

Результат работы

Одной из наиболее уязвимых точек компьютера при атаке из сети является входящий трафик, через который атакующий может получить доступ к компьютеру через открытые порты, не закрытые по каким-либо причинам. Для предотвращения таких атак можно воспользоваться правилами:

-A OUTPUT -p tcp -m tcp --sport 32768:65535 -j ACCEPT - обеспечивает свободный исходящий доступ для пакетов протокола TCP, идущих с заданного диапазона портов.

-A OUTPUT -p udp -m udp --sport 32768:65535 -j ACCEPT - аналогично правилу выше, но для протокола UDP.

Эти два правила позволяют приложениям компьютера выходить в сеть через заданный диапазон портов.

-A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT - разрешает входящий доступ пакетам протокола TCP, имеющим маркеры: «RELATED», «ESTABLISHED».

-A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT - аналогично правилу выше, но для протокола UDP.

Данные правила позволяют защищаемой машине принимать входящий трафик только для тех приложений, которые на ней установлены. В этом случае, атакующий не сможет подключиться к компьютеру, используя открытые «легально» порты, и загрузить в систему вирус или троянского коня [2].

Данная конфигурация может быть использована для защиты домашнего компьютера.

Заключение

В заключение хотелось бы сказать, что настройку лучше всего проводить с помощью консольного интерфейса ОС Linux. На данный момент, консоль является наиболее функциональным инструментом для тонкой настройки любого сервиса, не только iptables. Хотя уже давно существуют дружелюбные функциональные фронтенды, но, на мой взгляд, не все из них достаточно хорошо отлажены.

Хотелось бы также напомнить, что файрвол ни в коем случае не является панацеей. Любую программу можно взломать, и файрвол - не исключение. Это работа была написана для тех, кто понимает, что файрвол - не решение всех проблем, но, достаточно сложная проблема для атакующего, так как ему придется не только пробиваться сквозь сам файрвол, но и к тому же делать это незаметно для журналов логирования.

 

Список литературы:

  1. Лоуф С. OpenNews: статья - расширенные возможности IPTables (iptables linux firewall patch) [Электронный ресурс]. – Режим доступа: http://www.opennet.ru/base/net/iptables_treasures.txt.html(дата обращения: 11.04.2012)
  2. Малащенко А. Защищаем Линукс - файрвол за 10 минут | Клуб любителей ASPLinux [Электронный ресурс]. – Режим доступа: http://asplinux.net/node/18(дата обращения: 11.04.2012)
  3. Персональный файрвол – Википедия [Электронный ресурс]. – Режим доступа: http://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D1%84%D0%B0%D0%B9%D1%80%D0%B2%D0%BE%D0%BB(дата обращения: 11.04.2012)
  4. Iptables – Википедия [Электронный ресурс]. – Режим доступа: http://ru.wikipedia.org/wiki/Iptables(дата обращения: 11.04.2012)       
  5. Netfilter – Википедия [Электронный ресурс]. – Режим доступа: http://ru.wikipedia.org/wiki/Netfilter(дата обращения: 11.04.2012)
  6. OpenNews: Разработчики Netfilter представили замену iptables [Электронный ресурс]. – Режим доступа: http://www.opennet.ru/opennews/art.shtml?num=20843(дата обращения: 11.04.2012)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.