Безопасность это первая и основная функция системного администратора. Хотя все
многопользовательские системы BSD UNIX® уже снабжены
некоторой защитой, работа по созданию и поддержке дополнительных механизмов безопасности,
обеспечивающих защищенную работу пользователей, это одна из самых серьезных задач
системного администратора. Компьютеры безопасны настолько, насколько вы сделаете их
безопасными и требования безопасности всегда находятся в противоречии с удобством работы
пользователей. Системы UNIX способны одновременно работать
с огромным количеством процессов и многие из этих процессов серверные -- это означает,
что с ними могут взаимодействовать внешние программы. Сегодня десктопы заменили
мини-компьютеры и мэйнфрэймы, и поскольку компьютеры в наши дни подключены к сети
интернет, безопасность важна как никогда.
Наилучшая реализация системы безопасности представима в виде ``послойной'' системы.
Вообще говоря все, что нужно сделать, это создать столько слоев безопасности, сколько
необходимо и затем внимательно следить за вторжениями в систему. Не переусердствуйте в
настройке системы безопасности, иначе она сделает невозможной обнаружение вторжений,
являющееся одним из наиболее важных аспектов механизма безопасности. Например, нет
большого смысла в установке флага schg (chflags(1)) на каждый
исполняемый файл системы, поскольку хотя таким способом можно временно защитить
исполняемые файлы, это помешает обнаружению факта взлома системы.
Безопасность системы также относится к различным формам атак, имеющих своей целью
вызвать крах системы, или сделать систему недоступной другим способом, но не пытающихся
получить доступ к учетной записи root (``break root''). Угрозы
безопасности могут быть поделены на несколько категорий:
-
Отказ в обслуживании (Denial of service, DoS).
-
Взлом пользовательских учетных записей.
-
Взлом учетной записи root через доступные сервисы.
-
Взлом учетной записи root через учетные записи пользователей.
-
Создание backdoor.
Атака ``отказ в обслуживании'' отбирает у машины необходимые ресурсы. Обычно DoS атаки
используют грубую силу, чтобы попытаться обрушить систему или сделать ее недоступной
другим способом, превысив лимиты ее сервисов или сетевого стека. Некоторые DoS атаки
пытаются использовать ошибки в сетевом стеке для обрушения системы одним пакетом. Эту
проблему можно решить только исправив ядро системы. Атаки зачастую можно предотвратить
правильной установкой параметров, ограничивающих нагрузку на систему в неблагоприятных
условиях. С атаками, использующими грубую силу, бороться сложно. Например, атака с
использованием пакетов с поддельными адресами, которую почти невозможно остановить, может
быстро отключить вашу систему от интернет. Возможно, она не приведет к отказу системы, но
сможет переполнить соединение с интернет.
Взлом учетной записи пользователя обычно встречается чаще, чем DoS атаки. Многие
системные администраторы все еще используют стандартные сервисы telnetd, rlogind и ftpd на своих серверах. Эти сервисы по умолчанию не работают с
зашифрованными соединениям. В результате при среднем количестве пользователей пароль
одного или нескольких пользователей, входящих в систему через внешнее соединение (это
обычный и наиболее удобный способ входа в систему), будет перехвачен. Внимательный
системный администратор должен анализировать логи удаленного доступа на предмет
подозрительных адресов пользователей даже в случае успешного входа.
Кто-то может предположить, что атакующий при наличии доступа к учетной записи
пользователя может взломать учетную запись root. Однако,
реальность такова, что в хорошо защищенной и поддерживаемой системе доступ к учетной
записи пользователя не обязательно даст атакующему доступ к root. Разница между доступом к обычной учетной записи и к root важна, поскольку без доступа к root
атакующий обычно не способен скрыть свои действия, и в худшем случае сможет лишь
испортить файлы пользователя или вызвать крах системы. Взлом пользовательских учетных
записей встречается очень часто, поскольку пользователи заботятся о безопасности так, как
системные администраторы.
Системные администраторы должны помнить, что существует множество потенциальных
способов взлома учетной записи root. Атакующий может узнать
пароль root, найти ошибку в сервисе, работающем с привилегиями
и взломать учетную запись root через сетевое соединение с этим
сервисом, или узнать об ошибке в suid-root программе, позволяющей атакующему взлом root с помощью взломанной учетной записи пользователя. Если
атакующий нашел способ взлома root, ему может не понадобиться
установка backdoor. Многие из обнаруженных и закрытых на сегодняшний день брешей в
системе, позволяющие взлом root, требуют от атакующего
серьезной работы по заметанию следов, поэтому большинство атакующих устанавливают
backdoor. Backdoor предоставляет атакующему простой способ восстановления доступа к
системе с привилегиями root, но также дает системному
администратору удобный способ обнаружения вторжения. Устранение возможности установки
backdoor возможно повредит безопасности системы, поскольку это не устранит брешь,
позволившую проникнуть в систему.
Меры безопасности всегда должны быть реализованы многоуровнево, и могут быть
классифицированы следующим образом:
-
Защита root и служебных учетных записей.
-
Защита root -- работающих под root сервисов и suid/sgid
исполняемых файлов.
-
Защита учетных записей пользователей.
-
Защита файла паролей.
-
Защита ядра, raw устройств и файловых систем.
-
Быстрое обнаружение несанкционированных изменений в системе.
-
Паранойя.
В следующем разделе этой главы эти темы изложены более подробно.