带有LDAP后端的CentOS 5.x Samba域控制器

具有LDAP后端的CentOS 5.x Samba域控制器

这将显示如何使用本地LDAP后端设置Samba域控制器,使用CentOS 5.x(在5.3上测试,仍然在5.4上成功运行)。 包括用于管理LDAP用户/组/ etc的Web界面。

2010年1月 - 现在支持Windows 7域登录(请参阅指南结尾)。

禁用selinux:

这只会引起问题,我不会在本指南中混淆SELinux,而不是禁用它。

echo 0 >/selinux/enforce
/ etc / sysconfig / selinux中 ,设置:
SELINUX=disabled

安装一些工具

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
yum update
yum install openldap-servers nss_ldap samba httpd openssl mod_ssl mysql mysql-server php php-xml php-ldap php-mysql php-pdo php-cli php-common smbldap-tools

以这种方式安装smbldap-tools应该安装所有依赖的Perl模块,但是yum上提供的版本有一些错误,所以我们稍后将升级到最新版本,保留依赖关系,但覆盖smbldap-tools软件包:

rpm -Uvh http://download.gna.org/smbldap-tools/packages/smbldap-tools-0.9.5-1.noarch.rpm

设置主机名

为了本指南中的目的,我们正在调用服务器的主机名“dc1”和域“DOMAINNAME”。 注意:如果要将您的fqdn用于您的Samba域,无论您在哪里看到dc = DOMAINNAME ,请将其替换为dc = example,dc = com ,假设您的fqdn是example.com。 另请注意,“root”将是samba管理员用户名,如果您不喜欢,请更改它。 相关行是: cn = rootcn:root

/ etc / hosts中 ,添加或替换您的行(按照文件的格式,假设192.168.0.5是您的服务器的网络可访问的IP):

192.168.0.5 dc1.DOMAINNAME dc1

在命令行中设置你的主机名:

hostname dc1.DOMAINNAME

生成主密码并设置ldap

slappasswd

注意slappasswd的输出,您将在一分钟内将其插入slapd.conf

mv -f /etc/openldap/slapd.conf /etc/openldap/slapd.conf.dist

将以下文本插入到/etc/openldap/slapd.conf中

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba.schema

allow bind_v2
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args

database bdb
suffix "dc=DOMAINNAME"
rootdn "cn=root,dc=DOMAINNAME"
rootpw {SSHA}TTzshhAbmZPPb8F2s7sgf9B+IrZt+nUD
password-hash {SSHA}
directory /var/lib/ldap

index cn,sn,uid,displayName pres,sub,eq
index uidNumber,gidNumber eq
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
index objectClass pres,eq
index default sub

注意上述文本中的rootpw行,那就是从slappasswd粘贴输出的地方。

cp /usr/share/doc/samba-3.*/LDAP/samba.schema /etc/openldap/schema/
cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/DB_CONFIG
chmod 600 /var/lib/ldap/DB_CONFIG

将以下文本插入到/etc/openldap/init.ldif中

dn: dc=DOMAINNAME
objectclass: dcObject
objectclass: organization
o: CentOS Directory Server
dc: DOMAINNAME
dn: cn=root,dc=DOMAINNAME
objectclass: organizationalRole
cn: root
slapadd -l /etc/openldap/init.ldif
chown -R ldap:ldap /var/lib/ldap
chmod 600 /var/lib/ldap/*
slapcat

slapcat应该产生与以下输出非常相似的东西:

dn: dc=DOMAINNAME
objectClass: dcObject
objectClass: organization
o: CentOS Directory Server
dc: DOMAINNAME
structuralObjectClass: organization
entryUUID: 717d1b1e-ce90-102d-88c3-df22563ebfee
creatorsName: cn=root,dc=DOMAINNAME
modifiersName: cn=root,dc=DOMAINNAME
createTimestamp: 20090506134920Z
modifyTimestamp: 20090506134920Z
entryCSN: 20090506134920Z#000000#00#000000
dn: cn=root,dc=DOMAINNAME
objectClass: organizationalRole
cn: root
structuralObjectClass: organizationalRole
entryUUID: 71858556-ce90-102d-88c4-df22563ebfee
creatorsName: cn=root,dc=DOMAINNAME
modifiersName: cn=root,dc=DOMAINNAME
createTimestamp: 20090506134920Z
modifyTimestamp: 20090506134920Z
entryCSN: 20090506134920Z#000001#00#000000
service ldap start
chkconfig ldap on
ldapsearch -x -b "dc=DOMAINNAME"

ldapsearch的输出应该非常类似于以下内容:

# extended LDIF
#
# LDAPv3
# base <dc=domainname> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# DOMAINNAME
dn: dc=DOMAINNAME
objectClass: dcObject
objectClass: organization
o: CentOS Directory Server
dc: DOMAINNAME
# root, DOMAINNAME
dn: cn=root,dc=DOMAINNAME
objectClass: organizationalRole
cn: root
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
</dc=domainname>
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