Автор работы: Пользователь скрыл имя, 03 Декабря 2011 в 17:59, реферат
Атака на права доступа - когда кто-нибудь пытается получить права доступа или добраться до специальных учетных записей пользователей в системе, которыми ему не разрешено пользоваться. Это может быть рассержено пользователь, который пытается получить права доступа пользователя root (Администратор), чтобы притворить неприятности, или же кто-то из внешней сети, которая делает попытки получить доступ к файлам. Количество атак можно уменьшить, но Администратор, который заботится о защите, виновной предотвращать появление очевидных дыр в защите.
# (i.e. having the ACK bit set) for the TCP ports we're allowing through.
# This should catch more than 95 % of all valid TCP packets.
$IPTABLES -A FORWARD -m multiport -p tcp -d $OURNET -іdports $TCPIN /
! -іtcp-flags SYN,ACK ACK -j ACCEPT
$IPTABLES -A FORWARD -m multiport -p tcp -s $OURNET -іsports $TCPIN /
! -іtcp-flags SYN,ACK ACK -j ACCEPT
# TCP - INCOMING CONNECTIONS
# We will accept connection requests from the outside only on the
# allowed TCP ports.
$IPTABLES -A FORWARD -m multiport -p tcp -ые $ANYDEV -d $OURNET $TCPIN /
-іsyn -j ACCEPT
# TCP - OUTGOING CONNECTIONS
# We will accept all outgoing tcp connection requests on the allowed /
TCP ports.
$IPTABLES -A FORWARD -m multiport -p tcp -ые $OURDEV -d $ANYADDR /
-іdports $TCPOUT -іsyn -j ACCEPT
# UDP - INCOMING
# We will allow UDP datagrams in on the allowed ports and back.
$IPTABLES -A FORWARD -m multiport -p udp -ые $ANYDEV -d $OURNET /
-іdports $UDPIN -j ACCEPT
$IPTABLES -A FORWARD -m multiport -p udp -ые $ANYDEV -s $OURNET /
-іsports $UDPIN -j ACCEPT
# UDP - OUTGOING
# We will allow UDP datagrams out to the allowed ports and back.
$IPTABLES -A FORWARD -m multiport -p udp -ые $OURDEV -d $ANYADDR /
-іdports $UDPOUT -j ACCEPT
$IPTABLES -A FORWARD -m multiport -p udp -ые $OURDEV -s $ANYADDR /
-іsports $UDPOUT -j ACCEPT
# ICMP - INCOMING
# We will allow ICMP datagrams in of the allowed types.
$IPTABLES -A FORWARD -m multiport -p icmp -ые $ANYDEV -d $OURNET /
-іdports $ICMPIN -j ACCEPT
# ICMP - OUTGOING
# We will allow ICMP datagrams out of the allowed types.
$IPTABLES -A FORWARD -m multiport -p icmp -ые $OURDEV -d $ANYADDR /
-іdports $ICMPOUT -j ACCEPT
# DEFAULT and LOGGING
# All remaining datagrams fall through to the default
# rule and are dropped. They will be logged if you've
# configured the LOGGING variable above.
#
if [ "$LOGGING" ] then
# Log barred TCP
$IPTABLES -A FORWARD -m tcp -p tcp -j LOG
# Log barred UDP
$IPTABLES -A FORWARD -m udp -p udp -j LOG
# Log barred ICMP
$IPTABLES -A FORWARD -m udp -p icmp -j LOG
fi
#
#
end.
Во многих простых случаях все, что нужно сделать для конкретного применения этого приклада, это поправить на кочану файла блок, обозначенный “USER CONFIGURABLE section” для указания, какие протоколы и пакеты нужно пропускать. Для больше сложных конфигураций нужно поправить этот раздел целиком.
Настройка IP Accounting Поскольку IP accounting очень тесно связан из IP firewall, для их настройки используется одна программа. В зависимости от реализации это ipfwadm, ipchains или iptables. Синтаксис команды очень похож на используемый при задании правил firewall.
Общий
синтаксис для IP accounting из ipfwadm:
#
ipfwadm -A [direction] [command] [parameters]
Появился новый параметр direction. Он принимает значение in, out или both. Все значения считаются с точками зрения linux-машины, так что in задает входной трафик, out задает выходной трафик, а both оба типа сразу.
Общий
синтаксис для ipchains и iptables:
# ipchains -A chain rule-specification
#
iptables -A chain rule-specification
Команды ipchains и iptables позволяют Вам определять направление в стиле, больше похожем на определение правил. IP Firewall Chains не позволяет настроить правила для обоих направлений сразу, но позволяет настроить правила в наборе forward, чего старая реализация не умела.
Команды очень похожи на свои аналоги для правил firewall за исключением того, что стратегии здесь не применяются. Ми можем добавлять, вставлять, удалять и пересматривать список правил учета. В случае ipchains и iptables, все имеющие силу правила считаются правилами для учета, и бу-яка команда, которая не определяет опцию -j, выполняет только учет.
Параметры спецификации правила для учета IP такие же, как и для IP firewall.
Учет по адресам
Давайте на примере покажем, как бы мы использовали учет IP.
Допустимо, у нас есть Linux-роутер, что обслуживает два департамента Virtual Brewery. Он имеет два устройства Ethernet, eth0 и eth1, по одному на департамент, и одно устройство PPP, ppp0, для связи через быстродействующую последовательную связь с университетским местечком Groucho Marx University.
Для составления счетов мы хотим знать общее количество трафика, сгенерированного каждым из отделов по последовательной связи, и для цели управления мы хотим знать общий трафик между двумя отделами.
Для
ответа на вопрос, сколько данных каждый
отдел передает по PPP, мы могли бы
использовать правило, что напоминает:
# ipfwadm -A both -я -W ppp0 -S 172.16.3.0/24 -b
#
ipfwadm -A both -я -W ppp0 -S 172.16.4.0/24 -b
или:
# ipchains -A input -ые ppp0 -d 172.16.3.0/24
# ipchains -A output -ые ppp0 -s 172.16.3.0/24
# ipchains -A input -ые ppp0 -d 172.16.4.0/24
#
ipchains -A output -ые ppp0 -s 172.16.4.0/24
или
из iptables:
# iptables -A FORWARD -ые ppp0 -d 172.16.3.0/24
# iptables -A FORWARD -o ppp0 -s 172.16.3.0/24
# iptables -A FORWARD -ые ppp0 -d 172.16.4.0/24
#
iptables -A FORWARD -o ppp0 -s 172.16.4.0/24
Первая половина кожного набора правил задает подсчет всех данных, переданных по интерфейсе ppp0 с исходным адресом или адресом назначения 172.16.3.0/24. Здесь полезная опция -b в ipfwadm и iptables. Вторая половина кожного набора правил задает то же, но для второй сети Ethernet.
Для
ответа на вопрос, сколько трафика
проходить между
#
ipfwadm -A both -я -S 172.16.3.0/24 -D 172.16.4.0/24 -b
или:
#
ipchains -A forward -s 172.16.3.0/24 -d 172.16.4.0/24 -b
или:
#
iptables -A FORWARD -s 172.16.3.0/24 -d 172.16.4.0/24
Эти правила будут уважать все пакеты с исходными адресами сети одному департаменту и адресом назначения в сети другого.
Учет по портам сервисов
Допустимо, мы хотим также знати, какой именно трафик преобладает на связи через PPP. Например, нужно выяснить, сколько данных проходить по протоколам FTP, smtp и World Wide Web.
Для
сбора этой информации пригоден такой
скрипт с правилами:
#!/bin/sh
# Collect FTP, smtp and www volume statistics for data carried on our
# PPP link using ipfwadm
#
ipfwadm -A both -я -W ppp0 -P tcp -S 0/0 ftp ftp-data
ipfwadm -A both -я -W ppp0 -P tcp -S 0/0 smtp
ipfwadm
-A both -я -W ppp0 -P tcp -S 0/0 www
или:
#!/bin/sh
# Collect ftp, smtp and www volume statistics for data carried on our
# PPP link using ipchains
#
ipchains -A input -ые ppp0 -p tcp -s 0/0 ftp-data:ftp
ipchains -A output -ые ppp0 -p tcp -d 0/0 ftp-data:ftp
ipchains -A input -ые ppp0 -p tcp -s 0/0 smtp
ipchains -A output -ые ppp0 -p tcp -d 0/0 smtp
ipchains -A input -ые ppp0 -p tcp -s 0/0 www
ipchains
-A output -ые ppp0 -p tcp -d 0/0 www
или:
#!/bin/sh
# Collect ftp, smtp and www volume statistics for data carried on our
# PPP link using iptables.
#
iptables -A FORWARD -ые ppp0 -m tcp -p tcp -іsport ftp-data:ftp
iptables -A FORWARD -o ppp0 -m tcp -p tcp -іdport ftp-data:ftp
iptables -A FORWARD -ые ppp0 -m tcp -p tcp -іsport smtp
iptables -A FORWARD -o ppp0 -m tcp -p tcp -іdport smtp
iptables -A FORWARD -ые ppp0 -m tcp -p tcp -іsport www
iptables
-A FORWARD -o ppp0 -m tcp -p tcp -іdport www
Здесь есть пару интересных свойств. Во-первых, мы определили протокол. Когда мы определяем порты в наших правилах, мы должны также определить протокол потому, что TCP и UDP имеют отдельные наборы портов. Потому что все эти услуги основаны на TCP, мы определяем именно этот протокол. По-другу, мы определили два сервиса, ftp и ftp-data в одной команде ipfwadm позволяет определять одиночные порты, диапазоны портов или произвольные списки портов. Команда ipchains позволяет определять любой одиночный порт или диапазон портов. Запись "ftp-data:ftp" означает "порты из ftp-data (20) по ftp (21)", так можно кодировать порты в ipchains и iptables. Когда вы имеете список портов в правиле учета, значат, что любые данные для кожного из портов в списке будут прибавлены к общему количеству для этой записи. Поскольку FTP использует два порта, команды и данные, ми прибавили их вместе к общему трафику FTP. Наконец, мы определили исходную адресу как 0/0, что отвечает всем адресам и нужно ipfwadm и ipchains для определения портов.
Теперь
нас интересует соотношение полезного
трафика по FTP, SMTP и World Wide Web к трафику по
другим протоколам. Для этого зададим
такие правила:
# ipfwadm -A both -я -W ppp0 -P tcp -S 0/0 ftp ftp-data smtp www
#
ipfwadm -A both -я -W ppp0 -P tcp -S 0/0 1:19 22:24 26:79 81:32767
Если вы уже исследовали ваш файл /etc/services, вы увидите, что вторую правило покрывает все порты за исключением (ftp, ftp-data, smtp и www).
Как
сделать это с командами ipchains
или iptables, ведь они позволяют только
один параметр в спецификации порта?
Мы можем эксплуатировать обусловленные
пользователями цепочки в учете так именно
легко, как в правилах firewall. Рассмотрим
следующий подход:
# ipchains -N a-essent
# ipchains -N a-noness
# ipchains -A a-essent -j ACCEPT
# ipchains -A a-noness -j ACCEPT
# ipchains -A forward -ые ppp0 -p tcp -s 0/0 ftp-data:ftp -j a-essent
# ipchains -A forward -ые ppp0 -p tcp -s 0/0 smtp -j a-essent
# ipchains -A forward -ые ppp0 -p tcp -s 0/0 www -j a-essent
#
ipchains -A forward -j a-noness
Здесь
мы создаем два обусловленных
пользователей цепочки: a-essent, где мы фиксируем
данные для полезного трафика и a-noness, где
мы собираем данные для всего другого.
Потом прибавим правила к цепочке forward,
которые отвечают полезным сервисам и
задают переход в цепочку a-essent, что только
считает трафик. Последнее правило в нашей
цепочке forward задает переход к цепочке
a-noness, где тоже есть только одно правило,
которое считает трафик. Правило, что переходить
к цепочке a-noness, не будет достигнуто бути^-яким
пакетом из полезных сервисов, поскольку
они будут приняты в их собственной цепочке.
Наши счетчики для полезных и других услуг
будут доступны только в правилах внутри
тихнув цепочек. Это только один подход,
что вы могли бы обрати. Реализация того
же подхода для iptables:
# iptables -N a-essent
# iptables -N a-noness
# iptables -A a-essent -j ACCEPT
# iptables -A a-noness -j ACCEPT
# iptables -A FORWARD -ые ppp0 -m tcp -p tcp -іsport ftp-data:ftp -j a-essent
# iptables -A FORWARD -ые ppp0 -m tcp -p tcp -іsport smtp -j a-essent
# iptables -A FORWARD -ые ppp0 -m tcp -p tcp -іsport www -j a-essent
# iptables -A FORWARD -j a-noness