В этой работе мы будем иметь дело главным образом с проблемами конфигурации и с установкой. Администрирование охватывает более широкий круг действий. После установки сервиса Вы должны поддерживать его в рабочем состоянии. Для большинства услуг будет необходимо только небольшое обслуживание, в то время как некоторые (почта и новости) требуют, чтобы Вы выполнили стандартные задачи по поддержанию своей системы в современном виде. Мы обсудим эти задачи в следующих главах.
Абсолютный минимум поддержки сводится к проверке файлов протоколов системы и программ в поисках сообщений об ошибках и необычных событиях. Часто это удобно делать с помощью скриптов, периодически запускаемых из cron. Дистрибутивы некоторых пакетов, например, inn или C-News имеют такие скрипты в готовом виде.
Вывод любой из задач cron должен быть отправлен по почте администратору. По умолчанию многие прикладные программы шлют отчеты об ошибках, статистику использования или резюме журнала пользователю root. Это имеет смысл только, если Вы часто работаете как root. Лучше переназначить почту root на Ваш логин, устанавливая псевдоним почты как описано в главе 19 или главе 18.
Как бы тщательно не был настроен сайт, что-то непременно произойдет. Следовательно, поддержание системы также означает поддержку адреса для жалоб пользователей. Обычно люди ожидают, что администратор системы может быть достигнут по e-mail по крайней мере как root, но имеются также другие адреса, которые обычно используются, чтобы достать (во всех смыслах) человека, ответственного за специфический аспект системы. Например, жалобы относительно конфигурации почты будут обычно адресованы postmaster, а проблемы с системой новостей могут быть сообщены newsmaster или usenet. Почта на hostmaster должна быть переназначена человеку, отвечающему за базисные сетевые услуги компьютера и обслуживание имен DNS, если Вы выполняете сервер имен.
Другой очень важный аспект администрирования, это защита от хакеров. Небрежно управляемые системы предлагают злонамеренным людям много адресатов. Атаки могут быть самыми разными: от подбора паролей до Ethernet snooping. Я упомяну некоторые специфические проблемы при обсуждении контекста, в котором они могут происходить, и некоторую общую обороноспособность против них.
Этот раздел содержит несколько примеров и базисные методы для защиты. Конечно, охваченные темы не могут показать все проблемы защиты: они просто служат для иллюстрации проблем, которые могут возникать. Следовательно, чтение хорошей книги по защите насущная необходимость.
Защита системы начинается с хорошего администрирования системы. Это включает проверку монопольного использования и разрешений всех жизненных файлов и каталогов и текущего контроля использования привилегированных логинов. Программа COPS, например, проверит файловую систему и общие файлы конфигурации в поисках необычных разрешений или других аномалий. Также мудро использовать пакет, который предписывает некоторые правила паролей пользователей, которые делают их трудными для подбора. Пакет shadow password suite, например, требует, чтобы пароль имел по крайней мере пять символов и содержал символы верхнего и нижнего регистров и неалфавитные символы.
При создании сервиса, доступного для сети, удостоверьтесь, что Вы дали ему наименьшее количество привилегий. То есть, сервис не должен делать ничего лишнего. Под "лишним" здесь понимается все, что не относится к его работе. Более того, он не должен иметь права делать это. Например, Вы должны объявлять программы как setuid к root или другому привилегированному логину только тогда, когда это необходимо. Также если Вы хотите использовать сервис только для очень ограниченной прикладной программы, пожалуйста, конфигурируйте его так ограничено, как эта прикладная программа позволяет. Например, если Вы хотите позволить компьютерам без диска загружаться с Вашей машины, Вы должны обеспечить Trivial File Transfer Protocol (TFTP) так, чтобы они могли загружать базисные файлы конфигурации из каталога /boot. Однако, когда TFTP используется без ограничителей, протокол позволяет пользователям где-нибудь в мире загружать любой открытый всем на чтение файл из Вашей системы. Если это не то, что Вы хотите, ограничьте TFTP доступом к каталогу /boot.
Вы могли бы также ограничивать некоторые услуги пользователями с определенных компьютеров, скажем, из Вашей локальной сети. В главе 12, мы обсудим tcpd, который делает это для ряда сетевых прикладных программ. Более сложные методы ограничения доступа к компьютерам или сервисам будут исследоваться позже в главе 9.
Другая важная задача: избегать "опасного" программного обеспечения. Конечно, любое программное обеспечение, которое Вы используете, может быть опасно, потому что программное обеспечение может иметь ошибки, которые умные люди могли бы эксплуатировать, чтобы получить доступ к Вашей системе. Такие вещи случаются, и нет никакой полной защиты против этого. Эта проблема одинаково воздействует на свободные и коммерческие программы. Однако, программы, которые требуют специальных привилегий, всегда более опасны, чем другие потому, что в них любая лазейка может иметь куда более разрушительные последствия. Если Вы устанавливаете setui-программу для сетевых целей, надо быть вдвойне осторожными и проверить документацию, чтобы быть уверенными в том, что Вы не создали нарушение защиты случайно.
Еще одним источником головной боли являются программы, которые допускают вход в систему или выполнение команды с ограниченной авторизацией. Команды rlogin, rsh и rexec очень полезные, но их проверка сводится к авторизации стороны вызова. Авторизация основана на доверии к имени вызывающего компьютера, полученного из сервера имен (мы будем говорить о нем позже), который может быть фальшивым. Сегодня должно стать обычной задачей полностью отключить r-команды и заменить их на набор инструментальных средств ssh. Эти инструментальные средства используют намного более надежный опознавательный метод и обеспечивают также другие услуги, типа шифрования и сжатия.
Вы никогда не можете исключать то, что Ваши предосторожности пропали даром, независимо от того, насколько предусмотрительны Вы были. Вы должны удостовериться, что обнаруживаете хакеров своевременно. Проверка журналов системы хорошая отправная точка, но хакер бывает достаточно умен, чтобы ожидать это действие и удалит любые очевидные следы. Однако, имеются инструментальные средства подобные tripwire (авторы Gene Kim и Gene Spafford), которые позволяют Вам проверять жизненно важные системные файлы, чтобы видеть, было ли их содержание или разрешения изменены. Программа tripwire вычисляет различные контрольные суммы этих файлов и сохраняет их в базе данных. В дальнейшем контрольные суммы повторно вычисляются и сравниваются с сохраненными, чтобы обнаружить любые модификации.
Назад | Глобальное оглавление | Вперед |
Сеть в Linux | Локальное оглавление | Настройка сетей TCP/IP |