Автор работы: Пользователь скрыл имя, 03 Декабря 2011 в 17:59, реферат
Атака на права доступа - когда кто-нибудь пытается получить права доступа или добраться до специальных учетных записей пользователей в системе, которыми ему не разрешено пользоваться. Это может быть рассержено пользователь, который пытается получить права доступа пользователя root (Администратор), чтобы притворить неприятности, или же кто-то из внешней сети, которая делает попытки получить доступ к файлам. Количество атак можно уменьшить, но Администратор, который заботится о защите, виновной предотвращать появление очевидных дыр в защите.
Управление битами TOS
Биты типа обслуживания (Type Of Service, TOS) являют собой набор из четырехбитных флагов в заглавии IP-пакета. Когда каждой йз этих флажков установок, маршрутизаторы могут обрабатывать пакет иначе, чем пакет без TOS-набора битов. Каждый из четырех битов имеет разную цель, и только один из TOS-битов может быть установлен в один момент часа, так что комбинации не позволяются. Флаги названы типом обслуживания потому, что они дают возможность прикладной программе, которая передает данные, сообщить сети тип необходимого мережного обслуживания.
Доступные классы обслуживания сети:
Minimum delay
Используется, когда час доставки пакета из исходного компьютера на компьютер адресата (час ожидания), больше всего важно. Провайдер выбирает самый быстрый канал связи для доставки таких пакетов.
Maximum throughput
Используется, когда объем данных в любом периоде часа важен. Есть много типов сетевых прикладных программ, для которых час ожидания не очень важно, но сетевая производительность критическая. Для таких пакетов рекомендуются каналы с красивой пропускной способностью, например, спутниковые.
Maximum reliability
Используется, когда важно иметь некоторую уверенность, что данные достичь адресата без повторной передачи. IP-протокол может быть передан по большому количеству основных сред передачи. У той час как SLIP и PPP красивые для передачи обычные протоколы, они не настолько надежные, как X.25 network. Для таких пакетов выбираются сами надежные каналы связи.
Minimum cost
Используется, когда важно минимизировать стоимость передачи данных. Аренда спутникового канала передачи вообще менее дорога, чем аренда оптоволоконного кабеля, так что провайдер может иметь разные каналы и направлять трафик по канале более подешево.
Задание TOS-битов с помощью ipfwadm или ipchains
Команды ipfwadm и ipchains имеют справа с TOS-битами. В обоих случаях определяется правило, которое отвечает пакетам с конкретным TOS-битом, и используете параметр -t, чтобы определить изменение, что желаем сделать.
Изменения определяются, используя двухразрядные маски. Первая йз этих разрядных масок используется в логической операции AND с полем параметров IP-пакета, вторая в операции OR. Если это звучит сложно, я дам рецепты, чтобы обеспечить каждый из типов обслуживания немедленно.
Разрядные маски определяются, используя восьмиразрядные шестнадцатеричные значения. ipfwadm и ipchains используют одинаковый синтаксис:
-t
andmask xormask Наиболее полезные приложения
для масок приведены вместе с их значениями
в таблице 5.3.
Таблица 5.3
Использование TOS-битов
TOS | ANDmask | XORmask | Использование, которое рекомендует |
Minimum | Delay | 0x01 0x10 | ftp, telnet, ssh |
Maximum | Throughput | 0x01 0x08 | ftp-данные, www |
Maximum | Reliability | 0x01 0x04 | snmp, dns |
Minimum | Cost | 0x01 0x02 | nntp, smtp |
Установка TOS-битов с помощью iptables
Команда iptables позволяет определять правила для сбора данных с заданными TOS-битами, используя параметр -m tos и устанавливать биты с помощью параметра -j TOS. Можно устанавливать TOS-битые только на правилах цепочек FORWARD и OUTPUT. Соответствие и установка происходит совсем независимо. Мы можем конфигурировать много интересных правил. Например, конфигурировать правило для отклонения пакетов с задаными TOS-битами или для установки TOS-битов в пакетах из какого-то конкретного компьютера. В отличие от ipfwadm и ipchains, iptables использует больше простой подход, явно определяя почему TOS-битые должны отвечать, или какие TOS-битые должны быть установленные. Для битов заданы имена, что куда лучшее запоминание их числовых масок
Синтаксис для задания соответствию TOS-битов в правилах:
-m tos -іtos mnemonic [other-args] -j target
Синтаксис для установки TOS-битов в правилах:
[other-args] -j TOS -іset mnemonic
Проверка конфигурации Firewall
Общая процедура теста следующая:
Выберите тип firewall для использования: ipfwadm, ipchains или iptables.
Разработайте ряд тестов, которые определят, работает ли ваш firewall так, как нужно. Для этих тестов возможно использовать любой источник или адресов отправителя, так что выберите комбинации адрес, которые должны быть принятые и другие, которые должны быть отброшенные. Если принимать или отбрасывать только некоторые диапазоны адрес, красивой идеей будет проверить адреса по обе стороны границі диапазона: по одному внутри границі и внешне. Будет гарантировать, что имеем правильные границі, потому что иногда просто определить неправильную маску подсети в конфигурации. Если фильтровать в соответствии с протоколом и номером порта, тесте должны также проверить все важны комбинации этих параметров. Например, если допускаете принимать только TCP-пакеты, проверьте, что UDP-пакеты отклоняются.
Разработайте правила для ipfwadm, ipchains или iptables, чтобы выполнить каждый тест. Вероятно, стоит записать все правила в скрипт, так что Вы можете проверять и перепроверять усе без проблем по мере исправления ошибок или изменений проекта. Тесте используют почти той же синтаксис, поскольку определяют правила, но как параметры берут немного другие значения. Например, исходный параметр адреса в спецификации правила определяет исходная адреса, из которого виновный прийти пакет, который будет отвечать этому правилу. Исходный параметр адреса в синтаксисе теста, напротив определяет исходная адреса тестового пакета, который будет сгенерирован. Для ipfwadm должны использовать опцию -c, чтобы определить, что эта команда является тестом, у той час как для ipchains и iptables должны использовать опцию -C. Во всех случаях мы должны всегда определять исходную адресу, адреса получателя, протокол и интерфейс, которые нужно использовать для теста. Другие параметры, типа номера порта или битов TOS, являются факультативными.
Выполните каждую команду теста и обратите внимание на вывод. Вывод кожного теста будет одним словом, что указывает конечного адресата пакета после его прохождения через firewall. Для ipchains и iptables определенные пользователем цепочки будут проверены в добавление к убудованого.
Уравняете
вывод кожного теста с желаемым
результатом. Если есть разногласия, Вы
будете должны анализировать набор
правил, чтобы определить, где вы сделали
ошибку. Если Вы записали команды теста
в файл скрипта, Вы сможете легко повторно
выполнить тест после исправления ошибок
в конфигурации firewall. Гарантируют, что
активная конфигурация, что Вы проверяете
фактически, отбивает набор команд в скрипте
конфигурации. внешние TCP-соединения с
нашими web-серверами. Ничего больше не
должно работать прямо. Начнем с передачи,
которая точно виновата работать (из нашей
локальной сети):
#
ipchains -C forward -p tcp -s 172.16.1.0 1025 -d 44.136.8.2 80 -ые
eth0 accepted
Заметьте, что в параметрах нужно передать и путь для описания пакета. Вывод команды указывает на те, что пакет был принят для пересылки, которая есть именно том, на что ми надеялись.
Теперь попробуйте другой тест, в этот раз с исходным адресом, который не принадлежит нашей сети. Этот виноват быть отклоненный:
# ipchains -C forward -p tcp -s 172.16.2.0 1025 -d 44.136.8.2 80 -ые
eth0 denied
Попробуйте
немного больше тестов, в этот раз
с теми же деталями, что и в
первом тесте, но с разными протоколами.
они должны быть отклоненные:
# ipchains -C forward -p udp -s 172.16.1.0 1025 -d 44.136.8.2 80 -ые eth0 denied
#
ipchains -C forward -p icmp -s 172.16.1.0 1025 -d 44.136.8.2 80 -ые
eth0 denied
Попробуйте
другой порт адресата, опять ожидая,
что этот пакет виноват быть отклоненный:
#
ipchains -C forward -p tcp -s 172.16.1.0 1025 -d 44.136.8.2 23 -ые
eth0 denied
Полная проверка справа тяжелая и длинное, часом настолько же тяжелое, как и разработка правильной конфигурации firewall, но заті защита будет действительно надежной!
Для
iptables включили использование набора
правил FORWARD через расхождение в
реализации набора правил INPUT в netfilter. Это
имеет значение: такое отличие значит,
что ни одно йз правил не защищает firewall
главный компьютер непосредственно. Точно
подражать приклада из ipchains, ми скопировали
каждое из наших правил в INPUT. Для ясности,
ми пропустили все входные пакеты (datagrams),
полученные из нашего внешнего интерфейса.
#!/bin/bash
#########################
# IPTABLES VERSION
# This sample configuration is for а single host firewall configuration
# with no services supported by the firewall machine itself.
#########################
# USER CONFIGURABLE SECTION
# The name and location of the ipchains utility.
IPTABLES=iptables
# The path to the ipchains executable.
PATH="/sbin"
# Our internal network address space and its supporting network device.
OURNET="172.29.16.0/24"
OURBCAST="172.29.16.255"
OURDEV="eth0"
# The outside address and the network device that supports it.
ANYADDR="0/0"
ANYDEV="eth1"
# The TCP services we wish to allow to pass - "" empty means all ports
# note: comma separated
TCPIN="smtp,www"
TCPOUT="smtp,www,ftp,ftp-
# The UDP services we wish to allow to pass - "" empty means all ports
# note: comma separated
UDPIN="domain"
UDPOUT="domain"
# The ICMP services we wish to allow to pass - "" empty means all types
# ref: /usr/include/netinet/ip_icmp.h for type numbers
# note: comma separated
ICMPIN="0,3,11"
ICMPOUT="8,3,11"
# Logging; uncomment the following line to enable logging of datagrams
# that are blocked by the firewall.
# LOGGING=1
# END USER CONFIGURABLE SECTION
#########################
# Flush the Input table rules
$IPTABLES -F FORWARD
# We want to deny incoming access by default.
$IPTABLES -P FORWARD deny
# Drop all datagrams destined for this host received from outside.
$IPTABLES -A INPUT -ые $ANYDEV -j DROP
# SPOOFING
# We should not accept any datagrams with а source address matching ours
# from the outside, so we deny them.
$IPTABLES -A FORWARD -s $OURNET -ые $ANYDEV -j DROP
# SMURF
# Disallow ICMP to our broadcast address to prevent "Smurf" style attack.
$IPTABLES -A FORWARD -m multiport -p icmp -ые $ANYDEV -d $OURNET -j DENY
# We should accept fragments, in iptables we must do this explicitly.
$IPTABLES -A FORWARD -f -j ACCEPT
# TCP
# We will accept all TCP datagrams belonging to an existing connection