目前我正在使用 VisualSVN Server,它只能在我的家庭网络上访问。最终会有其他人访问它,但现在只有我一个人,我希望能够去咖啡店(或任何地方)并能够在家外工作。
目前我正在访问 的服务器http://user-pc:xx/svn/Projects/
。当我设置路由器以将端口 XX 转发到我的服务器时,我应该采取哪些步骤来保护服务器?
请记住,我是在 Windows 上执行此操作的,虽然我广泛使用常规命令提示符,但我使用 SVN 的时间并不长,并且到目前为止还没有使用过 TortoiseSVN 以外的任何其他工具来使用它。
编辑:据我所知,攻击者唯一能做的有害事情就是:猜测我的端口号、用户名和密码以进入存储库。然而俗话说,我不知道我不知道什么。
因此,我并不一定会要求提供分步说明(尽管我当然也希望得到这些说明),而是要求我考虑哪些事情任何一旦端口开放,就可能发起此类攻击。
答案1
- 使用强度较高的密码来保护 VisualSVN 服务器
- 使用更高的服务器端口,例如 39517,而不是默认端口 80 或 443。这样攻击者就更难猜测。攻击者必须依靠端口扫描。
- VisualSVN 服务器不允许匿名访问。您需要明确定义用户。
- 仅向您认识/信任的人授予用户访问权限。
答案2
- 在服务器端使用 https,而不是普通的 http(AuthType Basic 是可拦截的)或使用摘要式身份验证(必须手动配置 Apache)
- 在服务器上使用(免费)CA 颁发的证书,而不是自签名的证书(您可以使用自签名证书,但每次都必须用肉眼验证)
- 维护最新的 VisualSVN 服务器版本(修复 Apache 和/或 SVN 本身可能存在的问题)
- 在 httpd.conf 中启用日志记录以进行安全审计(VisualSVN Server 中默认不进行日志记录)
答案3
我建议使用 ssh 访问您的 svn 服务器。我个人更喜欢公钥/私钥身份验证。
即使如此,desaivv 的建议也是我会推荐的。