- •1 Основные команды Linux.
- •2 Программы-фильтры и их использование.
- •3 Управление пользователями: добавление, удаление, смена пароля, изменение параметров.
- •4 Управление группами: создание, удаление, список членов группы, добавление и удаление пользователей.
- •5 Организация хранения парольной информации в Linux. Системные аутентификационные файлы и их формат.
- •6 Средства удаленного управления Linux. Вопросы обеспечения безопасности при удаленном управлении.
- •7 Права доступа к файлам и каталогам: традиционные права доступа, управление доступом.
- •8 Права доступа к файлам и каталогам: acl, управление доступом.
- •10 Монтирование устройств, файлов, каталогов.
- •11 Включение/выключение маршрутизации в Linux.
- •9 Работа с разделами диска. Создание файловых систем на разделах.
- •12 Настройка сетевого интерфейса. Управление статическими маршрутами.
- •13 Настройка межсетевого экрана. Создание разрешающих и запрещающих правил.
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
