Мой Компьютер, №03 (434), 08.01.2007
Возможности
Главная задача проекта — укрепление уже установленной системы. Поэтому вам понадобится как минимум уже установленный дистрибутив. В основу Bastille Linux положены все решения по защите систем, описанные в открытых источниках. Здесь и разработки Джея Била (Jay Beale) по укреплению Solaris и Linux, нашедшие свое отражение в книге института SANS (SysAdmin, Audit, Network, Security) «Securing Linux Step by Step», руководство Курта Зайфрида (Kurt Seifried) «Linux Administrator’s Security Guide Linux» (www.seifried.org/lasg/) и другие источники.
С помощью программы настройки Bastille Linux настраиваются демоны, изменяются некоторые параметры системы и межсетевого экрана. Дополнительно (при необходимости) отключаются ненужные сервисы вроде печати, rcp и rlogin. Также можно создать среду chroot jails, уменьшая уязвимость некоторых интернет-сервисов вроде Web и DNS. Фактически, Bastille Linux — это Perl-скрипт, изменяющий параметры в системных файлах, в зависимости от желания пользователя. Проблема здесь одна. В некоторых дистрибутивах для хранения настроек используются разные каталоги, формат файлов также может отличаться. Поэтому скрипт должен знать, где их искать и как с ними работать. В настоящее время поддерживаются следующие дистрибутивы и системы: Red Hat Enterprise и Fedora Core, Debian, Mandriva/Mandrake, SUSE, Gentoo и TurboLinux, а также HP‑UX и MacOS X.
Установка
При закачке необходимо по ссылке выбрать пакет под используемый дистрибутив или архив с исходными текстами. Для работы потребуется интерпретатор Perl, perl‑Tk для интерактивного режима и Perl/Curses для текстового (recommended for high security). Bastille Linux есть в репозитарии пакетов Ubuntu, поэтому проще его установить, используя команду apt:
$ sudo apt-get update
$ sudo apt-get install bastille
…..
Будут установлены следующие дополнительные пакеты:
- libcurses-perl;
- acct, perl-tk, libgtk-perl (предлагаемые пакеты);
- whois, psad (рекомендуемые пакеты);
- bastille libcurses-perl (новые пакеты).
[не уверен, что правильно понял мысль автора]
Необходимо скачать 484 Кб архивов:
WARNING: Bastille-firewall is not configured yet
Please create /etc/Bastille/bastille-firewall.cfg to enable it.
(HINT: use InteractiveBastille)
В системе пакетов Ubuntu используется «мягкая» зависимость, когда с основной программой устанавливаются только самые необходимые пакеты. Об остальном должен позаботиться пользователь. Поэтому обратите внимание на позиции, обозначенные как предлагаемые и рекомендуемые пакеты, их желательно установить:
$ sudo apt-get install whois psad acct perl-tk libgtk-perl
Установка с использованием исходных текстов также обычно проблем не вызывает: после распаковки архива заходим внутрь образовавшегося каталога и вводим: ./Instal.sh. После чего программа скопирует все файлы на свои места и установит необходимые для работы модули Perl. Теперь можно запускать.
Запускаем
Скрипт может работать в двух режимах: в интерактивном и неинтерактивном. В интерактивном режиме интерфейс пользователя позволяет объяснить системному администратору проблемы в защите. Этот подход удобен тем, что, с одной стороны, защищает систему, а с другой, обучает на конкретных примерах. Неинтерактивный режим позволяет использовать для изменения параметров на других системах уже готовые файлы конфигурации, изготовленные в интерактивном режиме, что позволяет избегать повторного прохождения всех этапов. Ведь для того чтобы спокойно и обдуманно ответить на все вопросы, придется потратить довольно много времени. При этом программа должна быть запущена каждый раз после установки нового ПО или установки патча, поскольку это может повлиять на ослабление защиты. Также могут быть случаи, когда применение Bastille вызывает побочный эффект — блокируются ни в чем не повинные программы, поэтому перед применением на рабочем компьютере стоит провести эксперимент на тестовом.
Запустить программу конфигурации в интерактивном режиме можно двумя способами. Первый состоит в запуске perl-скрипта InteractiveBastile ($ sudo InteractiveBastille), при этому будет запущен Tk‑интерфейс, требующий Х‑Window (проверяется установленным значением переменной $DISPLAY). Он очень удобен, так как позволяет вернуться к предыдущему пункту, а также использовать выборочную конфигурацию. Пройденное «расстояние» отражено статус-баром.
Если же система Х‑Window не используется, то при задании ключа -с bastille будет запущен с текстовым интерфейсом Perl/Curses.
Но таким способом не всегда удается запустить программу. В этом случае можно воспользоваться вторым вариантом, вызов bastille напрямую:
$ sudo /usr/sbin/bastille
Ключи для выбора интерфейса в этом случае аналогичны предыдущим.
Иногда программа не может узнать дистрибутив, в котором она установлена, и начинает ругаться, приводя длинный список «совместимых»:
Could not determine operating system version!
Bastille does not work on this OS: unknown
Currently, Bastille works on the following:
DB2.2″, «DB3.0», «DB3.1», «RH6.0″,»RH6.1″,»RH6.2″,»RH7.0″,»RH7.1″,»RH7.2″,»RH7.3″,»RH8.0″,»RH9″,»MN6.0»,
«MN6.1″,»MN7.0″,»MN7.1″,»MN7.2″,»MN8.0″,»MN8.1″,»MN8.2″,»HP-UX11.00″,»HP-UX11.11», «HP-UX11.22», «HP-UX11.23″,»SE7.2″,»SE7.3″,»SE8.0″,»TB7.0″,»OSX10.2.0″,»OSX10.2.1″,»OSX10.2.2″,»OSX10.2.3″,»OSX10.2.4»
Для того чтобы уговорить ее работать, задаем с помощи ключа —os название дистрибутива, выбрав сокращенное название из приведенного выше списка (только при первом запуске):
$ sudo /usr/sbin/bastille –os DB3.1
Хотя Ubuntu в списке официально поддерживаемых систем нет, Bastille запускается в нем нормально. Причину можно узнать, проанализировав функцию GetDistro() в файле /usr/lib/Bastille/API.pm. При запуске производится поиск характерных для некоторых дистрибутивов файлов и считывание из нее информации о релизе. А так как для совместимости с Debian в Ubuntu сохранен файл /etc/debian_version, Bastille Linux рассматривает его как Debian:
$ cat /etc/debian_version
testing/unstable
Впрочем, подкорректировав файл API.pm, можно добавить поддержку Ubuntu.
Работаем
В результате появится окно настройки (рис. 1, 2). Выбрав нужную категорию начинаем отвечать на вопросы, в большинстве пунктов ответом будет выбор из двух вариантов — Yes или No, но например, при вводе диапазонов портов дополнительно активируется внизу экрана полоса Answer, куда и следует вводить данные. При ответе на вопросы можно использовать кнопку Explain More/Explain Less, чтобы получить более или менее подробное объяснение — правда, для некоторых пунктов доступен только один из вариантов подсказок. К сожалению, локализацией Bastille Linux никто не занимался и, судя по тенденции, заниматься не будет. Поэтому чтобы разобраться в вопросах, необходимо знание английского (оптом вопросы можно просмотреть, ознакомившись с файлом Questions.txt). После ответа на все вопросы в последнем пункте сохраняем конфигурацию.
При выборе неинтерактивного режима первоначально проделываем все вышеописанное для того чтобы создать необходимые файлы конфигурации, все ответы на возможные вопросы находятся в /etc/Bastille/config. После этого устанавливаем Bastille на каждую машину с операционной системой, идентичной той, в которой он был сделан. И вводим на каждой:
# /usr/sbin/bastille -b
При этом могут возникнуть и ошибки. Для просмотра информации об изменяемых параметрах поступаем так:
# tail -f /var/log/Bastille/action-log
Вывод ошибок.
# tail -f /var/log/Bastille/error-log
Дополнительно в файл /var/log/Bastille/TODO система заносит оставшиеся действия, которые система не может выполнить автоматически — их пользователь должен выполнить вручную (например, перезагрузка сервисов).
Возврат к предыдущему (до Bastill’ному) состоянию можно осуществить при помощи опции -r (revert) или запуском отдельного скрипта RevertBastille:
# /usr/sbin/bastille -r
При этом удаление самой программы Bastille без выполнения этого действия не приведет к автоматическому откату.
Пользователю придется ответить не на один десяток вопросов, чтобы иметь представление об основных разделах программы. При этом разделы, которые касаются только одной из систем, помечены как HP‑UX only или Linux only.
Bastille Linux представляет собой легкий в использовании, удобный и интуитивно понятный инструмент, позволяющий существенно поднять защищенность компьютера, будь то сервер или десктоп. А в придачу является неплохим пособием по изучению защиты Linux-систем.
Linux forever!
Сергей ЯРЕМЧУК
Web-droid editor