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

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

Жанры

Сетевые средства Linux

Смит Родерик В.

Шрифт:
Использование IP-адресов при выполнении фильтрации

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

– -source
(
– s
), а IP-адрес назначения — посредством опции
– -destination
(
– d
). Например, если вы хотите запретить взаимодействие с компьютерами сети 172.24.0.0/16, вам надо создать правила, которые отвергали бы пакеты, переданные из указанной сети, а также пакеты, адресованные компьютерам этой сети. Соответствующие команды имеют следующий вид:

# iptables -A INPUT -s 172.24.0.0/16 -j DROP

# iptables -A OUTPUT -d 172.24.0.0/16 -j DROP

Опции

– s
и
– d
часто используются вместе с опциями, определяющими номера портов. Таким образом, вы можете сформировать правила, согласно которым взаимодействовать по сети будут иметь право только определенные компьютеры, обращающиеся по определенным портам. Предположим, например, что вы создаете брандмауэр для защиты локальной сети, но хотите при этом разрешить удаленным пользователям, работающим в сети 10.34.176.0/24, обращаться к серверам SSH локальной сети (серверы SSH ожидают обращения через порт 22). Для этого надо определить следующие команды:

# iptables -A FORWARD -s 10.34.176.0/24 -p tcp \

 --destination-port 22 -j ALLOW

# iptables -A FORWARD -d 10.34.176.0/24 -p tcp \

 --source-port 22 -j ALLOW

Поскольку в данном примере модифицируется только цепочка

FORWARD
, пользователям не предоставляется доступ к серверу SSH компьютера, на котором выполняется брандмауэр (если такой сервер имеется на этой машине). Возможно, вы захотите создать правила, которые разрешали бы обращаться к этому серверу с компьютеров локальной сети. Если адрес вашей локальной сети 192.168.9.0/24, то соответствующие команды будут выглядеть так:

# iptables -A INPUT -s 192.168.9.0/24 -р tcp \

 --destination-port 22 -j ALLOW

# iptables -A OUTPUT -d 192.168.9.0/24 -p tcp \

 --source-port 22 -j ALLOW

Использование информации об интерфейсах при выполнении фильтрации

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

ppp0
или
eth1
. Данный подход в основном используется на компьютерах с несколькими интерфейсами, выполняющих функции маршрутизаторов. Применение в составе правила сведений об интерфейсе позволяет противодействовать фальсификации адресов, в частности, включению в заголовки пакетов, приходящих извне, адресов компьютеров локальной сети. Правила, в которых интерфейс задается с помощью опции
– -in-interfасе
(
– i
), как правило, помещаются в цепочки
INPUT
и
FORWARD
, а правила, создаваемые с использованием опции
– -out-interface
(
– о
), обычно предназначены для включения в цепочки
FORWARD
и
OUTPUT
. Предположим, что адрес вашей локальной сети 192.168.9.0/24, маршрутизатор, совмещенный с брандмауэром, подключен к ней с помощью интерфейса
eth1
, а соединение маршрутизатора с Internet осуществляется посредством интерфейса
eth0
. Правила, препятствующие фальсификации адресов, имеют следующий вид:

# iptables -A INPUT -s 192.168.9.0/24 -i eth0 -j DROP

# iptables -A FORWARD -s 192.168.9.0/24 -i eth0 -j DROP

# iptables -A FORWARD -s !192.168.9.0/24 -i eth1 -j DROP

# iptables -A OUTPUT -s !192.168.9.0/24 -i eth1 -j DROP

Первые две команды отвергают поступающие извне (через интерфейс

eth0
) пакеты, адресованные маршрутизатору или компьютерам локальной сети, в которых указано, что они отправлены из локальной сети. Последние две команды блокируют пакеты, направленные в Internet (поступающие через интерфейс
eth1
), в которых указан IP-адрес источника, не совпадающий с адресами компьютеров локальной сети.

Проверка пакетов с учетом состояния

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

они частью соединения или были специально сгенерированы для организации атаки. (Ранее уже встречалась опция
– -syn
, позволяющая определить пакет, содержащий запрос на установление соединения. Существуют средства, которые предоставляют возможность включить свои пакеты в набор пакетов, передаваемых в рамках действующего соединения. Такое включение пакетов называется перехватом TCP- соединения.) Средства проверки пакетов с учетом состояния определяют принадлежность пакетов к текущему соединению, анализируя последовательные номера, IP-адреса, указанные в заголовках, и другие характеристики пакетов. Правила, реализующие такую проверку, позволяют отвергать посторонние пакеты, включенные в состав данных, которые передаются в рамках существующего соединения.

