- 论坛徽章:
- 0
|
本帖最后由 kkkggg 于 2013-01-04 11:09 编辑
偶尔上samba.org的网站,看到9月13日发布了samba4 rc1,samba4的候补发行版。意谓着离正式发行版差别不大了。看一下说明。里面写着已经可以模拟windows2000及以上的域,不再只是模拟nt4域了。也许上次微软向samba组织提供代码的事,使samba解决了兼容的问题。
太好了!可以用linux替代windows dc服务器了。
下面记录一下这次安装、配置samba4的过程。系统是ubuntu server 12.04 32bit,samba软件版本samba4 rc1。
安装操作系统
首先下载安装ubuntu server 12.04(samba4的howto上只提到了debian、ubuntut、red hat、opensuse、gentoo等的系统支持,所以就选了ubuntu来安装)。具体安装过程可以网上搜索,这里就不详述了。
ubuntu server版软件包我只选了ssh,方便远程操作服务器。
按照Samba 4 OS Requirements文档里教的,安装这些软件apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils
安装samba4
从samba网站下载samba-4.0.0rc1.tar.gz软件源码包。我解压到了/usr/src下面。
进入文件夹,运行./configure.developer。顺利通过依赖检查。make。
用root权限make install。默认会安装到/usr/local/samba目录。
建域
用root权限运行/usr/local/samba/bin/samba-tool domain provision --realm=test.org(要建的域名) --domain=test(域简称) --adminpass='aaaa1111'(管理员密码) --server-role=dc
建立域,并给默认域管理员账号administrator设置密码。出现错误提示,提示密码不符合复杂性要求。把上面的密码改成包含了大小写字母的密码,再次运行,通过。
运行/usr/local/samba/sbin/samba
运行smbclient //localhost/netlogon -UAdministrator%'刚才设置的密码' -c 'ls'
没报错的话,这一步就通过。
设置DNS
samba4自带有一个dns服务,也可以自己另外搭建DNS服务。比如用带DLZ的bind9的话,在先前建域的命令中加入参数--dns-backend=BIND9_DLZ。我用的是samba4自带的dns。
修改/etc/resolv.conf
加入domain test.org和nameserver “主机的局域网IP”两行,nameserver要放在其它nameserver前面(如果不止一行nameserver的话)。如果你想把nameserver填成127.0.0.1的话,最好运行netstat -an|grep 53看一下,你的系统有没有监听0.0.0.0或127.0.0.1,如果没有的话,填127.0.0.1是不行的。ubuntu的resolv.conf是动态的,每次重启会改变,最好自己根据自己的实际情况设置一下,使每次启动自动加入这两行。
还有检查一下/usr/local/samba/etc/smb.conf配置文档里[global]项有没有dns forwarder = “当地的DNS地址”。这是DNS转发功能,可以解析除自己的test.org域名以外的其它网域。
执行
host -t SRV _ldap._tcp.test.org.
host -t SRV _kerberos._udp.test.org.
正常会返回
_ldap._tcp.samdom.example.com has SRV record 0 100 389 “主机名”.test.org.
_kerberos._udp.samdom.example.com has SRV record 0 100 88 “主机名”.test.org.
证明dns能解析域的srv记录。
配置kerberos
kerberos一般有mit的和heimdal的,先前编译的时候显示过heimdal的字样,于是就安装heimdal版的kerberos。
我的ubuntu用apt-get install heimdal-clients命令会根据依赖自动安装。安装时会问你填realm,就填TEST.ORG,似乎samba4文档上说要填大写字母。
查看/etc/krb5.conf,里面有一大堆的域名。干脆用/usr/local/samba/share/setup/krb5.conf替换掉,简洁一些。然后把krb5.conf中的default_realm = 填成TEST.ORG。
用kinit administrator@TEST.ORG命令测试一下,会要你输密码,输入正确密码会没任何提示,错了会有提示。那个@TEST.ORG字母要大写。
如果不是用的自带的dns,这时要改下你的dns配置,使它通过kerberos验证。
时区
howto文档上这一步是设置网络时间同步。我没设置,只是发现主机时间不正确。于是用date -s设置时间,再写入硬件。注意,域控制器与客户机的时间不能相差太大,否则通不过验证。
设置共享
howto文档这一步要设置一个共享。我没设置,以后再设。文档上说要支持共享的高级功能,要文件系统支持user、system xattr和acl操作选项。可能是类似ntfs文件权限之类的功能吧。我安装ubuntu时是选的btrfs,不知道默认支不支持。
可以用这几个命令来检查。
# touch test.txt
# setfattr -n user.test -v test test.txt
# setfattr -n security.test -v test2 test.txt
# getfattr -d test.txt
# getfattr -n security.test -d test.txt
显示
# file: test.txt
user.test="test"
# file: test.txt
security.test="test2"
就说明支持附加属性功能,我的btrfs默认支持。
windows系统客户机加域
这里以XP系统为例。
把xp的首选DNS改为samba4主机的ip地址。
检查时间与samba4主机相差不能太多。
在“我的电脑”上鼠标右键,点“属性”-“计算机名”-“更改”-“域”,改成test,确定。
会提示输入有权让你加域的账号、密码,用户名输入administrator,密码输入先前建域时设置的密码。确定,重启电脑。
按Ctrl+Alt+Delete键打开登录框,第三行“登录到”选“test”,账号、密码还是输入administrator和密码(因为现在只有这个账号,以后给多个用户添加账号后就应该让用户各自使用各自账号、密码登录)。
进入桌面,说明samba4建域成功。
从客户机管理域控制器
下载微软的adminpak.msi软件包,windows2003光盘上也有。安装。然后打开“开始”-“运行”输入dsa.msc。然后打开报错。我又照howto文档上的安装了Support Tools和gpmc工具。打开dsa.msc还是报错。重启电脑,还是用administrator登录test域,再打开dsa.msc,这回成功了。这是适用xp的方法,如果是windows7请安装RSAT(remote server administration tools)工具。
一切正常的话,打开“开始”-“管理工具”能看到“Active Directory Users and Computers”,如果看不到,就要手动“开始”-“运行”输入dsa.msc确定。
接下来建组织单位、建组、建用户就跟windows AD一样啦,具体操作就不用说啦。
设置用户配置文件共享
samba4已经默认设置了sysvol和netlogon共享。howto文档上这一步要设置profiles共享。以前在windows的ad上也没设置过这个,所以我没有设置。
共享文件权限设置
试了一下设置文件权限,发现不能像ntfs文件系统一样设置acl。尽管前面通过了文件扩展属性的测试。
这里请教一下有没有人成功在samba下设置ntfs acl的?
好了,差不多就这样了。只做了简单的测试和使用未在大规模生产环境下使用,只确定能用,至于好不好用就要再观察下了。没能把windows的文件共享也搬到samba下实在可惜。 |
|