本站首页    管理页面    写新日志    退出


«July 2025»
12345
6789101112
13141516171819
20212223242526
2728293031


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7565192
建立时间:2006年5月29日




[Subversion]Apache2/SSL+Subversion+PAM认证服务器配置
软件技术

lhwork 发表于 2007/1/21 15:19:25

概要:服务器使用 apache2+ssl+svn+auth_pam 构建,具有如下特点:    * 建立在 debian/apache2 的基础上    * subversion 1.1    * mod_dav_svn 使得 subversion 可以通过web访问    * 使用 openssl 保障系统的安全性    * 使用 mod_pam 和 mod_sys_group,使用系统的用户名密码来验证用户目录====1 安装软件2 配置 apache2/SSL3 配置 apache2/SVN4 配置 PAM5 总结安装软件========如果你和我一样用 Debian 的话,只要安装这几个包就可以了: apache2 apache2-common apache2-mpm-prefork apache2-utils libapache2-svn libapache2-mod-auth-pam libapache2-mod-auth-sys-group subversion subversion-toolsopenssl 会根据依赖性自动被安装,如果你有要移植到 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 <VirtualHost *:80>修改 ssl 文件的开头为 NameVirtualHost *:443 <VirtualHost *: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 文件就可以了,下同)加上          <Location /repos>            DAV svn            SVNPath /var/lib/svn/repos            #AuthType Basic            #AuthName "Subversion Realm"            #require group src          </Location>这样,重启 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, 访问一下看看吧 https://yourhostname.yourdomain/repos/ https://yourhostname.yourdomain/repos/总结====取一下代码看看吧 $ svn co --username yourname https://yourhostname.yourdomain/repos/trunk localdir好了,到现在为止,你的 subversion 服务器已经配置完成了,看完这个长篇不容易,希望能对你有所帮助。


阅读全文(3895) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.063 second(s), page refreshed 144762136 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号