Лабораторная работа №4
БРАНДМАУЭР IРTАBLES
К фильтрации пакетов IP имеют отношение следующие из них:
-А цепочка — добавить одно или несколько правил в конец заданной це­
почки. Если источник или приемник содержит имя узла, преобразуемое в
несколько IP­адресов, для каждого адреса будет добавлено отдельное
правило;
-I цепочка номер_правила — вставить одно или несколько правил в начало
заданной цепочки. Если спецификация правила включает имя узла, то для
каждого IP­адреса, в который это имя преобразуется, будет вставлено от­
дельное правило;
-D цепочка — удалить из заданной цепочки одно или несколько правил,
соответствующих заданной спецификации;
-D цепочка номер__правила — удалить правило, находящееся в позиции
но­мер_правила заданной цепочки. Нумерация позиций начинается с 1, что
со­ответствует первому правилу в цепочке;
-R цепочка номер__правила — заменить правило, находящееся в позиции
но-мер_правила заданной цепочки, правилом с заданной спецификацией;
-С цепочка — проверить пакет, описываемый спецификацией правила, по
заданной цепочке. Команда возвращает сообщение, описывающее результа­
ты обработки пакета цепочкой. Данная возможность чрезвычайно полезна
для тестирования конфигурации брандмауэра, и мы вернемся к ней чуть
позже;
-L [цепочка] — вывести информацию о правилах заданной цепочки или обо
всех цепочках (если параметр цепочка не задан);
-F [цепочка] ­­ сбросить содержимое заданной цепочки или всех цепочек
(если параметр цепочка не задан);
-Z [цепочка] — обнулить счетчики пакетов и байтов для всех правил задан­
ной цепочки или для всех цепочек (если параметр цепочка не задан);
-N цепочка — создать новую цепочку с заданным именем (при условии, что
цепочка с таким именем не существует). Позволяет создавать цепочки пра­
вил, определяемые пользователем;
-X [цепочка] ­­ удалить заданную цепочку, определенную пользователем,
или все пользовательские цепочки (если параметр цепочка не задан). Для
успешного выполнения этой команды необходимо, чтобы ссылки на задан­
ную цепочку не встречались в других цепочках правил;
-Р цепочка политика — устанавливает для цепочки chain политику по умол­
чанию. Параметр политика может принимать следующие значения:
ACCEPT, DENY, REJECT, REDIR или RETURN. Значения ACCEPT, DENY и
REJECT имеют тот же смысл, что и в традиционной реализации
брандмауэров IP. Значение REDIR указывает, что пакет следует переслать
на порт узла бранд­мауэра. Значение RETURN заставляет программный код
брандмауэра вер­нуться к цепочке, из которой была вызвана цепочка с
данным правилом, и продолжить обработку со следующего правила.
-р [!]протокол — название протокола, к которому относится пакет. Допусти­
мыми значениями являются top, udp, icmp, all или номер протокола1.
Например, номер 4 соответствует протоколу ipip. При наличии
восклицательного знака (!) правило инвертируется и распространяется на
пакеты любых протоколов, кроме заданного. Если параметр не указан, по
умолчанию используется значение all
-s [!]адрес[/маска] — адрес, с которого был отправлен пакет. Адрес может
задаваться в виде имени узла, имени сети или IP­адреса. Необязательный
параметр mask определяет маску сети и задается либо в традиционном
фор­мате (например, /255.255.255.0) или в современной записи (например, /
24);
-d [!]адрес[/маска] — адрес и порт, на который был отправлен пакет. Пара­
метры имеют тот же смысл, что и для параметра ­s;
-j действие — действие, выполняемое в том случае, если пакет
соответству­ет правилу. Допустимыми значениями являются ACCEPT,
DROP, QUEUE и RETURN. Смысл всех этих значений был описан выше.
Помимо этого, можно указать имя пользовательской цепочки, с которой
должна продол­житься обработка. Кроме того, допускается указание
действия, поддержива­емого расширением (расширения рассматриваются
ниже). Если параметр не указан, для совпадающих пакетов не выполняется
никаких действий, кроме обновления счетчиков пакетов и байтов;
-i [!]имя_интерфейса — интерфейс, с которого был получен пакет. Как и
прежде, символ ! инвертирует результат совпадения. Если имя интерфейса
завершается символом +, то правило задает все интерфейсы, имена которых
начинаются с заданной строки. Например, запись ­i ppp+ соответствует лю­
бому сетевому устройству РРР, а запись ­i ! eth+ соответствует любому
интерфейсу, кроме устройств Ethernet;
-о [!]имя_интерфейса — интерфейс, по которому передается пакет. Аргу­
мент задается в том же формате, что и аргумент ­i;
[I] -f — правило распространяется на все фрагменты фрагментированного
пакета, кроме первого.
1 Имена и номера протоколов перечислены в файле /etc/protocols.
Параметры
Следующие параметры iptables имеют более общий характер. Некоторые из
них управляют весьма нетривиальными возможностями особенностей про­
граммы iptables:
-v — заставляет iptables выдавать подробные выходные данные;
–n — заставляет iptables выводить IP­адреса и номера портов в числовой
записи без попыток преобразования их в символические имена;
-х — для всех чисел в выходных данных iptables выводятся их точные зна­
чения без округления;
-line-numbers — включает режим вывода строк при отображении правил.
Номер строки соответствует позиции правила в цепочке.
Допустим, сеть обладает 24­разрядной маской сети (класс С) и адресом
172.16.1.0. В этом случае правила iptables могут выглядеть так:
# modprobe
1p_tables
# iptables
­F FORWARD
# iptables
­P FORWARD DROP
#iptables ­A FORWARD ­m tcp ­p tcp ­s 0/0 ­­sport 80 ­d 172.16.1.0/24 / ­­syn ­j
DROP
# iptables
­A FORWARD ­m tcp ­p tcp ­s 172.16.1.0/24 ­­sport /
80 ­d 0/0 ­j ACCEPT* iptables ­A FORWARD ­m tcp ­p tcp ­d 172.16.1.0/24 ­­dport
80 ­s 0/0 ­j / ACCEPT