Для включения средств проверки пакетов с учетом состояния используется опция

– -state
, предваряемая опцией
– m состояние
. Для опции
– -state
можно задать одно или несколько значений. Если вы указываете несколько значений, они должны разделяться запятыми. Символ
!
перед опцией
– -state
изменяет ее действие на обратное. Ниже перечислены допустимые параметры опции
– -state
.

• 

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

• 

NEW
. Пакет пытается установить новое соединение.

• 

ESTABLISHED
. Пакет соответствует существующему соединению.

• 

RELATED
. Пакет не является частью существующего соединения, но его присутствие допустимо (например, это может быть ICMP-пакет, сообщающий об ошибке).

На заметку

Опция

!
– -state INVALID
эквивалентна опции
– -state NEW, ESTABLISHED, RELATED
.

Рассмотрим пример проверки с учетом состояния. Предположим, что, настраивая брандмауэр на отдельном компьютере, вы задали политику по умолчанию

DROP
или
REJECT
, но хотите разрешить взаимодействие с сервером HTTP через порт 80. Вы можете задать поверку с учетом состояния, в ходе которой будут отвергаться пакеты, не предназначенные для установления соединений, не принадлежащие к существующим соединениям и не относящиеся к пакетам, присутствие которых допустимо. Команды, предназначенные для создания правил, имеют следующий вид:

# iptables -A INPUT -m state -p tcp --dport 80 \

 --state NEW,ESTABLISHED,RELATED -j ACCEPT

# iptables -A OUTPUT -m state -p tcp --sport 80 \

 --state ESTABLISHED,RELATED -j ACCEPT

Эти правила включают проверку входящих и исходящих пакетов. Для проверки пакетов, передаваемых с компьютера, значение

NEW
опции
– -state
не задано, так как новое соединение может устанавливаться только по инициативе клиента. Эти правила препятствуют перехвату существующих соединений с Web-сервером.

На заметку

Проверка пакетов с учетом состояния может осуществляться только в тех системах, в которых используется версия ядра 2.4.x. Предыдущими версиями ядра такая возможность не поддерживается. Это может стать одним из стимулов перехода к использованию

iptables
.

Использование дополнительных опций

Программа

iptables
поддерживает большое количество опций, которые могут быть использованы для создания брандмауэров. Например, посредством опции
– -new-chain
(
– N
) можно создать новую цепочку, указав опцию
– -fragment
(
– f
), можно создать правило, которое будет применяться ко второму и к последующим фрагментам фрагментированного пакета, а опция
– -tcp-flags
дает возможность организовать проверку на присутствие флагов в составе TCP-пакета. Дополнительную информацию об этих и о других опциях вы можете получить на страницах справочной системы Linux, посвященных
iptables
.

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

Войны Наследников

Тарс Элиан
9. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Войны Наследников

Газлайтер. Том 18

Володин Григорий Григорьевич
18. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Газлайтер. Том 18

Барон меняет правила

Ренгач Евгений
2. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон меняет правила

Студиозус 2

Шмаков Алексей Семенович
4. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Студиозус 2

Ст. сержант. Назад в СССР. Книга 5

Гаусс Максим
5. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ст. сержант. Назад в СССР. Книга 5

Возвращение Безумного Бога 2

Тесленок Кирилл Геннадьевич
2. Возвращение Безумного Бога
Фантастика:
попаданцы
рпг
аниме
5.00
рейтинг книги
Возвращение Безумного Бога 2

Семь Нагибов на версту

Машуков Тимур
1. Семь, загибов на версту
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Семь Нагибов на версту

Кодекс Охотника XXXI

Винокуров Юрий
31. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника XXXI

Неудержимый. Книга XXV

Боярский Андрей
25. Неудержимый
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Неудержимый. Книга XXV

Битва за Изнанку

Билик Дмитрий Александрович
7. Бедовый
Фантастика:
городское фэнтези
мистика
5.00
рейтинг книги
Битва за Изнанку

Я уже князь. Книга XIX

Дрейк Сириус
19. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я уже князь. Книга XIX

Газлайтер. Том 6

Володин Григорий
6. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 6

Мастер 7

Чащин Валерий
7. Мастер
Фантастика:
фэнтези
боевая фантастика
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Мастер 7

На границе империй. Том 3

INDIGO
3. Фортуна дама переменчивая
Фантастика:
космическая фантастика
5.63
рейтинг книги
На границе империй. Том 3