Защита Debian-подобных систем – использование "Bastille Linux" на примере Debian и Ubuntu

Comments

Серия контента:

Этот контент является частью # из серии # статей:

Следите за выходом новых статей этой серии.

Этот контент является частью серии:

Следите за выходом новых статей этой серии.

Всем известно, что сейчас, в эпоху бурного развития компьютерных технологий и Интернет, изменение претерпевают не только полезные программы и технологии их использования, но и программы, которые успели уже назвать «вредоносным кодом», и технологии, которые в руках «умелых специалистов» становятся инструментом для взлома систем и их компрометации. На сегодняшний день существует достаточное количество методов борьбы как с вредоносным кодом, так и с технологией его размещения на серверах в целях последующего незаконного использования в пользу разместившего взломщика системы. Это и антивирусные программы, и программно-аппаратные средства сетевой защиты, и встроенные в операционные системы сетевые экраны, фильтры и системы обнаружения и предупреждения вторжений.

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

При запуске в интерактивном режиме (что и рекомендуется), Bastille даёт подробные рекомендации на каждом этапе своей работы, подробно описывая возможные проблемы с безопасностью и пути их устранения. Все этапы не обязательны, но являются желательными и проверенными временем. В автоматическом режиме Bastille настраивает систему согласно выбранному профилю, который можно создать заранее.

После того как эта программа была настроена на одной машине, ее конфигурацию можно сохранить и распространить на другие машины.

Официальный сайт данного программного продукта находится по адресу: http://bastille-linux.sourceforge.net/.

В настоящее время, как сказано в проекте, Bastille поддерживает следующие операционные системы: Red Hat (Fedora Core, Enterprise, and Numbered/Classic), SUSE, Debian, Gentoo, Mandrake, HP-UX., Mac OS X.

После запуска программа строит определенную политику безопасности для всей системы на основе диалога с пользователем в режиме «вопрос–ответ». Сама организация работы программы позволяет использовать ее в качестве интерактивного учебника для специалистов и энтузиастов компьютерной безопасности, потому что она позволяет обучаемому ознакомиться со своей работой без применения введенных изменений, при этом подобно описывая каждый шаг, его последствия и результат с ведением лог-файла и протоколирования своих действий.

Как пишут сами авторы, программа охватывает большинство тем из учебников по безопасности для Linux, а ее разделы служат названием одноименных глав этих же учебников. В руководстве авторитетного центра по безопасности Интернет (http://www.cisecurity.org) было рекомендовано использовать Bastille на сложных и высоконагруженных системах. Стоит добавить, что одним из идейных вдохновителей Bastille является SANS Institute (http://www.sans.org/), а тот факт, что служащие IBM и Hewlett Packard используют ее в своей работе, говорит сам за себя!

Установка и начало работы

Рассмотрим работу Bastille на примере Ubuntu 8.04 LTS и Debian 4 Etch. Команда sudo aptitude show bastille даст вам полный обзор состояния дел по поводу того, установлена ли программа у вас или нет, как установлена и для чего она предназначена. Надо отметить, что сам пакет выполнен для Debian 4 Etch, но, учитывая его совместимость с Ubuntu и проверку работоспособности, можно смело утверждать, что все отлично работает на обеих системах. У меня на тестовой системе это выглядит как на рисунке 1. (Для системы Debian 4 Etch это будет выглядеть как на рисунке 2_2).)

Рисунок 1.
Рисунок 1.
Рисунок 1.
Рисунок 2-2.
Рисунок 2-2.
Рисунок 2-2.

Проверьте наличие в системе установленного perl-tk и, если его нет, доустановите его: # aptitude install perl-tl

Затем установите пакет с Bastille: # aptitude install bastille.

После установки пакета его стоит запустить в консоли (от лица root) как # bastille –x, и тогда вы увидите картинку, как на рисунке 2, с интерфейсом Perl/Tk или, в случае варианта запуска # bastille –c(non-X11), получите “GUI curses”, как на рисунке 3. Вполне очевидно, что первый вариант удобно использовать на рабочей станции, а второй – на сервере, где не установлена графическая подсистема X Window.

Рисунок 2.
Рисунок 2.
Рисунок 2.
Рисунок 3.
Рисунок 3.
Рисунок 3.

