Stephanie: непотопляемая OpenBSDXakep, номер #047, стр. 047-074-1 Делаем систему максимально защищенной! Will Barrent (barrent@hotbox.ru) Итак, ты выбрал OpenBSD в качестве начинки для своего сервера, как одну из самых безопасных операционок. Однако если ты собираешься раздавать на своей машине шеллы, неплохо бы принять кое-какие дополнительные меры предосторожности, дабы усложнить жизнь потенциальным взломщикам. В этом тебе и поможет пакет Stephanie, о котором пойдет речь в этой статье. OpenBSD - свободно распространяемая операционная система, основанная на 4.4BSD. Главной целью проекта является максимальная безопасность. Проект был основан в 1994 году. Текущая версия OpenBSD 3.1. Домашняя страница проекта: http://www.openbsd.org Сейчас существует множество патчей для различных unix-like систем, направленных на повышение их безопасности. В основном работа таких патчей сводится к запрету пользователям делать то, что делать им совсем необязательно (например, смотреть список чужих процессов), наложению ограничений на функциональность системы для "недоверенных пользователей" и т.д. Иногда это может помочь предотвратить взлом с использованием еще неизвестных дыр. Для OpenBSD единственным таким патчем является Stephanie. Stephanie - набор патчей и утилит для OpenBSD, созданных специально для использования системы в "агрессивных" условиях, например, при предоставлении shell-аккаунтов. Пакет основан на TPE-патче (Trusted Path Execution) для OpenBSD 2.4, опубликованном в электронном хакерском журнале Phrack (http://www.phrack.org/phrack/54/P54-06). Домашняя страница проекта: http://www.innu.org/~brian/Stephanie. Установка Переходим от слов к делу. Думаю, что с основами администрирования OpenBSD ты уже знаком, ядро пересобирать умеешь, где какие конфиги лежат, тоже знаешь. Рассмотрим установку Stephanie на "чистый" релиз OpenBSD 3.1. Для начала скачиваем и распаковываем пакет: # cd ~ # ftp http://www.innu.org/~brian/Stephanie/dist/Stephanie-3.1.tar.gz # tar -zxf Stephanie-3.1.tar.gz Копируем файлы, которые нам потребуются для сборки ядра и необходимых утилит, в соответствующие места: # cd Stephanie-3.1 # cp ke/* /sys/ke/ # cp sys/* /sys/sys/ # cp sys/* /usr/include/sys/ # cp *.patch /usr/src/ Патчим исходники системы: # cd /usr/src # patch -p0 < Stephanie-3.1.patch # patch -p0 < ld.patch Теперь нужно обновить таблицу системных вызовов, так как она была изменена после приложения патча: # cd /sys/ke # make Скопируем новые заголовочные файлы: # cp /sys/syscall.h /usr/include/sys/ # cp /sys/syscallargs.h /usr/include/sys/ # cp /sys/sysctl.h /usr/include/sys/ Мы также пропатчили программку ld.so, которая отвечает за динамическую линковку библиотек при запуске приложений, чтобы добавить к ней дополнительные возможности по ограничению махинаций с переменными окружения, например - подмена libc через LD_PRELOAD. Поэтому пересоберем и ее: # cd /usr/src/gnu/usr.bin/ld/rtld # make depend && make && make install Теперь соберем утилиты, которыми мы будем рулить новой системой: # cd ~/Stephanie-3.1 # cd aclctl && make && make install # cd ../k5ctl && make && make install |


















































































































