47886 (588505), страница 7

Файл №588505 47886 (Организация безопасности сети предприятия с использованием операционной системы Linux) 7 страница47886 (588505) страница 72016-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 7)

# 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

# (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

Это выглядит достаточно простительно. К сожалению, маленькая, но неминуемая проблема при попытке делать учет сервисным типом. Мы обсуждали в одном из предыдущих глав роли MTU в работе с сетями TCP/IP. MTU определяет наибольший пакет, который будет передан на сетевое устройство. Когда пакет получен маршрутизатором, и этот пакет больше, чем MTU интерфейса, который виноват его передать, маршрутизатор выполняет фрагментацию (fragmentation). Маршрутизатор разбивает большой пакет на маленькие части не больше, чем MTU интерфейса, и потом передает эти части. Маршрутизатор формирует новые заглавия для пакетов, которые вышли, по которых получатель сможет возобновить исходный пакет. К сожалению, в течение фрагментации значение порта будет затеряно для всего, кроме первого фрагмента. Значат, что учет IP не может правильно считать фрагментированные пакеты, а только первые фрагменты или нефрагментированные пакеты. Есть маленькая хитрость ipfwadm, что позволяет считать пакеты, даже не зная порт другого и следующего фрагментов. Первая версия программного обеспечения Linux accounting назначала фрагментам поддельный номер порта 0xFFFF, что мы могли перехватывать для учета. Мы фиксируем вторые и следующие фрагменты, используя правило:

# ipfwadm -A both -я -W ppp0 -P tcp -S 0/0 0xFFFF

Реализация IP chains имеет немного больше сложные решения, но результат той же. При использовании команды ipchains нужно использовать правило: # ipchains -A forward -ые ppp0 -p tcp -f

Для iptables подойдет правило: # iptables -A FORWARD -ые ppp0 -m tcp -p tcp -f

Это правило не будет сообщать нам, какой первобытный порт для этих данных, но по крайней мере ми способные видеть, сколько из наших данных является фрагментами.

В ядрах 2.2 вы можете выбирать при настройке ядра опцию, которая разрешает эту проблему, если ваша Linux-машина действует как одиночная точка доступа к сети. Если вы включили при построении ядра опцию IP: always defragment, все пакеты будут повторно собраны маршрутизатором Linux перед маршрутизацией и передачей. Эта операция выполняется перед firewall, и учетный блок видит пакеты. Таким образом, фрагментов просто не будет. В ядрах 2.4 откомпилируйте и загрузите netfilter с модулем forward-fragment.

Учет по пакетам ICMP

Протокол ICMP не использует сервисные номера портов, так что сбор статистики по нему труднее. ICMP использует ряд разных типов пакетов. Многие из их безобидные и нормальные, у той час, как другие появляются только при специальных обстоятельствах. Иногда пытаются обвалити систему, посылая огромное число пакетов ICMP. Эта атака называется ping flooding. Против такой атаки красивый IP firewall, а IP accounting позволить узнать, кто это сделал.

ICMP не использует порты в отличие от TCP и UDP. Вместо их используются типы сообщений ICMP. Ми можем создать правила, чтобы учитывать каждый тип сообщений ICMP. Для этого нужно определить тип сообщения ICMP вместо номера порта в команде ipfwadm. Типы сообщений перечисленные в разделе "Типы пакетов ICMP" главы 9.

Для сбора данных о передаче пакетов ICMP по всем типам сообщений используйте правило:

# ipfwadm -A both -я -P icmp -S 0/0 8

# ipfwadm -A both -я -P icmp -S 0/0 0

Характеристики

Список файлов ВКР

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6540
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее