Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Linux.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
66 Кб
Скачать
☆

12 Настройка сетевого интерфейса. Управление статическими маршрутами.

Для получения текущей таблицы маршрутизации служит команда:

route

Команда отображает таблицу из восьми полей.

Поле Описание

Destination IP-адрес компьютера получателя или сети получателя

Gateway IP-адрес шлюза

Genmask Маска маршрута

Flags Состояние и тип маршрута:

U - маршрут включен;

H - хост;

G - шлюз;

R - восстановленный маршрут;

D - маршрут, созданный динамически;

! - нерабочий маршрут.

Metric Число шлюзов до получателя

Ref Число ссылок на данный маршрут

Use Число обращений к данному маршруту

Iface Имя интерфейса для передачи пакетов

Эта же команда служит для добавления и удаления записей в таблице маршрутизации.

Добавить новый маршрут можно командой:

route add -net IP_адрес_сети netmask маска_сети gw IP_адрес_шлюза

или

route add -host IP_адрес_хоста netmask маска_сети gw IP_адрес_шлюза

Удалить маршрут можно командой:

route del -net IP_адрес_сети netmask маска_сети gw IP_адрес_шлюза

или

route del -host IP_адрес_хоста netmask маска_сети gw IP_адрес_шлюза

Установить IP-адрес шлюза по умолчанию:

route add default gw IP_адрес_шлюза

Удалить IP-адрес шлюза по умолчанию:

route del default

Для настройки постоянных статических маршрутов служит файл /etc/sysconfig/static-routes. Формат файла следующий:

интерфейс net адрес_сети netmask маска_сети gw адрес_шлюза

В случае указания адресов в виде доменных имен необходимо преобразование доменных имен в IP-адреса с помощью DNS-серверов. Список используемых DNS-серверов указывается в файле /etc/resolv.conf .

13 Настройка межсетевого экрана. Создание разрешающих и запрещающих правил.

Создание правил

Практически все правила можно привести к виду:

iptables -t ТАБЛИЦА -A ЦЕПОЧКА ПАРАМЕТРЫ_ПАКЕТА -j ДЕЙСТВИЕ

Цепочки

Цепочка Таблица

filter nat mangle

INPUT X X

FORWARD X X

OUTPUT X X X

PREROUTING X X

POSTROUTING X X

Все изменения будем проводить над таблицей filter, именно она отвечает за фильтрацию пакетов. В таблице filter существует 3 цепочки: INPUT, OUTPUT и FORWARD. В каждой цепочкe свой "тип" пакетов:

• INPUT - пакеты предназначающиеся Вашему узлу. То есть входящий трафик. Транзитный трафик сюда не попадает.

• FORWARD - пакеты которые предназначены для другого узла, то есть транзитный трафик.

• OUTPUT - пакеты, которые уходят от нашего узла, или исходящий трафик. Транзитный трафик сюда не попадает.

Предупреждение: Имена таблиц всегда пишутся маленькими буквами, имена цепочек всегда пишутся большими буквами.

Работают с цепочками так:

iptables <опция> <цепочка>

Для работы с цепочками предусмотрены следующие опции:

• -A - добавление нового правила в цепочку. Правило будет добавлено в конец цепочки.

• -I - добавление правила не в конец,а туда куда вы укажите. Например команда:

iptables -I INPUT 2 bla-bla-bla - сделает наше правило вторым.

• -D - удаление правила. Например для удаления пятого правила введите:

iptables -D INPUT 5

• -F - сброс всех правил цепочки. Нужно, например,при удалении ненужной цепочки.

• -N - создание пользовательской цепочки. Если не хотите создавать кашу в каждой цепочке, то создайте несколько дополнительных цепочек. Синтаксис такой: iptables -N ЦЕПОЧКА. Только русские буквы, конечно, использовать нельзя.

• -X - удаление пользовательской цепочки.

На заметку: Удалить цепочки INPUT, OUTPUT и FORWARD нельзя.

• -P - установка политики для цепочки. Например:

iptables -P ЦЕПОЧКА ПОЛИТИКА

Параметры пакетов

Итак по каким параметрам можно фильтровать пакеты? Рассмотрим самые основные.

Источник пакета

