Решение задач vipnet linux. vipnet_linux решение задач. Руководство администратора
Скачать 1.91 Mb.
|
Лексема представляет собой служебное слово, после которого может указываться какой-либо параметр. Компоненты правил, лексемы внутри компонентов, а также служебные слова и параметры внутри лексем отделяются друг от друга пробелами. Управляющий компонент Управляющий компонент описывает свойства правила, не относящиеся непосредственно к обработке пакетов, и всегда указывается в начале правила. Он может состоять из следующих лексем: num <номер> – указывает номер правила в секции (от 0 до 65535). Номера используются для обозначения приоритета правил – чем меньше номер, тем выше приоритет. При обработке пакета сначала проверяются условия тех правил, приоритет которых выше, и при совпадении условий выполняется указанное в правиле действие, после чего дальнейший просмотр правил прекращается. Лексему num можно не указывать, при этом ПО ViPNet попытается самостоятельно назначить правилу номер, исходя из номеров правил, которые находятся до и после данного правила. При этом не всегда получается тот результат, который ожидался, поэтому рекомендуется всегда явно указывать номер у каждого правила. disable – указывает на то, что данное правило временно отключено и не действует. Если указана лексема num , то лексема disable может указываться только после нее, ViPNet Coordinator Linux. Руководство администратора | 85 если лексемы num нет – то в начале правила. Отсутствие лексемы disable означает, что правило действует. Условие Условие описывает, какие параметры должен иметь пакет, чтобы он был обработан данным правилом. Условие может состоять из следующих лексем: proto <протокол> – указывает протокол транспортного уровня, к которому должен принадлежать пакет. Поддерживаются протоколы tcp , udp и icmp , также можно задавать цифровые номера любых протоколов. Если одно правило должно обрабатывать пакеты разных протоколов, то их надо указывать через запятую. Вместо протокола можно указать ключевое слово any , что означает все протоколы. В секции [broadcast] можно задавать только значения udp и icmp type <тип> – указывает тип ICMP-сообщения. Эту лексему можно указывать только в условии для протокола ICMP ( proto icmp ), ее нельзя использовать для других протоколов и в случае указания всех протоколов ( proto any ). В лексеме type можно задать только один тип сообщения, который должен быть числом от 0 до 255. Если в условии для протокола ICMP лексема type не указана, то считается, что под условие подпадают любые типы ICMP-сообщений. Примечание. Лексема type обязательно указывается в случае, если в условии для протокола ICMP указана лексема code (см. ниже). code <код> – указывает код ICMP-сообщения. Эту лексему можно указывать только в условии для протокола ICMP ( proto icmp ), ее нельзя использовать для других протоколов и в случае указания всех протоколов ( proto any ). В лексеме code можно задать только один код сообщения, который должен быть числом от 0 до 255. Если в условии для протокола ICMP лексема code не указана, то считается, что под условие подпадают любые коды ICMP-сообщений. Примечание. В предыдущих версиях ViPNet Coordinator Linux лексемы type и code не использовались. При переходе на текущую версию в условия правил, заданных для протокола ICMP, автоматически добавляется « type 8 code 0 ». ViPNet Coordinator Linux. Руководство администратора | 86 from <список адресов> – описывает условия для адреса и порта отправителя пакета. Если указывается и адрес, и порт, то они разделяются двоеточием, например: 192.168.201.1:22 . Если порт не указывается, то двоеточие после адреса не ставится, в этом случае условие распространяется на все порты. Примечание. В условии нельзя указывать номера портов для протокола icmp ( proto icmp ) и в случае указания всех протоколов ( proto any ). Кроме единичного адреса, можно указать диапазон адресов или маску адресов, например: 192.168.1.1-192.168.1.10:22 или 192.168.201.0/24:22 . Можно также указывать диапазон портов, например, 192.168.201.0/24:1024-65535 . Можно перечислять несколько условий для адреса и порта через запятую, например: 192.168.1.1-192.168.1.10:22,172.16.1.0.24:25 Можно объединять адреса, диапазоны и маски адресов, а также порты и диапазоны портов в группы, перечисляя их через запятую и заключая группу в круглые скобки. Таким путем можно связать несколько диапазонов или масок адресов с одним диапазоном портов, не повторяя его несколько раз. Например, запись (192.168.201.0/24,172.16.1.0/24):1024-65535 означает «пакеты со всех адресов в сетях 192.168.201.0/24 и 172.16.1.0/24, имеющие порт отправителя от 1024 до 65535». Возможны и более комплексные формы записи с одновременным группированием адресов и портов, а также с перечислением таких групп. Например, запись (192.168.201.0/24,172.16.1.0/24):(22,25,6660-6667),10.0.0.0/8:1024- 65535 означает «пакеты со всех адресов в сетях 192.168.201.0/24 и 172.16.1.0/24, имеющие порт отправителя 22, или 25, или от 6660 до 6667, а также пакеты с адресов из сети 10.0.0.0/8, имеющие порт отправителя от 1024 до 65535». Вместо адресов и их диапазонов можно указывать следующие ключевые слова: o anyip – означает все адреса (т.е. диапазон 0.0.0.0-255.255.255.255); o broadcast – означает адрес 255.255.255.255. Примечание. В предыдущих версиях ViPNet Coordinator Linux вместо ключевого слова anyip в правилах использовалось слово any . При переходе на текущую версию слово any автоматически заменяется словом anyip там, где оно используется для указания всех IP-адресов. ViPNet Coordinator Linux. Руководство администратора | 87 to <список адресов> – описывает условия для адреса и порта получателя пакета. Синтаксис этой лексемы такой же, как синтаксис лексемы from В секции [broadcast] в лексеме to можно указывать только следующие адреса: o broadcast – означает адрес 255.255.255.255; o directed-broadcast – означает адреса бродкастов всех подсетей, подключенных к интерфейсам компьютера. При прогрузке правила в драйвер это значение заменяется на список соответствующих широковещательных адресов; o адреса бродкастов подсетей, подключенных к сетевым интерфейсам компьютера. Указание конкретного бродкастового адреса влияет на направленные бродкасты, посланные в соответствующей подсети. in или out – указывает направление установления соединения. При указании этих условий необходимо помнить о том, что задают не направление движения отдельного пакета, а именно направление установления соединения. ПО ViPNet отслеживает, какие пакеты к каким установленным соединениям относятся, и пропускает их или отбрасывает в соответствии с правилами. Например, если в секции [local] задано условие proto tcp from 192.168.1.1 to anyip out то под такое условие попадают все локальные пакеты, относящиеся к тем соединениям, которые были инициированы с адреса 192.168.1.1, т.е. пакеты, посланные с адреса 192.168.1.1 в адрес удаленных компьютеров, и ответные пакеты на адрес 192.168.1.1. Однако если удаленный компьютер попытается установить соединение с 192.168.1.1, то пакеты, относящиеся к такому соединению, не попадут под заданное условие. Примечание. Для правил фильтрации транзитных и туннелируемых пакетов, задаваемых в секциях [forward] и [tunnel] , нельзя указывать направление установления соединения. Для протокола TCP соединения отслеживаются всегда. Для протокола UDP, который не имеет понятия соединения, также производится попытка отслеживать виртуальное соединение, которое устанавливается в большинстве случаев между приложениями, использующими UDP. Например, если задано условие proto udp from 192.168.1.1 to anyip:53 out то после того, как компьютер с адресом 192.168.1.1 пошлет UDP-пакет на порт 53 удаленного компьютера, считается, что с ним установлено виртуальное соединение. Если затем в течение короткого времени придет ответ от удаленного компьютера на тот же порт, который использовался при посылке первого пакета, то такой ответ также попадет под описанное выше условие, как принадлежащий к установленному виртуальному соединению. Виртуальные соединения считаются разорванными, если ViPNet Coordinator Linux. Руководство администратора | 88 на них нет трафика в течение времени, определенного для данного протокола (см. « Служебные параметры межсетевого экрана » на стр. 95). В тех случаях, когда приложения обмениваются пакетами UDP, используя разные номера портов для отсылки и приема пакетов, виртуальное соединение отследить невозможно. В таких случаях нужно рассматривать лексемы in и out как соответствующие направлению движения пакета. Лексемы proto , from и to должны указываться в условии обязательно. Если какой-либо из этих параметров не важен, нужно указать any (в лексеме proto ) или anyip (в лексемах from и to ). Направление может не указываться, при этом считается, что под условие должны попадать соединения, устанавливаемые в обоих направлениях. Лексемы type и code в условии для протокола ICMP могут не указываться. Примеры полных условий: proto any from anyip to 192.168.201.1:22 in proto tcp,udp from anyip:53 to 192.168.0.0/16,172.16.1.0/24 proto tcp from 10.0.0.1 to (192.168.0.0/16,172.16.1.0/24):(22,25) out proto icmp type 8 code 0 from anyip to anyip Особенности задания условия в правилах фильтрации туннелируемых пакетов Для правил фильтрации туннелируемых пакетов, содержащихся в секции [tunnel] , условие задается с учетом следующих особенностей: В одной из лексем from и to должен быть указан список адресов туннелируемых ресурсов, в другой - список идентификаторов защищенных узлов, взаимодействующих с туннелируемыми ресурсами. Список идентификаторов составляется по тем же правилам, что и список адресов, например: 0x10e10000/16:(22,25) . Для указания всех идентификаторов используется ключевое слово anyid Вместо ключевых слов anyid и anyip можно использовать слово any (при этом можно указать порты). Если в одной из лексем from или to указано ключевое слово any , то в другой лексеме также должно быть указано слово any , иначе условие считается ошибочным. Такая запись заменяет собой 2 правила: первое правило, в котором в лексеме from указано слово anyip , а в лексеме to указано слово anyid , и второе правило, в котором в лексеме from указано слово anyid , а в лексеме to указано слово anyip ViPNet Coordinator Linux. Руководство администратора | 89 Действие Действие описывает, что нужно сделать с пакетом, параметры которого удовлетворяют условию. Действие задается одной из двух лексем: pass – указывает, что пакет должен быть пропущен. drop – указывает, что пакет должен быть отброшен (блокирован). Расписание Расписание позволяет задать временные интервалы, в течение которых действует правило. При отсутствии расписания правило действует постоянно. Расписание описывается одной лексемой time , параметр которой состоит из нескольких частей, разделенных запятыми: time <режим расписания>,<тип расписания>,<интервал времени> Режим расписания может принимать одно из следующих значений: on – означает, что правило действует в те интервалы времени, которые указаны в расписании, и не действует в остальное время; off – означает, что правило не действует в указанные интервалы времени и действует в остальное время (в противоположность значению on ); disable – означает, что расписание отключается и правило действует всегда, как если бы расписания не было. Тип расписания может принимать одно из следующих значений: daily – означает расписание на каждый день. Для этого типа расписания указывается один интервал времени, в течение которого правило будет включаться (если режим расписания on ) или выключаться (если режим расписания off ). weekly – означает расписание на неделю. Этот тип расписания позволяет задать для каждого дня недели свой интервал времени, в течение которого правило будет включаться (если режим расписания on ) или выключаться (если режим расписания off ). Такой тип расписания позволяет учитывать, например, другой режим работы для выходных дней. Интервал времени в зависимости от типа расписания задается следующим образом: Если тип расписания daily , то задается один интервал в виде hh:mm-HH:MM , где hh:mm – часы и минуты начала интервала, HH:MM – часы и минуты конца интервала. ViPNet Coordinator Linux. Руководство администратора | 90 Время начала интервала включается в период действия расписания, а время конца – нет. Минуты могут принимать значения от 0 до 59, часы – от 0 до 24. Если число часов равно 24, то число минут может быть равно только 00, такое время означает 0 часов следующего дня. Если тип расписания weekly , то можно задать несколько интервалов времени. Для каждого дня недели указываются первые три буквы его английского названия (mon, tue, wed, thu, fri, sat, sun), затем знак равенства и временной интервал для данного дня недели в том же формате, что и для ежедневного расписания, например: mon=9:00- 18:00 . Расписания на разные дни недели разделяются запятыми, например: mon=9:00- 18:00,tue=10:00-18:00 . Кроме того, можно задать один и тот же интервал для нескольких дней недели, в этом случае дни недели перечисляются до знака равенства через двоеточие, например: sat:sun=00:00-24:00 В расписании можно указывать не все дни недели. В этом случае в те дни, для которых расписание не задано, правило будет вести себя так же, как и в указанные дни за пределами заданных интервалов времени (т.е. выключаться, если режим расписания on , и включаться, если режим расписания off ). Примеры полных расписаний: time off,daily,9:00-18:00 time on,weekly,mon:tue:wed:thu:fri=9:00-18:00,sat:sun=00:00-24:00 Правила фильтрации открытых IP-пакетов по умолчанию Файл firewall.conf создается автоматически в процессе инсталляции ПО ViPNet Coordinator Linux или при его ручном конфигурировании (см. Ручное конфигурирование ViPNet Coordinator Linux (на стр. 44)). Созданный файл содержит обязательные секции с заданными в них правилами по умолчанию. Некоторые из этих правил отключены, причем вместо лексемы disable для их отключения используется комментирование соответствующих строк. Для включения какого-либо правила достаточно удалить из строки знак комментария. В процессе работы администратор может изменять набор правил, однако всегда можно вернуться к правилам по умолчанию в любой из обязательных секций. Для этого надо целиком удалить секцию из файла firewall.conf . При следующем запуске управляющего демона отсутствующая секция будет автоматически добавлена в файл firewall.conf с правилами по умолчанию. В секции [local] по умолчанию присутствуют следующие правила: rule= proto udp from anyip:67-68 to anyip:67-68 pass # rule= proto udp from anyip:138 to anyip:138 pass ViPNet Coordinator Linux. Руководство администратора | 91 Первое правило разрешает пропуск пакетов службы DHCP (порты 67 и 68), предназначенной для динамического выделения компьютерам IP-адресов. Это правило включено (действует). Второе правило разрешает пропуск пакетов службы датаграмм NetBIOS (netbios-dgm, порт 138), предназначенной для передачи данных между компьютерами при использовании в локальной сети NetBIOS-имен. Это правило отключено (закомментировано). В секции [broadcast] по умолчанию присутствуют следующие правила: rule= proto udp from anyip:67-68 to anyip:67-68 pass # rule= proto udp from anyip:137 to anyip:137 pass # rule= proto udp from anyip:138 to anyip:138 pass Первое и третье правила те же, что и в секции [local] . Второе правило разрешает пропуск пакетов службы имен NetBIOS (netbios-ns, порт 137), предназначенной для регистрации и проверки NetBIOS-имен компьютеров в локальной сети. Это правило отключено (закомментировано). В секции [tunnel] по умолчанию присутствует следующее правило: rule= proto any from any to any pass Это правило включено и разрешает трафик между всеми туннелируемыми ресурсами и всеми защищенными узлами, с которыми связан данный узел (Координатор). Такая запись эквивалентна заданию 2-х следующих правил для туннелируемых ресурсов: rule= proto any from anyid to anyip pass rule= proto any from anyip to anyid pass Настройка правил трансляции адресов ViPNet Coordinator Linux поддерживает трансляцию адресов, то есть изменение адреса отправителя или получателя пакета по определенным алгоритмам. Поддерживаются два типа трансляции адресов: Трансляция адреса отправителя, называемая также маскарадингом или динамической трансляцией. Такая трансляция адресов используется, если нужно организовать выход в Интернет пользователей, имеющих частные адреса. В этом случае при проходе через Координатор пакетов от частных отправителей в них заменяется адрес отправителя на внешний (реальный) адрес Координатора. При приходе ответных пакетов в них подменяется адрес получателя обратно на частный адрес, и в таком виде пакет доставляется в частную сеть. ViPNet Coordinator Linux. Руководство администратора | 92 Трансляция адреса получателя, называемая также форвардингом портов или статической трансляцией, используется, когда нужно обеспечить доступ из Интернета к компьютеру, находящемуся в частной сети. В этом случае пакеты, приходящие из Интернета на определенный порт внешнего адреса Координатора, перенаправляются на указанный адрес внутренней сети путем подмены в них адреса получателя, а у ответных пакетов от компьютера внутренней сети подменяется адрес отправителя. Правила трансляции адресов задаются в секции [nat] файла firewall.conf |