Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Защита при помощи netfilter - файл 1.doc


Защита при помощи netfilter
скачать (68 kb.)

Доступные файлы (1):

1.doc68kb.15.12.2011 12:46скачать

содержание

1.doc

Московский авиационный институт

(государственный технический университет)

Факультет прикладной математики
Кафедра вычислительной математики и программирования
Курсовая работа по курсу «информационная безопасность»

Студент: Д. Борисов

Преподаватель: А. Крижановский

Москва, 2010

Задание
Реализовать IPS (Intrusion Prevention System) одним из следующих

подходов:

  1. Прикладной код на C/C++/Perl/Python/Shell в режиме реального времени

обрабатывает логи прикладного демона (Apache, Squid etc.) или сниффера

(tcpdump) и блокирует доступ реконфигурацией IPtables;

  1. Plug-in для Snort с использованием snort-inline для блокировки трафика;

  2. Модуль ядра Linux/netfilter.


В качестве логики IPS должна реализовывать следующий метод обнаружения атак: DDoS - подсчет (a) числа SYN-пакетов (b) соединений от каждого клиентского IPv4.
Приложить результаты тестирования/анализа к итоговому отчету.
Примечания.
IPS переводится как система предотвращения вторжений и представляет собой программную или аппаратную систему сетевой и компьютерной безопасности, обнаруживающую вторжения или нарушения безопасности и автоматически защищающую от них (ru.wikipedia.org).
В данной курсовой работе было принято решение реализовать IPS при помощи настройки межсетевого экрана (брандмауэра) системы Linux netfilter. Настройка производилась при помощи стандартного интерфейса netfilter под названием iptables.
^ Программное и аппаратное обеспечение
Данная курсовая работа была выполнена на моем стационарном компьютере, имеющего следующие характеристики: процессов Intel Core i5 750, 4Gb RAM, видеокарта Nvidia GeForce GTX 260.
При этом, программное обеспечение была таковым: операционная система Windows 7 Professional 64bit, для эмуляции линукса использовался WMware Workstation 7.1.0 build-261024, в качестве линкуса выступал Ubuntu, netfilter, iptables и прочие используемые утилиты были интегрированы в Ubuntu еще до начала работы.

Netfilter
Итак, в данной курсовой работе было принято решение реализовать IPS при помощи настройки межсетевого экрана (брандмауэра) системы Linux netfilter. Настройка производилась при помощи стандартного интерфейса netfilter под названием iptables.
^ Межсетевой экран или сетевой экран — комплекс аппаратных или программных средств, осуществляющий контроль и фильтрацию проходящих через него сетевых пакетов в соответствии с заданными правилами. Основной задачей сетевого экрана является защита компьютерных сетей или отдельных узлов от несанкционированного доступа. Также сетевые экраны часто называют фильтрами, так как их основная задача — не пропускать (фильтровать) пакеты, не подходящие под критерии, определённые в конфигурации (ru.wikipedia.org).
В системе netfilter обработка пакетов осуществляется при помощи пропускания их через наборы так называемых цепочек, каждая из которых является заранее написанным списком правил. Каждое из правил, содержащихся в цепочке, в общем случае состоит из критерия, действия и перехода, которые применяются по отношению к пакету. Критерий это условие, которое должно быть выполнено для того, чтобы к пакету применилось действие или переход. Действие это то, что делает с пакетом данное правило. Переход это указание на то, какое правило должно выполняться после выполнения текущего правила. Критерий, действие и переход не обязательно должны присутствовать в правиле одновременно, например, может быть так, что нет критерия, то есть правило применяется ко всем попавшим в этом место пакетам.
В системе netfilter есть 5 стандартных цепочек, которые встроены в систему:

  1. PREROUTING — осуществляет начальную обработку входящих пакетов.

  2. INPUT —обрабатывает пакеты, которые предназначаются непосредственно нам.

  3. FORWARD — обрабатывает пакеты, которые проходят через нас, но адресованы кому то другому, так что идут на наш выход.

  4. OUTPUT — обрабатывает пакеты, которые генерируются нашей системой и идут на выход.

  5. POSTROUTING — окончательно дообрабатывает идущие на выход пакеты.


