Чтение онлайн

на главную - закладки

Жанры

Стахнов Алексей Александрович

Шрифт:

Программе ipchains параметры передаются при вызове в командной строке. Формат командной строки приведен ниже:

ipchains -А|I [цепочка] [-i интерфейс] [-р протокол] [[!] -y]

[-s адрес [порт [: порт]]]

[-d адрес [порт [: порт]]] -j действие [1]

В правилах, управляющих работой брандмауэра, предусматривается проверка адреса источника и адреса назначения. Для сравнения могут использоваться IP-адрес узла, диапазон IP-адресов, символьное имя узла и имя домена.

Программа ipchains позволяет задавать после IP-адреса дескриптор маски. Дескриптор маски — это целое число, которое может принимать значения от О до 32, и определяет число битов в маске. Дескриптор маски указывает, сколько старших битов адреса узла должны в точности совпадать с адресом, заданным в составе правила. Дескриптор маски, равный 32, означает, что адрес узла должен полностью совпадать с адресом, указанным в правиле. Если дескриптор маски отсутствует, считается, что он равен 32. Так, адрес 192.168.0.45 означает то же самое, что и выражение 192.168.0.45/32.

Опции ipchains

В табл. 29.1 приведены наиболее часто применяемые опции программы ipchains.

Таблица 29.1. Опции программы ipchains

Символьные константы

Для улучшения удобочитаемости правил фильтрации и для удобства сопровождения в сценариях брандмауэра рекомендуется использовать символьные имена. В табл. 29.2 приведены некоторые символьные константы, используемые при конфигурировании брандмауэра.

Таблица 29.2. Символьные константы, используемые при описании правил фильтрации

Создание правил фильтрации

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

Удаление существующих правил

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

Удаление правил фильтрации называется сбросом цепочки. Для сброса встроенных цепочек необязательно обращаться к ним явно. Все три цепочки – input, output и forward – можно сбросить с помощью одной команды, приведенной ниже:

ipchains -F Определение политики по умолчанию

После удаления правил фильтрации автоматически устанавливается политика фильтрации сетевых пакетов по умолчанию, согласно которой разрешается прохождение всех сетевых пакетов. Таким образом, до тех пор, пока вы не внесете изменения в политику фильтрации сетевых пакетов, фильтрация сетевых пакетов производиться не будет.

Для обеспечения безопасности вашей операционной системы политика по умолчанию должна быть выбрана так, чтобы входящие сетевые пакеты удалялись без передачи сообщений на хосты, посылающие сетевые пакеты. Исходящим сетевым пакетам должно быть отказано в прохождении, а компьютеры, с которых эти сетевые пакеты были отправлены, должны получать ICMP-сообщения об ошибке. Обратившись к компьютеру вашей сети, программа, выполняющаяся на одном из компьютеров, размещенных в Интернете, не получит никакой информации о том, существует ли сервер, указанный в запросе. Такая же программа на локальном компьютере сразу получит сообщение о том, что операция, которую она собиралась выполнить, недопустима.

В следующих трех строках мы задаем, что для входящей цепочки сетевые пакеты будут уничтожаться, для исходящей цепочки и цепочки маршрутизации сетевые пакеты будут отклоняться, а компьютеры, посылающие сетевые пакеты, получат уведомление об ошибке.

ipchains -Р input DENY

ipchains -Р output REJECT

ipchains -P forward REJECT

После ввода в действие вышеприведенных правил весь сетевой трафик оказывается блокированным, в том числе и весь трафик, проходящий через интерфейс обратной петли. Разрешение прохождения пакетов через интерфейс обратной петли

Поскольку в предыдущем разделе мы заблокировали весь сетевой трафик, автоматически возникнут проблемы с рядом программ, исполняемых на вашем компьютере, поскольку многие из них для нормального функционирования используют интерфейс обратной петли. Поэтому мы должны обеспечить прохождение всего сетевого трафика через интерфейс обратной петли. Так как этот интерфейс недоступен из-за пределов системы, подобные установки не могут повлечь за собой нежелательных последствий.

Правила, разрешающие прохождение сетевых пакетов без ограничений, очень просты. В данном случае надо нейтрализовать влияние политики по умолчанию на интерфейс обратной петли. Для этого введем следующие правила:

ipchains -A input -i $LOOPBACK_INTERFACE -j ACCEPT ipchains -A output -i $LOOPBACK_INTERFACE -j ACCEPT

Таким простым способом прохождение трафика через интерфейс обратной петли будет восстановлено. Запрет прохождения пакетов с фальсифицированными адресами Как уже упоминалось ранее, фальсификация адресов – один из признаков сетевых атак, поэтому следует бороться с сетевыми пакетами, имеющими сфальсифицированный адрес. Первое и очевидное правило – запретить прием сетевых пакетов, якобы отправленных с внешнего интерфейса вашего узла:

ipchains -A input -i $EXTERNAL_INTERFACE -s $IPADDR -j DENY -l

Это правило отсекает входящие сетевые пакеты, содержащие в качестве адреса источника сетевой адрес вашего внешнего интерфейса. В том случае, если вы посылаете сетевой пакет на свой компьютер, он пройдет не через внешний сетевой интерфейс, а через интерфейс обратной петли. Если система настроена нормально, сетевой пакет, направленный на локальный компьютер, никогда не попадет на внешний интерфейс. В противном случае – либо у вас проблемы с сетевыми настройками, либо кто-то пытается пробраться к вам в систему, поскольку весь сетевой трафик, идущий через интерфейс обратной петли, проходит внутри системы, и любой сетевой пакет, содержащий такой адрес, является поддельным. Следующие два правила запрещают пакеты, содержащие в качестве исходящего адреса интерфейс обратной петли:

ipchains -A input -i $EXTERNAL_INTERFACE -s $LOOPBACK -j DENY ipchains -A output -i $EXTERNAL_INTERFACE -s $LOOPBACK -j DENY -l

Далее необходимо отсечь сетевые пакеты, исходящие адреса которых попадают в диапазон IP-адресов, выделенных для использования во внутренних сетях. Маршрутизаторы не должны обрабатывать пакеты с исходящими адресами, принадлежащими внутренним сетям.

Тем же самым ограничениям должны подвергаться и исходящие сетевые пакеты, у которых адреса назначения попадают в диапазон IP-адресов, выделенных для использования во внутренних сетях, поскольку в Интернете не могут существовать адреса, предназначенные для использования исключительно в локальных сетях.

Приведенные ниже наборы правил запрещают прохождение входящих и исходящих сетевых пакетов в случае, если адрес источника или адрес назначения принадлежит диапазонам сетевых адресов классов А, В и С, выделенных для использования в локальных сетях.

# Запретить прохождение сетевых пакетов,

# которые содержат адрес источника,

# принадлежащий диапазону адресов класса А,

# предназначенных для внутреннего использования.

ipchains -A input -i $EXTERNAL_INTERFACE -s $CLASS_A -j DENY

ipchains -A input -i $EXTERNAL_INTERFACE -d $CLASS_A -j DENY

ipchains -A output -i $EXTERNAL_INTERFACE -s $CLASS_A -j DENY -l

ipchains -A output -i $EXTERNAL INTERFACE -d $CLASS A -j DENY -l

# Запретить прохождение сетевых пакетов,

# которые содержат адрес источника,

# принадлежащий диапазону адресов класса В,

# предназначенных для внутреннего использования.

ipchains -A input -i $EXTERNAL_INTERFACE -s $CLASS_B -j DENY

ipchains -A input -i $EXTERNAL_INTERFACE -d $CLASS_B -j DENY

ipchains -A output -i $EXTERNAL_INTERFACE -s $CLASS_B -j DENY -l

ipchains -A output -i $EXTERNAL_INTERFACE -d $CLASS_B -j DENY -l

