Gentoo Linux сборник статей



Pdf просмотр
страница52/79
Дата14.11.2016
Размер5.55 Mb.
Просмотров11590
Скачиваний1
1   ...   48   49   50   51   52   53   54   55   ...   79
Анонимный доступ: Хорошо, мы добились того, что теперь при каждом запросе к subversion будет спрашиваться пароль, однако вам может захотеться, чтобы анонимные пользователи могли читать ваш труд, а то зачем все это надо? В таком случае директиву Require valid-user стоит поместить в блок
указав в качестве параметра список операций, которые, по вашему мнению, всякие подозрительные личности без особой опасности могут производить на вашем репозитории:
[...]
AuthType Basic
[...]
# Для любых операций, кроме нижеперечисленных, спрашивать пароль.

Require valid-user

В любом случае, для правильной работы subversion клиента с ssl в дефолтный
612

Gentoo и системы контроля версий.
ssl-хост
XX_mod_ssl_default-vhost.conf
, либо в
40_mod_ssl.conf
, необходимо
добавить следующую строчку ( подробности - тут
)
BrowserMatch "SVN" redirect-carefully
Упомянутый выше файл
/var/svn/conf/svnusers и содержит имена и зашифрованные пароли пользователей.
Чтобы создать этот файл/добавить в него новую запись воспользуйтесь коммандой htpasswd2.
Для создания файла с первым пользователем:
htpasswd2 -c /var/svn/conf/svnusers <имя первого пользователя> и для добавления последующих:
htpasswd2 /var/svn/conf/svnusers <имя последующего пользователя>
Основанная на PAM
Если управление аж двумя различными файлами с паролями (системного и
Апачевого) для вас слишком утомительно, то специально для вас был придуман модуль mod_auth_pam, который использует PAM для аутентификации пользователей. Если у вас нет еще этого модуля - emerge mod_auth_pam
Предупреждение: Да будет вам известно, что mod_auth_pam представляет из себя потенциальную уязвимость: системный пользователь 'apache' (или тот под которым запущен ваш сервер) получит доступ на чтение к /etc/shadow. Это означает, что в случае взлома Апача, злоумышленник получит доступ к файлу /etc/shadow, и сможет натравить на него программу по взлому паролей (дальнейшая судьба системы будет зависить от того, заметите ли вы взлом и примите меры раньше, чем злоумышленник получит пароль рута).
После сборки mod_auth_pam необходимо внести несколько изменений
(суперпользователем) в ваши конфигурационные файлы. Для начала надо выдать пользователю 'apache' доступ на чтение
/etc/shadow
:
1. groupadd shadow
2. gpasswd -a apache shadow
3. chgrp shadow /etc/shadow
4. chmod g+r /etc/shadow
Предупреждение: Если у вас есть веб-сервер на котором работают посторонние люди, и он работает под тем же пользователем 'apache', то эти самые посторонние люди без всякого взлома смогут прочесть ваш /etc/shadow, и это уже действительно опасно!.
После чего внесите следующие изменения в
/etc/apache2/modules.d/47_mod_dav_svn.conf
: Вовнутрь блока
впишите:
Файл: /etc/apache2/modules.d/47_mod_dav_svn.conf

AuthPAM_Enabled on
AuthType Basic
AuthName "Subversion Repository"
SSLRequireSSL
Require group subversion

613

Gentoo и системы контроля версий.
ВАЖНО: В отличие от стандартной ('basic') аутентификации, описанной выше, убедитесь что вы не указали директивы
AuthUserFile /var/svn/conf/svnusers
Впрочем существует возможность оставить стандартную аутентификацию как запасную на случай если PAM модуль по каким-то причинам не сработает. Для этого обратите внимание на файл
/etc/apache2/modules.d/10_mod_auth_pam.conf
ВАЖНО: Как уже упоминалось выше базовый тип встроенной аутентификации
(AuthType Basic) передает пароли открытым текстом и для обеспечения минимальной безопасности необходимо ограничить аутентификацию только по ссл, при помощи директивы SSLRequireSSL
Ну а для того, чтобы все, в пределах этого параграфа, проделанное имело смысл, необходимо включить mod_auth_pam, добавив -D AUTH_PAM в APACHE2_OPTS в
/etc/conf.d/apache2
Active Directory/LDAP
Для того, чтобы настроить авторизацию в SVN через LDAP или Active Directory, следуйте следующим инструкциям.
В /etc/conf.d/apache2 добавляем -D LDAP и -D AUTH_LDAP
APACHE2_OPTS="-D SSL -D PHP4 -D DAV -D DAV_FS -D SVN -D DAV_SVN -D LDAP -D
AUTH_LDAP"
вот пример моей рабочей конфигурации Apache для авторизации через Active
Directory: (нужно изменить путь к ldap на тот, что вы хотите использовать)


DAV svn
SVNPath /var/svn/repo
AuthType Basic
Options Indexes FollowSymLinks
AllowOverride None order allow,deny allow from all
AuthName "Authorize Me"
AuthLDAPURL
ldap://domain.com:389/OU=IT,OU=MainOffice,OU=Locations,OU=Corporate,DC=domain name,DC=com?samAccountName?sub?(objectCategory=person)
AuthLDAPBindDN "CN=webuser,OU=Resources,OU=Corporate,OU=AOM,DC=domain,DC=com"
AuthLDAPBindPassword xxxxxxxxxxx
Require valid-user


Для того, чтобы разрешить доступ только ограниченному списку пользователей:

AuthName "user permissions"
require user larry bill sam

614

Gentoo и системы контроля версий.
Для того, чтобы разрешить доступ только ограниченному списку групп:

AuthName "group permissions"
require group cn=Group,cn=Users,dc=domainname,dc=com

В случае возникновения проблем с запросами к LDAP, запустите следующую команду на вашем Windows-сервере: ldifde -f mydomain.ldif -s 127.0.0.1
Она сбросит все содержимое LDAP в указанный файл.
Авторизация
Если обычной авторизации недостаточно, можно расширить ее списками доступа.
Имеется в виду что базовая аутентификация уже настроена и мы будем раздавать или запрещать доступ отдельным пользователям. Управлять списком можно через специальный файл,
SVNAccessFile
:
Файл: SVNAccessFile
AuthzSVNAccessFile /var/svn/conf/svnpolicy
Директива, указанная выше включает возможность создания списков доступа
(ACL) для работы с репозиториями subversion через apache.
Правила авторизации для определенного репозитория задаются примерно так:
Файл: SVNAccessFile
[test:/trunk]
testuser1 = rw testuser2 =
* = r
Описанное выше правило разрешает производить пользователю testuser1 запись
(commit, copy и т.д.) в репозиторий test (папка /trunk). Пользователь же testuser2
не имеет доступа к репозиторию. Остальные пользователи (маска *) имеют доступ только для чтения (могут производить checkout).
Для того, чтобы apache был в курсе наших опытов, нам нужно подредактировать
/
etc/conf.d/apache2
:
Файл: /etc/conf.d/apache2
APACHE2_OPTS="... -D SVN_AUTHZ"
И напоследок, несколько замечаний по работе с правилами доступа: будьте осторожны с пробелами - внутри скобок не должно быть ни одного; при использовании только одного репозитория, его название можно не указывать, достаточно указать только папку.
Наводим марафет
В последней ревизии репозитория можно полазать в любимом браузере.
Удовольствия это много недоставит - выглядит все это дело не очень красиво.
615

