Защита при помощи netfilter
скачать (68 kb.)
Доступные файлы (1):
1.doc | 68kb. | 15.12.2011 12:46 | ![]() |
содержание
- Смотрите также:
- Доклад - Оказание первой медицинской помощи при ушибах, вывихах, переломах [ реферат ]
- Подшипники качения и скольжения [ документ ]
- Подшипники качения и скольжения [ документ ]
- Гидросооружения 1/2008 [ документ ]
- по гражданской обороне [ лекция ]
- № Размытие изображений при помощи библиотеки OpenCV [ документ ]
- Коррозионные свойства грунтов и методы их определения [ реферат ]
- Теоретический анализ организации медицинской помощи онкологическим больным 5 [ документ ]
- Защита населения и территорий от чрезвычайных ситуаций [ реферат ]
- Защита информации, антивирусная защита [ документ ]
- по БЖД - Защита населения и территории от чрезвычайных ситуаций [ лабораторная работа ]
- Гавриков А. Боевое дзюдо [ документ ]
1.doc
Московский авиационный институт(государственный технический университет)
Факультет прикладной математики
Кафедра вычислительной математики и программирования
Курсовая работа по курсу «информационная безопасность»
Студент: Д. Борисов
Преподаватель: А. Крижановский
Москва, 2010
Задание
Реализовать IPS (Intrusion Prevention System) одним из следующих
подходов:
Прикладной код на C/C++/Perl/Python/Shell в режиме реального времени
обрабатывает логи прикладного демона (Apache, Squid etc.) или сниффера
(tcpdump) и блокирует доступ реконфигурацией IPtables;
Plug-in для Snort с использованием snort-inline для блокировки трафика;
Модуль ядра 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 стандартных цепочек, которые встроены в систему:
PREROUTING — осуществляет начальную обработку входящих пакетов.
INPUT —обрабатывает пакеты, которые предназначаются непосредственно нам.
FORWARD — обрабатывает пакеты, которые проходят через нас, но адресованы кому то другому, так что идут на наш выход.
OUTPUT — обрабатывает пакеты, которые генерируются нашей системой и идут на выход.
POSTROUTING — окончательно дообрабатывает идущие на выход пакеты.
^
DDoS переводится как Distributed Denial of Service, то есть распределённая атака типа «отказ в обслуживании». Еще есть DoS-атака, которая тоже имеет своей целью отказ в обслуживании, но в отличие от DDoS не производится с большого числа разных компьютеров. Под отказом в обслуживании понимается ситуация, когда простые пользователи не могут получить или с трудом получают доступ к системе, на которую производится атака.
DDoS-атака при помощи SYN-флуда выглядит следующим образом. Есть много разных компьютеров, которые слушаются воли злоумышленника. Каждый из этих компьютеров начинает посылать атакуемому серверу запросы на новое соединение по протоколу TCP, так называемые SYN-пакеты. Сервер получает эти пакеты, открывает новые соединения и ждет от ботов продолжения, но вместо этого они продолжают открывать новые соединения с определенной интенсивностью. В результате, ресурсы сервера заканчиваются, и он начинает откидывать все приходящие к нему запросы на новые соединения, так как для них нет места. В результате, нормальные, не зараженные компьютеры не могут получить к нему доступ. Такой вид DDoS-атаки является одним из самых простых и может быть достаточно эффективным, если не защищаться.
^
Для управления 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 выводит список всех правил в удобочитаемом виде.
Разберем ключи, которые использовались для фильтрации пакетов:
–i INPUT означает, что мы фильтруем трафик, который предназначается нам, а не кому то другому.
–p tcp --dport 80 означает, что мы фильтруем tcp-трафик, который посылают на 80 порт.
-m state --state NEW означает, что мы применяем фильтр к новым соединениям, то есть, соединениям с syn'ами.
-m recent –set. Модуль iptables recent предназначен для того, чтобы создавать динамические таблицы IP-адресов в зависимости от определенных условий, а затем устанавливать разрешающие и запрещающие правила для этих таблиц. В данном случае, если в таблице нет ip-адреса отправителя, мы его туда добавляем.
-m recent --update --seconds 100 --hitcount 20 -j DROP. Если у нас в таблице уже есть такой ip-адрес, и за 100 секунд количество запросов на новые соединения от него было больше 20, то новый запрос на соединение игнорируется.
Использованные источники
http://ru.wikipedia.org
http://kevin.vanzonneveld.net/techblog/article/block_brute_force_attacks_with_iptables/
http://citforum.ru/operating_systems/linux/iptables/1.shtml
http://arulgobi.blogspot.com/2009/08/ddos-protection-using-iptables-recent.html
Скачать файл (68 kb.)