Mark Silinio <silinio(at)mail.ru>
последнее обновление 26/07/06
Это перевод нескольких разделов советов с сайта OpenBSD101.com, посвящённого операционной системе OpenBSD. Большая часть советов применительна к последней на сегодняшней день версии OpenBSD - 3.9 и вполне пригодится её начинающим пользователям. Содержание:Ядро и применение патчейВведениеНаложения патчей применимы к следующим двум вещам:
Новые патчи объявляются в списке рассылки security-announce@OpenBSD.org. Список патчей также может быть найден на http://www.openbsd.org/errata.html. Скачивание исходного кодаПрежде чем применять какие-либо патчи как к программам, так и к ядру системы, Вам необходим их исходный код.
# mv src.tar.gz /usr/src # cd /usr/src # tar -xvzf src.tar.gzи исходный код ядра: # mv sys.tar.gz /usr/src # cd /usr/src # tar -xvzf sys.tar.gz Скачивание патчейИдём дальше:
/usr/src/patches , скопируйте туда 3.9.tar.gz и распакуйте:
# mkdir /usr/src/patches # mv 3.9.tar.gz /usr/src/patches # cd /usr/src/patches # tar -xvzf 3.9.tar.gzСкопируйте все патчи из папок /usr/src/patches/3.9/i386 и /usr/src/patches/3.9/common в /usr/src . Весь процесс применения патчей происходит в папке /usr/src . Каталог i386 обычно не содержит патчей.
Наложение патчей на программыДля начала мы должны определить, какой тип патчей мы имеем.Используем команду head , чтобы просмотреть заголовок патча:
# head 001_st.patch Apply by doing: cd /usr/src patch -p0 < 001_st.patch Rebuild your kernel. Index: sys/scsi/st.c ========================= RCS file: /cvs/src/sys/scsi/st.c,v retrieving revision 1.41По комментарию Rebuild your kernel определяем, что это патч для ядра. Далее представлен патч, исправляющий локальную уязвимость в Apache (для OpenBSD 3.6). Давайте взглянем на заголовок патча: # head -n 17 009_httpd.patch Apply by doing: cd /usr/src patch -p0 < 009_httpd.patch And then rebuild and install httpd and its modules: cd usr.sbin/httpd make -f Makefile.bsd-wrapper obj make -f Makefile.bsd-wrapper cleandir make -f Makefile.bsd-wrapper depend make -f Makefile.bsd-wrapper make -f Makefile.bsd-wrapper install If httpd had been started, you might want to run apachectl stop before running "make install", and apachectl start afterwards.В случае следования написанным в начале патча инструкциям у вас не должно возникнуть проблем с его применением и перекомпиляцией программы. Наложение патчей на ядроПрименение патчей ядра несколько отличается от применения патчей на программы - сначала вы должны наложить все патчи на ядро и после его перекомпилировать.Посмотрим с помощью head заголовок патча:
# head 001_st.patch Apply by doing: cd /usr/src patch -p0 < 001_st.patch Rebuild your kernel. Index: sys/scsi/st.c ========================= RCS file: /cvs/src/sys/scsi/st.c,v retrieving revision 1.41Видим Rebuild your kernel, значит это то, что нам нужно. Применив последовательно все патчи, переходим к следующему пункту... Перекомпиляция ядра после наложения патчейТак, не торопимся и делаем резервную копию текущего ядра:# cp /bsd /bsd.oldКонфигурируем ядро: # cd /usr/src/sys/arch/i386/conf/ # config GENERIC Don't forget to run "make depend"Теперь компилируем и устанавливаем новое ядро: # cd /usr/src/sys/arch/i386/compile/GENERIC/ # make clean && make depend && make && make installПросто перезагрузитесь, чтобы проверить новое ядро. Загрузка старого ядраЕсли у вас возникли проблемы при загрузке с новым ядром, тогда попробуйте загрузиться со старым ядром.Во время загрузки, когда на экране будет нечто подобное: Using drive 0, partition 3. Loading... probing : pc0 com0 apm mem[634K 319M a20=on] disk: fd0 hd0+ >> OpenBSD/i386 BOOT 2.06 boot>наберите название вашего старого ядра: Using drive 0, partition 3. Loading... probing : pc0 com0 apm mem[634K 319M a20=on] disk: fd0 hd0+ >> OpenBSD/i386 BOOT 2.06 boot> bsd.old БезопасностьУровни безопасностиУровни безопасности позволяют указать ядру требуемую степерь безопасности системы. Всего существует четыре уровня безопасности: -1, 0, 1, 2. Уровень 2 является высшем уровнем безопасности. Уровни безопасности указываются в файле/etc/rc.securelevel .Вкратце про каждый уровень:
По окончании процесса загрузки системы вы можете узнать текущий уровень безопасности системы набрав в строке: # sysctl kern.securelevelВы можете повысить уровень безопасности командой: # sysctl -w kern.securelevel=2И вы не сможете изменить уровень безопасности с более высокого на низкий,- только после перезагрузки. Использование флагов ядраВыставление флагов ядра похоже на выставление прав доступа файлам, но лишь с тем различием, что некоторые из них даже пользователь root может поменять лишь определённом(низком) уровне безопасности - или загрузившись в однопользовательском режиме.Наиболее используемые флаги:
Будьте внимательны при использовании этих флагов,- неумелое использование может привести вашу систему в нерабочее состояние. Посмотрим, выставлен ли флаг у файла: #ls -lo /bsd -rw-r--r-- 1 root wheel schg 5358488 Mar 30 11:47 /bsdКак мы видим, выставлен флаг schg .Ниже представлено два популярных примера применения флагов: Запретим изменение ядра системы: # chflags schg /bsdЗапретим изменение исполняемых файлов в /bin :
# chflags -R schg /binМожно поставить sappnd флаг на history файл пользователя root. Если злоумышленник проникнет в систему, то sappnd не позволит ему скрыть своих действий.Также выставление флага sappnd на history файл пользователя не позволит злоумышленникам использовать старый трюк с напралением history в устройство /dev/null с помощью мягкой ссылки.
Флаги ядра для параноиковВот такие рекомендации для OpenBSD сервера (только после окончательной настройки!):# chflags schg /bsd # chflags schg /etc/changelist # chflags schg /etc/daily # chflags schg /etc/inetd.conf # chflags schg /etc/netstart # chflags schg /etc/pf.conf # chflags schg /etc/rc # chflags schg /etc/rc.conf # chflags schg /etc/rc.local # chflags schg /etc/rc.securelevel # chflags schg /etc/rc.shutdown # chflags schg /etc/security # chflags schg /etc/mtree/special # chflags -R schg /bin # chflags -R schg /sbin # chflags -R schg /usr/bin # chflags -R schg /usr/libexec # chflags -R schg /usr/sbin Шифрование файла подкачкиШифрование файла подкачки может предотвратить опасность раскрытия важных данных(таких, как, например, ключи шифрования) локальными пользователями.По умолчанию OpenBSD 3.9 шифрует файл подкачки, для того же, чтобы включить эту функцию для более старых версий, необходимо:
Монтирование разделовПравильные параметры монтирования файловых систем способны весьма помочь в плане усиления общей безопасность системы. Файл/etc/fstab контролирует, как будут монтироваться файловые системы на этапе загрузки.Пара рекомендуемых конфигураций:
использование rm с опцией -PПри использовании командыrm с опцией -P содержимое файла перезаписывается 3 раза, прежде чем удалить его. В Linux подобный функционал обеспечивает команда shred .Использование: # rm -P filenameМожно также создать псевдоним для команды rm -R в оболочке bash:
# echo "alias rm='rm -P' " >> .bash_profile Увеличение минимальной длины пароляПо умолчанию минимальная длина пароля в системе OpenBSD равна шести символам.Чтобы увеличить её до 10-ти символов, добавьте следующую строку под классом default в файле /etc/login.conf :
:minpasswordlen=10:\В отличие от FreeBSD /etc/login.conf не должен быть сконвертирован после в файл БД с помощью cap_mkdb .
Обновление с помощью CVSupВведениеПрограмма CVSup позволяет вам скачать и обновить файлы исходных кодов OpenBSD. Затем вы можете перекомпилировать ваше ядро, базовую систему и установленные в системе порты.Итак, вам потребуется:
Установка CVSupСамый простой способ установки CVSup - это воспользоваться командойpkg_add следующим образом:
# pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/3.9/packages/i386/cvsup-16.1h-no_x11.tgz Конфигурационные файлы CVSupСоздадим пару конфигурационных файлов для CVSup:
# Defaults that apply to all the collections *default release=cvs *default delete use-rel-suffix *default umask=002 *default host=anoncvs3.usa.openbsd.org *default base=/usr *default prefix=/usr *default tag=OPENBSD_3_9 # If your network link is a T1 or faster, comment out the following line. # *default compress OpenBSD-ports #OpenBSD-all #OpenBSD-src #OpenBSD-www #OpenBSD-x11 #OpenBSD-xf4Вместо anoncvs3.usa.openbsd.org укажите ближайший к Вам сервер.cvsup-file-src: # Defaults that apply to all the collections *default release=cvs *default delete use-rel-suffix *default umask=002 *default host=anoncvs3.usa.openbsd.org *default base=/usr *default prefix=/usr *default tag=OPENBSD_3_9 # If your network link is a T1 or faster, comment out the following line. # *default compress #OpenBSD-ports #OpenBSD-all OpenBSD-src #OpenBSD-www #OpenBSD-x11 #OpenBSD-xf4Не забудьте также заменить anoncvs3.usa.openbsd.org .
Запуск CVSupЗапустим CVSup с использованием этих конфигурационных файлов,-Обновим дерево портов с cvsup-file-ports :
# cvsup -g -L 2 cvsup-file-ports...тут вам скачается около 78Мб портов. Обновим дерево исходных текстов с cvsup-file-src :
# cvsup -g -L 2 cvsup-file-src...на сей раз вам бухнется 570Мб. Проверка ваших портов(ports)После скачивания свежего дерева портов вам может быть необходимо узнать, требуется ли обновление уже установленных в системе портов.Это делается с помощью скрипта out-of-date , находящемся в каталоге /usr/ports/infrastructure/build .Так, приведённый ниже вывод работы скрипта указывает на отсутствие необходимости обновления каких-либо портов: # cd /usr/ports/infrastructure/build/ # ./out-of-date Collecting installed packages Collecting port versions: complete Collecting port signatures: complete Outdated ports: #Противоположный пример: # cd /usr/ports/infrastructure/build/ # ./out-of-date Collecting installed packages Collecting port versions: complete Collecting port signatures: complete Outdated ports: www/mozilla-firefox # 1.5.0.1 -> 1.5.0.3 #Вывод указывает на необходимость обновления программы Firefox. Обновление портовВыше мы искали порты, требующие обновления с помощью специального скрипта, теперь же настала пора их собственно обновить. Вам потребуется наличие исходных файлов программы в папке/usr/ports/distfiles , либо соединение с Интернет. Далее необходимо:
Компиляция и установка ядраПорядок таков:
Перекомпиляция системыПосле загрузки нового ядра можно приступить к обновлению/пересборке системы. Убедитесь, что у Вас существует директория/usr/obj , либо создайте её в случае отсутствия.Пересоберите систему: # cd /usr/src # find . -type l -name obj | xargs rm # make cleandir # rm -rf /usr/obj/* # make obj # cd /usr/src/etc # make DESTDIR=/ distrib-dirs # cd /usr/src # make buildВыполнение make build занимает около часа на процессоре с частотой 2.6GHz, поэтому будьте терпеливы.
|
<- Назад |
|