Gentoo и системы контроля версий.
Чтобы это исправить, добавьте директиву
SVNIndexXSLT /svnindex.xsl внутри тега и укажите свой xsl-файл. Если же с xml вы знакомы недостаточно хорошо, попробуйте xsl и css -файлы, входящие в стандартный пакет subversion в папке
/usr/share/doc/subversion-<версия_пакета>
Некоторые браузеры (например, Opera), вместо нормального отображения XSL- файла, могут показывать пустую страницу. Чтобы этого избежать, можно пропустить XSL через xsltproc, чтобы он преобразовал это дело в обычный html.
Для этого необходимо установить пакет xsltproc: emerge libxslt
И добавить следующее в файл настроек apache:
BrowserMatch "Opera" xsltfilter
ExtFilterDefine xslt mode=output enableenv=xsltfilter \ intype=text/xml outtype=text/html \ cmd="/usr/bin/xsltproc /var/www/svnindex.xsl -"
И добавить следующее внутрь тега :
SetOutputFilter xslt
AddDefaultCharset utf-8
Полезные ссылки

Книга по Subversion

Документация по mod_auth_ldap
616

Руководство по udev в Gentoo
Руководство по udev в Gentoo
Ссылка на оригинал:
http://www.gentoo.org/doc/ru/udev-guide.xml
C версии: 1.0
1. Что такое udev?
Каталог /dev
Когда пользователи Linux разговаривают о начинке своих систем среди людей, полагающих, что Linux — это какой-то вид вируса или марка кофе, пользуясь оборотами вроде «слэш дев слэш что—нибудь» (/dev/foo), на них наверняка смотрят косо. Но для счастливчиков (естественно, включая вас),
/dev/hda1 — просто быстрый способ упоминания первого раздела ведущего диска
IDE на первичном канале. Разве нет?
Все мы знаем, что такое файл устройства. Некоторые даже знают, почему рядом с ними видны специальные числа, если посмотреть на результат ls -l, запущенной в каталоге /dev. Но мы принимаем за данность, что первичный ведущий диск IDE называется /dev/hda. У вас может быть и не так, но это всего лишь пример.
Представим себе устройства «горячей замены» вроде USB, IEEE1394, заменяемой PCI и т.д. Какое из них является первым по счету? Надолго ли? Как изменятся названия других устройств, если первое отключить? Как это повлияет на текущие операции? Было бы забавно, если бы задание печати вдруг переключалось с вашего супер навороченного лазерного принтера на старый полудохлый матричный из-за того, что ваша мама решила выдернуть разъем лазерного принтера, а тот оказался первым в списке, не так ли?
Перейдем к udev. Цели проекта udev как занимательны, так и актуальны: запуск драйверов в режиме пользователя динамическое создание и удаление файлов устройств согласованное назначение имен устройств предоставление интерфейса программирования (API) для режима пользователя
Разработка udev состоит из трех отдельных проектов: namedev, libsysfs и, конечно, udev.
namedev
Namedev позволяет отделить именование устройств от программы udev. Это дает возможность гибкого использования правил и схем именования, разработанныых отдельно. Подсистема именования предоставляет стандартный интерфейс, который может использоваться udev.
Сейчас, через namedev представлена только одна схема именования, предоставляемая LANANA. Она используется на большинстве Linux—систем, и
617

