Вт, 19.09.2017, 18:13
Форум інформатиків України
Головна Реєстрація Вхід
Вітаю Вас, Гість · RSS
Вітання на форумі
Незнайомець
Вітаємо на форумі,
Незнайомцю!

   
зареєструйтесь
Перед реєстрацією обов’язково прочитайте:
Оновлення Учасники Пошук
Особисті повідомлення
Видавництво ’’Аспект’’ Видавництво

Сторінка 1 з 11
Модератор форуму: Bandalak, Ktara, НІКОЛЯ, volevikt 
Форум інформатиків » РОЗДІЛ ІХ: ІНТЕРНЕТ, МЕРЕЖІ, ХОСТІНГ » 9.8 Рубрика системного адміністратора » Сетевой экран линухи - iptables (основы)
Сетевой экран линухи - iptables
Jokerz Дата: Пт, 24.10.2008, 22:15 | Повідомлення № 1
Хостер
Повідомлень: 1189
Нагороди: 4
Рейтинг: 97
И так, по интернету да и в литературе мало уделяют внимание основам работы с сетевым экраном никсовых системы (во вфре стоит другой) iptables. Попробую описать самые простые правила и ситуации когда можно использовать.
И так.
Предположим, что у нас есть 2 сетевых интерфейса: eth0 - локальная сеть и ppp0 - интернет соединение.
Запустим iptables выполнив по рутом команду : /etc/init.d/iptables start
Использование /etc/init.d/iptables
Скрипт /etc/init.d/iptables понимает несколько команд (/etc/init.d/iptables <команда>), некоторые из них:
start — запуск iptables. Восстанавливает все правила (правила хранятся в /var/lib/iptables/rules-save);
stop — сброс всех цепочек;

Команды Сохранения и Восстановления:
save — сохранение всех правил.

ПРИМЕР iptables-save > ~/ipconf — эта команда сохранит все ваши правила в файл, который создастся сам в текстовом расширении... Т. е. чтобы посмотреть и отредактировать его наберите gedit ~/ipconf.
restore — восстановление всех правил без перезагрузки самого IPtables. Из этого же файла делаете обратное iptables-restore < ~/ipconf

и все вы не перезагружали iptables и не теряли подключения своих демонов
Создание правил
Практически все правила можно привести к виду: iptables -A ЦЕПОЧКА ПАРАМЕТРЫ_ПАКЕТА -j ДЕЙСТВИЕ
Цепочки
Все изменения будем проводить над таблицей filter, именно она отвечает за фильтрацию пакетов. В таблице filter существует 3 цепочки: INPUT, OUTPUT и FORWARD. В каждой цепочки свой "тип" пакетов:
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 ЦЕПОЧКА ПОЛИТИКА
Параметры пакетов

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

Устройство, на которое пришёл пакет

-i

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

Для фильтрации по источнику используется опция -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.

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

Указывает на порт с которого был прислан пакет. Вот синтаксис: 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

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

В большинстве случаев пользователю достаточно выполнить такую последовательность комманд:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -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 прораммы пославшей пакет.

Следующие опции доступны только в версиях ядра ниже 2.6.14:
--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 - новый пакет уже установленном соединении.

-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
---------------------------
Материал найден в интеренте и собран воедино

Шановні форумчани!!!!!
Повідомлення, які не відповідають темі або несуть некорисний зміст будуть видалятись без попередження!!!


Відредаговано: Jokerz - Пт, 24.10.2008, 22:16
Форум інформатиків » РОЗДІЛ ІХ: ІНТЕРНЕТ, МЕРЕЖІ, ХОСТІНГ » 9.8 Рубрика системного адміністратора » Сетевой экран линухи - iptables (основы)
Сторінка 1 з 11
Пошук:


© Форум інформатиків України, 2007-2017.