启用svn服务器的sasl验证机制

1、安装cyrus-sasl认证包

# yum install -y *sasl*

# rpm -qa|grep sasl

cyrus-sasl-2.1.23-15.el6_6.2.x86_64

ruby-saslwrapper-0.14-1.el6.x86_64

cyrus-sasl-md5-2.1.23-15.el6_6.2.x86_64

cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64

cyrus-sasl-devel-2.1.23-15.el6_6.2.x86_64

cyrus-sasl-gssapi-2.1.23-15.el6_6.2.x86_64

saslwrapper-0.14-1.el6.x86_64

cyrus-sasl-sql-2.1.23-15.el6_6.2.x86_64

python-saslwrapper-0.14-1.el6.x86_64

cyrus-sasl-ldap-2.1.23-15.el6_6.2.x86_64

cyrus-sasl-ntlm-2.1.23-15.el6_6.2.x86_64

cyrus-sasl-plain-2.1.23-15.el6_6.2.x86_64

saslwrapper-devel-0.14-1.el6.x86_64





2、修改sasl认证模式为shadow

# cp /etc/sysconfig/saslauthd /etc/sysconfig/saslauthd.bak.$(date +%F%T)

[root@node5 config]# ll /etc/sysconfig/saslauthd*

-rw-r--r-- 1 root root 553 Feb 27  2015 /etc/sysconfig/saslauthd

-rw-r--r-- 1 root root 553 Jul  1 21:14 /etc/sysconfig/saslauthd.bak.

-rw-r--r-- 1 root root 553 Jul  1 21:14 /etc/sysconfig/saslauthd.bak.2016-07-0121:14:19

[root@node5 config]# sed -i 's#MECH=pam#MECH=shadow#g' /etc/sysconfig/saslauthd

[root@node5 config]# grep -i mech /etc/sysconfig/saslauthd

# Mechanism to use when checking passwords.  Run "saslauthd -v" to get a list

# of which mechanism your installation was compiled with the ablity to use.

MECH=shadow

# Options sent to the saslauthd. If the MECH is other than "pam" uncomment the next line.





3、配置ldap方式验证用户

# /etc/init.d/saslauthd restart

Stopping saslauthd:                                        [FAILED]

Starting saslauthd:                                        [  OK  ]

[root@node5 config]# testsaslauthd -ulily -plily

0: NO "authentication failed"

[root@node5 config]# grep lily /etc/passwd

[root@node5 config]# id lily

id: lily: No such user

[root@node5 config]# useradd lily

[root@node5 config]# passwd lily

Changing password for user lily.

New password: 

BAD PASSWORD: it is too short

BAD PASSWORD: is too simple

Retype new password: 

passwd: all authentication tokens updated successfully.

[root@node5 config]# testsaslauthd -ulily -plily

0: OK "Success."

# testsaslauthd -utom -ptom

0: NO "authentication failed"





修改验证模式为ldap

# sed -i 's#MECH=shadow#MECH=ldap#g' /etc/sysconfig/saslauthd

[root@node5 config]# grep -i mech /etc/sysconfig/saslauthd

# Mechanism to use when checking passwords.  Run "saslauthd -v" to get a list

# of which mechanism your installation was compiled with the ablity to use.

MECH=ldap

# Options sent to the saslauthd. If the MECH is other than "pam" uncomment the next line.





编辑saslauthd.conf文件,默认不存在,需要自己添加

vim /etc/saslauthd.conf 加入如下内容:

ldap_servers: ldap://chinasoft.com/

ldap_bind_dn: cn=admin,dc=chinasoft,dc=com

ldap_bind_pw: chinasoft

ldap_search_base: ou=People,dc=chinasoft,dc=com

ldap_filter: uid=%U

ldap_password_attr: userPassword





# /etc/init.d/saslauthd restart

Stopping saslauthd:                                        [  OK  ]

Starting saslauthd:                                        [  OK  ]





# testsaslauthd -ulily -plily

0: OK "Success."

[root@node5 config]# testsaslauthd -utom -ptom

0: OK "Success."





4、配置svn通过ldap验证

在ldap服务器中添加svn.conf文件,默认没有该文件,需要自己添加

# vim /etc/sasl2/svn.conf

pwcheck_method: saslauthd

mech_list: PLAIN LOGIN





svn服务器中修改svn服务器配置

# cd /application/svndata/sadoc/conf/

