13703353520(同微信) 周一~周五, 8:00 - 20:00
QQ:25681881或25295110 邮箱:qhdzxz@163.com
易得优软件 河北•秦皇岛
  • 站群系统

    自主建站,易得优自主建站站群系统

  • 易得优餐饮库管系统

    十五年专注开发

  • 易得优智能工控

    智能工控,易得优是认真的

  • 音乐打铃播放无需电脑

    易得优音乐打铃系统无电脑版

SVN服务的搭建配置与访问

    时间:2020/1/13 9:29:49     人气:19


SVN是Subversion的简称,是一个安全虚拟网络系统,它将系统整体的信息安全功能均衡合理地分布在不同的子系统中,使各子系统的功能得到最大限度的发挥,子系统之间互相补充,系统整体性能大于各子系统功能之和,用均衡互补的原则解决了"木桶原理"的问题。


本文刊发于《网络安全和信息化》2020年第1期


2.jpg


SVN能在跨接Internet、Intranet、Extranet间的网络所有端点实现全面的安全,而且还能提供基于企业策略的信息管理机制以充分有效地利用有限的带宽。SVN可以满足各种企业VPN的要求,通过为公司内部网络、远程和移动用户、分支机构和合作伙伴提供基于Internet的安全连接。所以,我们可以将SVN看成是VPN、防火墙、基于企业策略的信息管理软件集成在一起的Internet安全的综合解决方案。在这样一个网络系统中,所有互联网服务器端和客户端都是安全的,并有一个信息管理机制以不断地通过这个外部网络环境动态地分析及满足客户的特定带宽需求。

在Centos7中,我们可以很轻松地搭建SVN服务。

一、安装与配置svn

      1、安装 svn

# yum -y install subversion

       2、创建仓库DEV

# mkdir /opt/svn

# svnadmin create /opt/svn/DEV

3、配置用户和权限

     3.1 增加用户和密码,在/opt/svn/DEV/conf已经有passwd和authz配置文件了,但是如果将来需要建立多个版本库时就不方便了,因此建议建立统一的passwd和authz配置文件。

# vi  /opt/svn/passwd  #修改密码文件

[users]

svndmin = 12345678

user1 = 12345678

user2 = 12345678

    3.2 配置权限和用户分组

# vi /opt/svn/authz   #修改权限和用户分组文件

[groups]           #建立dev和admin两个分组  

dev  = uesr1,user2

admin = svnadmin

[/]                    

@dev = r

@admin = rw

* =    #表示其它用户没有任何权限

[/]     #对单个用户授权

user1 = rw

* =

 

 

3.3 配置svnserve.conf

# vi  /opt/svn/DEV/conf/svnserve.conf

[general]

anon-access = none

auth-access = write

password-db = /opt/svn/passwd

authz-db = /opt/svn/authz

realm = DEV

3.4.启动和关闭SVN服务

启动:svnserve -d -r /opt/svn/DEV

关闭:killall svnserve

测试连接:svn co svn://localhost/DEV

测试连接时系统会提示输入用户名和密码,并下载该版本,至此使用svn协议访问的方式就安装完成。如图1。

1.png

图1

二、使用Http方式访问

1. 安装apache和openssl和相关模块

# yum  install httpd httpd_devel  mod_dav_svn mod_ssl openssl  mod_auth_mysql

确认安装如下模块:

# ls /etc/httpd/modules/|grep svn

会显示以下内容:

mod_authz_svn.so

mod_dav_svn.so

2. 新增http的验证用户

创建http的用户和密码文件,增加用户两个用户

# htpasswd -c /opt/svn/svn_http_passwd svnadmin  #增加用户svnadmin

根据提示输入密码并确认密码。

 

# htpasswd  /opt/svn/svn_http_passwd user1 #增加用户user1,密码设置同上。

注意第一次增加用户需要用到参数-c,后面再增加用户一定不要到参数-c,否则会把以前的用户全删除。还需要注意的是:/opt/svn/svn_http_passwd不应该与svn共同使用一个用户文件,原因是httpd与svn用户都是单独的,前者会对用户文件中的密码进行加密,后者则不会加密。authz文件是可以共用的。

# cat  /opt/svn/svn_http_passwd  #可查看文件内容

3.配置访问的虚拟主机

# vi  /etc/httpd/conf.d/subversion.conf

LoadModule dav_svn_module     modules/mod_dav_svn.so

LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svn>

DAV svn

SVNParentPath /opt/svn/

SVNListParentPath   on

AuthType  Basic

AuthName   "Authorization Realm"

AuthUserFile   /opt/svn/svn_http_passwd

AuthzSVNAccessFile  /opt/svn/authz

Require   valid-user

</Location>

4.重启httpd服务,并进行访问

# service httpd restart

重启动用就可以用地址进行访问,http://IP/svn/DEV   如:http://192.168.1.18/svn/DEV

三、使用https方式访问

    制作安全证书,得到证书和私钥,修改 /etc/httpd/conf.d/ssl.conf和/etc/httpd/conf.d/subversion.conf两个文件。

# vi /etc/httpd/conf.d/ssl.conf

#SSLCertificateFile /etc/pki/tls/certs/localhost.crt

SSLCertificateFile /etc/httpd/ssl/httpd.crt

#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

SSLCertificateKeyFile /etc/httpd/ssl/httpd.key

# vi /etc/httpd/conf.d/subversion.conf

LoadModule dav_svn_module     modules/mod_dav_svn.so

LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svn>

DAV svn

SVNParentPath /opt/svn/

SVNListParentPath   on

AuthType  Basic

AuthName   "Authorization Realm"

AuthUserFile   /opt/svn/svn_http_passwd

AuthzSVNAccessFile  /opt/svn/authz

Require   valid-user

SSLRequireSSL

</Location>

重启httpd服务,就可以使用https的方法访问到SVN了。


1.jpg