首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
Google
首页 入门 Linux编程 系统管理 网络管理 Linux认证 Unix/BSD Linux数据库 Linux集群 Linux手册 Linux下载 Ubuntu 论坛 专题 RSS
您现在的位置: 中国IT实验室 >> Linux >> 网络管理 >> Linux安全 >> 正文

如何配置和使用SSH验证CVS系统服务器

    这么做的好处:(1)只允许ssh2协议登录,这能够提供更好的安全性(2)不允许使用口令登录,这毫无疑问地将提高安全性。

    1、创建cvs repository

    好了,前期配置基本上就结束了。不要忘了创建一个用于cvs用户的组,例如,ncvs,以及一个用于管理cvs repository的用户,如repoman(它当然要属于ncvs那个组),然后,创建一个目录来保存cvs repository,本例中,我们把它放到/home/ncvs中:

    rm -rf /home/ncvs

    mkdir -p /home/ncvs

    chown -R repoman:ncvs /home/ncvs

    chmod -R 775 /home/ncvs

    接下来就是初始化这个repository了,简单地执行:

    su -l repoman

    cvs -d /home/ncvs init

    就可以了。

    目前,所有的FreeBSD版本中包含的cvs都存在一个微小的安全漏洞,尽管这个漏洞只能在本地利用,但建议您把它补上方法是找到 /usr/src/contrib/cvs/src/expand_path.c 中的

    return current_parsed_root->original;

    一行,把它改为

    return current_parsed_root->directory;

    当然,接下来就是重新make world kernel了。需要说明的是,如果您使用的是5-CURRENT,还需要修改一些代码才能让它达到5.2-RELEASE那样的性能(-CURRENT中打开了大量的调试选项),具体方法这里不再赘述。

    2、配置commitmail和ACL

    接着配置cvs commitmail和ACL.我个人认为commitmail是团队软件开发中非常重要的一件东西,对于cvs来说,这一点尤为重要,因为cvs没有原子提交功能,而commitmail恰好弥补了这个不足。

    FreeBSD的开发团队使用了一套很好的perl脚本来完成commitmail的功能,同时,他们还使用cvs的hook实现了简单的访问控制功能(ACL)。我本人使用的cvs repository基于FreeBSD的CVSROOT,并且作了少量的修改。

    使用这个CVSROOT覆盖您的CVSROOT,并且,您还需要把其中freebsd目录下的mailsend.c编译并将结果放到/usr/local/bin中(这个CVSROOT中的脚本假定这件事)。另外,这个CVSROOT需要一些修改才能正式投入使用(例如,机器名,等等)。这些设置可以在cfg_local.pm里面找到:

    $MAILADDRS = 'cvs-all@example.org'

    这个是commitmail将要发送到的地方。

    $MAIL_BRANCH_HDR = "X-Phantasm-CVS-Branch";

    这个是将要添加到commitmail头部的信息,如果您使用邮件列表的话,它能够帮助邮件列表自动分拣。

    $MAILBANNER = "The Phantasm Studio repository";

    这一行将出现在commitmail中,表示commit到了哪一个repository.

    if ($hostname =~ /^cvs\.example\.org$/i)

    这个是判断commit的主机名的

    $CVSWEB_URL = "http://cvsweb.example.org/cgi-bin/cvsweb.cgi";

    这个是cvsweb服务的网址

    简单介绍一下CVSROOT中的其他文件

    avail: 这个文件用于控制用户组的访问权限。

    access: 这个文件用于控制谁能够执行cvs操作。

    exclude: 这个文件用于控制那些文件不需要检查cvs tag

    options: 这个文件用于控制cvs tag的展开,例如,可以定义$Phantasm$,等等

    3、配置用户和限制ssh权限

    使用ssh验证的一个比较让人头疼的问题就是,ssh意味着用户拥有一个系统账号,并且,他们能够登录进来。如果配置不当,他们还能得到一个shell,这很自然地会成为潜在的安全隐患。

    因此,必须非常小心地处理cvs的ssh验证问题。基本的原则是:禁止用户作任何操作,除非我们允许他们这么做。

    按照下面的规则创建用户:

    用户的“主”组是ncvs(这不仅限制用户的权限,也让我们能够更容易地控制其他用户不能在cvs repository里面随意commit)

    用户不使用口令验证,这将缓解由于不正确地设置ftp等造成的安全隐患

    仍然给用户一个shell,这个“shell”可以是一个perl脚本,它只允许执行cvs 开头的命令

    随后,让用户使用openssh的ssh-keygen生成自己的密钥对。OpenSSH在绝大多数*BSD和Linux发行版中都可以找到,如果用户使用的是Windows桌面,则需要安装cygwin(特别地,安装net中的OpenSSH),当然,执行的命令是一样的:

    ssh-keygen -t dsa -b 2048

上一页  [1] [2] [3] 下一页

【责编:Zenghui】
中国IT教育
相关产品和培训
文章评论
 友情推荐链接
 专题推荐

 ·防范Linux病毒 打造没有病毒的乐土…
 ·Linux Shell编程实用指南…
 ·Linux日志分析与管理
 ·揭密Linux内存管理
 ·邮件服务Sendmail应用配置
 ·Linux 安全管理…
 ·Linux 下DNS服务器架设攻略…
 ·Linux 下的路由的配置与应用…
 ·专题:Apache实用手册
 ·全面剖析Linux文件系统
 今日更新
 认证培训
 频道精选
 Windows频道导航