Для фильтрации по источнику используется опция -s. Например запретим все входящие пакеты с узла 192.168.133.133:

iptables -A INPUT -s 192.168.133.133 -j DROP

Можно использовать доменное имя для указания адреса хоста. То есть:

iptables -A INPUT -s test.host.jp -j DROP

Также можно указать целую подсеть:

iptables -A INPUT -s 192.168.133.0/24 -j DROP

Также вы можете использовать отрицание (знак !). Например так - все пакеты с хостов отличных от 192.168.133.156 будут уничтожаться:

iptables -A INPUT ! -s 192.168.133.156 -j DROP

Адрес назначения

Для этого нужно использовать опцию -d. Например запретим все исходящие пакеты на хост 192.168.156.156:

iptables -A OUTPUT -d 192.168.156.156 -j DROP

Как и в случае с источником пакета можно использовать адреса подсети и доменные имена. Отрицание также работает.

Протокол

Опция -p указывает на протокол. Можно использовать all, icmp, tcp, udp или номер протокола (из /etc/protocols).

Порт источника

Указывает на порт с которого был прислан пакет. Вот синтаксис:

iptables -A INPUT -p tcp --sport 80 -j ACCEPT

Для указания порта необходимо указать протокол (tcp или udp). Можно использовать отрицание.

Порт назначения

Порт назначения. Синтаксис:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Как и в случае с портом источника нужно указать протокол. Можно использовать отрицание.

Действия над пакетами

Проку от того,что мы укажем параметры пакета нет.Нужно указать,что надо с ним делать. Для этого служит опция -j. Рассмотрим основные действия:

• ACCEPT - разрешить пакет.

• DROP - уничтожить пакет.

• REJECT - будет отправлено ICMP сообщение, что порт недоступен.

• LOG - информация об этом пакете будет добавлена в системный журнал (syslog). Не прерывает цепочку.

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

iptables -A INPUT -s 192.168.200.0/24 -j LOCAL_NET

Пример правил

В большинстве случаев конечному пользователю (рабочая станция под управлением Gentoo Linux) достаточно выполнить такую последовательность команд:

iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -P INPUT DROP

Вот собственно и вся настройка. На первый взгляд непонятно, что мы тут вообще сделали. Поэтому ознакомимся с основами составления правил.

Модули

Может сложиться впечатление, что возможностей у iptables маловато. Однако с использованием модулей iptables получит просто безграничные возможности. Для указания модуля используется опция -m. Например:

iptables -A INPUT -m модуль bla-bla

-m owner

Добавляет следующие опции (опции только для цепочки OUTPUT):

• --uid-owner UID - UID программы пославшей пакет.

• --gid-owner GID - GID программы пославшей пакет.

• --pid-owner PID - PID программы пославшей пакет.

• --sid-owner SID - SID (идентификатор сессии) производится проверка SID пакета, значение SID наследуются дочерними процессами от "родителя".

• --cmd-owner NAME - имя программы пославшей пакет.

-m multiport

Позволяет указывать не по одному порту, а сразу несколько:

• --source-ports порт1,порт2 - список портов, с которых пришел пакет;

• --sports порт1,порт2 - укороченый аналог --source-ports;

• --destination-ports порт1,порт2 - список портов назначения;

• --dports порт1,порт2 - укороченый аналог --destination-ports;

• --ports порт1,порт2 - проверяет как исходящий так и входящий порт пакета.

-m state

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

• NEW - пакет устанавливающий новое соединение.

• ESTABLISHED - пакет от уже установленного соединения.

• RELATED - пакет устанавливающий новое соединение от уже установленного (ESTABLISHED) соединения (пример: установка FTP-data соединения из FTP-control соединения).

• INVALID - говорит о том, что пакет не может быть идентифицирован и поэтому не может иметь определенного статуса

-m mac

Проверяет соответствие MAC-адреса в пакете с помощью опции --mac-source, например:

iptables -A INPUT -s 192.168.0.1 -m mac --mac-source 00:65:3F:ED:12:98 -j DROP

-m limit

Как следует из названия, предназначен для ограничения нагрузки, например:

iptables -A INPUT -p icmp -m limit --limit 4/second -j ACCEPT

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]