Перейти к содержанию

17.1 Защита системы (Securing the System)

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

  • Защита физической среды
  • Защита доступа к операционной системе

Начнём с обсуждения способов защиты физической среды.

Защита физической среды (Securing the Physical Environment)

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

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

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

Как администратор Linux, одно из самых важных действий, которые вы можете предпринять, — это ограничить круг лиц, имеющих доступ к вашим системам. Уровень необходимого доступа зависит от типа системы. Помните о следующем:

  • Серверы. Сервер должен иметь максимальную степень физической защиты. Никто (и я имею в виду — никто) из посторонних не должен иметь физического доступа к серверам вашей организации. Более того, лишь очень ограниченный круг сотрудников организации должен иметь к ним доступ. Серверы не следует держать в пустующих отсеках или на столе сетевого администратора. Вместо этого они должны находиться в запертой серверной комнате, доступ в которую есть только у системного администратора и очень немногих других людей.

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

    Ключевая идея состоит в том, что злоумышленник должен преодолеть несколько уровней защиты, чтобы добраться до серверной системы. Как минимум, ему придётся пройти через защищённую входную дверь, миновать стойку регистрации или охранника и открыть запертую дверь, прежде чем попасть к серверам. Большинство крупных организаций, с которыми я работаю, используют замки с бесконтактным считывателем, требующие предъявления идентификационной карты для входа в серверные комнаты, — это ограничивает доступ конкретными сотрудниками организации.

    Недавно я зашёл в небольшой магазин и увидел, что дверь в серверную комнату в задней части помещения (пустующую в тот момент) была широко открыта. Ещё хуже то, что дверь серверной комнаты находилась прямо рядом с задним аварийным выходом. При желании я мог бы схватить сервер и выбежать через аварийный выход раньше, чем кто-либо в магазине успел бы понять, что происходит.

  • Рабочие станции. Защитить доступ к рабочим станциям значительно сложнее. Ключевая проблема — повсеместное использование открытых отсеков в современных офисах. Если вам когда-либо доводилось работать в пространстве, заставленном рядами таких отсеков, вы, вероятно, уже догадываетесь, в чём состоит проблема. Всё верно: в отсеках нет дверей. Любой, кто имеет доступ в офис, имеет доступ к компьютерным системам каждого сотрудника. Как и в случае с серверами, это позволяет злоумышленнику под видом официального лица проникнуть в офис и унести рабочую станцию. При правильно разыгранной роли его даже не остановят при выходе через главный вход. Лучшее, что вы можете сделать, — это ограничить доступ в сам офис. Здесь также хорошо работают замки с бесконтактным считывателем и идентификационные карты. Войти в рабочую зону должны иметь возможность только лица с авторизованными картами.

Примечание

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

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

Защита доступа к операционной системе (Securing Access to the Operating System)

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

Однако существует ключевая проблема, которая ежедневно проявляется в большинстве организаций. В течение рабочего дня пользователи постоянно отходят от своих рабочих мест и возвращаются к ним. Очень часто в любой момент рабочего дня можно найти одну или несколько рабочих станций, на которых выполнен вход в систему, но которые оставлены без присмотра. Пользователи ходят на совещания, делают перерывы, обедают, посещают туалет. В это время данные на их системах крайне уязвимы. Злоумышленник, которому удалось проникнуть в офис (вспомните о технике по обслуживанию копировальной техники и ремонтнике торгового автомата, упомянутых ранее), получает доступ ко всему, к чему имеет доступ данная учётная запись пользователя в системе и сети. Это окно возможностей может длиться всего несколько минут или несколько часов. Скопировать большой объём критически важных конфиденциальных данных на флеш-накопитель не составляет труда! Ещё хуже то, что злоумышленник может загрузить на систему любую из множества программ, компрометирующих безопасность, — например, программу кейлогга или вирус.

Что можно сделать для защиты своих систем? Прежде всего, можно настроить пароли для хранителя экрана. Это потребует от злоумышленника ввести пароль для получения доступа к системной консоли. Это помогает, однако система по-прежнему остаётся уязвимой в течение некоторого времени — в зависимости от того, какой период бездействия задан для включения хранителя экрана.

Лучше всего обучить пользователей выходить из системы или блокировать рабочую станцию перед уходом с рабочего места даже на самое короткое время. Большинство графических сред рабочего стола Linux предоставляют возможность блокировки операционной системы. Например, в KDE можно выбрать K Menu | Lock Session, чтобы заблокировать систему. После этого для использования системы необходимо пройти повторную аутентификацию. Это показано на рис. 17-1.

Примечание

Никогда не оставляйте сервер с выполненным входом в систему. Я вижу, как системные администраторы делают это постоянно! Если вы не используете консоль сервера, выйдите из системы!

Рис. 17-1. Экран блокировки рабочего стола KDE с диалогом повторной аутентификации.

Рис. 17-1. Блокировка рабочего стола.

Если вы работаете в текстовой среде, пользователи должны выходить из системы, когда покидают рабочее место, и снова входить по возвращении. Многие пользователи, особенно разработчики программного обеспечения, любят сделать перерыв, пока Linux-система выполняет продолжительную задачу, например компилирует программу или загружает обновление базы данных. Если пользователь выйдет из оболочки во время выполнения этих процессов, они будут автоматически остановлены. Чтобы пользователь мог выйти из системы, не прерывая важный процесс, можно воспользоваться командой nohup при его первоначальном запуске. Любой процесс, запущенный через nohup, будет игнорировать получаемые сигналы разрыва соединения (hang-up), в том числе те, которые отправляются при выходе из оболочки. Синтаксис использования nohup: nohup команда &. Например, на рис. 17-2 команда find –name named & запущена через nohup, что позволяет ей продолжать работу даже после выхода из оболочки.

Рис. 17-2. Использование nohup для запуска команды, не зависящей от сеанса оболочки.

Рис. 17-2. Использование nohup.

По моему опыту, данная проблема в конечном счёте сводится к обучению конечных пользователей. Как системный администратор, вы можете лишь в ограниченной мере влиять на защиту отдельных рабочих станций. Если конечный пользователь не будет соблюдать правила, это мало что даст. Объясните пользователям, какую опасность представляет эта угроза, и научите их, как её снизить.

Помимо этого, вам также необходимо настроить средства управления доступом пользователей для обеспечения безопасности ваших Linux-систем. Обсудим, как это сделать, в следующем разделе.