# Запретить прохождение сетевых пакетов,

# которые содержат адрес источника,

# принадлежащий диапазону адресов класса С,

# предназначенных для внутреннего использования.

ipchains -A input -i $EXTERNAL_INTERFACE -s $CLASS_C -j DENY

ipchains -A input -i $EXTERNAL_INTERFACE -d $CLASS_C -j DENY

ipchains -A output -i $EXTERNAL_INTERFACE -s $CLASS_C -j DENY -l

ipchains -A output -i $EXTERNAL INTERFACE -d $CLASS С -j DENY -l

Следующее правило, которое мы должны создать, необходимо для блокирования сетевых пакетов, содержащих недопустимые широковещательные адреса.

ipchains -A input -i $EXTERNAL_INTERFACE -s $BROADCAST_DEST -j DENY -l ipchains -A input -i $EXTERNAL_INTERFACE -d $BROADCAST_SRC -j DENY -l

Первое из приведенных правил запрещает пакеты с исходящим адресом 255.255.255.255. Второе правило запрещает пакеты с адресом назначения 0.0.0.0. Подобные пакеты появляются не в результате ошибки, а являются признаком попытки атаки на вашу сеть. Адреса группового вещания могут применяться лишь в качестве адреса назначения. Следующие правила выявляют фальсифицированные сетевые пакеты и фиксируют случаи их появления в файлах протоколов.

# Запретить пакеты, содержащие адреса класса D.

ipchains -A input -i $EXTERNAL_INTERFACE -s $CLASS_D_MULTICAST -j DENY -l

ipchains -A output -i $EXTERNAL_INTERFACE -s $CLASS_D_MULTICAST -j REJECT -l

Групповое вещание производится с использованием протокола UDP. В сетевых пакетах, передаваемых посредством группового вещания, адрес назначения отличается от пакетов, которые передаются в процессе обычного обмена между двумя узлами. Следующее правило запрещает передачу сетевых пакетов группового вещания с локального узла:

Поделиться:
Популярные книги

Неучтенный элемент. Том 3

NikL
3. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 3

Офицер Красной Армии

Поселягин Владимир Геннадьевич
2. Командир Красной Армии
Фантастика:
попаданцы
8.51
рейтинг книги
Офицер Красной Армии

Дважды одаренный. Том III

Тарс Элиан
3. Дважды одаренный
Фантастика:
альтернативная история
аниме
фэнтези
фантастика: прочее
юмористическое фэнтези
5.00
рейтинг книги
Дважды одаренный. Том III

Сильнейший Столп Империи. Книга 4

Ермоленков Алексей
4. Сильнейший Столп Империи
Фантастика:
фэнтези
аниме
фантастика: прочее
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 4

Вечный. Книга III

Рокотов Алексей
3. Вечный
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга III

Антимаг

Гедеон Александр и Евгения
1. Антимаг
Фантастика:
фэнтези
6.95
рейтинг книги
Антимаг

Адвокат империи

Карелин Сергей Витальевич
1. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.75
рейтинг книги
Адвокат империи

Старая школа рул

Ромов Дмитрий
1. Второгодка
Фантастика:
альтернативная история
6.00
рейтинг книги
Старая школа рул

Идеальный мир для Лекаря 29

Сапфир Олег
29. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 29

Двойник короля 16

Скабер Артемий
16. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 16

Вечный. Книга VI

Рокотов Алексей
6. Вечный
Фантастика:
рпг
фэнтези
5.00
рейтинг книги
Вечный. Книга VI

Тринадцатый

NikL
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80
рейтинг книги
Тринадцатый

Хозяин оков VI

Матисов Павел
6. Хозяин Оков
Фантастика:
фэнтези
попаданцы
гаремник
5.00
рейтинг книги
Хозяин оков VI

Зодчий. Книга I

Погуляй Юрий Александрович
1. Зодчий Империи
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Зодчий. Книга I