Руководство по udev в Gentoo поэтому хорошо подходит основной массе пользователей Linux.
В namedev для определения имени конкретного устройства используется последовательность из пяти шагов. Если на одном из шагов имя установлено, оно и используется. Вот эти шаги:
1. по метке или серийному номеру
2. по номеру устройства шины
3. по топологии шины
4. статическое имя
5. имя, назначенное в ядре
По метке или серийному номеру — проверяется, есть ли у устройства уникальный идентификатор. Например, у устройств USB есть уникальный серийный номер
USB, а у устройств SCSI — уникальный UUID. Если namedev находит соответствие уникального номера и определенного конфигурационного файла, используется имя, указанное в конфигурационном файле.
По номеру устройства шины — проверяется номер устройства, подключаемого к шине. В среде, где нет возможности «горячей замены», этого шага достаточно для идентификации устройства (например, номер на шине PCI редко меняется за время существования системы). Опять же, если namedev находит соответствие номера устройства шины и определенного конфигурационного файла, используется имя, указанное в конфигурационном файле.
Подобным образом, по топологии шины — это, скорее, статический способ идентификации устройств, подходящий до тех пор, пока пользователь не начинает их переключать. Когда позиция устройства совпадает со значением, заданным пользователем, используется указанное имя.
Четвёртый шаг, статическое имя — это простая подстановка строки. Замененное имя присваивается, когда имя, назначенное в ядре (по умолчанию) совпадает с заданной строкой замены.
Последний шаг (имя, назначенное в ядре) покрывает все остальные случаи: при этом берётся имя по умолчанию, присвоенное в ядре. В большинстве случаев этого достаточно, поскольку имя соответствует принятому в современных Linux- системах.
libsysfs
udev взаимодействует с ядром через псевдофайловую систему sysfs. Проект libsysfs предлагает обобщенный интерфейс программирования для доступа к сведениям, предоставляемым файловой системой sysfs. Это даёт возможность опроса разнородных устройств без необходимости знания их типа.
udev
Каждый раз, когда ядро обнаруживает обновление структуры устройств, оно вызывает программу /sbin/hotplug. Hotplug, в свою очередь, запускает приложения, указанные в каталоге /etc/hotplug.d/default, где также находится символическая
618

Руководство по udev в Gentoo ссылка на приложение udev. Hotplug направляет сведения, данные ядром, в программу udev, которая производит необходимые действия над структурой /dev
(создавая или удаляя файлы устройств).
2. Как использовать udev в Gentoo
Требования к системе
Файловая система udev должна использоваться вместе с ядром версии 2.6
(пакеты vanilla-sources или gentoo-sources, и профилем 2005.0). Если вы используете такое ядро, убедитесь, что у вас есть самая последняя версия sys- apps/baselayout. Вот и всё, что потребуется.
Листинг 2.1: Установка udev
# emerge udev
udev установит пакет hotplug-base, как одну из зависимостей. Не нужно устанавливать пакет hotplug до тех пор, пока вы хотите, чтобы модули автоматически загружались при подключении устройств. hotplug также управляет автоматическим включением сетевых устройств и загрузкой встроенного ПО.
Листинг 2.2: Установка дополнительных сценариев hotplug
# emerge hotplug
Если хотите, чтобы загружались модули для устройств, подключаемых до загрузки, используйте пакет coldplug:
Листинг 2.3: Установка пакета coldplug
# emerge coldplug
И не забудьте добавить coldplug на загрузочный уровень запуска (boot):
Листинг 2.4: Добавление coldplug на загрузочный уровень запуска
# rc-update add coldplug boot
Что же касается ядра, не забудьте выбрать следующие параметры:
Листинг 2.5: Требуемые параметры ядра
General setup --->
[*] Support for hot-pluggable devices
File systems --->
Pseudo filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
619