# sed -i 's@# use-sasl = true@use-sasl = true@g' svnserve.conf

# grep use-sasl svnserve.conf

use-sasl = true

[root@node2 conf]# /etc/init.d/svnserve stop

[root@node2 conf]# pkill svnserve

[root@node2 conf]# lsof -i :3690

启动服务

[root@node2 conf]# svnserve -d -r /application/svndata/

[root@node2 conf]# lsof -i :3690

COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

svnserve 35415 root    3u  IPv4 557724      0t0  TCP *:svn (LISTEN)





修改svn服务器apache配置

# vim /etc/httpd/confhttpd.conf





<Location /svn>

    # SVN配置

    DAV svn

    SVNPath /application/svndata/sadoc/

    SVNListParentPath on

    AuthType Basic

    AuthName "svn for project"

    AuthUserFile /application/svnpasswd/webpasswd

    AuthzSVNAccessFile /application/svnpasswd/authz

    Satisfy all

    Require valid-user





    # 在ldap找不到账号的情况下可以使用其它的认证方式(如,密码文件)

    AuthzLDAPAuthoritative off

    # openLDAP的管理账户

    AuthLDAPBindDN "cn=admin,dc=chinasoft,dc=com"

    AuthLDAPBindPassword chinasoft





    AuthBasicProvider ldap

    # 认证数据来源:"ou=People,dc=chinasoft,dc=com" 下所有子entity的uid作为认证用户名

    AuthLDAPURL "ldap://192.168.8.43:389/ou=People,dc=chinasoft,dc=com?uid?sub?(objectClass=*)"





    # 设置目录权限,实现列表所有工程目录

    Options Indexes FollowSymLinks

    Order allow,deny

    Allow from all

</Location>





查看错误日志定位问题:

# tail /var/log/httpd/error_log

[Tue Jul 05 14:40:18 2016] [error] [client 192.168.50.122] user lily: authentication failure for "/svn/": Password Mismatch

[Tue Jul 05 14:40:23 2016] [notice] caught SIGTERM, shutting down

[Tue Jul 05 14:40:23 2016] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

[Tue Jul 05 14:40:23 2016] [notice] Digest: generating secret for digest authentication ...

[Tue Jul 05 14:40:23 2016] [notice] Digest: done

[Tue Jul 05 14:40:23 2016] [notice] Apache/2.2.15 (Unix) DAV/2 SVN/1.6.11 configured -- resuming normal operations

[Tue Jul 05 14:40:26 2016] [error] [client 192.168.50.122] user lily: authentication failure for "/svn/": Password Mismatch

[Tue Jul 05 14:40:38 2016] [error] [client 192.168.50.122] user lily: authentication failure for "/svn/": Password Mismatch

[Tue Jul 05 14:40:40 2016] [error] [client 192.168.50.122] File does not exist: /var/www/html/favicon.ico

[Tue Jul 05 14:40:45 2016] [error] [client 192.168.50.122] user lily: authentication failure for "/svn/": Password Mismatch





svn通过ldap验证小结:

1.配置成功saslauthd

2.在ldap服务器中配置/etc/sasl2/svn.conf

3.配置好svn服务,并且开启sasl支持,重启svn

4.配置authz授权ldap用户访问项目

5.配置httpd.conf授权通过ldap访问





注意:

通过ldap认证的用户,必须在svn和ldap中添加相同账号,并且密码必须一致,否则无法访问

