Опубликован: 31.07.2006 | Уровень: специалист | Доступ: свободно
Лекция 14:

Безопасность UNIX

Доступ через корневую учетную запись

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

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

# If CONSOLE is set, root can only login on that device.
# Comment this line out to allow remote login by root.
#
CONSOLE=/dev/console

Посредством этого система разрешит прямой вход в корневую учетную запись только через консоль. В системе Linux можно реализовать аналогичную конфигурацию, редактируя файл /etc/securetty. Этот файл представляет собой список TTY, которые используются для входа в корневую учетную запись. Содержимым этого файла должно быть /dev/tty1. Если для управления системой используется последовательный канал связи, файл должен содержать /dev/ttyS0. Сетевые TTY - это, как правило, /dev/ttyp1 и выше.

Если требуется контролировать корневой доступ к системе, рекомендуется осуществлять контроль корневого доступа к FTP. Файл /etc/ftpusers и в системах Solaris, и в системах Linux представляет перечень учетных записей, которым не разрешено осуществлять доступ к системе через FTP. Убедитесь, что в данном списке присутствует корневая учетная запись.

Защита от переполнения буфера

Переполнение буфера - одна из наиболее серьезных опасностей, угрожающих системе. Solaris предоставляет способ предотвращения выполнения команд вне стека при проявлении атак на переполнение буфера (см. "лекцию 3" для получения более подробной информации о переполнении буфера). Для этого необходимо добавить следующие строки в файл /etc/system:

set noexec_user_stack=1
set noexec_user_stack_log=1

Первая строка предотвращает выполнение команд вне стека, а вторая - заносит в журнал данные о произведенных попытках.

Внимание!

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

Существует несколько других проектов, предназначенных для повышения уровня защиты стека Linux. Один из них расположен по адресу http://www.openwall.com/linux/.

Отключение неиспользуемых учетных записей

В Unix создается набор учетных записей, необходимых для различных целей (например, владение некоторыми определенными файлами), которые никогда не используются для входа в систему. Такими учетными записями являются sys, uucp, nuucp и listen. Для каждой учетной записи следует изменить их записи в файле /etc/shadow, чтобы предотвратить успешный вход в систему с их помощью:

root:XDbBEEYtgskmk:10960:0:99999:7:::
bin:*LK*:10960:0:99999:7:::
daemon:*LK*:10960:0:99999:7:::
adm:*LK*:10960:0:99999:7:::
lp:*LK*:10960:0:99999:7:::
sync:*LK*:10960:0:99999:7:::
shutdown:*LK*:10960:0:99999:7:::
halt:*LK*:10960:0:99999:7:::
mail:*LK*:10960:0:99999:7:::
news:*LK*:10960:0:99999:7:::
uucp:*LK*:10960:0:99999:7:::
operator:*LK*:10960:0:99999:7:::
games:*LK*:10960:0:99999:7:::
gopher:*LK*:10960:0:99999:7:::
ftp:*LK*:10960:0:99999:7:::
nobody:*LK*:10960:0:99999:7:::

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

Обновления

Для исправления ошибок и устранения уязвимостей для Unix выпускаются обновления и "заплатки" аналогично тому, как это делается для операционных систем семейства Windows. Обновления должны устанавливаться регулярно, чтобы минимизировать число уязвимостей. Различные поставщики систем Unix выпускают средства, помогающие в управлении обновлениями. Компания Sun предлагает программу Solaris Sunsolve Patch Manager, а Red Hat имеет онлайн-систему обновления в интернете (http://www.redhat.com/apps/support/errata/).

Примечание

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

Вопросы для самопроверки

  1. Файлы загрузки в системе Linux расположены в __________.
  2. Чтобы предотвратить вход в систему без пароля, необходимо удалить из системы файлы __________ и __________.
Нияз Сабиров
Нияз Сабиров

Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей.

Елена Сапегова
Елена Сапегова

для получения диплома нужно ли кроме теоретической части еще и практическую делать? написание самого диплома требуется?

Андрей Кравцов
Андрей Кравцов
Россия