^ DDoS-атака при помощи SYN-флуда
DDoS переводится как Distributed Denial of Service, то есть распределённая атака типа «отказ в обслуживании». Еще есть DoS-атака, которая тоже имеет своей целью отказ в обслуживании, но в отличие от DDoS не производится с большого числа разных компьютеров. Под отказом в обслуживании понимается ситуация, когда простые пользователи не могут получить или с трудом получают доступ к системе, на которую производится атака.
DDoS-атака при помощи SYN-флуда выглядит следующим образом. Есть много разных компьютеров, которые слушаются воли злоумышленника. Каждый из этих компьютеров начинает посылать атакуемому серверу запросы на новое соединение по протоколу TCP, так называемые SYN-пакеты. Сервер получает эти пакеты, открывает новые соединения и ждет от ботов продолжения, но вместо этого они продолжают открывать новые соединения с определенной интенсивностью. В результате, ресурсы сервера заканчиваются, и он начинает откидывать все приходящие к нему запросы на новые соединения, так как для них нет места. В результате, нормальные, не зараженные компьютеры не могут получить к нему доступ. Такой вид DDoS-атаки является одним из самых простых и может быть достаточно эффективным, если не защищаться.
^ Защита при помощи netfilter
Для управления netfilter используется интерфейс iptables. Iptables выполнен в виде стандартной утилиты командной строки. В данной курсовой работе, простейшая настройка iptables на защиту от атак извне будет выглядеть следующим образом:
ddd@ddd-virtual-machine:~$ sudo iptables -F

ddd@ddd-virtual-machine:~$ sudo iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set

ddd@ddd-virtual-machine:~$ sudo iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 100 --hitcount 20 -j DROP

ddd@ddd-virtual-machine:~$ sudo iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

DROP tcp -- anywhere anywhere tcp dpt:www state NEW recent: UPDATE seconds: 100 hit_count: 20 name: DEFAULT side: source

tcp -- anywhere anywhere tcp dpt:www state NEW recent: SET name: DEFAULT side: source
Chain FORWARD (policy ACCEPT)

target prot opt source destination
Chain OUTPUT (policy ACCEPT)

target prot opt source destination

ddd@ddd-virtual-machine:~$
Разберемся, что делают приведенные выше команды. iptables –F очищает все цепочки от всех правил. Следующие две команды говорят, что с одного ip за 100 секунд не должно приходить более 20 пакетов. iptables –L выводит список всех правил в удобочитаемом виде.
Разберем ключи, которые использовались для фильтрации пакетов:

  1. –i INPUT означает, что мы фильтруем трафик, который предназначается нам, а не кому то другому.

  2. –p tcp --dport 80 означает, что мы фильтруем tcp-трафик, который посылают на 80 порт.

  3. -m state --state NEW означает, что мы применяем фильтр к новым соединениям, то есть, соединениям с syn'ами.

  4. -m recent –set. Модуль iptables recent предназначен для того, чтобы создавать динамические таблицы IP-адресов в зависимости от определенных условий, а затем устанавливать разрешающие и запрещающие правила для этих таблиц. В данном случае, если в таблице нет ip-адреса отправителя, мы его туда добавляем.

  5. -m recent --update --seconds 100 --hitcount 20 -j DROP. Если у нас в таблице уже есть такой ip-адрес, и за 100 секунд количество запросов на новые соединения от него было больше 20, то новый запрос на соединение игнорируется.

Использованные источники


  1. http://ru.wikipedia.org

  2. http://kevin.vanzonneveld.net/techblog/article/block_brute_force_attacks_with_iptables/

  3. http://citforum.ru/operating_systems/linux/iptables/1.shtml

  4. http://arulgobi.blogspot.com/2009/08/ddos-protection-using-iptables-recent.html



Скачать файл (68 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации