Компания Микрософт расширяет программу поддержки и обучения клиентов, использующих как Windows, так Linux платформы, и ищущих оптимальное решение по их взаимодействию. В рамках этой программы Микрософт покупает у Novell сертификаты поддержки линейки SUSE Linux на общую сумму 100 миллионов долларов. В дальнейшем они будут распределены между корпоративными клиентами, совместно использующими продукты Microsoft Windows Server и SUSE Linux Enterprise Server. Соглашение вступит в силу с ноября этого года. Новое соглашение подтверждает, что пятилетняя сделка, заключенная в 2006 году, когда Novell и Микрософт начали сотрудничество в области обеспечения совместной работы двух платформ, все еще в силе. По ее условиям клиенты Novell получили защиту от патентных претензий со стороны Микрософт, а последняя должна была приобрести пакет сертификатов поддержки Linux на сумму 240 миллионов долларов. За пошедшие 18 месяцев Novell уже получила 157 миллионов, что составляет 65% от общей суммы сделки. Несмотря на кажущуюся
Robert Watson опубликовал отчёт об изменениях, проведённых проектом TrustedBSD, которые будут включены в релиз FreeBSD 6.0. Наиболее интересные пункты: Модуль mac_chkexec, который предназначен для проверки контрольных сумм запускаемых программ и модулей ядра (Christian Peron); Изменения в POSIX семафорах и System V IPC для увеличения возможностей по контролю и управлению доступом; Изменения для управления доступом к функциям сокетов: accept, pool и других; Дополнительные проверки атрибутов пользователей для контроля изменений в MAC Framework (Samy Al Bahra). Обновление FreeBSD части SEBSD (Andrew Reisse и Scott Long) Начались работы по внедрению системы Audit/BSM во FreeBSD.
Christian S.J. Peron предложил провести тестирование mac_chkexec патча для FreeBSD -CURRENT и RELENG_5, дающего возможность защититься от подмены или модификации запускных файлов в системе. В случае если для запущенной программы, библиотеки, скрипта или модуля ядра не совпадает контрольная сумма, приложение завершается с ошибкой. mac_chkexec может работать в режиме самообучения (автогенерация хеша для ранее не запускавшихся программ) и режим выполнения только авторизированных запускных файлов.
В качестве базового компилятора в OpenBSD-current теперь будет использоваться gcc 3.3.5, что касается используемого до этого gcc 2.95.3, то он оставлен в дереве исходных текстов (/usr/src/gnu/egcs/gcc) до полной адаптации системы под gcc 3. Другие новости и статьи касающиеся OpenBSD: В пакетный фильтр PF добавлена опция "set skip on {ifspec}", для указания списка интерфейсов на которых не должна производится фильтрация; Рассуждение и примеры настроек OpenSSH для защиты от автоматизированного подбора паролей; "A bit about the NX bit; Virus Protection Woes" - пояснение принципов реализации NX-bit (аппаратное запрещение выполнения кода в страницах памяти не помещенных как исполняемые) и требований по поддержки этой технологии со стороны операционной системы; "NetBoot OS X from a OpenBSD Server" (часть 1, часть 2) - описан процесс загрузки Mac OS X по сети с OpenBSD сервера.
В статье "Chrooting Apache and PHP in BSD Howto" по шагам разбирается процесс помещения apache+mod_php+mysql в chroot окружение. Ниже универсальные команды для автоматизации ручной работы по перемещению нужных библиотек в chroot: ldd /usr/local/libexec/apache/* | grep '=>' | awk {' print $3 '} | \ grep '/usr/lib' | xargs -J % install -C % CHROOT/usr/lib/ ldd /usr/local/libexec/apache/* | grep '=>' | awk {' print $3 '} | \ grep '/usr/local/lib' | xargs -J % install -C % CHROOT/usr/local/lib/ ldd /usr/local/libexec/apache/* | grep '=>' | awk {' print $3 '} | \ grep '/usr/X11R6/lib' | xargs -J % install -C % CHROOT/usr/X11R6/lib/
После апгрейда с apache 1.3.27 на 1.3.28 столкнулся с проблемой появления невероятного количества zombie (defunct) процессов. Оказалось что в apache CVS проблема уже исправлена. Проявляется при использовании suexec. Патч ниже. --- apache-1.3/src/main/alloc.c 2003/06/20 15:05:40 1.145 +++ apache-1.3/src/main/alloc.c 2003/09/02 18:17:05 1.146 @@ -2859,12 +2859,10 @@ if ((p->kill_how == kill_after_timeout) || (p->kill_how == kill_only_once)) { /* Subprocess may be dead already. Only need the timeout if not. */ - if (ap_os_kill(p->pid, SIGTERM) == -1) { - p->kill_how = kill_never; - } - else { - need_timeout = 1; - } + if ( (ap_os_kill(p->pid, SIGTERM) == -1) && (errno == ESRCH) ) + p->kill_how = kill_never; + else + need_timeout = 1; } else if (p->kill_how == kill_always) { kill(p->pid, SIGKILL);
mod_diffprivs - Apache модуль обеспечивающий выполнение CGI скриптов под uid/gid пользователя без применения suexec. Также позволяет запускать скрипты в chroot. Для изменения uid используется модуль для Linux ядра ERUP, позволяющий делегировать определенным непривилегированным пользователям возможность выполнения привилегированных операций (устанавливать квоты, выполнять вызов chroot или изменять uid/gid), т.е. отпадает необходимость выполнения дополнительной suid программы-враппера, подобной suexec.
В серии статей "Ten Security Checks for PHP" кратко рассматриваются 10 наиболее часто совершаемых PHP программистами ошибок, приводящих к проблемам с безопасностью скриптов. Кратко, пересказ: Избегайте использования переменных сформированных на основании данных пользователя в функции включения файла (include, require) или доступа к файлу (readfile, fopen, file). Например: include($lib_dir . "functions.inc"); include($page); переменные $lib_dir и $page перед этим нужно проверить либо на предмет наличия запрещенных символов, либо сопоставить с заранее определенным массивом допустимых значений: $valid_pages = array( "apage.php" => "", "another.php" => "", "more.php" => ""); if (!isset($valid_pages[$page])) { die("Invalid request"); } if (!(eregi("^[a-z_./]*$", $page) && !eregi("\\.\\.", $page))) { die("Invalid request"); } Необходимо экранировать опасные символы (\ и ') в переменных участвующих в SQL запросах.Например, злоумышленник может передать переменную вида "password=a%27+OR+1%3Di%271"
В статье "Booting FreeBSD 5.0 on a Sun machine over the network" была поставлена задача показать как организовать бездисковую загрузку FreeBSD 5.0 по сети (для проверки готовности новой версии FreeBSD, тестов, без необходимости установки на диск) на аппаратном окружении имеющем не i386 архитектуру (Sun Ultra 2). Краткое излодение статьи: Настройка DHCP: host divine { hardware ethernet 08:00:20:89:cf:f3; option host-name "divine.local.non-standard.net"; fixed-address 192.168.1.5; always-reply-rfc1048 on; filename "loader.nfs"; next-server 192.168.1.3; option root-path "192.168.1.3:/storage3/sparc64-nfsroot"; } Активация tftp в inetd.conf: tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot Качаем в /tftpboot образ loader.nfs c http://non-standard.net/freebsd/loader.nfs chown -R nobody:nobody /tftpboot chmod -R 755 /tftpboot Копируем FreeBSD 5.0 на сервер: ISO FreeBSD 5.0 можно взять в ftp://ftp.freebsd.org/pub/FreeBSD/ISO-IMAGES-sparc64/ vnconfig vn0
Статья "OpenBSD, Cisco, and Tacacs+" по шагам рассказывает как на OpenBSD сервере настроить Tacacs+ из стандартных портов для аутентификации и авторизации пользователей на сервере доступа Cisco. Ниже краткий пересказ статьи: Собираем Tacacs+ из портов: cd ports/net/tacacs+ make install mkdir /usr/local/tac Конфигурируем Tacacs+, /usr/local/tac/tac.conf: user = myname { global = cleartext пароль_в_открытом_виде } user = $enab15$ { login = cleartext enable_пароль_для_cisco } Для использования шифрованных паролей, нужно писать: login = des encryptedPassword Для группировки пользователей: user = skin_pup { login = des зашифрованный_пароль member = privs } group = privs { enable 15 serive = exec { priv-lvl = 1 } } Убедимся что в /etc/services есть строка: tacacs 49/tcp Конфигурируем Cisco: enable secret local_enable_password aaa new-model tacacs-server host XX.XX.XX.XX aaa authentication login default tacacs+ aaa authentication login default tacacs+ enable aaa