Управление доступом к службам

Глава 20. Управление доступом к службам

Поддержка безопасности вашей системы Red Hat Linux чрезвычайно важна, и один из способов её обеспечить — аккуратно управлять доступом к системым службом. Иногда необходимо открыть доступ к некоторым службам вашей системы (например, httpd, если у вас работает веб-сервер). Однако, если вам не нужно предоставлять службу клиентам, следует отключить её, чтобы уменьшить степень воздействия на систему программ, эксплуатирующих возможные ошибки.

Существует несколько различных способов управления доступом к системным службам. Выбирайте подходящий способ, учитывая особенности службы, конфигурацию системы и уровень ваших знаний Linux.

Самый простой способ запретить доступ к службе — отключить её. Запускать и останавливать службы, управляемые xinetd, а также службы в иерархии /etc/rc.d/init.d (также называемые службами SysV) можно с помощью трёх различных приложений:

  • Средство Настройка служб (Services Configuration Tool) — графическое приложение, отображающее описание каждой службы, тип запуска при загрузки системы (для уровней выполнения 3, 4, и 5), и позволяющее запускать, останавливать или перезапускать службы.

  • ntsysv — текстовое приложение, позволяющее определить службы, запускаемые при загрузке системы для каждого уровня выполнения. С помощью этой программы не могут быть запущены, остановлены или перезапущены не-xinetd службы.

  • chkconfig — программа командной строки, позволяющая включать и отключать службы для различных уровней выполнения. С помощью этой утилиты не могут быть запущены, остановлены или перезапущены не-xinetd службы.

Использовать эти средства проще, чем альтернативный способ — редактировать множество ссылок, расположенных в каталогах: /etc/rc.d вручную или изменять файлы настроек xinetd в /etc/xinetd.d.

Другой способ управления доступом к системным службам — использовать iptables для настройки IP-брандмауэра. Если вы новичок в Linux, вам следует понять, что iptables может оказаться для вас не лучшим решением. Настройка iptables может быть непростой задачей, её лучше выполнять опытным системным администраторам Linux.

С другой стороны, преимуществом использования iptables является гибкость. Например, если вам нужны особые правила, разрешающие доступ определённых узлов к определённым службам, вы сможете определить их в iptables. Обратитесь к Справочному руководству по Red Hat Enterprise Linux и Руководству по безопасности Red Hat Enterprise Linux за дополнительной информацией об iptables.

Если же вам нужна утилита для назначения простых правил доступа к вашему домашнему компьютеру и/или вы мало знакомы с Linux, попробуйте средство Настройка уровня безопасности (Security Level Configuration Tool) (system-config-securitylevel), с помощью которого вы можете выбрать уровень безопасности для своей системы, так же, как и в диалоге Настройка брандмауэра (Firewall Configuration) во время установки системы.

За дополнительными сведениями обратитесь к главе 19 Основная настройка брандмауэра. Если вам нужны более точные правила брандмауэра, обратитесь к разделу iptables Справочного руководства по Red Hat Enterprise Linux.

20.1. Уровни выполнения

Для того чтобы суметь правильно настроить доступ к службам, вы должны понимать, что такое уровни выполнения Linux. Уровень выполнения — это состояние или режим, который определяется службами, перечисленными в каталоге /etc/rc.d/rc<x>.d, где <x> — номер уровня выполнения.

Существуют следующие уровни выполнения:

  • 0 — Останов

  • 1 — Режим одного пользователя

  • 2 — Не используется (определяется пользователем)

  • 3 — Полный многопользовательский режим

  • 4 — Не используется (определяется пользователем)

  • 5 — Полный многопользовательский режим (с графическим экраном входа в систему)

  • 6 — Перезагрузка

Если вы используете текстовый экран входа, вы работаете в уровне выполнения 3. Если вы используете графический экран, вы работаете в уровне выполнения 5.

Уровень выполнения по умолчанию может быть изменён в файле /etc/inittab, который содержит в начале строку, подобную следующей:

id:5:initdefault:

Подставьте вместо числа в этой строке требуемый уровень выполнения. Изменения не вступают в силу до перезапуска системы.

Чтобы изменить уровень выполнения немедленно, выполните команду telinit, добавив номер уровня выполнения. Чтобы использовать эту команду, вы должны быть пользователем root. Команда telinit не меняет файл /etc/inittab, она меняет только текущий уровень выполнения. После перезагрузки система по-прежнему будет загружать уровень выполнения, указанный в файле /etc/inittab.