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 Мб (Скачать файл)

       -j действие – операция, которая должна быть выполнена над пакетом.

       В качестве аргумента можно указать  ACCEPT, REJECT или DENY;

       -s адрес порт – характеристики отправителя пакета. Первый аргумент задает IP-адрес источника, а второй (не обязательный) – порт. У протокола ICMP нет портов;

       -d адрес порт – атрибуты получателя пакета. Первый аргумент задает IP-адрес назначения, а второй (не обязательный) — порт.

       4.1. Перенаправление

       Сетевой экран, который защищает целую сеть, состоит, как минимум, из компьютера с двумя интерфейсами. Один из них (сетевая карта или модем) направлен в Интернет, а другой— в локальную сеть. Сетевой экран будет заниматься перенаправлением трафика с одного интерфейса в другой, т. е. с сетевой карты на модем и обратно. Такой компьютер называют шлюзом. Пользователи не подключаются к самому шлюзу, а только используют его как средство переадресации пакетов.

       Можно установить какие-либо сервисы прямо на сетевой экран, но это делать не рекомендуется. Лучше, если они будут за пределами этого компьютера. Публичные сервисы лучше ставить со стороны Интернета, а закрытые — должны быть на серверах внутри локальной сети.

       Рис. 2. Расположение серверов с публичными и закрытыми сервисами

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

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

       Каждое  лишнее разрешение в сетевом экране – это дополнительная дверь внутрь локальной сети. Например содержания Web-сервера.

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

       Можно организовать сеть, как показано на рисунке 3. Только в этом случае придется использовать дополнительный сервер для организации второго Firewall.

       Рис. 3. Двойная защита сети

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

       Второй  сетевой экран защищает локальную  сеть, поэтому должен иметь более жесткие правила, запрещающие любые соединения извне. Помимо этого, не должно быть никаких доверительных отношений между публичным сервером и локальной сетью. Если разрешить такому серверу свободное подключение к каким-либо портам внутренней сети, то смысл использования такой схемы теряется. Нужно не забывать, что благодаря ошибке в Web-сервере или сценарии злоумышленник сможет выполнять команды и устанавливать соединения от имени публичного сервера, и злоумышленнику даже не придется взламывать второй Firewall.

       Есть  еще один вариант – установить в компьютер три сетевые карты. Одна смотрит в Интернет, ко второй подключена приватная локальная сеть, а к третей – сеть с серверами, на которых работают открытые ресурсы (рис. 4). Получается защита в виде вилки. На один интерфейс можно перенаправлять любой трафик из Интернета, а другой интерфейс защищается всеми возможными способами.

     

       Рис. 4. Защита двух сетей одним сетевым экраном

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

       На  рис. 2 изображена сеть на основе витой пары с центральной точкой в виде коммутатора. Чтобы попасть в Интернет, любой пакет от компьютера проходит через коммутатор, входит через сетевую карту 1 (eth0) на машину с установленным Firewall и выходит через сетевую карту 2 (ethl) в Интернет.

       На  самом компьютере с Firewall должно быть разрешено перенаправление, которое позволит пакетам проходить из одной сетевой карты в другую. Чтобы включить эту возможность, нужно записать в файл /proc/sys/net/ipv4/ip_forward число 1 (по умолчанию там может быть 0) или выполнить команду:

       echo I >  /proc/sys/net/ipv4/ip_forward

       Для обеспечения переадресации между  сетевыми интерфейсами ядро операционной системы должно быть скомпилировано с соответствующей поддержкой, потому что перенаправление происходит именно на этом уровне. Помимо этого, нужно изменить параметр net.ipv4.ip_forward в файле /etc/sysctl.conf на 1.

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

       1.   Клиент направляет пакет в сеть, и до сетевого экрана он будет идти со своим IP-адресом.

       2.  Сетевой экран меняет IP-адрес отправителя на свой и направляет пакет дальше от своего имени.

       Таким образом, в Интернете все пакеты будут видны, как будто их отправлял  Firewall, а не компьютеры внутри сети. Это позволяет скрыть от злоумышленника внутреннюю организацию сети и экономить IP-адреса. Внутри сети пользователь сам может раздавать адреса из зарезервированного диапазона, и только сетевой экран будет иметь реальный IP-адрес. При такой адресации из Интернета нельзя будет напрямую подключиться к компьютерам сети. Это значит, что злоумышленнику придется взламывать сначала машину с сетевым экраном и только потом компьютеры сети. Тем самым значительно усложнили задачу взломщика. Неопытные злоумышленники никогда не связываются с сетевыми экранами, потому что для такого проникновения нужны не только широкие знания принципов безопасности, но и большой опыт.

       Пример, который разрешает переадресацию на внешний интерфейс из локальной сети:

       ipchains -A forward -i eth1 -s 192.168.1.0/24 -j MASQ

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

       Далее идет ссылка на интерфейс eth1 (сетевая карта, которая смотрит в Интернет). Диапазон адресов соответствует всей сети 192.168.1.x. В качестве разрешения используется значение MASQ, что соответствует маскированию адреса, т. е. адрес клиента будет заменен на адрес компьютера, на котором работает Firewall.

       Данное  разрешение позволяет только передавать пакеты с адресов 192.168.1.x на сетевой интерфейс eth1. Но это еще не значит, что трафик поступит и сможет выйти в Интернет. Чтобы пакеты пользователей были приняты сетевым экраном, должно быть разрешение ACCEPT примерно следующего вида:

       ipchains -A input -i eth0 -s 192.168.1.0/24 -j ACCEPT

       В этом фильтре открыт доступ на сетевой интерфейс eth0 любым пакетам с адресов 192.168.1.x. Разрешение дано на порты, поэтому адрес отправителя пакета может быть любым из сети 192.168.1.x.

       Осталось  только разрешить таким же образом пакетам выходить из eth1, и можно считать, что все компьютеры сети уже получили доступ в Интернет. Только на всех клиентских машинах необходимо указать в качестве шлюза по умолчанию IP-адрес компьютера с сетевым интерфейсом, и все пакеты найдут своего адресата.

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

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

       ipchains -A forward -i ppp0 -s 192.168.1.0/24 -j MASQ

       Здесь перенаправление идет на интерфейс одного из модемов, имена которых имеют вид рррх.

       Чаще  всего необходимо, чтобы клиенты  имели доступ к ресурсам Интернета, а обратное подсоединение было невозможно. Когда по протоколу TCP запрашивается подключение к удаленному компьютеру, то посылается пакет с установленным битом syn. В простых пакетах такого бита не должно быть. Таким образом, достаточно запретить ТСР-пакеты с этим флагом, и удаленный компьютер не сможет подключиться ни к одному ресурсу компьютера или сети. Это можно реализовать следующим образом:

       ipchains -I input 1 -i ppp0 -p tcp – syn -j DENY

       В данной строке вставляется новое  правило в цепочку проверки входящих пакетов. Контролируются пакеты TCP, у которых установлен флаг syn (об этом говорит ключ – syn). Если такой пакет получен, то он удаляется. Для использования маскировки IP-адреса ядро операционной системы должно быть скомпилировано с соответствующей поддержкой, потому что подмена адреса происходит на уровне ядра.

       4.2. Сохранение фильтра

       Если  попробовать сейчас перезагрузить систему и просмотреть цепочки сетевого экрана, то все изменения исчезнут. Проблема в том, что операционная система автоматически их не запоминает, и пользователю самому нужно позаботиться о сохранении правил. Для этого существует утилита ipchain-save. Ее нужно выполнять следующим образом:

       ipchain-save  >  файл

       Сохранение  цепочек можно сделать автоматическим, но лучше сделать все вручную, так будет надежнее.

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

       ipchain-restore < файл

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

5. Iptables

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

       Программа iptables является новой разработкой по управлению фильтрами и обеспечению безопасности. С помощью iptables пользователь также может редактировать цепочки правил input, output и forward.

       Сходство  между ipchains и iptables прослеживается уже при взгляде на параметры:

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

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

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

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

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

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

       -p протокол – определяет протокол, на который воздействует правило;

       -i интерфейс – определяет сетевой интерфейс, с которого данные были получены. Здесь можно использовать INPUT, FORVARD или PREROUTING;

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