Безопасность это первая и основная функция системного администратора. Хотя все многопользовательские системы 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 сервисов и suid/sgid исполняемых файлов.
Защита учЈтных записей пользователей.
Защита файла паролей.
Защита ядра, raw устройств и файловых систем.
Быстрое обнаружение несанкционированных изменений в системе.
Паранойя.
В следующем разделе этой главы эти темы изложены более подробно.
Пред. | Начало | След. |
Безопасность | Уровень выше | Защита FreeBSD |
Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.