Родерик Смит - Сетевые средства Linux
Не все пользовательские записи должны постоянно присутствовать на компьютере. После того как студенты заканчивают университет, а сотрудники организации переходят на другую работу, их учетные записи становятся ненужными. Для того чтобы снизить опасность несанкционированного доступа к системе, от таких записей необходимо избавиться. Если вы получили сообщение о том, что пользователь покинул организацию, вы должны сделать неактивной или удалить его запись. Однако далеко не всегда руководство оповещает системного администратора об увольнении сотрудников. В этом случае вы можете указать, что по прошествии некоторого времени запись должна стать недействительной. Сделать это можно с помощью команды
# usermod -e 2003-07-04 george
Данная команда сообщает системе о том, что срок действия учетной записи george заканчивается 4 июля 2003 года. (Ограничить срок действия записи можно также при ее создании, указав при вызове команды useradd опцию -е.) Такой подход очень удобен в тех случаях, когда вы наперед знаете время, начиная с которого учетная запись не будет использоваться. Например, администраторы знают об окончании студентами курса обучения и о завершении работы сотрудников, принятых на контрактной основе.
Менее радикальный подход состоит в ограничении срока действия пароля. При этом пользователь вынужден регулярно, например раз в месяц, задавать новый пароль. Указать, что пароль действителен лишь в течение ограниченного времени, можно с помощью следующей команды;
# chage -М 30 -W 5 george
Эта команда сообщает системе о том, что пользователь george должен задавать новый пароль каждые 30 дней и что за 5 дней до истечения срока действия текущего пароля он должен получать соответствующее сообщение. Если george забудет обновить пароль, учетная запись станет недоступной и для возобновления работы с ней необходимо будет обратиться к системному администратору.
Описанные подходы позволяют решить проблему неиспользуемых учетных записей, но они применимы не во всех ситуациях. Некоторые учетные записи не предполагают регистрацию пользователей, а применяются, например, для организации работы с файловым сервером или для доставки почты. В данном случае, чтобы пользователь увидел сообщение об окончании срока действия пароля, надо создать задание для инструмента cron, предусмотрев в нем определение времени, в течение которого пароль остается действительным, и оповестить пользователя по электронной почте. Существуют средства, позволяющие получить информацию об использовании учетных записей. Например, утилита last возвращает сведения о нескольких последних регистрациях пользователя в системе, а в некоторых дистрибутивных пакетах поддерживается файл протокола /var/log/auth, в который записывается информация о выполнении аутентификации. Приложив определенные усилия, вы можете написать сценарий, который проверял бы файл протокола и оповещал вас о том, что некоторые записи не используются в течение длительного времени. Периодический запуск такого сценария можно организовать с помощью инструмента cron. Если вы узнаете, что некоторая учетная запись давно не использовалась для регистрации в системе, выясните причины этого и, если запись больше не нужна, удалите ее.
Выполняя администрирование системы, надо также следить за учетными записями, срок действия которых истек. Ненужные записи следует удалить. Для поиска недействительных записей можно написать специальный сценарий. (Выявлять недействительные учетные записи можно по следующему признаку: по истечении срока действия значение третьего поля записи в файле /etc/shadow становится меньше, чем значение, содержащееся в восьмом поле.)
Выявление случаев незаконного использования учетных записейВремя от времени системные администраторы сталкиваются со случаями незаконного использования учетных записей. Случается это по разным причинам. Иногда встречаются недобросовестные пользователи, применяющие компьютеры для организации атаки на удаленные системы. В других случаях злоумышленникам, работающим на удаленных компьютерах, удается заполучить локальные учетные записи.
Одним из признаков незаконного использования учетной записи могут быть необычные действия пользователей, зарегистрированные в файлах протоколов /var/log/messages и /var/log/secure. (Имя файла протокола и характер записываемой в него информации различается для разных дистрибутивных пакетов.) Поскольку в файлы протоколов записывается информация о работе серверов, а не клиентов, обнаружить случаи незаконного использования учетных записей удается не всегда. Так, например, если локальный пользователь воспользуется клиентской программой telnet для атаки удаленного компьютера, информация об этом в файле протокола будет отсутствовать, однако нужные сведения можно получить, анализируя файлы протоколов брандмауэра. Содержимое файлов протоколов на локальной машине чаще всего позволяет обнаружить попытки взлома, предпринимаемые извне.
Анализ файлов протоколов — утомительная процедура, отнимающая много времени. Для того чтобы упростить работу администраторов, были созданы специальные инструменты. Примером инструментального средства, предназначенного для обработки файлов протоколов, является Simple Watcher (SWATCH, http://oit.ucsb.edu/~eta/swatch/). Данная программа позволяет искать записи в файлах протоколов по ключевым словам.
Для выявления случаев незаконного использования учетных записей можно установить в системе сервер аутентификации auth (в некоторых версиях Linux он называется identd). Когда клиентская программа, выполняемая на вашем компьютере, обращается к удаленному серверу, последний может установить связь с вашим компьютером и идентифицировать пользователя, инициировавшего обращение. Если кто-то из ваших пользователей нанес вред удаленной системе, информация о нём записывается в файл протокола и администратор уделенной системы может связаться с вами и сообщить имя пользователя, выполнявшего незаконные действия. Чтобы это стало возможно, необходимо, чтобы на вашем компьютере выполнялся сервер аутентификации, а злоумышленник не имел возможности заменить этот сервер своей программой. Сервер аутентификации входит в состав многих дистрибутивных пакетов и требует минимальной настройки. Обычно он запускается посредством суперсервера.
К сожалению, ваши возможности по выявлению случаев незаконного использования учетных записей ограничены, так как контроль над процессами даже на одном компьютере занимает слишком много времени и не под силу одному администратору.
Выбор паролей
Для того чтобы пароль можно было использовать, он должен находиться на диске компьютера. В системе Linux пароль располагается в файле /etc/shadow (в старых версиях Linux он находился в файле /etc/passwd). Пароль хранится в зашифрованном виде; для его кодирования обычно используется алгоритм одностороннего кодирования. Поскольку алгоритм декодирования отсутствует, может показаться, что содержимое файла паролей бесполезно для злоумышленника, однако при наличии компьютера с мощным процессором возможно подобрать пароль. Взломщики используют для этой цели словари, включающие слова многих языков, имена собственные и слова, в которых символы следуют в обратном порядке. Имея файл паролей, хакер может закодировать каждое слово из словаря и сравнить с зашифрованными паролями. Если зашифрованное слово из словаря совпадает с записью в файле, это слово является паролем для регистрации в системе.
Таким образом, становится ясно, что наилучшим паролем является случайный набор букв, цифр и знаков пунктуации. Вероятность того, что он встретится в словаре, используемом хакером, предельно мала. Однако подобные случайные наборы трудны для запоминания, поэтому некоторые пользователи выбирают в качестве пароля общеупотребительные слово. Несмотря на то что такой пароль легко запоминается, его также легко подобрать. Поэтому вы, как системный администратор, должны научить своих пользователей правильно выбирать пароли. Процедура создания пароля состоит из двух этапов: генерации базовой последовательности символов и ее модификации.
Для создания базовой последовательности надо выбрать два несвязанные между собой слова и объединить их. В результате получится слово, отсутствующее в любом словаре, например bunpen. Можно также придумать легко запоминающуюся фразу и использовать в качестве базовой последовательность, составленную из первых букв слов, входящих в фразу. Например, из фразы "yesterday I went to the dentist" можно составить слово yiwttd. Такой набор букв легко запомнить, и в то же время он отсутствует в словарях. (В данном примере я использовал последовательность из шести символов. Дело в том, что в результате модификации длина пароля увеличится, а в большинстве систем длина пароля не должна превышать восемь символов.) Несмотря на то, что сгенерированные последовательности символов отсутствуют в словарях, не исключено, что хакер использует описанный алгоритм для расширения своего словаря. Поэтому созданная вами базовая последовательность должна быть модифицирована. Ниже приведены возможные варианты такой модификации.