zoukankan      html  css  js  c++  java
  • apache+svn+ladp认证

    今日收到上司邮件,下一步公司要做整合,估计以后公司所有环境都需要整改,对我这个菜鸟来说感觉压力好大,因为初次接触linux system。 但我一直都在努力。。。。。come on
    下一步我们会更改那些登录命名带有@ecvision.com的,我们目前所做的动作是为了将来用AD登录做准备。
     
    所以你搭好一个AD的环境,自己测试一下登录有无问题,
     
    AD目前需要做的地方:
    1.       PC和现在域一样绑定能登录
    2.       绑定SVN能登录
    3.       绑定JIRA能登录,设定好JIRA的安全组等等
    4.       AD导出用户到你目前AD(为以后迁移域做准备)
    5.       还有是一些基本的安全策略的测试,例如:不能安装软件,不能更改电脑名,不能修改网络连接等基本的安全控制.

    废话不多说,开始实践

    CentOS 6.6 X64 + Subersion1.8.13+apache 2.4.6

    #yum upgrade
     
    #yum -y install openssl  perl perl* pcre wget  zlib  tree gcc gcc-c++ make libtool pcre-devel lrzsz zlib-devel openssl-devel neon openldap-devel
     
    Install the Apr
    #tar zvxf apr-1.5.2.tar.gz
    #cd apr-1.5.2
    #./configure --prefix=/usr/local/apr
    #make
    #make install
     
    Install the Apr-util
    #tar zvxf apr-util-1.5.4.tar.gz
    #cd apr-util-1.5.4
    #./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
    #Make
    #make install
    #Verify: # /usr/local/apr-util/bin/apu-1-config --version
     
    Install the pcre
    #tar zvxf pcre-8.35.tar.gz
    #cd pcre-8.35
    #./configure --prefix=/usr/local/pcre
    #make
    #make install
     
     
    Install the sqlite
    #tar zvxf sqlite-autoconf-3080500.tar.gz
    #cd sqlite-autoconf-3080500
    #./config
    #make
    #make install
     
    install the dap
    tar zvxf dap-3.9.tar.gz
    cd dap-3.9.tar.gz
    ./configure

     
    install apache
    #tar zvxf httpd-2.4.6.tar.gz
    #cp -rf ./apr-1.5.2  ./httpd-2.4.6/srclib/apr
    #cp -rf ./apr-util-1.5.4  ./httpd-2.4.6/srclib/apr-util
    需要aprapr-utils并解压到 ./srclib/ 目录下再进行编译。
    #cd httpd-2.4.6
    #./configure --prefix=/usr/local/apache --enable-ldap=shared --enable-authnz-ldap=sahred --with-included-apr --with-ldap --with-apr --with-apr-util --enable-dav --enable-dav-fs --enable-dav-lock --enable-rewrite=shared --enable-ssl=shared --enable-deflate=shared --enable-authn-dbm=shared --enable-authn-anon=shared --enable-auth-basic=shared  --with-mpm=prefork --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache      --enable-mods-shared=all
    ./configure --prefix=/usr/local/apache --enable-ldap --enable-authnz-ldap --with-included-apr --with-ldap --with-apr --with-apr-util --enable-so --enable-dav --enable-rewrite --enable-ssl --enable-deflate=shared --enable-authn-dbm --enable-authn-anon --enable-auth-basic  --with-mpm=prefork --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache

    --enable-mods-shared=all :这里参数是添加常用模块,上列编译是编译指定模块,如果把这个参数加上不知行不行,还未测试!!!!!!!! )
    #make
    #make install
     

    install PHP
    yum install libjpeg libjpeg-devel  libpng libpng-devel openssl openssl-devel curl curl-devel libxml2 libxml2-devel -y
    ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/php/etc --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-opcache --with-pdo-mysql --enable-maintainer-zts
    #make
    #make install


    install subversion
    #tar zvxf subversion-1.8.13.tar.gz
    #cd subversion-1.8.10
    #

    ./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util  --with-zlib=/usr/local/zlib --with-sqlite=/usr/local/sqlite


    #make
    #make install
     
    #cd ~
    #vim .bash_profile
    #PATH=$PATH:$HOME/bin:/usr/local/subversion/bin
    #source .bash_profile     #让.bash_profile及时生效


    SVN 单独使用 


    [root@Test ~]# svnadmin create --pre-1.6-compatible /svn/repos  这里一定要加--pre-1.6-compatible 要不然会报错,但是好像不影响使用
    配置版本库下面的/svn/repos/conf/svnserve.conf文件。

    灰色部分是改动的
    然后配置passwd 以及 authz 文件
    vim passwd

    vim authz

    然后配置防火墙,由于我是测试我直接把防火墙关了

    service iptables stop      停止Iptables服务
    chkconfig iptables off   禁止开机启动
    vim /etc/sysconfig/selinux 
    把 SELINUX=enforcing 改为:SELINUX=disabled
    然后重启下reboot
    启动svn :
    svnserve -d -r /svn/repos 

    查看端口是否启用:lsof -i tcp:3690

    然后客户端测试:

    说明配置成功了, 输入账户看下

    失败:配置文件没配好,再继续找原因
    再次配置svnserve.conf文件,指定权限和账户文件具体路径

    还是不行,再继续找原因。查看权限配置文件:authz

    结果可以了:




    SVN+Apache



    #rpm -e --nodeps httpd
    #mv /etc/httpd /etc/httd.org
    #ln -s /usr/local/apache /etc/httpd

    重命名/etc/httpd文件夹,这是安装下来的默认文件,不用它,建立一个httpd一样的软连接到这里
    #rmdir /etc/httpd/logs
    #mkdir /var/log/httpd

    #ln -s /var/log/httpd /etc/httpd/logs
    这里是将apache默认日志文件删除,在/var/log/目录下建立一个httpd日志文件。然后建立一个软连接到原本httpd目录下。
    这里只是个人习惯问题,可改可不改。
    然后启动httpd
    重启却报错了.折腾了好几个小时也没有解决, 直到下班回家在家里重新做,结果又是这个问题. 我发现安装完httpd后 /etc/rc.d/init.d/httpd 有一个启动脚本文件.可是httpd安装目录下的启动脚本文件却不是这个. 而是:/usr/local/apache/bin/apachectl 这个文件. 于是我删除了init.d下面的httpd.然后建立apache/bin/apachectl软连接到 /init.d/httpd目录下. 
    然后vim httpd

    #rm /etc/rc.d/init.d/httpd

    这里的提示不用理会,稍后改下配置文件就不会再提示了。

    Edit  /etc/httpd/conf/httpd.conf

    修改配置文件
    启用mod_dav.so 模块

    cp /usr/local/subversion/libexec/mod_* /usr/local/apache/modules/

    LoadModule dav_svn_module     modules/mod_dav_svn.so
    LoadModule authz_svn_module   modules/mod_authz_svn.so

    这里用户和组改成apche , 因为往后如果要用到其他模块需要apche用户,所以早点改了.
    然后重启httpd那个提示的原因就是这里:  我们把这里改成本地IP地址, 加不加端口都可以

    然后重启httpd

    [root@Test ~]# svnadmin create --pre-1.6-compatible /svn/repo/svntest  
    然后在/svn/目录下建立一个conf目录,然后建立两个文件

    然后建立用户

    vim authz

    给SVN库配置Apache权限
    chown -R apche:apche /svn/repo/svntest
    chmod -R 777 /svn/repo/svntest



    然后编辑 httpd.conf 添加一下SVN配置
    <Location /svn>
    DAV svn
    SVNParentPath /usr/svn
    AuthType Basic
    AuthName "Subversion repository"
    #密码存储文件
    AuthUserFile /usr/svn/auth.conf
    Require valid-user
    #用户访问目录的权限文件
    AuthzSVNAccessFile /usr/svn/access.conf
    </Location>

    service httpd restart

    测试客户端

    这里已连接上,测试权限配置文件是否OK?输入帐号密码看看。。。。。。。
    同样OK , 说明对了。

    备注一下:如果SVN采用httpd的访问访问的话, SVN本身配置文件就没用了,等于作废了。 所以只要配置httpd.conf文件即可。
    接下来是测试 SVN+APACHE+AD验证 也就是apche的LDAP模块功能。如果httpd是rmp安装, 我发现没有这个模块。就算是编译如果没有
    编译这个模块,也不会有。 所以编译的时候注意。


    SVN+APACHE+AD验证      (LDAP)


    首先我的环境是:AD: Windows server 2008 172.17.16.74   域名:szardc1.arsz.com
                  SVN: CentOS 6.6 X64      172.17.16.73   

    要先让SVN能通过域名访问AD  就要先配置一下DNS, 因为域名是通过internet访问的, 但如果是在内网的话,可以通过DNS解析访问
    vim /etc/resolv.conf
    添加以下内容
    nameserver 202.96.134.133
    nameserver 172.17.16.74
    domain szardc1.arsz.com

    然后测试是OK的。通了


    vim httdp.conf
    启动这些模快
    配置LDAP脚本


    配置ldap模块验证:
    <Location /svn/>
             DAV svn
             #SVN版本库路径
             SVNParentPath /svn/repo
             SVNListParentPath On
             #权限控制文件路径
             AuthzSVNAccessFile /svn/conf/authz
             #AuthzLDAPAuthoritative off
             AuthType Basic
             AuthName "subversionserver"
             #认证方式
             AuthBasicProvider ldap
             #绑定域用户  CN:userID   ou :域组  DC :域名  下个三个DC:指的域名是:szardc1.arsz.com 
             AuthLDAPBindDN "CN=svn1,OU=ecvision,DC=szardc1,DC=arsz,DC=com"
             #用户密码AuthLDAPBindPassword "mrtanqun"
             #连接域
             
             AuthLDAPURL "ldap://172.17.16.74:389/DC=szardc1,DC=arsz,DC=com?sAMAccountName?sub?(objectClass=*)"
             #要求全部都要验证
             Require valid-user
    </Location>



    #service httpd restart 重启Httpd

    如果要采用 LDAP 验证的话,  上面HTTPD验证就不需要了, 注释掉那些配置




    接下来测试客户端:

    OK。上面文件a是我用SVN2用户创建的。  我现在登录是SVN3。

    差不多就是这样了.

    其他的还得去摸索, 环境终于搭好了. 想骂人了. NND.. 哈哈




    注意细节:

    启用http.conf中的 mod_dav.so 模块

    cp /usr/local/subversion/libexec/mod_* /usr/local/apache/modules/

    配置ldap模块验证:
    <Location /svn/>
             DAV svn
             #SVN版本库路径
             SVNParentPath /svn/repo
             SVNListParentPath On
             #权限控制文件路径
             AuthzSVNAccessFile /svn/conf/authz  
             #AuthzLDAPAuthoritative off
             AuthType Basic
             AuthName "subversionserver"
             #认证方式
             AuthBasicProvider ldap
             #绑定域用户  CN:userID   ou :域组  DC :域名  下个三个DC:指的域名是:szardc1.arsz.com 
             AuthLDAPBindDN "CN=svn1,OU=ecvision,DC=szardc1,DC=arsz,DC=com"
             #用户密码
             AuthLDAPBindPassword "mrtanqun"
             #连接域
             AuthLDAPURL "ldap://172.17.16.74:389/DC=szardc1,DC=arsz,DC=com?sAMAccountName?sub?(objectClass=*)"
             #要求全部都要验证
             Require valid-user
    </Location>

    authz权限配置文件
    [groups]
    admin = sammytan,nitchellli

    [test:/]
    * = rw
    @admin = rw





  • 相关阅读:
    Docker++:Docker根据名称查询容器ID镜像ID并停止删除
    Jenkins++:Jenkins 部署 war 包到 tomcat8,报错
    Vue++:不同环境打包方式
    Linux++:实现SSH无密码登录
    Jenkins++:Job for jenkins.service failed because the control process exited with error code. See "systemctl st
    Linux++:常用依赖安装
    哈希法学习
    nodeJS笔记
    链表之环形链表
    双指针法数组三数之和
  • 原文地址:https://www.cnblogs.com/gyming/p/5781153.html
Copyright © 2011-2022 走看看