官网wiki:
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO
环境配置:
1
2
3
4
5
6
7
8
|
yum install 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 libacl-devel libsepol-devel libattr-devel \
keyutils-libs-devel cyrus-sasl-devel cups-devel bind-utils
|
测试环境:centosx64 6.2
主机名称:samba.xfs.com
下载samba4.1.0从www.samba.org
1、源码安装
解压后
1
2
3
4
|
cd /usr/src/samba-4 .1.0
. /configure
make
makeinstall
|
默认会安装到/usr/local/samba目录
2、启动samba服务方法:
方法(1)/usr/local/samba/sbin/samba
方法 (2)将/usr/local/samba/sbin/samba增加到/etc/rc.d/rc.local中
方法(3)增加自启动项:
建立文件samba4
以下是文件内容:
--------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
#!/bin/bash
. /etc/init .d /functions
. /etc/sysconfig/network
prog=samba
prog_dir= /usr/local/samba/sbin/
lockfile= /var/lock/subsys/ $prog
start() {
[ "$NETWORKING" = "no" ] && exit 1
echo -n $ "Starting samba4: "
daemon $prog_dir/$prog -D
RETVAL=$?
echo
[ $RETVAL - eq 0 ] && touch $lockfile
return $RETVAL
}
stop() {
[ "$EUID" != "0" ] && exit 4
echo -n $ "Shutting down samba4: "
killproc $prog_dir/$prog
RETVAL=$?
echo
[ $RETVAL - eq 0 ] && rm -f $lockfile
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $prog
;;
restart)
stop
start
;;
reload)
echo "Not implemented yet."
exit 3
;;
*)
echo $ "Usage: $0 {start|stop|status|restart|reload}"
exit 2
esac
|
--------------------------------------------------------
保存这个文件,chmod755 改一下权限,放到
1
2
|
#chmod 755 /etc/init.d/samba4
#chkconfig samba4 on
|
4.配置动态链接库路径
运行samba的进行smbd和nmbd需要到目录/usr/local/samba/lib下的动态链接库文件。但是该目录不是系统默认的动态链接库文件搜索路径,于是我们需要将该目录添加到文件ld.so.conf中。执行下面的命令
# vi /etc/ld.so.conf
然后,打开ld.so.conf文件,并在该文件中加入下面这一行内容
/usr/local/samba/lib
然后执行命令
来更新动态链接库缓冲。
5、配置环境变量:
[root@sambar~]# vim .bash_profile
1
2
3
4
5
6
7
8
|
if [ -f ~/.bashrc ]; then
.~/.bashrc
fi
PATH=$PATH:$HOME /bin : /usr/local/samba/bin : /usr/local/samba/sbin
export PATH
|
6、建立xfs.com域(如果没有smb.conf时,自动创建到/usr/local/samba/etc/)
备注:如果想删除刚建立的域,使用如下命令
1
2
|
rm -rf /usr/local/samba/etc/smb.conf
rm -rf /usr/local/samba/ private /*
|
建立域命令:
1
|
/usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive
|
Realm[BTA.NET.CN]: xfs.com
Domain[xfs]: xfs
ServerRole (dc, member, standalone) [dc]: dc
DNSbackend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE)[SAMBA_INTERNAL]:
DNSforwarder IP address (write 'none' to disable forwarding)[202.106.0.20]:
Administratorpassword:
Retypepassword:
建立完域后,需要启动samba
service samba4 start 或/usr/local/samba/sbin/samba
如果忘记了密码,可以使用命令更改域管理员密码方法:
1
|
samba-tool user setpassword administrator
|
7、测试建立的域:
1
2
3
4
5
6
7
8
9
10
11
12
|
Enterroot's password:
Domain=[XFS]OS=[Unix] Server=[Samba 4.1.0]
Sharename Type Comment
--------- ---- -------
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.1.0)
Domain=[XFS]OS=[Unix] Server=[Samba 4.1.0]
Server Comment
--------- -------
Workgroup Master
|
--------- -------
表明建立成功。
1
2
3
|
[root@sambar~]
Domain=[XFS]OS=[Unix] Server=[Samba 4.1.0]
smb:\>
|
如果出现错误:
session setup failed: NT_STATUS_INVALID_SERVER_STATE
这是因为执行smbclient命令的用户ID没有成为samba服务的用户,解决方法如下:
先将改用户ID加入到samba中
# smbpasswd -a root
按要求设置密码
8设置DNS
samba4自带有一个dns服务,也可以自己另外搭建DNS服务。比如用带DLZ的bind9的话,在先前建域的命令中加入参数--dns-backend=BIND9_DLZ。我用的是samba4自带的dns。
修改/etc/resolv.conf加入domainxfs.com和nameserver 172.16.0.1 “主机的局域网IP”两行,
nameserver要放在其它nameserver前面(如果不止一行nameserver的话)检查一下/usr/local/samba/etc/smb.conf配置文档里[global]项有没有dnsforwarder = “当地的DNS地址”。这是DNS转发功能,可以解析除自己的test.org域名以外的其它网域。
执行
检查DNS端口是否占用:
正常会返回
1
2
3
4
|
[root@sambar ~]# host -t SRV _ldap._tcp.xfs.com
_ldap._tcp.XFS.COM has SRV record 0 100 389 sambar.xfs.com
[root@sambar~]# host -t SRV _kerberos._udp.xfs.com
_kerberos._udp.XFS.COMhas SRV record 0 100 88 sambar.xfs.com
|
证明dns能解析域的srv记录。
注意点:重启后resolv.conf会自动恢复原来状态。所以我的方法是复制一份备份,放到rc.local中开机自动执行
如:[root@sambarshare]# cat /etc/rc.d/rc.local
增加此行:
1
|
\cp/usr/local/samba/etc/resolv.conf /etc/resolv.conf
|
9、配置kerberos (最好是yuminstall -y krb5*) 再安装一下,相关软件,或升级。
1
|
cp /usr/local/samba/share/setup/krb5 .conf /etc/krb5 .conf
|
修改:
1
2
3
4
5
|
[libdefaults]
default_realm = XFS.COM (大写)
dns_lookup_realm = false
dns_lookup_kdc = true
其它与域有关的都得改成相在域名
|
然后把krb5.conf中的default_realm= 填成XFS.COM。
用kinit administrator@XFS.COM命令测试一下,会要你输密码,输入正确密码会没任何提示,
如果不是用的自带的dns,这时要改下你的dns配置,使它通过kerberos验证。
测试结果如下:
1
2
3
4
5
6
7
8
9
|
[root@sambar~]# kinit administrator@XFS.COM
Passwordfor administrator@XFS.COM:
Warning:Your password will expire in 41 days on Sat Nov 23 17 : 23 : 07 2013
[root@sambar~]# klist
Ticketcache: FILE:/tmp/krb5cc_0
Defaultprincipal: administrator@XFS.COM
Validstarting Expires Service principal
10 / 13 / 1315 : 24 : 29 10 / 14 / 13 01 : 24 : 29 krbtgt/XFS.COM@XFS.COM
renewuntil 10 / 14 / 13 15 : 24 : 19
|
10、管理域控制器:
1
2
3
4
5
6
7
|
(1)Windows系统客户机加域(加域时记得关掉服务器iptables,因为不知道都开什么端口,所以就干脆关了它,否则加不了域,以后再研究,都需开什么端口)
(2)这里以XP系统为例。把xp的首选DNS改为samba4主机的ip地址。
检查时间与samba4主机相差不能太多。
(3)在“我的电脑”上鼠标右键,点“属性”-“计算机名”-“更改”-“域”,改成XFS.COM,确定。会提示输入有权让你加域的账号、密码,用户名输入administrator,密码输入先前建域时设置的密码。确定,重启电脑。
(4)按Ctrl+Alt+Delete键打开登录框,第三行“登录到”选“XFS”,账号、密码还是输入administrator和密码
(因为现在只有这个账号,以后给多个用户添加账号后就应该让用户各自使用各自账号、密码登录)。
进入桌面,说明samba4建域成功。
|
11、客户机管理域控制器
1
2
3
4
5
6
|
(1)下载微软的adminpak.msi软件包,windows2003光盘上也有。安装。
(2)然后打开“开始”-“运行”输入dsa.msc。如果打不开,请安装了SupportTools和gpmc工具或重启电脑.
(3)用administrator登录xfs.com域,再打开dsa.msc。
(4)如果是windows7请安装RSAT(remoteserver administration tools)工具。
打开“开始”-“管理工具”能看到“ActiveDirectory Users andComputers”,如果看不到,就要手动“开始”-“运行”输入dsa.msc确定。
(5)接下来建组织单位、建组、建用户就跟windowsAD一样
|