Firewall

Автор работы: Пользователь скрыл имя, 01 Февраля 2011 в 22:33, курсовая работа

Описание работы

Популярность Linux постоянно растет. Эта система стала объектом пристального внимания не только администраторов сетей небольших организаций, но и пользователей, выбирающих программные средства для поддержки домашнего компьютера. В настоящее время у многих появилась возможность поддерживать постоянное Internet-соединение, что способствует дальнейшему распространению системы.

Содержание работы

Введение
2. Межсетевой экран
3. Политика организации брандмауэра
3.1. Брандмауэр с фильтрацией пакетов.
3.1.1. Фильтрация входящих пакетов 9
3.1.2. Параметры фильтрации
3.2. Протоколы
3.3. Фильтрация портов
3.4. Фильтрация адресов
3.4.1. Фильтрация неверных адресов
3.5. Фильтрация в Linux
4. Ipchains
4.1. Перенаправление
4.2. Сохранение фильтра
5. Iptables
5.1. Переадресация
6. Установка, настройка Firewall
6.1. Настройка с помощью команды: aptitude install arno-iptables-firewall
6.2. Ручное конфигурирование iptables
Заключение
Список использованной литературы

Файлы: 1 файл

курсовая.doc

— 1.16 Мб (Скачать файл)
  • без предупреждения;
  • с посылкой на компьютер отправителя, сообщая об ошибке.

       Последний вариант не приветствуется среди пользователей, потому что незачем направлять злоумышленнику лишние пакеты. Лучше оставить действие без внимания, и злоумышленник будет думать, что сервис просто недоступен. Но в этом случае легальные пользователи могут ощутить неудобства при наличии просчета в конфигурировании сетевого экрана. Допустим, что заблокирован доступ к 80 порту. Если пользователь обратится к Web-серверу, то программа, не получив ответа о запрете, будет находиться в состоянии ожидания до истечения Timeout. Для некоторых программ это значение может быть бесконечным, и они зависнут.

       К тому же, отправка сообщений с ошибками идет по протоколу ICMP. Недобросовестный пользователь может использовать эти особенности для реализации атаки "Отказ от обслуживания" и переполнить канал ненужными ответами. Атака DoS может быть направлена не только на трафик. Достаточно в цикле запускать запросы на установку соединения с запрещенным портом, а компьютер будет тратить ресурсы на проверку пакетов и отправку ICMP-ответов. Если пакеты будут идти слишком часто, то сервер может не справиться с нагрузкой и перестанет отвечать на запросы авторизованных пользователей.

       При настройке правил можно использовать два варианта фильтра:

       1.  Разрешено все, что не запрещено.

       2.  Запрещено все, что не разрешено.

       Наиболее  безопасным методом является второй, потому что всегда следует отталкиваться  от запрета. Изначально необходимо запретить  абсолютно все, а потом по мере надобности открывать доступ определенным пользователям и к обусловленным сервисам. Именно этой политики придерживаются, когда настраивают правила для входящих пакетов.

       Если  двигаться от разрешения, то по умолчанию  все позволено. Администратор может забыть или просто не закрыть некий доступ и увидеть свою ошибку только после того, как злоумышленник проникнет в систему.

       3.1.2. Параметры фильтрации

       Основными параметрами пакета, по которым производится фильтрация, являются номер порта  источника или приемника, адрес отправителя или назначения и протокол.

       Фильтровать можно пакеты, идущие в обе стороны. Проверка пакетов, приходящих извне, позволяет на самом раннем этапе отсеять любые попытки взломать систему или вывести ее из строя.

       Можно задаться вопросом, зачем же фильтровать то, что уходит из сети? На первый взгляд бессмысленно, но смысл есть и достаточно большой. У исходящего трафика могут быть враги, такие как:

  • троянские программы, которые могут отправлять в сеть конфиденциальную информацию или соединяться со злоумышленником или с его сервером, чтобы брать команды с какого-нибудь файла;
  • cпециализированные программы для обхода правил. Допустим, что доступ к определенному порту извне запрещен. Злоумышленник может поместить на сервере программу, которая будет перенаправлять трафик с разрешенного порта на запрещенный, наподобие туннелирования OpenSSL.

       Возможных лазеек для проникновения очень  много, задача закрыть максимальное их количество. Для этого под контролем  должен быть трафик в обоих направлениях.

       3.2. Протоколы

       TCP используется как базовый для передачи данных таких протоколов, как HTTP, FTP и др. Запрещать его не имеет смысла, потому что это основа, без которой пользователь лишится всех удобств, предоставляемых всемирной сетью. Для передачи данных сначала TCP устанавливает соединение с удаленным хостом, и только потом происходит обмен информацией. Благодаря этому подделка IP-адреса любого участника соединения усложняется, а иногда становится и невозможной.

       Протокол  UDP находится на одном уровне с TCP, но передает данные без установки соединения. Это значит, что пакет просто посылается в сеть на определенный адрес, и нет гарантии, что он дошел до адресата. Здесь нет никакой защиты от подделки IP-адреса, поэтому в качестве отправителя злоумышленник может указать что угодно, и сервер не увидит подвоха. Если нет особой надобности, то обычно запрещают прохождение таких пакетов в обе стороны.

       Протокол  ICMP используется для обмена управляющими сообщениями. Через него команда ping проверяет соединение с компьютером, а оборудование или программы сообщают друг другу об ошибках. Если этот протокол использовать только по назначению, то он очень удобен. Но в жизни все далеко от идеала, и ICMP уже не раз становился объектом для DoS-атак. Если обмен управляющими сообщениями необходим в работе, нужно попробовать найти другую программу, но избавится от использования ICMP.

       3.3. Фильтрация портов

       Первое, на что надо обратить внимание — это, конечно же, порты. Допустим, что есть Web-сервер, к которому имеют доступ все пользователи. Предположим, что на нем работают абсолютно безопасные сценарии, или статичные документы HTML. Помимо этого, все программы содержат самые последние обновления и не имеют уязвимостей. Получается, что сервер безопасен! Но до поры до времени. Для обновления содержимого необходим какой-то доступ для закачки файлов, ведь бегать с дисками к Web-серверу никто не будет. Чаще всего для работы с файлами открывают FTP-сервис, а вот это уже дыра.

       Для доступа по FTP можно установить наиболее защищенные программы и самые сложные пароли, но злоумышленник рано или поздно сумеет взломать этот сервис. Пароль можно подобрать, украсть с компьютера пользователя или заставить самого сказать через социальную инженерию, существуют и другие методы. Любой канал, через который можно проникнуть в систему, становится уязвимым, потому что именно его будет взламывать злоумышленник, и как раз на это будут потрачены все усилия. У одного не получится, у второго, а сотый случайно войдет с первого раза и уничтожит все, что попадется под руку.

       Таким образом, можно установить на сервер такую политику, при которой на 80 порт будут приниматься все подключения, а FTP-сервис (21 порт) будет запрещен для всех, кроме определенного IP-адреса. После этого злоумышленник может хоть годами подбирать пароль, любой его трафик будет обрезаться, если он не знает IP-адреса и не сможет его подделать.

       Нужно запретить все порты и после этого открыть только то, что необходимо. На сервере, который охраняет целую сеть, это сделать сложно, потому что разные компьютеры требуют различные сервисы. Открыть их все — значит разрешить работать со всеми портами на любой машине. Конечно же, можно помимо портов использовать в правилах IP-адреса, но дополнительным вариантом защиты будет использование сетевого экрана на каждом компьютере внутри сети. В этом случае каждый из них будет охраняться в зависимости от выполняемых задач. Если это Web-сервер, то из Интернета будет виден только 80 порт, для FTP — 21-й порт.

       3.4. Фильтрация адресов

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

       Допустим, что в сети находятся два Web-сервера. Такое бывает очень часто. Один сервер делают доступным для всех посетителей из Интернета, а второй – только для своих пользователей. Вполне логичным будет разделение информации, тогда на закрытый сервер можно пускать трафик только локальной сети вне зависимости от порта.

       3.4.1. Фильтрация неверных адресов

       Был случай, когда один сервис неправильно  обрабатывал адрес получателя. Если серверу приходил неверный пакет, то он отвечал отправителю сообщением о некорректности данных. Проблема заключалась в том, что злоумышленник мог послать на сервер такой пакет, в котором в качестве отправителя стоял адрес получателя, т. е. и в том и в другом случае использовался IP-адрес сервера. Конечно же, сервис пытался отослать сообщение об ошибке, и отправлял его сам себе, и снова видел ошибочный пакет. Таким образом информация зацикливалась. Если злоумышленник направит тысячи таких пакетов, то сервер только и будет посылать сообщения об ошибках.

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

       Помимо  этого, советуют не пропускать пакеты с адресами, которые зарезервированы или не могут использоваться в Интернете. Рассмотрим диапазоны этих адресов:

  • в качестве отправителя стоит адрес 127.0.0.1. Из Интернета пакет с таким адресом прийти не может, потому что он всегда используется для указания на локальную машину (localhost);
  • от 224.0.0.0 до 239.255.255.255 – используется для широковещательных адресов, которые не назначаются компьютерам, поэтому с них не могут приходить пакеты;
  • от 240.0.0.0 до 247.255.255.255 – зарезервирован для будущего использования в Интернете.

       Все эти адреса нереальны для Интернета, и никакие пакеты с такими параметрами не должны проходить через сетевой экран.

       3.5. Фильтрация в Linux

       Для фильтрации пакетов по определенным пользователем правилам в ядро Linux уже встроены все необходимые функции. Но это только основа, а нужен еще инструмент, который в удобной форме позволит управлять этими правилами.

       В операционной системе Linux можно воспользоваться двумя программами: iptables и ipchain.

       В ядре Linux находятся три основные цепочки (chain) правил:

       1. Input – для входящих пакетов;

       2. Output – для исходящих пакетов;

       3. Forward – для пакетов, предназначенных другой системе.

       ОС  Linux проверяет все правила из цепочки, которая выбирается в зависимости от направления передачи. Пакет последовательно обследуется на соответствие каждому правилу из цепочки. Если найдено хотя бы одно совпадение с описанием, то выполняются действия, указанные в данном правиле: DENY, REJECT или ACCEPT, т. е. система решает, пропускать пакет дальше или нет.

       Цепочки несут в себе одну очень неприятную для новичков особенность. Допустим, что на сервере нужно открыть 21 порт только для самого себя. Для этого можно создать два правила:

       1. Запретить все входящие пакеты на 21 порт сервера.

       2. Разрешить пакеты на 21 порт с компьютера с адресом 192.168.1.1.

       На  первый взгляд все верно, доступ запрещен для всех, а открыт только для  одного IP-адреса. Проблема кроется в том, что если посылка будет с адреса 192.168.1.1, то сравнение первого правила с параметрами пакета даст положительный результат, т. е. выполнится запрет и пакет удалится, и второе правило не сработает никогда.

       Чтобы политика действовала верно, строки надо поменять местами. В этом случае сначала проверится запись "Разрешить пакеты на 21 порт с компьютера с адресом 192.168.1.1", контроль пройдет успешно и пакет будет пропущен. Для остальных IP-адресов это правило не выполнится, и проверка продолжится. И вот тогда сработает запрет доступа на 21 порт для всех пакетов.

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

4. Ipchains

       Наиболее  распространенной программой для создания правил сетевого экрана является ipchains. В команде вызова можно указывать следующие параметры:

       -A цепочка правило – добавить правило в конец цепочки. В качестве аргумента указывается имя цепочки input, output или forward;

       -D цепочка номер – удалить правило с указанным номером из заданной цепочки;

       -R цепочка номер правило – заменить правило с указанным номером в заданной цепочке;

       -I цепочка номер правило – вставить правило в указанную первым аргументом цепочку под номером, заданным во втором параметре. Если номер равен 1, то правило станет первым в цепочке;

       -L цепочка – просмотреть содержимое указанной цепочки;

       -F цепочка – удалить все правила из указанной цепочки;

       -N имя – создать новую цепочку с заданным именем;

       -X имя – удалить цепочку с указанным именем;

       -P цепочка правило – позволяет изменить политику по умолчанию;

       -p протокол – определяет протокол, к которому относится правило. Значений аргумента протокол может быть четыре: tcp, udp, iemp или all (указывается, если правило действует для всех протоколов);

       -i интерфейс – сетевой интерфейс, к которому будет привязано правило. Если этот аргумент не указан, то правило будет относиться ко всем интерфейсам;

Информация о работе Firewall