Samba4集成LDAP详细安装及配置

近期公司的项目组给我们提需求,让我们搭建几套打印机测试环境,测试打印机的bug,环境分别为:1.windows2012 LDAP的匿名、SSL(636)、kerbors。2.Samba4集成的LDAP服务的匿名、SSL(636)、kerbors。3domino9.0.1FP3的LDAP服务的匿名、SSL(636)、kerbors服务。花了一些时间搭建完成了,所以分享给有需求的参考。其实对于以上提到的服务相信大家都已经很熟悉了。大概思路讲解:windows LDAP顾名思义就是Microsoft的Active Directory服务,安装完除了匿名其他服务均可以默认访问的,如果需要开启匿名,需要通过Adsiedit编辑配置AD配置来完成。SSL(636的话,我们可以安装CA服务器来提供证书的申请及办法)。Domino服务跟windows LDAP、SAMBA4其实跟windows的操作大同小异,具体见下:

我们首先说说Samba4集成的LDAP服务吧。说到samba大家应该都很熟悉,最早是实现windows和linux之间的文件共享。自升级到4.0版本就集成了LDAP协议。

参考链接: ;

介绍完后,我们就可以开始部署了

Server Information

Below, we will be using the following configuration/settings:

Installation Directory: /usr/local/samba/  

AD DC Hostname: Samba4    
AD DNS Domain Name: Samba4.iternalsoft.com    
Kerberos Realm: Samba4.iternalsoft.com    
NT4 Domain Name/NetBIOS Name: Samba4    
IP Address: 192.168.6.163    
Server Role: Domain Controller (DC)    
Domain Admin Password: 123456    
Forwarder DNS Server: 192.168.6.163

Os: Centos6.4

再次我们准备在线下载安装包,在线下载的话,我们需要用到wget组件进行在线下载。

所以我们需要安装wget组件。

下载地址:开始下载安装

Yum install –y wget

然后使用wget downloadlinks下载即可

Wget

Ls 查看下载的文件

Samba4下载成功后,我们在安装samba4前需要做一些准备工作。比如安装依赖包及卸载系统自带的低版本。在此我们先通过rpm来查看系统再带的低版本samba

Rpm -qa | grep samba

我们需要通过以下命令来卸载系统自带的低版本samba程序

yum remove samba-winbind-client samba-common samba-client

卸载后,可以通过 rpm -qa | grep samba进行确认

接下来安装samba4依赖包,不然samba4无法编译通过安装

yum install perl gcc libacl-devel libblkid-devel gnutls-devel \  

readline-devel python-devel gdb pkgconfig krb5-workstation \    
zlib-devel setroubleshoot-server libaio-devel \    
setroubleshoot-plugins policycoreutils-python \    
libsemanage-python setools-libs-python setools-libs \    
popt-devel libpcap-devel sqlite-devel libidn-devel \    
libxml2-devel libsepol-devel libattr-devel \    
keyutils-libs-devel cyrus-sasl-devel cups-devel bind-utils \    
libxslt docbook-style-xsl openldap-devel

依赖包安装完成

接下来就是开始编译安装了。我们首先查看下载的文件。

ls

然后解压,编译安装

Tar zxvf samba-4.2.1.tar.gz

然后ls进入解压目录,进行编译安装

./configure

make

Make install

# vim ~/.bash_profile 添加环境变量

在PATH 后边添加:/usr/local/samba/bin:/usr/local/samba/sbin

#source ~/.bash_profile

# echo $PATH 查看是否添加成功。

设置hosts

Cd /usr/local/samba/etc

samba-tool domain provision --use-rfc2307 –interactive

按照提示完成操作

如果测试不成功,vim /etc/reslov.conf 添加以下格式的域名解析即可

Domain test.com

最后运行samba启动samba服务就可以了

最后netstat -anlpt

服务启动了,怎么测试呢?

smbclient -L localhost -U%

smbclient //localhost/netlogon -UAdministrator -c 'ls'

我们最后需要通过真实的client加域进行测试

最后我们需要将client加域然后测试

使用域用户登陆

然后我们为了方便管理该域,安装ADDS管理工具

然后我们连接域控制器,新建用户

添加邮件地址

通过测试工具测试 simple

然后单击ok即可进行连接测试,最后的结果是连接失败,如果我们新建一个测试账户就可以连接,使用系统自带的administrator就无法正常连接。那如果新建测试账户呢,在此我们需要应用到windows 管理工具进行连接。通过新创建的账户进行测试完成。

接下来我们需要为samba4的LDAP服务配置匿名,默认SAMBA4的LDAP匿名是关闭的,我们可以通过以下方法开启匿名,我们通过windows 系统自带组件的ADSI工具连接进行编辑配置。

Click Start, point to Administrative Tools, and then click ADSI Edit.

选择-----配置

In the console tree, double-click the configuration directory partition (CN=Configuration,CN={GUID}), double-click the services container (CN=Services), double-click the Windows NT container (CN=Windows NT), right-click the directory service container (CN=Directory Service), and then click Properties.

1.In Attributes, click dsHeuristics, and then click Edit.

2.In Value, modify the value of the seventh character in the attribute (counting from the left) to 2, as follows:  

0000002001001

dsHeuristics===0000002001001

最后单击确认即可。然后我们通过测试工具进行测试

接下来我们要配置samba4的kerbors服务

In CentOS 6.3 or 6.4, kerberos is handled by the '/etc/krb5.conf' file. Make a backup copy of this original file, and then replace the existing file, if any, with the sample from /usr/local/samba/share/setup/krb5.conf.

# cp /usr/local/samba/share/setup/krb5.conf /etc/krb5.confEdit the file and replace ${REALM} with the value you chose for the '--realm' parameter of the provision command earlier, make sure to enter the realm in uppercase letters. It should look something like this:

# cat /etc/krb5.conf

[libdefaults]

default_realm = MYDOMAIN.COM

dns_lookup_realm = false

dns_lookup_kdc = true

首先备份

cp /usr/local/samba/share/setup/krb5.conf /etc/krb5.conf

然后vim /etc/krb5.conf 确认一下三行就可以了

nslookup

Set type=srv

> _ldap._tcp.beyond.com

Server:                192.168.6.165

Address:        192.168.6.165#53

_ldap._tcp.beyond.com        service = 0 100 389 dc.beyond.com.

我们通过kinit工具测试kerbors是否运行正常,通过以下结果看出就是正常的

Kinit administrator@BEYOND.COM

最后我们进行测试

最后我们要说说samba4的LDAP服务的SSL,在window上我们需要安装一个ca服务器,再次我们也是一样

Mkdir certs

Cd certs

/etc/pki/tls/misc/CA -newca

Cd /etc/pki/CA/

Openssl x509 -in cacert.pem -days 3650 -out cacert.pem -signkey ./private/cakey.pem

Cd /root/certs/

/etc/pki/tls/misc/CA -newreq

/etc/pki/tls/misc/CA -sign

Newcert.pem 位证书文件

Newkey.pem为证书秘钥文件

/etc/pki/CA/目录下的cacert.pem为CA证书

证书申请及配置

Cd /usr/local/samba/private/tls/

Cd ..

Cd /usr/local/samba/etc

Vim smb.conf

tls enabled = yes  

tls keyfile = tls/key.pem    
tls certfile = tls/cert.pem    
tls cafile = tls/ca.pem