Автор работы: Пользователь скрыл имя, 03 Декабря 2011 в 17:59, реферат
Атака на права доступа - когда кто-нибудь пытается получить права доступа или добраться до специальных учетных записей пользователей в системе, которыми ему не разрешено пользоваться. Это может быть рассержено пользователь, который пытается получить права доступа пользователя root (Администратор), чтобы притворить неприятности, или же кто-то из внешней сети, которая делает попытки получить доступ к файлам. Количество атак можно уменьшить, но Администратор, который заботится о защите, виновной предотвращать появление очевидных дыр в защите.
Параметры определения правил
Параметры ipchains создают правила, определяя, какие типы пакетов отвечают критериям. Если каждой йз этих параметров опущений из спецификации правила, он предусматривается за умалчиванием.
-p [!]protocol
Указывает протокол, который отвечает правилу. Допустимо имена протоколов tcp, udp, icmp или all. Можно задать номер протокола для протоколов, которые здесь не определены. Например, 4 для протокола ipip. Если задан префикс!, правило превращается в негативное, и принимаются все пакеты, которые не отвечают этому протоколу. Значение за умалчиванием: all.
-s [!]address[/mask] [!] [port] Указывает исходная адреса и порт, из которого пришел пакет. Адреса может задавать имя машины, имя сети или IP-адреса. Опция mask задает сетевую маску. Она может быть задана в обычной форме (например, /255.255.255.0) или в новой (например, /24). Опция port задает порт TCP или UDP, или тип пакетов ICMP. Вы можете задать спецификацию порта только, если задали параметр -p с одним из протоколов tcp, udp или icmp. Порты могут быть определены как диапазон, определяя верхние и нижние границі йз двоеточием как разделитель. Например, 20:25 определяет порты с 20 по 25 включительно. Символ! превращает правило в полную его противоположность.
-d [!]address[/mask] [!] [port]
Задает адреса и порт назначения. Во всем другому аналогичный параметру -s.
-j target Указывает, что делать при срабатывании правила. Допустимые действия: ACCEPT, DENY, REJECT, REDIR и RETURN. Раньше я уже описав значение каждого действия. Вы можете также задать имя обусловленной пользователем цепочки, в которой продлится обработка. Если этот параметр опущений, будут только изменены данные пакетов и счетчиков, но ничего йз этим пакетом сделано не будет.
-и [!]interface-name
     Задает 
интерфейс, из которого пришел пакет, или 
через какой пакет будет 
[!] –f Указывает, что это правило применяется к первому фрагменту фрагментированного пакета.
Опции
Опции ipchains имеет больше широкое значение. они предоставляют доступ к тайным свойствам этой программы.
-b Генерирует сразу два правила. Первое точно отвечает заданным параметрам, вторую делает теми же именно, но прямо противоположными параметрами.
-v Предлагает ipchains выдавать подробную информацию.
-n Предлагает ipchains использовать IP-адреса и порты, не пытаясь превратить их в имена.-l
Включает протокол ядра о соответствии пакетов. Любой пакет, который отвечает правилу, будет запротоколирован ядром, используя его функцию printk(), что обрабатывается программой sysklogd. Это удобно для выявления необычных пакетов.
-о[maxsize] Вынуждает IP chains копировать все подходящим правилам пакеты в устройство “netlink”. Параметр maxsize ограничивает число байтов из кожного пакета, которые будут переданы на устройство netlink. Эта опция имеет большое значение для розроблювачів, но может эксплуатироваться пакетами користувальницьких программ в будущем.
-m markvalue
     Все 
пакеты, которые удовлетворяют 
-t andmask xormask
     Позволяет 
управление битами TOS (“type of service”) в 
заглавии IP любого пакета, который удовлетворяет 
правилам. Биты типа сервиса используются 
интеллектуальными 
-x Любые числа у вывода ipchains будут точными (округление не используется).
-в Задает правило, которое будет отвечать любому пакету TCP с установленным битому SYN и неустановленными битами ACK и FIN. Это используется, чтобы фильтровать TCP-запросы.
     Пример: 
Опять допустим, что ми имеем сеть в нашей 
организации, и используем Linux firewall для 
предоставления доступу к нашим серверам 
WWW из Internet, но при этом хотим блокировать 
любой другой трафик. 
ipchains:
# ipchains -F forward
# ipchains -P forward DENY
# ipchains -A forward -s 0/0 80 -d 172.16.1.0/24 -p tcp -у -j DENY
     # 
ipchains -A forward -s 172.16.1.0/24 -d 0/0 80 -p tcp -b -j ACCEPT 
     Если 
ми теперь хотим прибавить правила, 
какие предоставят только пассивный 
режим доступа к FTP-серверу снаружи 
сети, ми прибавим правила:  
# ipchains -A forward -s 0/0 20 -d 172.16.1.0/24 -p tcp -у -j DENY
# ipchains -A forward -s 172.16.1.0/24 -d 0/0 20 -p tcp -b -j ACCEPT
# ipchains -A forward -s 0/0 21 -d 172.16.1.0/24 -p tcp -у -j DENY
     # 
ipchains -A forward -s 172.16.1.0/24 -d 0/0 21 -p tcp -b -j ACCEPT 
     Чтобы 
