Раздел: Документация
0 ... 75 76 77 78 79 80 81 ... 125 { Перезапустите Inetd после редактирования его файла конфигурации! Поскольку демон inetd считывает информацию из файла конфигурации только при старте, необходимо после редактирования файла/etc/inetd. conf перезапустить демон (или перезагрузить систему). Как видно из этого примера, поле Server в файле /etc/inetd. conf теперьсо-держит имя программы netacl, а не сервера FTP. Имя файла сервера передается программе в качестве параметра. Но для того, чтобы netacl была в состоянии запустить сервер, нужно выполнить еще один шаг. Необходимо внести в файл /usr/ local/etc/netper-table запись для сервера FTP и определить, разрешено ли выполнившему запрос узлу воспользоваться службой, и если да, то какая программа должна быть запущена в качестве сервера и под каким идентификатором пользователя. На рис. 14.2 показано, что это приводит к удлинению обычного процесса запуска сетевой службы на несколько шагов. Файл конфигурации FWTK Запущенная демоном inetd программа netacl не сразу запускает программу сервера, имя файла которой передается ей в качестве параметра. Предварительно она пытается найти информацию об этой службе в таблице правил, определенных в файле /usr/local/etc/netperm-table, который является основным файлом конфигурации для всех proxy-серверов, входящих в состав пакета FWTK. Как только программа netacl (или любой другой proxy-сервер из пакета) запускается на выполнение, она считывает информацию о своих настройках из этого файла и сохраняет ее в памяти. Таким образом, если программа поменяет каталог, например, с помощью команды chroot, она по-прежнему будет располагать данной информацией. Этот метод не позволяет воспользоваться ошибкой в программе сервера для получения несанкционированного доступа к файлу netperm-table. Каждая строка текста в файле netperm-table называется правилом (rule). Любое правило применимо к одной или нескольким программам пакета. Каждое правило состоит из двух основных частей: О ключевого слова - имен(и) программ(ы), к которым относится правило. Часть ключевого слова совпадает с именем службы в файле /etc/sevices; О атрибута valueslist, определяющего правило для программы, с которой оно связано. Атрибут содержит параметры запуска программы. Какую длину может иметь правило? Максимальная длина правила зависит от используемой операционной системы - оно должно умещаться на одной строке. Не существует символа «переноса строки», который позволял бы записывать правило в несколько строк. В большинстве систем максимальный размер строки ограничен длиной в 1024 байт. Демон inetd получает запрос к сетевой службе от клиента. Соответствует ли номер порта записи в файле /etc/services? Нет-»Ч Отказ в доступе к службе Да По имени службы в файле /etc/services искать ее в файле /etc/inetd.conf. Есть ли соответствующая запись? ЬНет- Да Поскольку в файле /etc/inetd.conf указано, что при вызове этой службы используется программа netacl, запустить netacl, передав ей имя службы в качестве параметра netacl проверяет файл /usr/local/etc/netperm -table. Разрешен ли доступ к этой службе с данного узла? Нет* netacl регистрирует неудачную попытку доступа и завершает работу Да netacl проверяет все правила из файла netperm-table, применимые к данной службе. На основе полученной информации netacl переходит в отдельный каталог и запускает соответствующую программу для обслуживания запроса netacl регистрирует успешную попытку доступа и завершает работу Рис. 14.2. Демон inetd вызывает для обслуживания запроса программу netacl В файл конфигурации можно вставлять комментарии, которые помечаются символом # в начале строки. Программа читает файл сверху вниз и не меняет порядок следования правил. Это означает, что если создать два правила для одного случая, то сработает только первое из них. При внесении изменений в этот файл внимательно читайте все строки, чтобы не создать случайно дублирующиеся правила. Речь здесь идет не просто о двух правилах, применимых к одному proxy-серверу. В действительности довольно часто требуется создавать несколько правил для одного proxy-сервера. Одно из них будет определять, например, какие узлы получат доступ к серверу, а другое - задавать каталог, в который программа перейдет после своего вызова. Пример дублирующихся правил - когда для указания каталога созданы два разных правила. В этом случае будет работать только первое из них. Еще один важный момент, о котором нужно помнить: если в атрибуте правила задано имя, то IP-адрес узла проверяться не будет, и наоборот. Сравните два следующих примера: netacl-in.ftpd:permit-hosts yoko.twoinc.com -exec /usr/etc/in.ftpd И netacl-in.ftpd:permit-hosts 140.176.177.69 -exec /usr/etc/in.ftpd В первом случае правило содержит имя узла, поэтому программа проверит только имена выполняющих запрос узлов. Во втором случае правило включает в себя только адрес, так что проверяться будет IP-адрес узла. В общем случае всегда следует пользоваться вторым форматом. Почему? Имя узла легко сфальсифицировать, например изменив таблицы DNS, и обойти таким образом правило первого типа. В правила удобно вводить подстановочные символы (wildcards), тогда эти правила становятся применимыми сразу к нескольким узлам. Так, не обязательно создавать большое количество правил для всех узлов в сети, которым вы хотите разрешить (или запретить) доступ к определенным службам, достаточно обратиться к такому формату: netacl-in.ftpd:permit-hosts 140.176.177.* -exec /usr/etc/in.ftpd В этом случае правило разрешит всем узлам в сети 140.176.177.0 работать с сервером FTP. В предыдущих примерах вместе с атрибутом hosts встречался модификатор permit-. В зависимости от программы, к которой относится правило, применяются различные атрибуты, и с некоторыми из них можно использовать модификаторы permit- и deny-. В документации, поставляемой вместе с пакетом, описаны атрибуты, допустимые для каждого приложения. В приведенных выше примерах присутствовал атрибут hosts. К proxy-серверу ftp-gw применим также атрибут denial-msg файл, задающий имя текстового файла с сообщением, которое увидит пользователь при отказе в доступе. Что такое неизвестные узлы? Если обратное преобразование IP-адреса в имя узла завершается неудачей, то возвращается строка unknown (неизвестный). Слово unknown иногда употребляется в правилах вместо имени или IP-адреса. Например, чтобы запретить доступ к proxy-серверу всем неизвестным узлам, следует записать deny- unknown. Кроме того, некоторые программы позволяют задавать параметры, начинающиеся с символа«-». В следующем примере демонстрируется применение параметра -log в правиле для proxy-сервера ftp-gw (входящего в пакет FWTK): ftp-gw: hosts 140.176.177.* -log {retr stor} 0 ... 75 76 77 78 79 80 81 ... 125
|