Глава 5
таблиц
mangle
,
nat
и
filter
. Далее пакет отправляется на цепочку
POSTROUTING
и обрабатывается правилами таблиц
mangle
и
nat
.
Если пакет нужно передать другому компьютеру, то он обрабатывается правилами
цепочки
FORWARD
таблиц
mangle
и
filter
, а после этого к нему применяются
правила цепочки
POSTROUTING
. На этом этапе используется подмена источника
пакета (этот вид NAT называется Source NAT, SNAT).
Рис. 5.9.
Схема обработки пакета
После всех правил пакет «выжил»? Тогда он становится исходящим пакетом (на
схеме
ПАКЕТ OUT
) и отправляется в сеть.
Задание правил брандмауэра
Теперь, когда мы разобрались с правилами и цепочками, самое время научиться
использовать брандмауэр iptables. Для себя сразу определитесь, что вы настраивае-
те. Можно настраивать просто брандмауэр, защищающий локальный компьютер от
всевозможных атак. А можно настраивать шлюз сети, предоставляющий всем
остальным компьютерам сети доступ к Интернету. В последнем случае нужно
включить IP-переадресацию (IPv4-forwarding). О том, как это сделать, было сказано
ранее. В большинстве случаев хватит вот такой команды:
sudo sysctl -w net.ipv4.ip_forward=«1»
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Для изменения правил брандмауэра нужны полномочия root, поэтому все команды
iptables следует вводить или через команду
sudo
(для этого ваш пользователь дол-
жен иметь право использовать
sudo
), или с предварительно полученными полномо-
чиями root (команда
su
).
Для добавления правила в цепочку служит команда:
sudo iptables -A цепочка правило
Например:
sudo iptables -A INPUT правило
Работа в глобальной сети
209
Такая команда добавит правило в цепочку
INPUT
таблицы
filter
— это таблица по
умолчанию (см. рис. 5.9). Если вы желаете добавить правило в другую таблицу,
нужно указать ее в параметре
-t
:
sudo iptables -t таблица -A цепочка правило
Например:
sudo iptables -t nat -A INPUT правило
Действие по умолчанию задается ключом
-P
:
sudo iptables -P INPUT DROP
Обычно устанавливаются вот такие действия по умолчанию:
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT DROP
Обратимся к данным табл. 5.4, но предварительно рассмотрим фазы установки
TCP-соединения. Соединение устанавливается в три этапа (фазы). Сначала первый
компьютер отправляет второму компьютеру SYN-пакет, запрашивая открытие со-
единения. Второй компьютер отправляет ему подтверждение SYN-пакета — ACK-
пакет. После этого соединение считается установленным (ESTABLISHED). Откры-
тое, но не установленное соединение (когда компьютеры обмениваются пакетами
SYN-ACK), называется новым (NEW). Уточнения, приведенные здесь в скобках,
помогут разобраться с материалом табл. 5.5, где при описании параметров указы-
ваются не полные команды iptables, а только их фрагменты, имеющие отношения
к тому или иному параметру.
Таблица 5.5.
Параметры фильтрации пакетов
Параметр
Описание
--source
Позволяет указать источник пакета. Можно указывать как доменное
имя компьютера (напр.,
den.dkws.org.ua
), так и его IP-адрес
(
192.156.1.1
) и даже набор адресов
(
192.168.1.0/255.255.255.0
).
Пример:
iptables -A FORWARD --source 192.168.1.11 ...
--destination
Задает назначение (адрес получателя) пакета. Синтаксис такой же,
как и у
--source
-protocol
(или
-p
)
Задает протокол. Чаще всего работают с tcp, icmp или udp, но можно
указать любой протокол, определенный в файле
/etc/protocols
. Также
можно указать
all
, что означает все протоколы.
Примеры:
iptables -A FORWARD -protocol tcp ...
iptables -A FORWARD -p tcp ...
210
Do'stlaringiz bilan baham: |