перечислить наши правила в команде 
ipchains, используется параметр -L argument. Точно 
как из ipfwadm, там могут быть заданы 
аргументы, которые позволять 
# ipchains -L -n
Chain input (policy ACCEPT):
     Chain 
forward (policy DENY): 
| target | prot | opt | source | destination | ports | 
| DENY | TCP | -y---- | 0.0. 0.0/0 | 172.16. 1.0/24 | 80 -> * | 
| ACCEPT | TCP | ------ | 0.0. 0.0/0 | 172.16. 1.0/24 | 80 -> * | 
| ACCEPT | TCP | ------ | 172.16. 1.0/24 | 0.0. 0.0/0 | * -> 20 | 
| ACCEPT | TCP | ------ | 0.0. 0.0/0 | 172.16. 1.0/24 | 20 -> * | 
| ACCEPT | TCP | ------ | 172.16. 1.0/24 | 0.0. 0.0/0 | * -> 21 | 
| ACCEPT | TCP | ------ | 0.0. 0.0/0 | 172.16. 1.0/24 | 21 -> * | 
Если Вы не указали имя цепочки, ipchains выведет все правила йз всех цепочек. В нашем примере параметр -n сообщает ipchains, чтобы той не превратил бу-яку адресу или порт во имя.
Netfilter Обратная совместимость из ipfwadm и ipchains
Прекрасная гибкость Linux netfilter иллюстрируется способностью наследовать интерфейсов ipfwadm и ipchains. Эмуляция делает переход к новому поколению программного обеспечения firewall немного проще.
Два модуля ядра из netfilter с именами ipfwadm.o и ipchains.o обеспечивают обратную совместимость из ipfwadm и ipchains. Можно загрузить одновременно только один из этих модулей и использовать его только при условии, что модуль ip_tables.o не загруженный. Когда соответствующий модуль загружен, netfilter работает аналогично заданной реализации firewall.
     Чтобы 
netfilter копировал интерфейс ipchains скомандуйте:  
# rmmod ip_tables
# modprobe ipchains
     # 
ipchains 
Использование iptables
Утилита iptables используется для настройки правил netfilter. Синтаксис заимствован в ipchains, но имеет важное отличие: он расширился. Значат, что функциональные возможности могут быть расширены без перекомпиляции пакета. Для этого используются поділювані библиотеки. Есть стандартные расширения, ряд которых ми в настоящий момент выучим.
Перед использованием команды iptables Вы должны загрузить модуль ядра netfilter, что позволяет ей работать. Проще всего сделать это командой modprobe: # modprobe ip_tables
Команда iptables используется для настройки IP filter и Network Address Translation. Для этого используются две таблицы: filter и nat. Если не задана опция -t, используется таблица filter. Доступные пять убудованих цепочек (наборов правил): INPUT и FORWARD для таблицы filter, PREROUTING и POSTROUTING для таблицы nat и OUTPUT для всех таблиц.
Как и раньше, ми допускаем, что есть сеть какой-то организации, на Linux-машине запущен firewall. Все внутренние пользователи имеют доступ к WWW-серверам в Internet, но и только.
     Если 
сеть использует сетевую маску у 
24 бита (класс C) и имеет адресу сети 
172.16.1.0, нужно использовать правила iptables:  
# modprobe ip_tables
# iptables -F FORWARD
# iptables -P FORWARD DROP
# iptables -A FORWARD -m tcp -p tcp -s 0/0 -іsport 80 -d 172.16.1.0/24 / -іsyn -j DROP
# iptables -A FORWARD -m tcp -p tcp -s 172.16.1.0/24 -іsport / 80 -d 0/0 -j ACCEPT
     # 
iptables -A FORWARD -m tcp -p tcp -d 172.16.1.0/24 -іdport 80 -s 0/0 
-j / ACCEPT 
В этом примере iptables работает точно как команда ipchains. Вся разница в том, что нужно предварительно загрузить модуль ip_tables.o. Обратите внимание, что iptables не поддерживает опцию -b, так что ми должны отдельно задать правило для кожного направления.
Типы пакетов ICMP
     Каждая 
из команд конфигурации firewall позволяет 
определять типы пакетов ICMP. В отличие 
от портов TCP и UDP, нет никакого удобного 
файла конфигурации, которая перечисляет 
типы пакетов и их значения. Типы пакетов 
ICMP определены в RFC-1700 (Assigned Numbers RFC). Они 
также перечислены в одном из стандартных 
библиотечных файлов C. Файл /usr/include/netinet/ip_icmp.
Таблица №5.4
Типы пакетов ICMP
| Номер типа | Позначення iptables | Опис | 
| 0 | echo-reply | Echo Reply | 
| 3 | destination-unreachable | Destination Unreachable | 
| 4 | source-quench | Source Quench | 
| 5 | redirect | Redirect | 
| 8 | echo-request | Echo Request | 
| 11 | time-exceeded | Time Exceeded | 
| 12 | parameter-problem | Parameter Problem | 
| 13 | timestamp-request | Timestamp Request | 
| 14 | timestamp-reply | Timestamp Reply | 
| 15 | none | Information Request | 
| 16 | none | Information Reply | 
| 17 | address-mask-request | Address Mask Request | 
| 18 | address-mask-reply | Address Mask Reply |