Loading...

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 withconfigfilepath=/usr/local/php/etc enablexml disablerpath enablebcmath enableshmop enablesysvsem enableinlineoptimization withcurl enablembregex enablefpm enablembstring withgd enablegdnativettf withopenssl withmhash enablepcntl enablesockets withxmlrpc enablezip enablesoap enableopcache withpdomysql enablemaintainerzts

#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 单独使用 

[[email protected] ~]# 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

#cp /usr/local/apache/bin/apachectl  /etc/rc.d/init.d/httpd

#vim httpd

# chkconfig: 2345 85 15

# description: Activates/Deactivates Apache Web Server


#chkconfig –add httpd
#chkconfig httpd on


重启服务:   service httpd restart .  哈哈OK. 现在可以下一步了.

这里的提示不用理会,稍后改下配置文件就不会再提示了。
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

[[email protected] ~]# 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

来自为知笔记(Wiz)

本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。

© 版权声明

相关文章