[обзор файлов конфигурации сети, размещенных в каталоге /etc AltLinux]материал подготовил: А. В. Кириллов 17.11.2005
Конфигурация многих параметров UNIX-сервера попросту невозможна без знания особенностей и ручного редактирования текстовых файлов, которые располагаются в каталоге /etc/. В этой статье будут даны характеристики некоторой части файлов, которые располагаются в этом каталоге и имеют непосредственное отношение к работоспособности ваших сетевых сервисов. Эти знания помогут вам не только более эффективно управлять вашим сервером, но и, возможно, предотвратить утечки данных, а также усилить общий уровень безопасности вашей UNIX-машины. Статья ориентирована на российский дистрибутив «debian-подобной» операционной системы AltLinux. Но, несмотря на ориентированность статьи на конкретный дистрибутив, названия большинства конфигурационных файлов в точности совпадают с принятыми в других операционных системах.
Вначале я хотел бы сделать небольшое отступление по поводу того, каким образом редактировать конфигурационные файлы. В первую очередь следует учесть тот факт, что наиболее удобный из всевозможных редакторов — это не самый лучший вариант для выбора. В первую очередь редактор должен работать в текстовой консоли. Это требование для работы с удаленным терминалом SSH, которое, кстати говоря, очень сильно упростит вам жизнь в случае возможного краха системы. Кроме того, консольный редактор (как следует также из его названия) работает и на физической консоли, что позволяет на *nix-десктопе получить доступ к нему простым переключением графического терминала в консольный. Существует достаточное количество редакторов, удовлетворяющих требованиям работы в текстовом терминале. Одним из самых распространенных на *nix-платформах является VI или его более новая версия VIM (VI improved — улучшенный VI). Конечно, он имеет на первый взгляд своеобразную систему инструкций. Но владение этим редактором позволит вам быстро решать задачи в критических ситуациях, поэтому его следует изучить хотя бы поверхностно. большую часть информации по этому редактору вы можете почерпнуть в том числе и из вывода команды man vi.
Чем редактировать
итак, какого рода конфигурационные файлы находятся в каталоге ./etc/? В первую очередь следует упомянуть конфигурационные файлы сетевых устройств и механизмов, наверное, потому, что UNIX — это сетевая операционная система, ориентированная на непрерывную и бесперебойную работу, например в качестве интернет-сервера. AltLinux в этом плане не является каким-либо исключением. большинство конфигурационных файлов этой системы имеют то же самое назначение, что и файлы более «взрослых» коммерческих UNIX-систем.
/etc/HOSTNAME — файл, содержащий всего одну строку — имя локального компьютера. В случае подключения этого компьютера к интернету по статическому адресу желательно указывать действительное имя, выданное вашим провайдером и прописанное в соответствующих DNS-серверах. Обратите внимание на то, что название файлов написано прописными латинскими символами — на UNIX-совместимых компьютерах регистр символов имеет значение, в отличие от Windows-десктопов.
/etc/HOSTNAME
/etc/hosts — файл, позволяющий указать имена, относящиеся к IP-адресам компьютеров, включенных в локальную сеть. Этот файл является прообразом современной системы DNS, поскольку в самом простом случае позволяет организовать простейшую локальную систему DNS — список имен компьютеров, привязанных к IP-адресам. Формат этого файла следующий: каждая строка представляет собой последовательность из IP-адреса компьютера, его полного имени с доменным именем и краткого имени. В этом файле у вас должна храниться как минимум одна строка, относящаяся к локальному компьютеру: 127.0.0.1 localhost.localdomain localhost. Таким образом, указывается локальный адрес, используемый для работы множества сетевых средств. В том случае если явно не указать эту строку, могут возникнуть проблемы при указании имени localhost в качестве адреса для какого-либо сервиса.
/etc/host.conf — файл конфигурации системы преобразования доменных имен в сети интернет. Формат файла следующий: в каждой строке находится одно ключевое слово, после которого следует параметр настройки. используются следующие ключевые слова:
order — указывает метод, с помощью которого будет осуществляться поиск узла в сети. В качестве параметра используется последовательность имен методов, перечисленных через запятую. Могут использоваться имена bind, hosts и nis. Если у вас нет настроенного локального сервера DNS, то есть смысл использовать в качестве первой строки этого файла order hosts,bind. Эта запись укажет системной библиотеке, преобразующей имена в IP-адреса, на необходимость брать адреса в первую очередь из уже упомянутого файла /etc/hosts. Следующее после запятой ключевое слово bind указывает на необходимость дальнейшего поиска имени с помощью локального DNS-сервера (по умолчанию используется программа BIND, поэтому и название параметра соответствующее);
trim — указывает на необходимость отсекать имена, указанные в качестве параметров (можно указывать несколько имен доменов через запятую), которые преобразуются в имена с помощью DNS. Таким образом, можно пропустить локальный домен вроде .localdomain в интернет, сохранив имена компьютеров, как они заданы в локальных /etc/HOSTNAME;
multi — параметр может иметь значение on или off. В зависимости от него системная библиотека преобразования имен будет читать из файла /etc/hosts либо только первую строку, соответствующую имени узла, либо все соответствующие. Поскольку для загруженных серверов при этом возможно значительное уменьшение производительности, то стоит указывать этот параметр в off (значение по умолчанию);
spoofalert (on или off) — параметр указывает на необходимость (когда установлен в on) записывать в журнал syslog (системный лог) сообщения об ошибках, возникших при работе преобразователя имен. Крайне полезно включать этот параметр для увеличения общей безопасности системы и анализировать в дальнейшем файлы системного лога на присутствие ошибок;
spoof — если этот параметр установить в warn, то в системный лог будут записываться сообщения о попытках подделки адресов и генерироваться ошибка; если указать nowarn, то поддельные адреса будут блокироваться, но предупреждения не будут записываться; при установке параметра в off поддельные адреса будут разрешены и никаких сообщений об ошибках не будет записано. Имеет смысл указывать значение этого параметра в warn и в дальнейшем регулярно анализировать системный лог;
reorder (on или off) — если указано значение on, то вызов системной функции получения адреса по имени (gethostbyname) будет выдавать в первую очередь локальные адреса хостов.
Следует учесть, что значения этих параметров могут быть перезаписаны на время текущей сессии работы с компьютером с помощью установки специальных переменных окружения.
/etc/host.conf
Для ограничения и предоставления доступа к сетевым сервисам локального компьютера используются файлы под названием /etc/hosts.allow и /hosts/deny. использован
ие этих файлов позволяет заблокировать нежелательный трафик от узлов, которые производят, например, попытки сетевых атак на ваш сервер. Следует также учесть, что при успешной подделке адреса сетевых пакетов в эти файлы могут быть занесены пострадавшие от атак сетевых взломщиков хосты. Формат файлов можно уточнить с помощью команды info hosts_access. В простейшем случае для блокировки всего трафика с определенного сетевого адреса в файл /etc/hosts.deny заносятся адреса нежелательных хостов — по одному в каждой строке. Перед каждым адресом следует указать строку ALL: — это будет означать, что для указанного в текущей строке адреса абсолютно все локальные сетевые сервисы будут недоступны.
В файле /etc/protocols находится список служб, отвечающих стандартно на тех или иных портах. именно здесь указывается принадлежность сокращения ssh к 22-му порту, а ftp — к 21-му. Таким образом, вы можете указать и свои уникальные имена служб для локальных сетевых задач. Само собой, не рекомендуется редактировать этот файл без крайней на то необходимости.
/etc/protocols
Файл /etc/resolv.conf отвечает за порядок опроса серверов DNS. Каждая строка файла состоит из ключевого слова и значения:
nameserverip_адрес — если у вас не настроен локальный DNS-сервер, именно IP-адреса DNS-серверов провайдера, занесенные как значения этого параметра, будут производить преобразование имен в IP-адреса; если в этом файле не указано ни одного адреса, то сетевые приложения, использующие подключения к интернету (например, ваш веб-браузер), будут отказываться работать по именам сервисов. Как правило, указываются несколько параметров типа nameserver. Максимальное количество таких параметров три;
domainимя — доменное имя текущего компьютера;
searchсписок — список доменов, в которых будет осуществляться поиск компьютера с указанным именем. В данный момент количество перечисляемых в параметре имен доменов (через запятую) не может превышать шести;
sortlistадрес/маска — в этом параметре указывается порядок сортировки адресов, которые будут возвращаться системной функцией, преобразующей имена компьютеров в IP-адреса.
Кроме перечисленных параметров, в файле можно также указывать параметры, напрямую передаваемые преобразователю имен ядра операционной системы с помощью параметра options. Следует также учесть, что ключевые слова domain и search взаимно исключают друг друга — при обработке сетевых запросов принимается во внимание последнее указанное из них.
/etc/resolv.conf
Файл /etc/securetty — список терминалов, с которых пользователь root может подключаться к системе. Есть смысл ограничить этот список как можно меньшим числом терминалов. Например, можно указать, что суперпользователь может зайти только с первого терминала (переключение по Ctrl+Alt+F1 из графической оболочки или просто Alt+F1 из режима локального терминала), оставив в этом файле одну строку tty1.
/etc/securetty
Файл /etc/xinetd.conf является основным конфигурационным файлом новой версии демона «суперсервера», который отвечает за обработку всех сетевых запросов к локальному компьютеру. Формат этого файла более сложный, чем у перечисленных выше файлов. Он позволяет включать другие конфигурационные файлы, которые находятся в одной или нескольких директориях. Более подробно ознакомиться с его форматом вы можете, изучив вывод команды info xinetd.conf.
/etc/xinetd.conf
Конечно, в современной UNIX-системе, какой без сомнения является и AltLinux, есть гораздо большее количество конфигурационных файлов, чем перечислено в этой статье. Но даже знание назначения некоторых из них позволит вам значительно сэкономить время поиска элементарных сетевых неисправностей на вашем сервере.