因工作需要,将家里的路由器做了端口隐射,给一起协同工作的朋友架了个SVN服务器,因为SVN账号密码都设置过于简单,所以需要在VisualSVN上设置下防火墙,过滤掉白名单以外的其他ip。
因为VisualSVN内部使用的是Apache Server,所以配置方式也和Apache Server一致。
<Location /svn/>
...
...
# Add Expires/Cache-Control header explictly
ExpiresActive on
ExpiresDefault access
Order Deny,Allow
Deny From All
#公司的地址
Allow From xxx.xxx.xxx.xxx
Allow From 127.0.0.1
#局域网地址
Allow From 192.168.0.1/255.255.255.0
</Location>
在VisualServer安装目录下找到conf/httpd.conf文件,编辑并在<Location>节点末尾处添加
Allow From xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx 为可以访问SVN服务的IP地址
然后重启VisualSVN服务,但是系统会报错:
于是在VisualSVN里找错误的log,但是没有找到任何log文件,这时想到还有另外一个地方可能有Log,打开我的电脑-管理-事件查看器-应用程序和服务日志-VisualSVN Server,发现报的错误是Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration可能是某个模块没有添加
在conf/httpd.conf中添加模块authz_host_module:
LoadModule authz_host_module bin/mod_authz_host.so LoadModule auth_basic_module bin/mod_auth_basic.so
然后启动服务器,成功了,让一个不是该IP的朋友访问了下我的SVN地址,页面显示
大功告成,也不用担心啥黑客白客把我的机器当肉鸡了