- 论坛徽章:
- 0
|
A、 安装Windows Server 2008 中文版企业版;
B、 安装Active Directory 域服务器(使用Dcpromo.exe 命令进行安装和配置);
1、主机名称:dc
2、IP地址:192.168.1.254
3、域名:nseasy.net
4、DNS服务器:dc.nseasy.net
C、 配置DNS服务器、组策略和建立域用户帐户;
D、 安装Centos 5.4中文版;
1、主机名称:smb.nseasy.net
2、IP地址:192.168.1.253
E、 配置NSS服务器控制帐号的验证,主要修改文件nsswitch.conf(存放路径:/etc/nsswitch.conf);
passwd: files winbind
shadow: files winbind
group: files winbind
hosts: files dns winbind
bootparams: nisplus [NOTFOUND=return] files
ethers: db files
netmasks: files
networks: files dns
protocols: db files
rpc: files
services: files
netgroup: files
publickey: nisplus
automount: files
aliases: files nisplus
F、 配置kerberos服务器,主要修改文件krb5.conf(存放路径:/etc/krb5.conf);
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = NSEASY.NET
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[realms]
NSEASY.NET = {
kdc = dc.nseasy.net:88
admin_server = dc.nseasy.net:749
default_domain = nseasy.net
}
[domain_realm]
.nseasy.net = NSEASY.NET
nseasy.net = NSEASY.NET
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
修改 /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
acl_file = /var/Kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/word
admin_keytab = /var/Kerberos/krb5kdc/kadm5.keytab
v4_mode = nopreauth
[realms]
NSEASY.NET = {
Master_key_type = des-cdc-crc
Supported_enctypes = arcfour-hmac:normal arcfour-hma
G、 配置Samba服务器,主要修改文件smb.conf(存放路径:/etc/samba/smb.conf);
[global]
workgroup = NSEASY
realm = NSEASY.NET
netbios name = smb
password server = dc.nseasy.net
encrypt passwords = yes
security = ads
server string = Samba Server %v
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind separator = /
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
winbind nested groups = Yes
template homedir = /home/%U
template shell = /bin/bash
log file = /var/log/samba/%m.log
max log size = 50
os level = 33
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
mangling method = hash2
display charset = cp936
dos charset = cp936
unix charset = cp936
client use spnego = yes
domain master = no
dns proxy = no
preferred master = no
client ntlmv2 auth = yes
hosts allow = 192.168.1. 127.
[homes]
comment = Home Directories
path = /home/%U
writable = yes
browseable = no
valid users = %U
root preexec = /home/mkhome.sh %U %G
1、启动Samba服务器命令:service smb start(重生启动:service smb restart)
2、测试Samba服务器的文件配置情况使用testparm
3、配置system-auth文件,主要修改文件system-auth(存放路径:/etc/pam.d/system-auth);
auth required pam_env.so
auth sufficient pam_unix.so likeauth nullok
auth sufficient pam_winbind.so use_first_pass
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_succeed_if.so uid < 100 quiet
account sufficient pam_winbind.so use_first_pass
account required pam_permit.so
password requisite pam_cracklib.so retry=3 type=
password sufficient pam_unix.so nullok use_authtok md5 shadow
password sufficient pam_winbind.so use_first_pass
password required pam_deny.so
session required pam_winbind.so use_first_pass
session required pam_limits.so
session required pam_unix.so
4、配置sshd文件,主要修改文件sshd(存放路径:/etc/pam.d/sshd);
auth sufficient pam_winbind.so
auth required pam_stack.so service=system-auth
auth required pam_nologin.so
account sufficient pam_winbind.so
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
session required pam_limits.so
session required pam_mkhomedir.so
session optional pam_console.so
H、 完成 NSS服务器、kerberos服务器、Samba服务器配置工作后,重新启动操作系统;
1、# service smb restart
2、# service winbind restart
3、# reboot
I、 使用下列命令将Samba 加入到 Active Directory 域服务器,成为域成员服务器;
1、# kinit administrator@NSEASY.NET(使用kinit命令,初始化administrator域帐号和密码)
2、# net ads join -U administrator@NSEASY.NET(将Samba加入Active Directory域)
3、# wbinfo -t、# wbinfo -g、# wbinfo -u(使用wbinfo命令测试服务器连接、域组、域帐户情况)
4、# getent passwd # getent group(使用getent命令查询帐号的密码资料)
5、# net ads info、net getdomainsid(使用net命令进行查询Active Directory域基本资料和ID号码)
6、# smbclient -L smb.nseasy.net -U fandy(使用smbclient命令,测试域用户连接Samba服务器)
7、# ssh fandy@smb.nseasy.net(使用ssh命令,测试域帐户连接Samba服务器)
1.自动创建用户目录
细心的朋友可能发现从开篇一直到现在除了操作方式不一定以外,所做的事情和<<linux加入windows域之完美方案>>没有太大的区别。嗯,笔者不置可否,估且这么理解吧。希望有点小细节您注意到了,在smb.conf中,有一句template shell = /sbin/nologin。是的,samba服务器,我们只希望他提供samba服务,不希望有用户登陆。在上一篇文章中解决用户登陆时主目录不存在的问题,用的是pam_mkhomedir.so这个东东。在文件共享这块,笔者意外的发现,这个文件,对于通过samba访问过来的请求不会创建主目录!这可如何是好?这就是脚本mkhome.sh存在的原因。
新建立mkhome.sh脚本:
#vi /home/mkhome.sh
#!/bin/bash
user=$1
group=$2
home=/home/$1
if [ ! -d $home ] ; then
mkdir -p $home
chown $user $home
chgrp $group $home
chmod 700 $home
edquota -p administrator -u $user
fi
更改文件权限设置:
# chmod 700 /home/mkhome.sh
这个脚本接受两个参数,一个是用户名,一个是组名。然后给这个用户创建目录,并分配权限,然后再给分配一下用户空间。Ok,回头看一下smb.conf文件。
[homes]
comment = Home Directories
path = /home/%U //共享的目录
valid users = rainbird.net/%U //认证的用户,前面必须加rainbird.net哟
read only = No
browseable = No
root preexec = /root/mkhome.sh %U %G //执行创建目录的操作。
这段配置中最帅的就是这个mkhome.sh的存在。因为这个脚本的执行者是root,所以我们脚本的权限设置700即可。再往下我们将继续探索它的神奇魔力。写完这段保存一下,重启smb:service smb restart。这样,在一台xp的机器上,用域用户登陆,然后访问\\192.168.1.246,是不是看到了一个以你登陆的域用户名命名的一个文件夹呢?没错,就是它!你现在可以试下删写文件了。怎么有问题?有问题就自己检查一下,为什么吧 |
|