官网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
#
#samba4 This shell script takes care of starting and stopping
# samba4 daemons.
#
# chkconfig: - 58 74
# description: Samba 4.0 will be the next version of the Samba suite
# and incorporates all the technology found in both the Samba4 alpha
# series and the stable 3.x series. The primary additional features
# over Samba 3.6 are support for the Active Directory logon protocols
# used by Windows 2000 and above.
### BEGIN INIT INFO
# Provides: samba4
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Should-Start: $syslog $named
# Should-Stop: $syslog $named
# Short-Description: start and stop samba4
# Description: Samba 4.0 will be the next version of the Samba suite
# and incorporates all the technology found in both the Samba4 alpha
# series and the stable 3.x series. The primary additional features
# over Samba 3.6 are support for the Active Directory logon protocols
# used by Windows 2000 and above.
### END INIT INFO
# Source function library.
.
/etc/init
.d
/functions
# Source networking configuration.
.
/etc/sysconfig/network
prog=samba
prog_dir=
/usr/local/samba/sbin/
lockfile=
/var/lock/subsys/
$prog
start() {
[
"$NETWORKING"
=
"no"
] &&
exit
1
# [ -x /usr/sbin/ntpd ] || exit 5
# Start daemons.
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
}
# See how we were called.
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
然后执行命令
1
|
# ldconfig
|
来更新动态链接库缓冲。
5、配置环境变量:
[root@sambar~]# vim .bash_profile
1
2
3
4
5
6
7
8
|
#.bash_profile
#Get the aliases and functions
if
[ -f ~/.bashrc ];
then
.~/.bashrc
fi
#User specific environment and startup programs
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
|
# smbclient -L //localhost -Uadministrator
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~]
# smbclient //localhost/netlogon -Uadministrator%此处输入设置的密码
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
|
#netstat -tunpe | grep ":53"
|
1
2
|
#host-t SRV _ldap._tcp.xfs.com.
#host -t SRV_kerberos._udp.xfs.com
|
正常会返回
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一样
|