svn使用openldap验证apache访问方式的更多相关文章

  1. SVN服务的模式和多种访问方式 多种访问原理图解与优缺点

    SVN企业应用场景 SVN任是当前企业的主流.git正在发展,未来会成为主流.如果大家精力足够,建议同时掌握. 1.4运维人员掌握版本管理 对于版本管理系统,运维人员需要掌握的技术点: 1.安装.部署 ...

  2. CentOS搭建SVN服务器,并通过Apache HTTP方式访问

    摘要:本文主要讲述了在centos 6.5环境下搭建svn服务器,可通过svn:\\IP方式访问.同时由于部分公司内网端口限制,并不能访问外网的svn服务器,所以特地结合了apache服务器,使得可以 ...

  3. Centos虚拟机SVN的安装和使用http方式访问svn服务器

    1.查看是否安装旧版SVNrpm -qa | grep subversion2.卸载旧版本SVNyum remove subversion3.安装SVNyum -y install subversio ...

  4. 在APACHE服务器上的访问方式上去除index.php

      在APACHE服务器上的访问方式上去除index.php   下面我说下 apache 下 ,如何 去掉URL 里面的 index.php 例如: 你原来的路径是: localhost/index ...

  5. svn的安装(整合apache、ldap)包括错误解决post commit FS processing had error

    2013年12月5日 admin 发表评论 阅读评论 以下是centos环境下,以yum安装apache及其相关软件.svn使用源码包编译,使用官网最新的1.8.5版本. 一.安装apache ope ...

  6. 持续集成之二:搭建SVN服务器(整合Apache+Subversion)

    安装环境 Red Hat Enterprise Linux Server release 7.3 (Maipo) jdk1.7.0_80 rhel-server-7.3-x86_64-dvd.iso ...

  7. LDAP落地实战(二):SVN集成OpenLDAP认证

    上一篇文章我们介绍了LDAP的部署以及管理维护,那么如何接入LDAP实现账号统一认证呢?这篇文章将带你完成svn的接入验证 subversion集成OpenLDAP认证 系统环境:debian8.4 ...

  8. Centos6.8/7.0搭建Git服务http访问方式

    安装Git版本:git 2.10.0 Git访问方式:基于http的基本验证(非SSL) 1. 安装Apache软件: [root@localhost ~]# yum install httpd 设置 ...

  9. Apache用户认证、域名跳转、Apache访问日志

    5月29日任务 课程内容: 11.18 Apache用户认证11.19/11.20 域名跳转11.21 Apache访问日志扩展 apache虚拟主机开启php的短标签 http://ask.apel ...

随机推荐

  1. 【loj3044】【zjoi2019】Minimax

    题目 描述 ​ 给出一颗树,定义根节点1的深度为1,其他点深度为父亲深度+1: ​ 如下定义一个点的点权: ​ 1.叶子:为其编号:2.奇数深度:为其儿子编号最大值:3.偶数深度:为其儿子编号最小值: ...

  2. 忘记ios访问限制密码

    1.使用iTunes将手机备份在本地. 2.下载iBackupBot,打开后在左侧可以看到你的历史备份,选择刚刚备份的文件.依次选择System Files -> HomeDomain -> ...

  3. 【洛谷P1379】八数码难题 状压bfs

    对于这道题来说,每个时刻的状态是整个棋盘所有棋子的位置,即:任何一个棋子位置发生了移动,都会使得状态转移. 因此,需要采取将整个状态作为广搜的搜索对象,进行状态压缩.采用哈希得到每个状态的对应的数值, ...

  4. 在 CentOS 6.x 上安装最新版本的 git

    在 CentOS 的默认仓库中有git,所以最简单的方法是: $ sudo yum install git 这种方法虽然简单,但是一般仓库里的版本更新不及时,比如 CentOS 仓库中的 git 最新 ...

  5. 走进Java中的持有对象(容器类)【二】Collection

    概述 通过前文的学习,我们对容器的分类及常用容器类的作用有了基本的认识.本文将针对Collection容器的功能与使用进行细致分析. 基本操作 Collection集合抽象出的目的是为存放独立元素的序 ...

  6. Mysql占用CPU过高如何优化,如何解决

    2017-02-28 15:13 331人阅读 评论(0) 收藏 举报   MySQL占用CPU过高如何优化 一次生产DB服务器的 超负荷运行问题解决: 1.查看生产DB服务器top列表, 执行 to ...

  7. 浅谈python函数签名

    函数签名对象,表示调用函数的方式,即定义了函数的输入和输出. 在Python中,可以使用标准库inspect的一些方法或类,来操作或创建函数签名. 获取函数签名及参数 使用标准库的signature方 ...

  8. 20181114 Redis

    Redis 下载 Windows版本 Windows版本 已经有很久没有更新了,建议还是使用Linux版本 Linux版本 官网下载即可 配置文件 Windows版本 redis.windows.co ...

  9. 使用cpanm安装perl相关模块

    cpanm是安装Perl模块的最方便的方法.自动下载安装依赖包.使用CPAN shell或下载源码包安装模块,遇到大量依赖关系,非常头痛.下面就是一例: 1. 安装cpanmcpanm其实是一个可执行 ...

  10. sql 各种常用函数

    1.stuff函数 替换制定字符串 stuff(,,'许嵩') 结果: 最帅的许嵩最帅的我 2.replace函数 select replace('蜀云泉真是帅啊','蜀云泉','许嵩') 结果: 许 ...