Руководство по udev в Gentoo
По вашему усмотрению, можете оставить поддержку файловой системы /dev file system support (OBSOLETE) активной, но обязательно убедитесь в том, что параметр «Automatically mount at boot» выключен:
Листинг 2.6: Автоматически не монтировать devfsd
File systems --->
Pseudo Filesystems --->
[*] /dev file system support (OBSOLETE)
[ ] Automatically mount at boot
Если вы используете genkernel, не забудьте запустить её с параметром --udev, для включения всех необходимых параметров конфигурации ядра. Конфигурация по умолчанию, даваемая этим обращением к genkernel, достаточна.
Конфигурация
Если вы хотите использовать улучшения udev, добавленные Gentoo для более удобного использования, не читайте дальше. Gentoo будет использовать udev, сохраняя неизменной структуру /dev, так что вы никогда не потеряете специальные файлы устройств. Сценарии инициализации Gentoo не будут запускать демон devfsd и деактивируют devfs при загрузке.
Но если вы «крепкий орешек» и хотите запустить любыми средствами систему только с udev и без улучшений, к чему и стремится разработка udev (включая сложности в отсутствии узлов устройств, потому, что udev их ещё не поддерживает), тогда читайте дальше :)
Мы деактивируем правила, которые сохраняют специальные файлы устройств: отредактируйте переменную RC_DEVICE_TARBALL в /etc/conf.d/rc и устанавите её значение на no:
Листинг 2.7: /etc/conf.d/rc
RC_DEVICE_TARBALL="no"
Если вы включили поддержку devfs в вашем ядре, вы можете деактивировать её в конфигурации загрузчика: добавьте gentoo=nodevfs как параметр ядра. Если вы хотите использовать devfs и деактивировать udev, добавьте gentoo=noudev.
3. Известные проблемы
Отсутствие специальных файлов устройств при загрузке
Если ваша машина не может успешно загрузится и выдаётся ошибка о том, что путь /dev/null не найден или отсутствует первоначальная консоль, то проблема в том, что отсутствуют некоторые файлы устройств, которые должны быть доступны до того, как /dev смонтирован и обработан udev. Это часто встречается на машинах, где Gentoo установлен со старых носителей.
620

Руководство по udev в Gentoo
Если вы используете sys-apps/baselayout-1.8.12 или более позднюю версию, эта проблема облегчается, так как процесс загрузки должен управлять до полного завершения. Однако, чтобы избавится от этих раздражающих предупреждений, вам следует создать отсутствующие специальные файлы, как описано далее.
Выполните следующие команды для того, чтобы увидеть, какие специальные файлы присутствуют до обработки udev в /dev:
Листинг 3.1: Вывод списка специальных файлов устройств, доступных при загрузке
# mkdir test
# mount --bind / test
# cd test/dev
# ls
Устройства /dev/null и /dev/console необходимымы для успешной загрузки. Если они не были показаны в предыдущем тесте, вы должны создать их самостоятельно. Выполните следующие команды в каталоге test/dev/:
Листинг 3.2: Создание необходимых специальных файлов устройств
# mknod -m 660 console c 5 1
# mknod -m 660 null c 1 3
Когда закончите, не забудьте отмонтировать каталог test/:
Листинг 3.3: Отмонтирование каталога test/
# cd ../..
# umount test
# rmdir test
udev и nvidia
Если вы используете коммерческий драйвер от nVidia и сервер X не запускается только в системе с udev, убедитесь что у вас: название модуля nvidia указано в файле /etc/modules.autoload.d/kernel-2.6 версия nvidia-kernel больше или равна media-video/nvidia-kernel-1.0.5336-r2 версия baselayout как минимум sys-apps/baselayout-1.8.12
Если xorg-x11 отказывается запускаться, возможно, отсутствует файл устройства /
dev/nvidia. В этом случае запустите /sbin/NVmakedevices.sh, чтобы его создать или пересоздать.
Не появляются имена LVM2
Если вы используете вместе udev и Logical Volume Manager 2 (LVM—менеджер логических разделов), вы можете заметить, что созданные вами группы разделов и логические разделы исчезли. Что ж, на самом деле нет, но они, к несчастью, названы /dev/dm-#, где #—это 0,1, ... и т.д.
621

