14.2. Настройка IPChains

14.2. Настройка IPChains

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

Ядро стартует с тремя списками правил: input, forward, output. Эти правила называются firewall-цепочками или просто цепочками. Когда вы получаете новый пакет, ядро использует цепочку input (входная цепочка). Перед этим пакет проверяется: не был ли он поврежден при пересылке? Поврежденные пакеты отвергаются. Если с пакетом все в порядке, пакет проходит проверку целостности: не запутает ли пакет правила фильтрации? Если пакет не проходит проверку целостности, он отвергается.

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

Если пакет предназначен для нашей машины, пакетный фильтр определяет, на какой интерфейс его следует переслать. Пакет, предназначенный для интерфейса lо (обратная петля), сначала проходит выходную цепочку, а потом попадает во входную цепочку интерфейса lо. Если пакет создан локальным процессом, который запущен на бастионе, он попадает в цепочку перенаправления (forward). Цепочка перенаправления применяется ко всем пакетам, проходящим сквозь бастион на другие машины.

Прежде чем пакет выйдет из сетевого интерфейса, он должен пройти цепочку output.

Цепочка — это список правил. Каждое правило можно сформулировать примерно так: «если заголовок пакета удовлетворяет такому-то условию, то поступить с ним так-то». Если первое правило не применимо к этому пакету, то рассматривается следующее правило в цепочке. Если ни одно правило не применимо к пакету, пакет, скорее всего, будет отвергнут. Если какой-нибудь пакет отвергается, в журнале syslog появляется соответствующее сообщение.

Программу ipchains можно вызывать со множеством параметров. Одни параметры создают новые цепочки, другие добавляют правила в цепочки (см. табл. 14.1).

Параметры программы ipchains Таблица 14.1

Параметр Описание
-N Создать новую цепочку
-X Удалить пустую цепочку
-P Изменить стратегию для пустой цепочки
-L Вывести правила цепочки
-F Удалить все правила из цепочки
-Z Обнулить счетчики пакетов и байтов во всех правилах цепочки
Добавить новое правило к цепочке
-I Вставить новое правило в определенную позицию
-R Заменить правило
-D Удалить правило, удовлетворяющее какому-нибудь условию

Один из примеров использования IPChains мы уже рассматривали в главе 8. Напомню, в той главе нужно было организовать маршрутизацию средствами IPChains. При этом использовались следующие команды:

ipchains –P forward DENY

ipchains –A forward –s 192.168.1.0/24 –d 192.168.2.0/24 –j ACCEPT

ipchains –A forward –s 192.168.2.0/24 –d 192.168.1.0/24 –j ACCEPT

Первая команда изменяет стратегию для пустой цепочки forward, которая используется именно для маршрутизации. Вторая команда перенаправляет пакеты из сети 192.168.1.0 в сеть 192.168.2.0. Опция –s означает источник (source), а опция –d означает назначение (destination). Опция –j определяет действие. В том случае, если вы должны принять пакет, используется параметр ACCEPT. Если вам нужно отбросить пакет, используйте параметр DENY.

Адреса источника и пункта назначения можно указывать четырьмя способами:

1. Просто указать IP-адрес, например, 192.168.1.1.

2. Указать имя компьютера, например, www.host.ru.

3. Указать целую группу IP-адресов, например, 192.168.1.0/24.

4. Указать группу адресов и маску сети, например, 192.168.1.0/255.255.255.0.

Для формирования правил также используются опции, представленные в табл. 14.2.

Все эти опции могут иметь предшествующий параметру символ «!». Как и в некоторых языках программирования, этот символ обозначает отрицание. Например, правило –s! localhost определяет любой пакет, не исходящий из компьютера localhost.

Опции формирования правил Таблица 14.2

Параметр Описание
-s  Источник (IP-адрес или URL-адрес)
-d Назначение (IP-адрес или URL-адрес)
-i Интерфейс
-p Протокол

