Лабораторная 5. Настройка сетевого экрана IPTABLES

advertisement
Лабораторная работа 5
НАСТРОЙКА СЕТЕВОГО ЭКРАНА
IPTABLES
1
Что такое пакетный фильтр?
Пакетный фильтр – это программа, предназначенная для управления передачей
пакетов данных между сетевыми узлами.
Классы пакетов:
1. пакет предназначен узлу;
2. пакет создан самим узлом;
3. пакет является транзитным (не для нас и не нам).
В Linux пакетным фильтром является iptables. Поддержка фильтрации реализована на
уровне ядра операционной системы.
Фильтрация осуществляется на основе правил, объединяемых в таблицы и цепочки.
Правило имеет вид:
условие | действие | модификаторы
«Условие» задает для каких пакетов будет выполняться «действие». «Модификаторы» –
уточняют действие (например задают другой адрес назначения пакета).
2
Таблицы пакетного фильтра iptables
В фильтре iptables имеется три таблицы:
RAW –
содержит правила, используемые для управления логической обработкой
пакета;
MANGLE - используется для изменения содержимого заголовков пакета;
NAT –
включает правила, определяющие изменение адресов источника и
приемника (трансляция адресов);
FILTER задает правила фильтрации пакетов.
В таблицах присутствуют стандартные цепочки:
INPUT –
содержит правила, используемые для обработки пакетов,
предназначенных данному узлу;
OUTPUT используется для обработки пакетов, генерируемых данным узлом;
FORWARD –
включает правила, обрабатывающие транзитные пакеты;
PREROUTING содержит правила, которые должны быть выполнены до процедуры
маршрутизации пакета.
POSTROUTING - включает правила, выполняемые над пакетом «на выходе».
Просмотр цепочек завершается при нахождении первого подходящего правила или по
правилу «по умолчанию». Исключение – цель LOG.
3
RAW
MANGLE
X
X
X
X
PREROUTING
POSTROUTING
X
NAT
FILTER
OUTPUT
FORWARD
INPUT
Прохождение пакета по таблицам и стандартным цепочкам
X
X
X
X
X
X
X
X
4
Работа с утилитой iptables
Формат вызова команды:
iptables –t <table> <операция> [<цепочка> [<условие>] –j <действие> [<модификаторы>]]
Операция:
L – вывести информацию о таблице;
A – добавить правило в конец цепочки;
D – удалить указанное правило из цепочки;
F – удалить все правила из цепочки;
P – задать действие «по умолчанию», применяемое к пакетам, проходящим через
цепочку (только для стандартных цепочек);
N – создать пользовательскую цепочку
Действие:
ACCEPT – разрешить прохождение пакета;
DROP – запретить прохождение пакета (откинуть пакет);
REJECT – запретить прохождение пакета и сообщить об этом
LOG – сделать запись в системный журнал о пакете.
iptables –t filter –A INPUT –j LOG –log-prefix “filter-input”
iptables –t mangle –L
5
Условие формируется из комбинации (например):
-s – адрес источника (сеть или узел)
-d – адрес получателя (сеть или узел)
-p – протокол
Модификаторы (которые нам понадобятся):
--icmp-type -- тип пакета ICMP;
--sport – номер порта, с которого был послан пакет;
--dport – номер порта, на который был послан пакет;
--to-destination – адрес для замены в поле «получатель»
--from-source – адрес для замены в поле «источник»
iptables –t filter –A INPUT –s 10.0.16.0/20 -j DROP
iptables –t filter –A FORWARD –s 10.0.16.0/20 –d
192.168.0.1 –p tcp –dport 22 –j ACCEPT
6
7
Примеры работы
Заблокируем все «проходящие» пакеты:
iptables –t filter –P FORWARD DROP
Создадим пользовательскую цепочку:
iptables –t filter –N MyCHAIN
Создадим правила в стандартных цепочках, которые
будут использовать нашу новую цепочку:
iptables –t filter –A INPUT –s 192.168.20.0/24 –j MyCHAIN
iptables –t filter –A OUTPUT –d 192.168.20.0/24 –j MyCHAIN
iptables –t filter –A FORWARD –s 192.168.20.0/24 –j MyCHAIN
iptables –t filter –A FORWARD –d 192.168.20.0/24 –j MyCHAIN
8
Наша цепочка принимает решения о пакета из сети или в
сеть 192.168.20.0/24:
iptables –t filter –A MyCHAIN –j DROP
В пользовательских цепочках можно использовать цель
RETURN, которая завершает просмотр пользовательской
цепочки и возвращается на уровень вверх.
9
Сохранение настроек пакетного фильтра
Параметры сохраняются в файле /etc/sysconfig/iptables
10
Network address translation
Пакет:
источник – 192.168.1.1
приемник – 195.190.105.242
Пакет:
источник – 195.149.206.244
приемник – 195.190.105.242
Пакет:
источник – 192.168.1.1
приемник – 195.190.105.242
Пакет:
источник – 192.168.1.1
приемник – 192.168.10.1
11
Network address translation
Пакет:
источник – 192.168.1.1
приемник – 195.190.105.242
Пакет:
источник – 195.149.206.244
приемник – 195.190.105.242
Iptables –t nat –A POSTROUTING –s 192.168.1.1 –j SNAT –to-source 195.149.206.244 –o eth1
12
Network address translation
Iptables –t nat –A PREROUTING –d 195.190.105.242 –p tcp –dport 80\
–j DNAT –to-destination 192.168.10.1:8080 –i eth0
Пакет:
источник – 192.168.1.1
приемник – 195.190.105.242
Пакет:
источник – 192.168.1.1
приемник – 192.168.10.1
13
Download