Руководство по udev в Gentoo
Чтобы это исправить, отредактируйте файл /etc/udev/rules.d/50-udev.rules и уберите комментарий со следующей строки:
Листинг 3.4: Как убрать комментарий со строки из файла /etc/udev/rules.d/50-udev.rules
KERNEL="dm-[0-9]*", PROGRAM="/sbin/devmap_name %M %m", NAME="%k",
SYMLINK="%c"
Далее, установите пакет sys-fs/multipath-tools, который содержит программу devmap_name.
Листинг 3.5: Установка пакета multipath-tools
(На момент написания, пакет multipath-tools был доступен только в тестовой ветке дерева Portage)
# echo "=sys-fs/multipath-tools-0.4.2 x86" >>
/etc/portage/package.keywords
# emerge multipath-tools
Отличающиеся названия в DevFS и udev
Даже если наша цель—иметь совместимую схему именований между этими динамическими системами управления устройствами, иногда случаются различия в именовании.
Сообщалось о коллизии в работе контроллера HP Smart Array 5i (более точно - модуль ядра cciss). При использовании udev, устройства именовались как
/dev/cciss/cXdYpZ, где X, Y и Z - числа. При использовании devfs, устройства именовались /dev/hostX/targetY/partZ или являлись символическими ссылками на /
dev/ccisss/cXdY.
В этом случае, не забудьте обновить файл /etc/fstab и конфигурационные файлы загрузчика соответственно.
То же самое происходит со всеми символическими ссылками, которые существуют в каталоге /dev, такими как /dev/mouse, которые udev больше не создаёт. Обязательно проверьте настройку графического сервера X и посмотрите секцию Device, указывает ли там строка настройки на существующий файл устройства.
Другая проблема заключается в различном именовании терминалов между devfs и udev. Если в devfs терминалы называются tty, то в udev они называются vc. Это может привести к проблемам если возможность входа root с консоли ограничивается с помощью /etc/securetty. Чтобы обеспечить возможность входа root с консоли, нужно обязательно изменить tty1 на vc/1 в /etc/securetty.
Другие проблемы
Если файлы устройств не создаются, когда соответствующий модуль загружается из /etc/modules.autoload.d/kernel-2.6, но появляются когда вы загружаете этот модуль вручную при помощи modprobe, тогда вам стоит произвести обновление
622

Руководство по udev в Gentoo до sys-apps/baselayout-1.8.12 или более поздней версии.
Поддержка устройств кадрового буфера (/dev/fb/*) включена в ядро с версии 2.6.6- rc2.
В ядрах старше, чем 2.6.4, вам следует явно включить поддержку для файловой системы /dev/pts.
Листинг 3.6: Включение поддержки файловой системы /dev/pts
File systems --->
Pseudo filesystems --->
[*] /dev/pts file system for Unix98 PTYs
4. Ссылки на ресурсы и благодарности
Разговор об udev начался на симпозиуме по Linux в Оттаве в 2003 году (Linux
Symposium, Ottawa, Ontario Canada - 2003) Грегом Кроа-Хартманом (Greg Kroah-
Hartman) из корпорации IBM, который дал ясное понимание для применения udev.
Decibel's UDEV Primer - документ о udev и Gentoo.
Написание правил для udev члена сообщества разработки Gentoo Дэниела
Дрэйка (Daniel Drake) - отличный документ для того, чтобы научится управлять установкой udev.
623

Gentoo LDAP-DNS Guide (Англ.)
Gentoo LDAP-DNS Guide (Англ.)
Ссылка на оригинал:
http://www.gentoo.org/doc/en/ldapdns-guide.xml
C версии: 1.0
1. Introduction
LDAPDNS is a small server that provides DNS services to your network. With DNS services, you can manage your hostnames in a central manner deprecating the tedious /etc/hosts updates every time a system is added/removed or has changed its host name.
The LDAPDNS package uses an LDAP service to store all DNS records (which is, simply explained, a line that contains the mapping between a hostname and an IP address). LDAP is a standard protocol to obtain information from a hierarchically represented knowledge base (directories). The most well-known LDAP service for Linux is OpenLDAP, a free LDAP implementation.
With this small guide at hand, you should be able to set up DNS services on your network with as little effort as possible.
2. Configuring LDAP-DNS
First, install net-dns/ldapdns.
Code Listing 2.1: Installing ldapdns
# emerge net-dns/ldapdns
Next, configure ldapdns to host the DNS records for your network. We use ldapdns-conf which uses the following syntax:



Поделитесь с Вашими друзьями:
1   ...   48   49   50   51   52   53   54   55   ...   79


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал