Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1842647
  • 博文数量: 334
  • 博客积分: 11301
  • 博客等级: 上将
  • 技术积分: 3452
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-18 10:19
个人简介

路虽弥,不行不至;事虽少,不做不成。

文章分类

全部博文(334)

文章存档

2013年(4)

2012年(19)

2011年(27)

2010年(71)

2009年(45)

2008年(15)

2007年(84)

2006年(69)

分类:

2006-10-18 14:11:07



apache2-ssl-svn-auth_pam

概要:服务器使用 apache2+ssl+svn+auth_pam 构建,具有如下特点:

* 建立在 debian/apache2 的基础上
* subversion 1.1
* mod_dav_svn 使得 subversion 可以通过web访问
* 使用 openssl 保障系统的安全性
* 使用 mod_pam 和 mod_sys_group,使用系统的用户名密码来验证用户

目录
====

1 安装软件
2 配置 apache2/SSL
3 配置 apache2/SVN
4 配置 PAM
5 总结

安装软件
========
如果你和我一样用 Debian 的话,只要安装这几个包就可以了:

apache2
apache2-common
apache2-mpm-prefork
apache2-utils
libapache2-svn
libapache2-mod-auth-pam
libapache2-mod-auth-sys-group
subversion
subversion-tools

openssl 会根据依赖性自动被安装,如果你有要移植到 subversion 的 CVS 项目,可以安装

cvs2svn

可以轻松转换,不过这个不在本文讨论范围内,略了。安装这几个之后就可以开始了。

配置 apache2/SSL
================

如果你不用 ssl 保障安全的话,跳过这部分就可以了,基本上不妨碍完整性(实际上还是差一点的)。首先生成一个 SSL 签名,使用命令

# apache2-ssl-certificate

这里会有一系列关于你的个人隐私的问题,回答完了,自然的签名也就生成了,然后我们就要在 apache2 里面打开 SSL 了,现在要做的是开启 ssl 模块

# a2enmod ssl

然后,使用 apache2 的虚拟主机功能来添加 SSL 的支持,将

/etc/apache2/sites-available/default

复制一份,叫

/etc/apache2/sites-available/ssl

好啦

修改 default 文件的开头为

NameVirtualHost *:80

修改 ssl 文件的开头为

NameVirtualHost *:443

这里 443 是 SSL 的标准端口。

并在 ssl 文件中加入如下内容

SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem

保存文件后,运行命令

# a2ensite ssl

来激活这个虚拟主机

现在,修改文件

/etc/apache2/ports.conf

加上一行

Listen 443

好了,到此为止,SSL 服务器配置完成,重新启动 apache 吧。执行

# apache2ctrl -k restart

就可以了

配置 apache2/SVN
================

首先,我假设你有一个 subversion 的软件仓库了,如果没有的话,建一个吧,或者用 cvs2svn 转换一个过来。

# svnadmin create /var/lib/svn/repos



# cvs2svn -s /var/lib/svn/repos /var/lib/cvs/oldrepos

让这个目录属于 src 组,并把 www-data 加入 src 组,让 svn 仓库可以被 apache 访问

# chgrp -R src /var/lib/svn
# chmod -R g+w /var/lib/svn
# adduser www-data src

然后,在 apache2 那里打开 svn 的支持

# a2enmod dav_svn



/etc/apache2/sites-available/ssl

里(如果没使用 ssl 就改 defaults 文件就可以了,下同)加上

DAV svn
SVNPath /var/lib/svn/repos

#AuthType Basic
#AuthName "Subversion Realm"
#require group src

这样,重启 apache2 之后,就可以通过 https 访问你的代码仓库了,至于其中的鉴权部分,我们在下一个部分再介绍。

配置 PAM
========

激活鉴权用的两个模块

# a2enmod auth_pam
# a2enmod auth_sys_group

这样就可以用本地用户和组对 web 访问的用户进行鉴权了,对于使用了 shadow 密码的用户,需要让 apache2 可以访问 shadow 文件

# adduser www-data shadow

然后在 apache2 的配置文件里面把刚才注释掉的行打开

AuthType Basic
AuthName "Subversion Realm"
require group src

就可以对用户进行鉴权了,AuthName 是可以任意指定的。这里,凡是 src 组的成员都可以访问 subversion 仓库,当然也可以对用户鉴权

require user gnawux

重新启动 apache2, 访问一下看看吧





总结
====

取一下代码看看吧

$ svn co –username yourname trun
k localdir

好了,到现在为止,你的 subversion 服务器已经配置完成了,看完这个长篇不容
易,希望能对你有所帮助。

Trackback:

阅读(753) | 评论(0) | 转发(0) |
0

上一篇:htaccess学习

下一篇:hdparm 命令介绍

给主人留下些什么吧!~~