Указать протокол можно с помощью опции –р. Например, для указания протокола TCP служит правило –р TCP. Иногда нужно указать порт соединения TCP или UDP. Это можно сделать так: IP-addr/ports_range.

Диапазон портов определяется параметром ports_range. Диапазон указывается через двоеточие, например, 0:1023. Нижний предел диапазона равен О, а верхний — 1023. Если нижний предел не задан, принимается значение по умолчанию — 0. Если не задан верхний предел, считается, что он равен 65535, то есть максимальному числу поддерживаемых портов.

Указать интерфейс можно с помощью опции –i. Например, –i ppp0. Если у вас несколько интерфейсов, названия которых начинаются символами ррр, указать их всех вы можете опцией –i ppp+. Под интерфейсом понимается физическое устройство, на (из) который приходит (уходит) пакет. Для того, чтобы просмотреть список доступных в текущий момент интерфейсов, используйте команду ifconfig.

Теперь рассмотрим пару полезных примеров. Возможно, вы захотите запретить использование telnet извне. Это можно сделать с помощью команды:

ipchains –A prov –p tcp –destination-port 23 –j REJECT

Через цепочку prov проходит весь трафик, идущий от провайдера. Ее можно создать командами:

ipchains –N prov

ipchains –A input –i ppp0 –j prov

Предполагается, что вы подключаетесь к провайдеру через интерфейс ррр0. Скорее всего, в вашей сети найдутся несколько машин, которые работают под управлением ОС Windows и имеют общие ресурсы. Возможно, вы даже настроили протокол SMB на сервере. Чтобы протокол 8MB не был заметен извне, что очень нежелательно, воспользуйтесь следующими командами:

ipchains –A prov –p tcp –destination-port 137 –j REJECT

ipchains –A prov –p udp –destination-port 137 –j REJECT

ipchains –A prov –p tcp –destination-port 138 –j REJECT

ipchains –A prov –p udp –destination-port 138 –j REJECT

ipchains –A prov –p tcp –destination-port 139 –j REJECT

ipchains –A prov –p udp –destination-port 139 –j REJECT

Можно запретить локальным процессам получать пакеты от определенных узлов. Например, я не хочу, чтобы мой Netscape тратил время на получения баннеров от машины с адресом 911.111.111.111. Для этого, возможно, удобнее было бы воспользоваться прокси-сервером, но сейчас нужно продемонстрировать, как это можно сделать с помощью IPChains.

ipchains –A output –d 911.111.111.111 –j REJECT

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

Для того, чтобы ваши правила были постоянными (при перезагрузке машины правила IPChains теряются), используйте сценарии ipchains-save и ipchains-restore. Настройте свои правила, затем выполните команду:

# ipchains-save > /etc/ipchains.rules

В листинге 14.1 представлен сценарий, управляющий пакетной фильтрацией.

Листинг 14.1. Сценарий управления пакетной фильтрацией

#! /bin/sh

# Сценарий управления пакетной фильтрацией.,

# Если правил нет, то ничего не делать.

[ –f /etc/ipchains.rules ] || exit 0

case "51" in

start)

 echo –n "Включение пакетной фильтрации:" /sbin/ipchains-restore < /etc/ipchains.rules || exit 1

 echo 1 > /proc/sys/net/ipv4/ip_forward

 echo ". "

 ;;

stop)

 echo –n "Отключение пакетной фильтрации:"

 echo 0 > /proc/sys/net/ipv4/ip_forward

 /sbin/ipchains –X

 /sbin/ipchains –F

 /sbin/ipchains –P input ACCEPT

 /sbin/ipchains –P output ACCEPT

 /sbin/ipchains –P forward ACCEPT

 echo " . "

 ;;

*)

 echo "Использование: /etc/init.d/packetfliter {start|stop}"

 exit 1

 ;;

esac

exit 0

Этот сценарий нужно добавить в сценарии загрузки системы.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Настройка

Из книги Документация NetAMS автора Автор неизвестен