Перед стартом программы надо пролистать пробелом соглашение о порядке использования программы, а затем ввести полностью слово “accept ” и нажать Enter. На Ubuntu Linux перед запуском программы надо создать пустой файл /etc/Bastille/config, после чего начало работы с программой открывается первым экраном, на котором просят последовательно ответить на все вопросы для построения более защищенной системы. В Debian Etch этот файл создавать не нужно. Обратите внимание на то, что в самой верхней части окна находится строка с вопросом, который вам задают (question), а внизу, в строке – вариант ответа на него для тех определений, которые могут быть вами таким образом изменены (answer), – как правило, это значение соответствует значению по умолчанию, принятому в системе; или, как вариант, – “YES” или “NO”. Жмем на ОК и переходим на следующий экран. На первом этапе надо нажать именно на ОК во избежание вываливания программы в консоль с ошибкой “segmentation fault” (такой эффект был замечен именно на Ubuntu, да и сам пакет Bastille делался для Debian 4 Etch, что и указано в информации о нем).

Первый раздел “FilePermissions” в своем описании говорит о том, что существующая в системе возможность использования простыми пользователями таких административных утилит, как fsck, ifconfig, traceroute, linuxconf, уменьшает общий уровень безопасности системы, и предлагается отключить такую возможность. Внизу стоит предупреждение, что выключение такой возможности может повлечь за собой неработоспособность такого программного обеспечения, как, например, система архивирования Amanda, поэтому надо быть осторожным и иметь это в виду. Мне кажется, что на сервере так и должно быть, поэтому отвечаем внизу экрана нажатием на “YES” и затем OK-> для перехода дальше. На каждом этапе можно вернуться назад, к предыдущему окну и изменить свое решение, если вдруг вы передумали по каким-либо причинам.

На следующем экране нам предлагают избавиться от бита «SUID root», который ставится на некоторые программы, такие как mount/umount, ping, at. Программы с таким установленным битом увеличивают удобство работы в системе, но уменьшают ее безопасность. Если в этих программах будет найдена уязвимость, то ее впоследствии можно будет использовать для получения привилегий root под обычным пользователем, а это очень опасная ситуация для системы.

Затем можно увидеть предложение отключить BSD r-tools, отвечающие за ip-based-аутентификацию с удаленных машин без ввода пароля. Такие настройки хранятся в файле .rhosts, где указываются ip-адреса машин и учетные записи, с которых возможен такой доступ. Путем подмены ip-адреса и перехвата пароля возможен доступ злоумышленников на хосты, разрешающие такую функцию.

Далее предлагается включить возможность принудительной смены пароля для пользователей, срок действия паролей которых превысил 180 дней. Если такая смена не произойдет, то учетная запись такого пользователя будет временно заблокирована. Мне такое решение кажется разумным, оно уменьшит вероятность возможного взлома пользовательских паролей, если до этого дойдет. Изменить это время и многие другие параметры можно в файле /etc/login.defs, как на рисунке 5 (опция PASS MAX_DAYS).

Рисунок 5.
Рисунок 5.
Рисунок 5.

Следующей опцией идет позиция по демону cron. Его предлагается выключить для административного аккаунта (имеется в виду на сервере и для неопытных администраторов), но включить эту возможность для тех, кого занесут в файл /etc/cron.allow. Смысл таких действий мне видится в ограничении доступа к демону cron тех, кому это не нужно. Решайте сами, как организовать этот момент для вашей системы.

Следующий шаг предлагает нам сменить значение по умолчанию для разрешений, назначаемых системой при создании файлов – umask. Bastillle может установить одно или несколько значений umask в файле login.defs. Расположение этих настроек характерно для таких распространенных shell, как csh, sh, bash, ksh. Далее предлагается сменить значение umask для пользователей системы, и предлагаются различные варианты таких значений. Выберите желаемое или оставьте все без изменения в зависимости от назначения вашей системы и ваших личных предубеждений.

Далее предлагается выключить возможность авторизации в системе непосредственно под учетной записью root. Подразумевается, что вы войдете в систему под определенной учетной записью, являющейся членом особой группы (например, wheel), а потом, в случае необходимости, получите привилегии root, зная его пароль, конечно же. Таким образом, затрудняется возможность перехвата (подбора) пароля суперпользователя, так как до этого взломщику еще будет необходимо как-то подобрать пароль этой первичной учетной записи.

Следующий шаг предлагает установить пароль на загрузчик GRUB. Это очень полезно в том случае, если вдруг взломщик получил физический доступ к системе и хочет изменить порядок загрузки, например, для входа в систему под root без ввода пароля. Рекомендуется установить пароль на загрузчик. Следующее окно – ввод этого пароля.

На следующем шаге предлагается отключить возможность перезагрузки системы по набору «магической» комбинации клавиш CTRL+ALT+DELETE, которая всем знакома еще по Windows. Лучше отключить ее, чтобы подстраховаться от шутников всех мастей.

