Ubuntu 9.04 Samba服务器与Active Directory集成
这个howtos描述了Ubuntu 9.04 Samba服务器如何与Active Directory集成,以及如何使用Winbind; Linux服务器透明地看到域用户和组。 我假设您的Ubuntu服务器已安装并准备配置Samba。
现在首先是第一件事。 我们需要安装几个应用程序才能继续进行配置。 所以为了安装任何东西,你必须确保你每次输入sudo
,但它是烦人的每次输入sudo
。 所以我通常做的是:
username@ubuntuserver:~$ sudo su
在提示符中只需输入当前用户名的密码。
那么你会得到这个:
root@ubuntuserver:/home/username#
现在我们需要安装samba,krb5-user和winbind。 要做到这一点只需键入:
root@ubuntuserver:/home/username# apt-get update
root@ubuntuserver:/home/username# apt-get install samba krb5-user winbind
一旦你完成安装,然后开始配置krb5.conf
( /etc/krb5.conf
)。 但在我们进行更改之前,我们需要确保我们先备份原始文件。 所以我们做如下:
root@ubuntuserver:/home/username# cp /etc/krb5.conf /etc/krb5.conf.bak
一旦我们完成了备份,我们可以开始配置krb5.conf
:
root@ubuntuserver:/home/username# nano /etc/krb5.conf
[logging] default = FILE:/var/log/krb5.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmin.log [libdefaults] default_realm = EXAMPLE.NET dns_lookup_realm = false dns_lookup_kdc = true ticket_lifetime = 24000 [realms] EXAMPLE.NET = { kdc = yourdomaincontroller.example.net admin_server = yourdomaincontroller.example.net default_domain = EXAMPLE.NET } [domain_realm] .example.net = EXAMPLE.NET example.net = EXAMPLE.NET
测试Kerberos:
root@ubuntuserver:/home/username# kinit Administrator@EXAMPLE.NET
Password for Administrator@EXAMPLE.NET: **********
root@ubuntuserver:/home/username# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrator@EXAMPLE.NET
Valid starting Expires Service principal
08/06/09 12:09:34 08/06/09 22:09:39 krbtgt/EXAMPLE.NET@EXAMPLE.NET
renew until 08/07/09 12:09:34
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached
SAMBA配置:
以下是我为Ubuntu服务器配置的Samba文件/etc/samba/smb.conf
的示例。 但是在配置原始smb.conf
之前,我们必须确保将smb.conf
备份到smb.confbak
。
root@ubuntuserver:/home/username# cp /etc/samba/smb.conf /etc/samba/smb.confbak
root@ubuntuserver:/home/username# nano /etc/samba/smb.conf
#/etc/samba/smb.conf [global] workgroup = EXAMPLE realm = EXAMPLE.NET netbios name = yourservername server string = %h server (Samba %v, Ubuntu) dns proxy = no log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d security = ADS domain master = no idmap uid = 10000-20000 idmap gid = 10000-20000 template shell = /bin/bash template homedir = /home/%D/%U winbind enum groups = yes winbind enum users = yes winbind use default domain = yes winbind separator = + usershare allow guests = yes
完成配置后,我们需要检查配置是否正在使用testparm。 所以请输入:
root@ubuntuserver:/home/username# testparm
一旦Samba配置测试完成,然后停止并启动winbind服务并重新启动Samba服务:
root@ubuntuserver:/home/username# /etc/init.d/winbind stop
root@ubuntuserver:/home/username# /etc/init.d/samba restart
root@ubuntuserver:/home/username# /etc/init.d/winbind start
现在通过键入以下内容将您的Ubuntu服务器添加到AD域:
root@ubuntuserver:/home/username# net ads join -U Administrator@EXAMPLE.NET
Administrator's Password:*********
Using short domain name - EXAMPLE
Joined 'yourservername' to realm 'EXAMPLE.NET'
而已。 您的服务器'yourservername'将显示在Active Directory中的“计算机”下。 所以现在由你决定移动你想保留新的Samba成员服务器的“OU”。 将新的Samba服务器成功添加到AD后,下一步将在'nsswitch.conf'中进行一些更改以设置winbind身份验证。
所以在提示符下键入:
root@ubuntuserver:/home/username# nano /etc/nsswitch.conf
# /etc/nsswitch.conf passwd: compat winbind group: compat winbind shadow: compat winbind hosts: files dns wins networks: files dns protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
之后,保存您所做的所有更改,并重新启动Samba和winbind服务。
确保winbind正在工作,做到这一点:
root@ubuntuserver:/home/username# wbinfo -u
Administrator
Guest
User1
User2
root@ubuntuserver:/home/username# wbinfo -g
Domain Admins
Sales
HR
Helpdesk Stuff
您还可以通过键入以下内容找到域控制器信息:
root@ubuntuserver:/home/username# net ads info
LDAP server: 192.168.x.x
LDAP server name: yourdomaincontroller.example.net
Realm: EXAMPLE.NET
Bind Path: dc=EXAMPLE, dc=NET
LDAP port: 389
Server time: tHU, 06 aUG 2009 15:36:46 EST
KDC server: 192.168.x.x
Server time offset: 1
root@ubuntuserver:/home/username#
就这样。 我希望它有帮助。