Настройка В заголовке скрипта addon/snmp2netams.pl необходимо:@devices=(«catalyst»);Перечислить через запятую заключенные в кавычки имена (hostname) устройств, откуда вы хотите собирать статистику.$community=«public»;Коммьюнити для


Настройка

Из книги Реестр Windows автора Климов Александр

Настройка Скрытие пунктов подменю из меню НастройкаЕсли вы хотите скрыть пункты Панель управления, Принтеры, Удаленный доступ к сети и др. из меню Настройка, то откройте раздел HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplоrerи создайте параметр типа DWORD °NoSetFolders° со значением 1. Установка


14.1. Применение IPChains

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич

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


17.1.3. Конфигурирование IpChains

Из книги Сетевые средства Linux автора Смит Родерик В.

17.1.3. Конфигурирование IpChains Теперь приступим к настройке IPChains. Создайте цепочку, через которую пойдет весь трафик от провайдера: ipchains –N provipchains –A input –i eth0 –j prov Запретите ip-spoofing:ipchains –A prov –s 192.168.1.1/16 –1 –j DENY ipchains –A prov –s 127.0.0.1/8 –1 –j DENY Запретите Telnet снаружи: ipchains –A prov –p tcp


Настройка DNS

Из книги Яндекс для всех автора Абрамзон М. Г.

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


Настройка INN

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

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


Настройка SSH

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

Настройка SSH Из протоколов, обеспечивающих защиту передаваемых данных, среди пользователей Linux наиболее популярен SSH (Secure Shell — защищенная оболочка). Данные, предназначенные для передачи по сети посредством данного протокола, шифруются. Очевидно, что шифрованные данные


Настройка

Из книги Анонимность и безопасность в Интернете. От «чайника» к пользователю автора Колисниченко Денис Николаевич

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


4.3.2. Настройка

Из книги Социальные сети. ВКонтакте, Facebook и другие… автора Леонтьев Виталий Петрович

4.3.2. Настройка Итак, программа установлена, компьютер перезагружен. С помощью меню Пуск | Все программы | Яндекс | Персональный поиск запустите программу. После запуска она разместится в панели программ. По правой кнопке мыши откроется меню, в котором вам надо выбрать пункт


19.6.1. Что изменилось в IPTables по сравнению с IPChains

Из книги автора

19.6.1. Что изменилось в IPTables по сравнению с IPChains ? Имена стандартных цепочек INPUT, OUTPUT и FORWARD теперь пишутся в верхнем регистре. Имена пользовательских цепочек по соглашению пишутся строчными буквами и могут иметь длину до 31 символа.? Действие «отклонить пакет» теперь


4.11. ipchains

Из книги автора

4.11. ipchains Наиболее распространенной программой для создания правил сетевого экрана является ipchains. В команде вызова можно указывать следующие параметры:? -A цепочка правило — добавить правило в конец цепочки. В качестве аргумента указывается имя цепочки input, output или


4.11.2. Примеры добавления ipchains-правил

Из книги автора

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


4.11.3. Примеры удаления ipchains-правил

Из книги автора

4.11.3. Примеры удаления ipchains-правил Попробуем отменить доступ к FTP на примере удаления записей из цепочки input. Я специально выбрал в качестве образца FTP-сервис, потому что он требует две строки описания, и при совершении операции нужно быть очень внимательным. На вскидку


5.2.1. Настройка The Bat!

Из книги автора

5.2.1. Настройка The Bat! Начну с The Bat! – моего любимого почтового клиента для Windows. Примечание Я понимаю, что использовать в таком режиме The Bat! не вполне не рационально – ведь код этой программы закрыт. И хотя 100-процентную гарантию никто дать не может, "черных дыр" в ней, вроде бы,


Настройка QIP

Из книги автора

Настройка QIP Да, программа работает… Но пока что лишь в собственной сети. А ей мы, как вы понимаете, ограничиваться не собираемся. Поэтому первое, что нам нужно сделать, – это внести в настройки QIP всю необходимую информацию для доступа к другим сетям. Сделать это можно в