лабораторная работа №4

  • 1.
  • 2.
    К фильтрации пакетовIP имеют отношение следующие из них: -А цепочка — добавить одно или несколько правил в конец заданной це­ почки. Если источник или приемник содержит имя узла, преобразуемое в несколько IP­адресов, для каждого адреса будет добавлено отдельное правило; -I цепочка номер_правила — вставить одно или несколько правил в начало заданной цепочки. Если спецификация правила включает имя узла, то для каждого IP­адреса, в который это имя преобразуется, будет вставлено от­ дельное правило; -D цепочка — удалить из заданной цепочки одно или несколько правил, соответствующих заданной спецификации; -D цепочка номер__правила — удалить правило, находящееся в позиции но­мер_правила заданной цепочки. Нумерация позиций начинается с 1, что со­ответствует первому правилу в цепочке; -R цепочка номер__правила — заменить правило, находящееся в позиции но-мер_правила заданной цепочки, правилом с заданной спецификацией;
  • 3.
    -С цепочка —проверить пакет, описываемый спецификацией правила, по заданной цепочке. Команда возвращает сообщение, описывающее результа­ ты обработки пакета цепочкой. Данная возможность чрезвычайно полезна для тестирования конфигурации брандмауэра, и мы вернемся к ней чуть позже; -L [цепочка] — вывести информацию о правилах заданной цепочки или обо всех цепочках (если параметр цепочка не задан); -F [цепочка] ­­ сбросить содержимое заданной цепочки или всех цепочек (если параметр цепочка не задан); -Z [цепочка] — обнулить счетчики пакетов и байтов для всех правил задан­ ной цепочки или для всех цепочек (если параметр цепочка не задан);
  • 4.
    -N цепочка —создать новую цепочку с заданным именем (при условии, что цепочка с таким именем не существует). Позволяет создавать цепочки пра­ вил, определяемые пользователем; -X [цепочка] ­­ удалить заданную цепочку, определенную пользователем, или все пользовательские цепочки (если параметр цепочка не задан). Для успешного выполнения этой команды необходимо, чтобы ссылки на задан­ ную цепочку не встречались в других цепочках правил; -Р цепочка политика — устанавливает для цепочки chain политику по умол­ чанию. Параметр политика может принимать следующие значения: ACCEPT, DENY, REJECT, REDIR или RETURN. Значения ACCEPT, DENY и REJECT имеют тот же смысл, что и в традиционной реализации брандмауэров IP. Значение REDIR указывает, что пакет следует переслать на порт узла бранд­мауэра. Значение RETURN заставляет программный код брандмауэра вер­нуться к цепочке, из которой была вызвана цепочка с данным правилом, и продолжить обработку со следующего правила.
  • 5.
    -р [!]протокол —название протокола, к которому относится пакет. Допусти­ мыми значениями являются top, udp, icmp, all или номер протокола1. Например, номер 4 соответствует протоколу ipip. При наличии восклицательного знака (!) правило инвертируется и распространяется на пакеты любых протоколов, кроме заданного. Если параметр не указан, по умолчанию используется значение all -s [!]адрес[/маска] — адрес, с которого был отправлен пакет. Адрес может задаваться в виде имени узла, имени сети или IP­адреса. Необязательный параметр mask определяет маску сети и задается либо в традиционном фор­мате (например, /255.255.255.0) или в современной записи (например, / 24); -d [!]адрес[/маска] — адрес и порт, на который был отправлен пакет. Пара­ метры имеют тот же смысл, что и для параметра ­s; -j действие — действие, выполняемое в том случае, если пакет соответству­ет правилу. Допустимыми значениями являются ACCEPT, DROP, QUEUE и RETURN. Смысл всех этих значений был описан выше. Помимо этого, можно указать имя пользовательской цепочки, с которой должна продол­житься обработка. Кроме того, допускается указание действия, поддержива­емого расширением (расширения рассматриваются ниже). Если параметр не указан, для совпадающих пакетов не выполняется никаких действий, кроме обновления счетчиков пакетов и байтов;
  • 6.
    -i [!]имя_интерфейса —интерфейс, с которого был получен пакет. Как и прежде, символ ! инвертирует результат совпадения. Если имя интерфейса завершается символом +, то правило задает все интерфейсы, имена которых начинаются с заданной строки. Например, запись ­i ppp+ соответствует лю­ бому сетевому устройству РРР, а запись ­i ! eth+ соответствует любому интерфейсу, кроме устройств Ethernet; -о [!]имя_интерфейса — интерфейс, по которому передается пакет. Аргу­ мент задается в том же формате, что и аргумент ­i; [I] -f — правило распространяется на все фрагменты фрагментированного пакета, кроме первого. 1 Имена и номера протоколов перечислены в файле /etc/protocols.
  • 7.
    Параметры Следующие параметры iptablesимеют более общий характер. Некоторые из них управляют весьма нетривиальными возможностями особенностей про­ граммы iptables: -v — заставляет iptables выдавать подробные выходные данные; –n — заставляет iptables выводить IP­адреса и номера портов в числовой записи без попыток преобразования их в символические имена; -х — для всех чисел в выходных данных iptables выводятся их точные зна­ чения без округления; -line-numbers — включает режим вывода строк при отображении правил. Номер строки соответствует позиции правила в цепочке.
  • 8.
    Допустим, сеть обладает24­разрядной маской сети (класс С) и адресом 172.16.1.0. В этом случае правила iptables могут выглядеть так: # modprobe 1p_tables # iptables ­F FORWARD # iptables ­P FORWARD DROP #iptables ­A FORWARD ­m tcp ­p tcp ­s 0/0 ­­sport 80 ­d 172.16.1.0/24 / ­­syn ­j DROP # iptables ­A FORWARD ­m tcp ­p tcp ­s 172.16.1.0/24 ­­sport / 80 ­d 0/0 ­j ACCEPT* iptables ­A FORWARD ­m tcp ­p tcp ­d 172.16.1.0/24 ­­dport 80 ­s 0/0 ­j / ACCEPT