SVN 部署以及對接Ldap


安裝環境

  • 系統版本:Centos7.9
  • 安裝方式: yum 安裝

部署SVN

  • 安裝svn
yum -y install subversion
  • 檢查版本
svnserve --version

配置SVN

  • 創建SVN庫
mkdir -p /opt/svn
  • 創建repo代碼庫
svnadmin create /opt/svn/repo
  • 創建完成后,生成以下文件
cd /opt/svn/repo

  • svn 配置文件修改,修改以下參數
vim /opt/svn/repo/conf/svnserve.conf
[general]
anon-access = none #匿名訪問的權限,可以是read,write,none,默認為read
auth-access = write #使授權用戶有寫權限
password-db = passwd #密碼數據庫的路徑
authz-db = authz #訪問控制文件
realm = repo #認證命名空間,subversion會在認證提示里顯示,並且作為憑證緩存的關鍵字

截圖如下:

  • 啟動svn
svnserve -d -r /opt/svn/ --listen-port=3690 --log-file /tmp/svn.log &
  • 查看svn 進程

至此,svn 部署完成,開始對接ldap!

svn對接ldap

配置sasl

  • sasl 說明
SASL全稱Simple Authentication and Security Layer,是一種用來擴充C/S模式驗證能力的機制。
SASL是一個膠合庫,通過這個庫把應用層與形式多樣的認證系統整合在一起。這有點類似於PAM,但是后者是認證方式,決定什么人可以訪問什么服務,而SASL是認證過程,側重於信任建立過程,這個過程可以調用PAM來建立信任關系。在這里Memcached就是上面提到的應用層,具體的認證交給SASL庫,SASL會根據相應的認證機制來完成驗證功能。
  • 安裝sasl
yum -y install *sasl*
  • 修改認證方式
vim /etc/sysconfig/saslauthd
將MECH=pam 修改成MECH=ldap
  • 創建/etc/saslauthd.conf 文件,寫入以下內容
    vim /etc/saslauthd.conf
ldap_servers: ldap://xxx.xxx.cn:389/
ldap_bind_dn: cn=admin,dc=xxx,dc=cn
ldap_bind_pw: xxxxx
ldap_search_base: dc=xxx,dc=cn
ldap_filter: uid=%U
ldap_password_attr: userPassword
  • 創建/etc/sasl2/svn.conf文件,寫入以下內容
    vim /etc/sasl2/svn.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
  • 重啟saslauthd服務
systemctl restart saslauthd 
注: 如果是docker 啟動,需要另一種方式啟動
/usr/sbin/saslauthd -m /run/saslauthd -a ldap 
測試ldap認證是否配置成功,xioali是ldap用戶名,123是密碼。可以看到ldap配置沒有問題
testsaslauthd -uxiaoli -p123
0: OK "Success."
  • 修改SVN svnserve.conf 配置文件
我的SVN倉庫地址為/opt/svn/repo,所以服務器配置文件路徑為/opt/svn/repo/conf/svnserve.conf 

啟用如下配置
vim /opt/svn/repo/conf/svnserve.conf
use-sasl = true  

注意:使用LDAP認證后,passwd就不再生效了。但是賬戶權限還是需要在authz中設置。LDAP Server只是驗證用戶在ldap server上是否存在,但不進行權限限制
  • 修改完svn 配置后需要重啟svn
1. 殺死svn 進程號
2.啟動svn 
svnserve -d -r /opt/svn/ --listen-port=3690 --log-file /tmp/svn.log &
  • 在authz 中增加用戶權限
cat /opt/svn/repo/conf/authz 

[groups]
repo = li.xinliang,zhao.bb
rrepo = li.aa

[repo:/]
@repo = rw
@rrepo = r

上述權限表面 li.xinliang,zhao.bb 擁有 rw 讀寫權限;li.aa 用戶擁有只讀 r 權限
  • 驗證
下載svn 客戶端,打開客戶端並輸入 svn://10.65.0.11:3690/repo  
輸入ldap 賬號: li.xinliang
輸入ldap 密碼:xxxx 

結論:li.xinliang,zhao.bb 擁有 rw 讀寫權限,可以checkout、update、提交代碼
      li.aa 只能update,查看內容,不能提交代碼

至此,SVN 對接Ldap 完成!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM