Автор работы: Пользователь скрыл имя, 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
Заключение
Список использованной литературы
-j действие – операция, которая должна быть выполнена над пакетом. В качестве аргументов можно указать следующие значения:
• LOG – поместить в журнал запись о получении пакета;
• REGECT – отправителю будет направлено сообщение об ошибке;
• DROP – удалить пакет;
• BLOCK – блокировать пакеты;
-s адрес – IP-адрес отправителя пакета. Как и в случае с iptables, после адреса можно задать маску в виде /mask и знак отрицания "!", что будет соответствовать любым адресам, кроме указанных;
-d адрес – адрес назначения пакета.
Большинство параметров абсолютно идентичны программе ipchains. Но есть важные и очень мощные отличия. Например, с помощью ключей -о и -i очень просто указывать, с какого на какой интерфейс направляется пакет.
В данном обзоре ключей затронуты только основы, но если посмотреть файл документации, то можно увидеть еще много вариантов работы с ключом -j, т. е. существуют большие возможности по управлению пакетом, если он соответствует правилам.
Настройка цепочек iptables не сильно отличается от ipchains. Начать формирование цепочки нужно с очистки всего содержимого. Двигаться необходимо от полного запрета и разрешать только то, что не нанесет вреда серверу. Сервисы, которые могут оказаться опасными, должны быть доступны только тем, кому это необходимо, или тем, кому можно доверять.
Для сохранения изменений в iptables также надо выполнить специализированную команду:
service iptables save
Для разрешения переадресации с помощью iptables нужно выполнить следующую команду:
iptables -A FORWARD -о ррр0 -j MASQUERADE
В данной строке позволяется переадресация на интерфейс ррр0. С помощью параметра -j таким образом пользователь требует прятать IP-адрес отправителя, т. е. включает маскарадинг.
Если он использует трансляцию сетевых адресов (NAT, Network Address Translation), то команда может выглядеть следующим образом:
iptables -t nat -A FORWARD -о ррр0 -j MASQUERADE
Ключ -t nat указывает на необходимость загрузить модуль iptablenat. Если он не загружен, то это легко сделать вручную с помощью следующей команды:
modprobe iptable_nat
iptabie_nat
— это модуль ядра, который позволяет
сетевому экрану работать с NAT.
6. Установка, настройка Firewall
Пользователю для начала нужно выбрать дистрибутив на котором он будет работать. Debian GNU/Linux 5.0 неплохо подходит для этого. Этот дистрибутив достаточно распространенный. У Debian GNU/Linux одно из самых больших сообществ, так же периодически выходят все более новые версии пакетов, которые легко загрузить через интернет.
Для организации Firewall в GNU/Linux используется программа iptables, которая, как правило, сразу инсталлируется при установке большинства дистрибутивов. В Debian GNU/Linux проверить это можно, запустив с правами администратора aptitude. При необходимости – нужно установить iptables.
Ручное конфигурирование iptables является нетривиальной задачей и под силу только специалистам в области системного администрирования. Поэтому для настройки правил, по которым будет действовать брандмауэр, лучше воспользоваться специальным конфигуратором. В Debian GNU/Linux это - программа arno-iptables-firewall. Будучи запущенной, она задает ряд вопросов, на основании которых генерирует правила для функционирования брандмауэра iptables.
Нужно набрать в консоли с правами суперпользователя:
aptitude install arno-iptables-firewall
В начале инсталляции программа спросит, действительно ли пользователь желает с ее помощью настроить Firewall iptables:
Рис. 5. Настройка Firewall
Надо указать внешний интерфейс - "смотрящий" в интернет, т.е. подключенный к модему. Настройки интерфейсов определяются в конфигурационном файле /etc/network/interfaces.
Это интерфейс eth0, который подключен к интернету. Его особенностью является то, что IP-адрес ему назначается провайдером динамически, поэтому выставлена опция dhcp.
auto eth0
iface eth0 inet dhcp
Это интерфейс, который обращен в локальную сеть. В целях безопасности в локальной сети шлюз имеет статический IP-адрес - 192.168.2.1, поэтому выставлена опция static. Маска сети - 255.255.255.0. Широковещательный адрес сети в таком случае будет 192.168.2.255.
auto eth1
iface eth1 inet static
address 192.168.2.1
netmask 255.255.255.0
broadcast 192.168.2.255
Далее нужно указать конфигуратору Firewall, что внешним является интерфейс eth0:
Рис. 6. Внешний интерфейс
На вопрос, выдается ли от провайдера IP-адрес динамически (с помощью протокола DHCP), нужно ответить утвердительно:
Рис. 7. Провайдера IP-адреса
Cледует
вопрос, какие службы будут
Рис. 8. Службы предоставляемые с компьютера внешним пользователям интернета
Затем идет вопрос, будет ли пользователь предоставлять какие-либо службы по протоколу UDP. Тоже нет - и тоже нужно оставить строку пустой.
Рис. 9. Службы по протоколу UDP
Нужно ли, чтобы пользователя проверяли, имеется ли связь с компьютером, на котором установлен Firewall. Это вполне допустимо:
Рис. 10. Пинг
На этом настройка для отдельного компьютера, не являющегося шлюзом локальной сети, будет закончена. Если же предполагается использовать компьютер как шлюз, нужно ответить еще на несколько вопросов. Следует указать интерфейс, которым шлюз обращен в локальную сеть - в данном случае это eth1.
Рис. 11. Интерфейс обращенный в локальную сеть
Далее, на основании данных из /etc/network/interfaces, нужно указать спецификацию локальной сети, к которой подключен компьютер: в данном примере это 192.168.2.0/24.
Рис. 12. Спецификация локальной сети
На вопрос позволить ли NAT-трансляцию, т.е. переадресацию трафика из интернета через шлюз в локальную сеть и обратно, следует ответить "да" - это является одной из основных задач в данном случае:
Рис. 13. NAT-трансляция
Тогда встает вопрос: а какой сегмент локальной сети может быть допущен через переадресацию к внешним сетям? Следует указать значение 192.168.2.0/24
Рис. 14. Сегмент локальной сети
Наконец, подтверждение запуска iptables без дополнительной проверки с автоматически сформированных конфигуратором правил для Firewall:
Рис. 15. Подтверждение запуска iptables
После этого, если все прошло успешно, выдается сообщение. Оно будет появляться при каждой загрузке компьютера – шлюза и информировать об успешном запуске Firewall.
6.2. Ручное конфигурирование iptables
Запрет
любых обращений будет
iptables -P INPUT DROP
Теперь все входящие пакеты будут удаляться. Как и в случае с программой ipchains, именно с этой команды нужно начинать конфигурирование iptables. В правиле используется ключ -р, позволяющий задать значение по умолчанию для данной цепочки. Если фильтр добавить с помощью ключа -А, то можно запретить абсолютно любые подключения.
Некоторые специалисты по безопасности рекомендуют журналировать обращения, добавив в сетевой экран фильтр:
iptables -A INPUT -j LOG
Но это делать не рекомендуется. У публичных серверов за день происходит несколько сотен, а то и тысяч сканирований портов. Если обращать внимание на каждую такую попытку, то придется устанавливать на сервер слишком большие жесткие диски для хранения журналов. А ведь если диск будет заполнен, то система выйдет из строя. Таким образом, злоумышленник может просто направить бесконечные обращения на запрещенный порт и через некоторое время добиться удачно завершенной DoS-атаки.
Следующая
команда создает фильтр, по которому
запрещается принимать эхо-
iptables -A INPUT -s 0/0 -d localhost -p icmp --icmp-type echo-request -j DROP
Создание фильтра с помощью iptables нe сильно отличается от аналогичной процедуры в ipchains.
Следующая команда запрещает доступ к FTP-порту:
iptables -A INPUT -s 0/0 -d localhost -p tcp --dport 21 -j DROP
Чтобы запретить доступ с определенного интерфейса, нужно добавить ключ -i и указать интерфейс eth0:
iptables -A INPUT -i eth0 -s 0/0 -d localhost -p tcp --dport 21 -j DROP
Теперь нужно запретить исходящие пакеты с 21 порта. Для этого используется команда:
iptables -A OUTPUT -i eth0 -s localhost -d 0/0 -p tcp --dport 21 -j DROP
Очень мощной особенностью iptables является возможность проверки содержимого пакетов. Это очень удобно, например, для фильтрации Web-запросов.
Можно разрешить доступ к 80 порту, но контролировать, чтобы пакеты содержали только допустимые параметры.
Если нужно разрешить доступ к FTP-серверу, но при этом быть уверенными, что тот кто хочет взломать вашу защиту не сможет обратиться к файлам /etc/passwd и /etc/shadow. Для этого нужно запретить пакеты, в которых есть этот текст. Если злоумышленник попытается послать запрос, содержащий ссылки на эти файлы, то такой пакет будет отклонен. Следующие команды запрещают доступ к этим файлам по протоколам FTP и WWW:
iptables -A INPUT -m string --string "/etc/passwd" -s 0/0 -d localhost -p tcp --dport 21 -j DROP
iptables -A INPUT -m string --string "/etc/shadow" -s 0/0 -d localhost -p tcp --dport 21 -j DROP
iptables -A INPUT -m string --string "/etc/passwd" -s 0/0 -d localhost -p tcp --dport 80 -j DROP
iptables -A INPUT -m string --string "/etc/shadow" -s 0/0 -d localhost -p tcp --dport 80 -j DROP
Надо еще учесть аспект защиты информации. Если есть сервер, который принимает закодированный трафик с помощью stunnel, расшифровывает и передает его на другую машину. В этом случае во входящих пакетах сетевой экран не может найти такие строки. А вот исходящие пакеты идут уже декодированными и содержат открытый текст команд. В такой конфигурации необходимо контролировать оба потока.
Даже
если stunnel передает расшифрованный трафик
на другой порт внутри одного компьютера,
можно включить контроль любых пакетов
на всех интерфейсах, чтобы они проверялись
после расшифровки.