На следующем этапе предлагается запаролить вход в систему в режиме “single user mode”. Лучше сделать это, чтобы лишний раз быть уверенным в том, что такой режим использует именно root, а не кто угодно. Этот режим обычно нужен для проведения регламентных работ в системе, в том числе для смены пароля самого root. Ввод такого пароля очень рекомендуется разработчиками Bastille.

Следующий этап предлагает вам включить изначально запрет через суперсервер xinetd для всех зависимых от него сетевых служб, таких как pop, imap, ftp и т.д. Таким образом, все попытки запуска перечисленных служб через управляющий ими суперсервер будут заблокированы. Дальнейшее разрешение их работы определяется в конфигурационном файле xinetd. Не забывайте, что некоторые серверы работают в автономном режиме “standalone”, и доступ к ним регулируется уже через конфигурирование в файле /etc/hosts.allow.

Теперь предлагается отключить слабый, с точки зрения безопасности, сетевой сервис telnet. Лучше именно так и сделать, а в работе использовать такие службы, как ssh.

Теперь то же самое предлагают сделать и с ftp, где пароли передаются в незашифрованном виде. Лучше использовать sftp (secure) или пользоваться той же ssh для передачи файлов и других данных через удаленное соединение. Одна из таких реализаций для Windows называется WinSCP.

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

Следующий раздел предполагает внесение изменений в PAM и называется “ConfigureMiscPam”. На первом этапе предлагается внести ряд ограничений на использование системных ресурсов специальными системными пользователями, от имени которых запущены такие сервисы, как web, ftp, DNS и т.д. Такие ограничения могут помочь в защите от DOS-атак на сервер. Если, например, атакуют вашу службу ftp и пытаются через нее исчерпать все ресурсы системы, то такие ограничения будут очень кстати. В таком случае атакуемая служба выберет свой предел и остановится (перестанет принимать запросы, пока не отработает уже имеющиеся), и эта остановка не даст возможности атакующим забрать все ресурсы у системы и остановить другие, не менее важные службы, такие как, например, web или DNS. Это одна из важнейших опций при конфигурировании Bastille. Но в любом случае эти настройки можно сделать и вручную, внеся изменения в файл /etc/security/limits.conf (рисунок 4). Далее предлагается возможность отключить доступ к консоли всем, кроме специальных учетных записей. Очень полезная возможность! Введите только те учетные записи, которые реально могут и должны входить на сервер в рабочую консоль.

Рисунок 4.
Рисунок 4.
Рисунок 4.

Переходим к следующему разделу – “MiscellaneousDaemons”, где нам предлагается отключить все ненужные службы. В следующих одно за другим окнах выключаем то, что не нужно – gpm, систему печати и все утилиты, которые могут ее использовать, и ряд других служб. Выберите сами, что вам не нужно.

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

Далее, в разделе “FIREWALL” предлагается установить скрипт, который поможет автоматизировать работу по настройке вашего файрвола. Применимо для ядер 2.2 и 2.4. Это не должно вызывать у вас улыбку, так как, например, до недавнего времени Slackware Linux использовал только ядра 2.4 как наиболее стабильные, а Slackware является очень уважаемым дистрибутивом.

Последний раздел – “End Screen”. Тут разъясняется, что окончание конфигурирования Bastille не означает немедленное применение всех этих параметров к вашей системе. Если вы все обдумали и решили закрепить все опции и применить их, то выбираем “YES” и идем дальше (рисунок 6). Следующее окно предупредит вас о том, что еще можно вернуться назад и внести изменения в ту конфигурацию, которую вы уже создали, выйти из программы вообще без каких-либо изменений и остаться в том виде, который у вас был до запуска этой программы, или же сохранить имеющуюся конфигурацию для ее применения.

Рисунок 6.
Рисунок 6.
Рисунок 6.

После сохранения конфигурации в файл имеем такой вот экран (рисунок 7), который говорит о возможности возвращения назад для изменения конфигурации, выйти без сохранения или же применить конфигурацию к вашей системе. Выбираем «применить» и перезагружаем систему для введения изменений в силу.

Рисунок 7.
Рисунок 7.
Рисунок 7.

После перезагрузки вы должны увидеть окно, похожее на мое (рисунок 8).

Рисунок 8.
Рисунок 8.
Рисунок 8.

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

Заключение

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

Эту программу в своей повседневной деятельности используют такие организации, как IBM и Hewlett Packard.

Применение программы возможно в дистрибутивах Red Hat (Fedora Core, Enterprise, and Numbered/Classic), SUSE, Debian, Gentoo, Mandrake, а также в коммерческих unix-системах, таких как HP-UX и Mac OS X.

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


Ресурсы для скачивания


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=482227
ArticleTitle=Защита Debian-подобных систем – использование "Bastille Linux" на примере Debian и Ubuntu
publish-date=04132010