Решение задач vipnet linux. vipnet_linux решение задач. Руководство администратора
Скачать 1.91 Mb.
|
Синтаксис правил трансляции адресов Правила трансляции адресов имеют синтаксис, подобный синтаксису правил фильтрации (см. « Настройка правил фильтрации открытых IP-пакетов » на стр. 82). Каждое правило описывается параметром rule , его значение состоит из следующих компонентов: rule= <управляющий компонент> <действие> <условие> Управляющий компонент должен указываться в самом начале правила, остальные компоненты правила могут следовать в любом порядке. Примечание. В отличие от правил фильтрации, в правилах трансляции адресов отсутствует расписание. Управляющий компонент полностью идентичен управляющему компоненту, описанному для правил фильтрации (см. « Настройка правил фильтрации открытых IP- пакетов » на стр. 82). Действие описывается лексемой change с параметром, указывающим, что именно нужно подменять и на что именно. В зависимости от того, какой тип трансляции адресов нужно осуществлять, действие может принимать следующий вид: Для трансляции адреса отправителя: change src=<адрес>:dynamic где <адрес> – внешний (реальный) адрес Координатора, на который будет заменяться адрес отправителя пакетов. Например: change src=194.87.0.8:dynamic В качестве внешнего адреса Координатора может быть указан как основной IP-адрес внешнего интерфейса, так и дополнительный адрес (IP-алиас). Для трансляции адреса получателя: change dst=<адрес>:<порт> где <адрес> и <порт> – адрес и порт компьютера в локальной сети, на который будет производиться перенаправление пакетов. Например: change dst=192.168.201.1:8080 ViPNet Coordinator Linux. Руководство администратора | 93 Условие для правил трансляции адресов имеет такой же синтаксис, как и для правил фильтрации, но с некоторыми особенностями: Для трансляции адреса отправителя (динамическая трансляция адресов) в лексеме proto должно быть указано any , а в лексеме to должно быть указано anyip Для трансляции адреса отправителя лексема from указывает набор адресов внутренней сети, которые будут подвергаться трансляции, при этом в лексеме from можно указывать только адреса, диапазоны адресов и маски, а также их списки. Указывать порты или диапазоны портов нельзя. Для трансляции адреса получателя (статическая трансляция адресов) в лексеме from должно быть указано anyip , а в лексеме to должны быть указаны внешний адрес и порт Координатора, на который будут приходить пакеты, подлежащие перенаправлению. В этом случае в лексеме to можно указывать только адрес или список адресов, а также порт или список портов. Указание диапазонов и масок адресов, а также диапазонов портов запрещено. В качестве адреса Координатора может быть указан как основной IP-адрес, так и дополнительный адрес. Пример трансляции дополнительных адресов приведен в Приложении (см. « Пример использования дополнительных IP-адресов на интерфейсе » на стр. 192). Примеры полных правил трансляции адресов: Для трансляции адреса отправителя: rule= num 10 change src=194.87.0.8:dynamic proto any from 192.168.201.0/24 to anyip Для трансляции адреса получателя: rule= num 100 change dst=10.0.0.7:8080 proto tcp from anyip to 194.87.0.8:80 Взаимодействие правил фильтрации и правил трансляции Пакеты, подвергающиеся преобразованию адресов, проходят также обработку правилами фильтрации, указанными в секциях [local] и [forward] . При установлении соответствия между параметрами пакета, прошедшего через трансляцию адресов, и условием правила фильтрации применяется следующий принцип: адрес отправителя берется из пакета до трансляции, а адрес получателя – после трансляции. Именно эти адреса проверяются на соответствие условиям правил. ViPNet Coordinator Linux. Руководство администратора | 94 Например, пусть существует Координатор с внутренней сетью 10.0.1.0/24 и внешним адресом 194.87.0.8. Необходимо обеспечить доступ пользователей внутренней сети в Интернет. Для этого в секции [nat] должно быть задано следующее правило: rule= num 10 change src=194.87.0.8:dynamic proto any from 10.0.1.0/24 to anyip Необходимо также задать разрешающее правило в секции [forward] : rule= num 100 pass proto any from 10.0.1.0/24 to anyip Если при этом необходимо запретить внутренним пользователям устанавливать TCP- соединения с внешним адресом 194.226.82.50, то для этого в секцию [forward] нужно добавить следующее правило: rule= num 90 drop proto tcp from 10.0.1.0/24 to 194.226.82.50 Как видно из примера, в лексеме from указан адрес локального отправителя пакета до трансляции адресов, а в лексеме to – адрес удаленного получателя после трансляции адресов (в данном случае он не изменяется в процессе трансляции). Тот же принцип применяется при трансляции адреса получателя. Пусть необходимо перенаправлять все пакеты, приходящие на порт 80 внешнего адреса Координатора, в локальную сеть на адрес 10.0.1.1 и порт 8080. Для этого в секции [nat] должно быть задано следующее правило: rule= num 10 change dst=10.0.1.1:8080 proto tcp from anyip to 194.87.0.8:80 Необходимо также задать следующее разрешающее правило в секции [forward] : rule= num 100 pass proto tcp from anyip to 10.0.1.1:8080 Если при этом необходимо запретить входящие соединения на данный компьютер внутренней сети с внешнего адреса 194.226.82.50, то для этого в секцию [forward] нужно добавить следующее правило: rule= num 90 drop proto tcp from 194.226.82.50 to 10.0.1.1:8080 Особенности трансляции адресов в соединениях FTP Соединения, устанавливаемые по протоколу FTP, обрабатываются ViPNet Coordinator Linux специальным образом. Это связано с тем, что данный протокол в процессе работы создает дополнительные соединения на динамически выделяемые порты, что всегда создавало проблемы для сетевых экранов. ViPNet Coordinator Linux имеет специальный модуль прикладной обработки, который позволяет ему анализировать управляющее соединение FTP и отслеживать динамические номера портов, используемые для дополнительных соединений. При этом, если разрешено установление управляющего соединения, то создаваемые впоследствии дополнительные соединения также ViPNet Coordinator Linux. Руководство администратора | 95 разрешаются автоматически без дополнительных настроек. Это происходит при работе FTP как в активном режиме, так и в пассивном. Такая обработка протокола FTP реализована только для соединений, использующих порт приемника с номером 21, который выделен для FTP-серверов. Если FTP-сервер использует нестандартный порт, то номера портов дополнительных соединений отслеживаться не будут, и без дополнительных настроек такие соединения не будут разрешены. Кроме того, отслеживание динамических номеров портов работает только для транзитных пакетов. Если FTP-сервер установлен на том же компьютере, где работает ViPNet Coordinator Linux, и в правилах фильтрации разрешены только соединения на порт 21, то клиенты смогут работать с таким сервером только в активном режиме, если соответствующий адаптер находится в режиме 3, и вообще не смогут, если адаптер находится в режиме 2. Для того, чтобы разрешить работу в активном режиме FTP, когда адаптер находится в режиме 2, нужно разрешить исходящие соединения с локального порта 20. Для того, чтобы обеспечить работу FTP-сервера в пассивном режиме, нужно разрешить входящие соединения для всех локальных портов выше 1024. Существуют FTP-серверы (например, ProFTPd), которые позволяют ограничить диапазон динамических портов, используемых сервером, в этом случае можно разрешить входящие соединения только на этот диапазон портов. Вообще же установка дополнительных сервисов, в том числе FTP, на компьютер с ViPNet Coordinator Linux создает потенциальные проблемы безопасности, и использовать такую схему не рекомендуется. Служебные параметры межсетевого экрана Параметры межсетевого экрана, не являющиеся правилами обработки открытых IP- пакетов, задаются в секции [settings] файла firewall.conf . Синтаксис этой секции такой же, как синтаксис файлов iplir.conf и iplir.conf-<интерфейс> (см. « Общие принципы настройки » на стр. 54). При создании файла firewall.conf секция [settings] не содержит параметров, при этом используются значения по умолчанию, приведенные ниже. Секция [settings] содержит следующие параметры: max-connections – максимальное количество соединений. Данный параметр ограничивает максимальное количество одновременных соединений исходя из имеющегося объема памяти. Например, если имеется 128Mb памяти, то межсетевой экран может поддерживать порядка 30000 одновременных соединений. Значение по умолчанию 30000 dynamic-ports – диапазон портов, которые используются для динамической трансляции адресов. Значение по умолчанию 60000-65000 ViPNet Coordinator Linux. Руководство администратора | 96 listen-timeout – время ожидания «вспомогательных» соединений (в секундах). Некоторым протоколам во время работы требуется установка дополнительных соединений. Если установлен соответствующий модуль обработки прикладных протоколов, то автоматически создаются правила для вспомогательных соединений. Эти правила удаляются, если в течение времени, заданного в listen-timeout , не было установлено соединение. Значение по умолчанию 3 (секунды). connection-ttl-tcp – время (в секундах), по истечении которого после регистрации последнего пакета, относящегося к данному соединению TCP, оно разрывается по тайм-ауту. Значение по умолчанию 3600 (60 мин). connection-ttl-udp – время (в секундах), по истечении которого после регистрации последнего пакета, относящегося к данному соединению UDP, оно разрывается по тайм-ауту. Значение по умолчанию 300 (5 мин). connection-ttl-ip – время (в секундах), по истечении которого после регистрации последнего пакета, относящегося к данному соединению, оно разрывается по тайм- ауту. По умолчанию этот параметр равен 60 (1 мин). dynamic-timeouts – включение или отключение режима динамических тайм-аутов соединений ( yes/no ). Значение по умолчанию no Режим динамических тайм-аутов используется для противодействия flood-атакам и работает следующим образом: когда количество соединений достигает определенного процента от максимума, то тайм-ауты всех соединений уменьшаются на определенную величину, и эта величина тем больше, чем ближе число соединений к максимуму (но тайм-аут не уменьшается ниже определенного минимума). Когда количество соединений падает до определенного процента от максимального, то тайм-ауты восстанавливаются до нормальной величины. cleanup-interval – периодичность удаления устаревших соединений (с истекшими тайм-аутами). Задается в секундах, значение по умолчанию 5 (секунд). Большие значения приведут к менее аккуратному (по времени) удалению устаревших соединений, а слишком маленькие к лишней нагрузке на процессор. Настройка правил фильтрации и трансляции с помощью апплета SGA Настройку ViPNet Coordinator Linux можно осуществлять не только путем редактирования файлов конфигурации, но также с помощью апплета SGA. Апплет SGA предназначен для мониторинга и управления ViPNet-координатором посредством веб- интерфейса и позволяет, в частности, настроить правила фильтрации открытых IP- пакетов и правила трансляции адресов. Подробное описание работы с апплетом SGA ViPNet Coordinator Linux. Руководство администратора | 97 содержится в документе «Апплет мониторинга и управления ViPNet-координатором. Руководство пользователя». Примечание. Правила фильтрации туннелируемых IP-пакетов нельзя просмотреть и изменить с помощью апплета SGA. Настройка правил фильтрации и трансляции с помощью апплета SGA имеет некоторые особенности, обусловленные тем, что представление правил в интерфейсе апплета отличается от их записи в файле firewall.conf . В файле конфигурации можно указывать комплексные формы записи условий (списки протоколов, IP-адресов и т.д., группировка условий), тогда как в апплете SGA возможны только простые формы представления (единичные протоколы и адреса, диапазоны адресов и т.д.). Если файл firewall.conf содержит сложные правила (в которых указаны сложные условия), то при просмотре правил с помощью апплета SGA каждое сложное правило преобразуется и/или подвергается декомпозиции, т.е. разбивается на несколько простых правил. В случае, когда апплет SGA используется только для просмотра правил, записи в файле firewall.conf не изменяются. Если правила редактируются и затем сохраняются с помощью апплета SGA, то в файле firewall.conf изменяются записи, относящиеся к сложным правилам. Примечание. При редактировании и сохранении правил фильтрации и трансляции с помощью апплета SGA сложные правила разбиваются на несколько простых правил, так что в файле firewall.conf вместо одного сложного правила будут записаны несколько более простых правил. Декомпозиция правил фильтрации открытых IP-пакетов проводится в следующих случаях: в правиле фильтрации указан список протоколов; в правиле фильтрации указан список IP-адресов; в правиле фильтрации указан список портов отправителя и/или список портов получателя; в правиле фильтрации указана маска для IP-адресов. Например, если в файле firewall.conf в секции [local] задано правило rule= num 1 proto any from 10.0.2.0/24 to anyip out pass ViPNet Coordinator Linux. Руководство администратора | 98 то после сохранения правил фильтрации с помощью апплета SGA это правило будет преобразовано следующим образом: rule= num 1 proto any from 10.0.2.0-10.0.2.255 to anyip out pass В данном примере маска подсети, заданная в условии правила, преобразуется в диапазон адресов. Декомпозиция правил трансляции адресов проводится в следующих случаях: в правиле трансляции адреса отправителя (динамическая трансляция адресов) в лексеме from указан список IP-адресов отправителя и/или маски для IP-адресов; в правиле трансляции адреса получателя (статическая трансляция адресов) в лексеме to указан список IP-адресов и/или портов получателя. Например, если в файле firewall.conf в секции [nat] задано правило rule= num 1 proto tcp from anyip to 80.251.135.75:(80,81) change dst=10.0.2.1:8080 то после сохранения правил трансляции с помощью апплета SGA вместо этого правила в файле firewall.conf будут записаны 2 правила: rule= num 1 proto tcp from anyip to 80.251.135.75:80 change dst=10.0.2.1:8080 rule= num 1 proto tcp from anyip to 80.251.135.75:81 change dst=10.0.2.1:8080 В данном примере одно правило, в условии которого указан список из 2-х портов, разбивается на 2 правила, в условиях которых указан только один порт. ViPNet Coordinator Linux. Руководство администратора | 99 Настройка параметров сетевых интерфейсов Параметры настройки сетевых интерфейсов содержатся в файлах iplir.conf- <интерфейс> . Файлы конфигурации для интерфейсов содержат секции, описанные ниже. Секция [mode] Секция [mode] используется для задания режима безопасности драйвера ViPNet на данном интерфейсе. Эта секция содержит следующий параметр: mode – номер режима безопасности на интерфейсе. Может принимать следующие значения: o 1 – блокировать IP-пакеты всех соединений (пропускать только зашифрованные пакеты); o 2 – блокировать все соединения, кроме разрешенных (пропускать зашифрованные пакеты, а также незашифрованные пакеты от адресатов, явно указанных в фильтрах открытой сети); o 3 – пропускать все исходящие соединения, кроме запрещенных (правило бумеранга: в дополнение к режиму 2 пропускать все исходящие пакеты, а также (в течение некоторого времени) входящие пакеты от узлов, соединение с которыми установлено исходящими пакетами); o 4 – пропускать все соединения; o 5 – пропускать IP-пакеты без обработки (отключить драйвер, не расшифровывать зашифрованные пакеты). По умолчанию на всех интерфейсах Координатора установлен режим безопасности 2. Подробное описание режимов безопасности приведено выше (см. « Основные режимы безопасности ПО ViPNet » на стр. 24). ViPNet Coordinator Linux. Руководство администратора | 100 Секция [db] Секция [db] используется для задания параметров журнала трафика. Журнал ведется отдельно для каждого интерфейса и хранится в том же каталоге, где находятся файлы конфигурации, в файле с именем iplir.db-<интерфейс> . Максимальный размер журнала устанавливается пользователем. Записи о пакетах накапливаются в журнале до тех пор, пока не будет достигнут максимальный размер журнала, после чего самые старые записи стираются и на их место записываются новые. Для уменьшения объема журнала и удобства его просмотра одинаковые записи о пакетах, зарегистрированные в течение короткого времени, объединяются в одну запись, и затем при просмотре журнала можно узнать, сколько раз произошло событие, описываемое этой записью. Секция [db] содержит следующие параметры: maxsize – максимальный размер журнала в мегабайтах (1 мегабайт = 1048576 байт). Реальный размер журнала из-за наличия в нем служебного заголовка получается примерно на 1 Кбайт больше. При старте управляющего демона после размера журнала автоматически дописывается слово Mbytes, чтобы облегчить понимание значения этого параметра. При последующем редактировании это слово можно оставить, а можно стереть – оно будет добавлено автоматически. Значение параметра 0 отключает ведение журнала. Если до отключения журнала в нем были записи, то они не удаляются, но просмотреть их нельзя. timediff – интервал времени, в течение которого одинаковые события объединяются в журнале в одну запись. Задается в секундах, значение по умолчанию 60 (секунд). В случае задания нулевого значения объединение событий отключается. Если объединение событий для журнала выключено, то при очень интенсивном трафике не все пакеты могут регистрироваться в журнале. registerall – включение/отключение регистрации всех пакетов, проходящих через данный интерфейс. Может принимать значение on или off , значение по умолчанию off . Если параметр registerall установлен в значение off , то регистрируются только блокированные пакеты, а также события об изменении адресов сетевых узлов. registerbroadcast – включение/отключение регистрации широковещательных пакетов. Может принимать значение on или off , значение по умолчанию off registertcpserverport – включение/отключение регистрации порта клиента при соединении TCP. Может принимать значение on или off , значение по умолчанию off Как правило, порт клиента при TCP-соединении выделяется динамически и никакой полезной информации не несет. Если с какого-либо сетевого ресурса производятся |