Читайте также:
|
|
Опция -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
Дата добавления: 2014-12-19; просмотров: 24 | Поможем написать вашу работу | Нарушение авторских прав |