Рассылка закрыта
При закрытии подписчики были переданы в рассылку "LinuxCenter News Channel: новости Linux" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
← Февраль 2004 → | ||||||
1
|
||||||
---|---|---|---|---|---|---|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
|
16
|
17
|
18
|
19
|
21
|
22
|
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
Статистика
-2 за неделю
Linux Gazette на русском : Secure CVS Pserver Mini-HOWTO
Информационный Канал Subscribe.Ru |
Linux Gazette на русском | Выпуск #161 | Тираж 10049 экз.
-- Ну, никогда я не пойму этих русских!
-- RTFM.
...диалог в форуме...
Здравствуйте! Сегодня Вашему вниманию предлагается небольшая добавка к армии переводов
Mini-HOWTO, "Secure CVS Pserver Mini-HOWTO".
Спасибо за перевод Ивану Песину!
От координатора: армия официальных подписчиков проекта RLG на Subscribe.RU перевалила через 10 000. Конечно, эта цифра не отражает общее количество читателей Russian Linux Gazette, но всё равно приятно. И спасибо, что нас читаете. :)
Александр Куприн
Secure CVS Pserver Mini-HOWTO
Морган Кантер
Copyright © 2003 Morgon Kanter
Февраль 2003
Перевод на русский © 2003: Иван Песин (ipesin at post.Lviv.UA)
История редакций | ||
---|---|---|
Пересмотр 1.1 | 2003-03-21 | Пересмотрено: mk |
Исправлена неверная ссылка и добавлен раздел о CVSGrab | ||
Пересмотр 1.0 | 2003-02-01 | Пересмотрено: mk |
Начальная редакция, проверена LDP. |
Этот документ поможет вам настроить безопасный CVS Pserver для анонимного доступа к репозиторию CVS.
Разрешается копировать, распространять и/или изменять этот документ, как оговорено в GNU Free Documentation License, версии 1.2 или более поздней, опубликованной фондом свободного ПО (Free Software Foundation); без неизменяемых, начальных и конечных разделов. Копия лицензии приведена в разделе 6, озаглавленном "GNU Free Documentation License".
- Содержание
- 1. Введение
- 2. Получение утилит
-
- 2.1. Что вам нужно
- 2.2. Компиляция утилит
- 3. Настройка утилит
- 4. Альтернативы Pserver
-
- 4.1. Доступ для разработчиков
- 4.2. Анонимный доступ к CVS по http
- 4.3. CVSGrab
- 5. Благодарности
- 6. GNU Free Documentation License
1. Введение
Протокол CVS Pserver является по определению небезопасным. Среди прочего, пароли в нём передаются открытым текстом, обеспечивая нежелательность его использования во многих случаях. Однако, при этом CVS Pserver очень хорош для организации анонимного доступа к репозиторию CVS.
В этом документе мы познакомимся с настройкой репозитория CVS (не пересекаясь при этом с документом CVS HOWTO) и настройкой "jail-окружения" для Pserver. Кроме того, мы поговорим об использовании SSH для доступа разработчиков к репозиторию.
2. Получение утилит
2.1. Что вам нужно
Для настройки безопасного сервера Pserver вам понадобятся следующие пакеты:
- CVS
-
Конечно, вам будет нужен CVS для того, чтобы с ним работать. Его можно скачать здесь.
- cvsd
-
cvsd -- это программа, выполняющая CVS Pserver в "jail-окружении". Ее можно загрузить отсюда.
- SSHd
-
Если вы хотите обеспечить безопасный доступ к репозиторию для разработчиков, вам будет необходимо иметь запущенный SSH-сервер. Однако, настройка такого сервера не входит в рамки данного документа. За информацией обратитесь к документу CVS-RCS howto.
2.2. Компиляция утилит
Если вы собираетесь компилировать утилиты, следуйте нижеприведенным инструкциям. Если же вы загрузили готовые программы, переходите сразу к разделу 3..
2.2.1. Компиляция CVS
После загрузки исходных кодов пакета CVS, их нужно
разархивировать и перейти в созданный каталог. Префикс
каталогов по умолчанию при сборке равен /usr/local; в примере мы изменили
его на /usr. Возможно, вы захотите изменить
значение параметра mandir и разместить страницы
руководства там, где вам удобно (по умолчанию, этот
параметр равен PREFIX/man).
(Прим.ред. Например, /usr/share/man)
2.2.2. Компиляция cvsd
При сборке этой программы есть несколько ключей, на которые следует обратить внимание. Префикс по умолчанию использует значение /usr/local, которое в этом документе мы меняем на /usr. Кроме того, стоит изменить значение ключа sysconfdir на /etc. Это место, где обычно хранятся конфигурационные файлы системы. Если необходимо, можно изменить и параметр mandir так, как вам удобно.
Давайте перейдем к настройке этих замечательных утилит.
3. Настройка утилит
Теперь, когда мы собрали CVS и cvsd, давайте их настроим.
3.1. Создание репозитория CVS
Перед тем, как мы начнем, я очень рекомендую вам прочесть руководство по CVS, которое входит в пакет. Если у вас установлена программа просмотра info-файлов или пакет texinfo, руководство можно посмотреть командой info cvs.
В первую очередь, определитесь, где у вас будет размещен репозиторий. У дистрибутива Debian по умолчанию это каталог /var/lib/cvs. Мой же репозиторий размещен на небольшом отдельном разделе в каталоге /cvs/root. Как сделаеет вы, зависит от вас и ваших нужд.
![]() |
Убедитесь, что репозиторий будет распологаться в отдельном пустом (по началу) каталоге! Например, если вы будете работать с каталогом /var/lib/cvs, поместите репозиторий в каталог /var/lib/cvs/root (измените имя последнего каталога на то, что вам по душе). Это нужно, т.к. мы будем использовать "jail-окружение" для Pserver! |
После того, как вы определитесь с расположением своего репозитория и создадите, если нужно, соответствующий раздел, выполните команду (мы полагаем, что репозиторий помещен в каталог /cvs/root):
Результатом выполнения данной команды будет инициализация репозитория и настройка необходимых файлов CVSROOT.
3.2. Настройка "jail-окружения"
Теперь, когда у нас настроен CVSROOT, нам нужно скопировать соответствующие библиотеки и файлы для cvsd, который будет запускать Pserver в "jail-окружении".
3.2.1. Перенос необходимых файлов
![]() |
Если вы установили cvsd из пакетов, например RPM, всё нижеописанное, возможно, уже выполнено для вас. В этом случае переходите к следующему шагу. Иначе... |
К счастью, cvsd поставляется со скриптом cvsd-buildroot, так что нам не нужно копировать все вручную. Однако, следует отредактировать файл /cvs/etc/passwd и удалить из него ненужные записи, в частности, пользователя "root".
3.2.2. Настройка cvsd
Настройка по умолчанию, указанная в файле /etc/cvsd/cvsd.conf вполне работоспособна, но всё-таки её можно улучшить. Убедитесь, что значение RootJail соответствует действительному, а путь к репозиторию указан относительно "jail-окружения". Установите значение maxconnections на подходящее для вас и удостоверьтесь, что параметры Uid и Gid равны cvsd. Если у вас нет готового файла cvsd.conf, возьмите мой:
3.3. Добавление анонимного доступа
Вернемся к настройке CVS, но не волнуйтесь, мы уже почти всё сделали! Нужно отредактировать несколько файлов, чтобы разрешить анонимный доступ. Для начала, убедившись предварительно, что вы не находитесь в каталоге репозитория CVS, получите модуль CVSROOT командами:
Теперь отредактируйте файл READERS. Если его нет -- создайте его и добавьте в него строку "anonymous".
![]() |
В конце файла ДОЛЖНА присутствовать пустая строка! |
Файл READERS содержит список пользователей имеющих доступ к репозиторию CVS только на чтение. Пользователи с правом записи приведены в файле WRITERS. За детальной информацией обращайтесь к руководству по cvs[1] .
Зафиксируйте изменения. Мы полагаем, что текущий каталог -- это CVSROOT. Если это не так, не выполняйте команды cd.
Вы должны получить сообщение, Re-building administrative files, означающее что всё в порядке.
Теперь последний шаг и всё готово! Выполните следующую команду, а в ответ на приглашение введите пароль, просто нажав ENTER:
Поздравляю! Вы настроили безопасный анонимный доступ к репозиторию CVS!
3.4. Ещё не всё! Изменение расположения файлов блокировок
Есть небольшая деталь, явно не попадающая в рамки этого документа, однако стоящая упоминания. Это возможность изменять каталог, в котором Pserver будет размещать файлы блокировок.
Обычно, Pserver создает файлы блокировок в тоже каталоге, над которым выполняется операция "check out". Но это может нарушить безопасность системы. Вернемся к шагу, где мы создавали "jail-окружение" для cvsd: мы также создали каталог var/lock. Тут-то мы и разместим файлы блокировок.
Возьмите за основу следующий пример, заменяя каталог /cvs на выбранный вами, а var на каталог, где будут размещаться файлы блокировок. У меня они помещаются в каталог var/lock, а поскольку кроме этого в каталоге var ничего нет, можно использовать команду chown -R. Ну и конечно, если нужно замените пользователя и группу cvsd на использующиеся у вас значения
# cd /cvs # chown -R cvsd:cvsd var # chmod -R 775 var # cd # cvs -d /cvs/root checkout CVSROOT # cd CVSROOT |
Теперь нужно отредактировать файл config. Измените значение параметра каталога блокировок на нужное, в нашем случае -- это /var/lock.
![]() |
Заметьте, что это относится как к Pserver из "jail-окружения", ТАК И К МЕТОДУ РАБОТЫ ЧЕРЕЗ SSH! Убедитесь, что этот каталог не только существует, но и доступен на запись, относительно корневого каталога. Вот почему я выбрал путь /var/lock -- он отвечает всем этим требованиям. |
Вот и всё!
4. Альтернативы Pserver
4.1. Доступ для разработчиков
Pserver не самый хороший способ обеспечения доступа к репозитроию для разработчиков. Лучше применять метод ext с утилитой ssh. Просто добавьте разработчиков в список пользователей и файл WRITERS, после чего они могут выполнить следующее:
Это намного более безопасный способ доступа для разработчиков к репозиторию.
4.2. Анонимный доступ к CVS по http
Есть и другой способ организации анонимного доступа к CVS. Если у вас есть http сервер с установленным языком Python, можно использовать набор CGI-скриптов, под названием viewcvs. Они позволяют получить доступ к репозиторию CVS по веб и могут генерировать "тарболы" для загрузки пользователями.
Существует набор скриптов на Perl, также носящих имя cvsweb, но Viewcvs более продуман и предпочтителен (по крайней мере, для меня).
4.3. CVSGrab
CVSGrab -- это пользовательская утилита для загрузки CVS-репозитория через интерфейс ViewCVS. Это очень удобно, когда вы находитесь за корпоративным брандмауэром, блокирующим Pserver, поскольку вы можете получить репозиторий по стандартному протоколу HTTP. Единственная проблема возникает тогда, когда репозиторий не имеет интерфейса ViewCVS. Но сейчас большинство репозиториев свободного программного обеспечения имеют веб-странички, и те немногие, которые ещё используют cvsweb начинают мигрировать на ViewCVS.
CVSGrab написан на Java, что может отбивать охоту работать с ним у некоторых людей (например у меня). Но, похоже, что он неплохо компилируется GCJ, Java интерфейсом к GCC.
CVSGrab -- утилита идущая рука об руку с ViewCVS. Она является пользовательской утилитой, то есть не стоит ожидать, что системный администратор или администратор репозитория будет её устанавливать или настраивать.
5. Благодарности
Данный документ написан Морганом Кантером (Morgon Kanter), с которым можно связаться по адресу <morgon AT surgo DOT net>, публичный ключ находится по адресу http://www.surgo.net/pubkey.asc. Присылайте замечания по данному документу, я обязательно всё исправлю при первой же возможности.
Я выражаю благодарность всем людям, отдававшим своё время проекту CVS на протяжении многих лет, создателям Viewcvs и вдохновившим их создателей cvsweb.
Хочу поблагодарить Табата Персада (Tabatha Persad) за пересмотр и помощь в редактировании этого монстра, равно как и за то, что он меня терпел. Спасибо!
Кроме того, благодарю всех принявших участие в обсуждении этого документа по электронной почте. Спасибо вам, Y Giridhar Appaji Nag и Pasi Hirvonen!
Примечания
[1] |
info cvs, если у вас в системе установлена программа просмотра файлов info |
Copyright (c) 2003, Morgon Kanter
Команда переводчиков:
Александр Куприн, Андрей Киселев, Александр Михайлов, Александр Саввин,
Владимир Меренков, Иван Песин, Игорь Яровинский, Павел Соколов, Роман Шумихин,
Сергей Скороходов, Юрий Прушинский, Юрий Султанов
Со всеми предложениями, идеями и комментариями обращайтесь к Александру Куприну (ru_classic at mail.ru). Убедительная просьба: указывайте сразу, не возражаете ли Вы против публикации Ваших отзывов в рассылке.
Сайт рассылки: http://gazette.linux.ru.net
Статью можно найти по адресу: http://gazette.linux.ru.net/rus/articles/secure_cvs_pserver_mini-howto.html
Архивы выпусков находятся по адресу: http://gazette.linux.ru.net/archive/
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||