Windows AD 与Samba完美结合
Machine 1:
OS: Windows Server 2003
HostName:dc.test.com
IP:172.18.30.125/24
Machine 2:
OS: RedHat Enterprise Linux 5.2
HostName:server1
IP:172.18.30.88
目的:
1.将server1的/mnt/share目录共享出来,并且使用dc.keynet.com.cn上的用户做为samba用户进行论证;
2.实现dc上的用户可以使用ssh远程连接到server1;
所需安装包:
samba-3.0.28-0.el5.8
krb5-libs-1.6.1-25.el5
操作:
1.安装所需源码包;
2.Kerberos配置
Win2003系统默认通过Kerberos做身份验证,Kerberos验证需要安装Krb5软件包。配置文件及测试都很简单。Krb5的配置文件为/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 = TEST.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[realms]
TEST.COM = {
kdc = dc.test.com:88
admin_server = dc.test.com:749
default_domain = TEST.COM
}
[domain_realm]
.test.com = TEST.COM
test.com = TEST.COM
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
3.samba配置
[global]
workgroup = TEST
netbios name = server1
server string = Samba & AD Test
security = domain
password server = dc.test.com
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind separator = /
template homedir = /home/test/%U
template shell = /bin/bash
winbind use default domain = true
winbind offline logon = false
preferred master = no
log file = /var/log/samba.log
winbind enum groups = yes
winbind enum users = yes
注:此二行表示为是否在linux下添加AD帐号,只有加了此二行,在使用getent passwd和gentent group才能显示AD上面的帐号和组
[homes]
comment = User's Home Directories
path = /home/test/%U
browseable = no
valid users = %U //特别注意:此二处为一定要是%U,而不能使用%S ,%U 需要的客户端用户名即登录用户名,而%S是 当前共享名
writable = yes
[Share]
comment = Share
path = /mnt/share
public = yes
guest ok = no
这些设置的一个简单的说明如下:
- idmap uid - 指定一个uid范围,该范围内的uid被用来映射UNIX用户到windows用户SID,而且要确保这个id范围内没有被本地或者NIS用户占用,winbind启动以后,也不能在该ID范围内添加用户。
- idmap gid - 指定一个gid范围,该范围内的gid被用来映射UNIX用户到windows的组SID,而且要确保这个id范围内没有被本地或者NIS组占用,winbind启动以后,也不能在该ID范围内添加新组。
- winbind separator - 指定一个字符作为分隔符,winbind将使用该分隔符来用户或组名。使用该配置将使得域用户表示为 "MYDOMAIN+username",域组被表示为"MYDOMAIN+Domain Users"
- winbind enum groups和winbind enum users - 指定winbind是否在系统上创建域的组/用户,一般情况下都要设置为yes,除非你处于某种原因希望关闭该功能。
- template homedir - 用来指定为域用户产生主目录。上面的示例中使用了变量替换,将使得winbind把用户主目录设置为/home/MYDOMAIN/username。
需要注意的是如果希望特定域或者所有域用户在samba目录有主目录,那么管理员必须手工创建,虽然template homedir控制samba在哪里寻找域用户的主目录,但是不会自动创建,所以要自己手动创建,并设定权限。
4.配制NSS
Nss为Name Service Switch,控制帐号的验证修改/etc/nsswitch.conf文件,这样winbind能实现使用域上的用户,内容如下:
passwd: files winbind
group: files winbind
shadow: files winbind
hosts: files dns wins
bootparams:nisplus [NOTFOUND=retum] files
protocols: db files
services: files
ethers: db files
rpc: files
networks: files dns
netmasks: files
netgroup: files
publickey: nisplus
automount: files
aliases: files nisplus
5.重启samba与winbind服务
sudo /etc/init.d/samba restart
sudo /etc/init.d/winbind restart
6.将server1加入2003域
net rpc join -S dc.test.com -U administrator
如果遇到错误提示类似为: Failed to open /var/lib/samba/secrets.tdb
请执行:sudo chmod 777 /var/lib/samba/secrets.tdb
7. 确认Samba主机帐号在AD中正确注册
wbinfo –t
checking the trust secret via RPC calls succeeded
说明主机信任已成功建立
使用wbinfo -u列出AD中注册的帐号信息。Wbinfo –g可以返回AD中的组信息。
如果提示成功回入域,但是使用wbinfo -u得到错误信息,那可以使用authconfig-tui来加入域,先选中winbind,smb选中,在下一步的winbind settings中将server1加入域;
此时可以使用windows客户端来访问samba服务器了。
如果samba服务器上安装有iptables服务,而且filter链里的INPU 为DROP,请打开以下端口,方能正常使用samba服务:
TCP: 139,445
UDP:137,138
TCP:88(此为krb5验证端口)
8.配置PAM,将/etc/pam.d/login编译成如下内容:
#%PAM-1.0
auth required pam_securetty.so
auth sufficient pam_winbind.so
auth sufficient pam_unix.so use_first_pass
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 optional pam_console.so
保存退出!
此时,应该可以使用AD用户来登陆linux主机了,但是现在登陆后会发现没有用户家目录,所以还需要进行如下设置:
编辑/etc/pam.d/system-auth添加下面一行:
session required /lib/security/pam_mkhomedir.so
9.如果开启了SElinux,那请执行:
setsebool -P samba_enable_home_dirs on
10.执行:cp /etc/pam.d/login /etc/pam.d/sshd
至此,已经可以使用AD的用户进行ssh连接到server1了.并且在ssh连接成功后会自动创建其目录。
但是如何才能让windows用户访问samba的时候自动创建家目录呢?
附:当l实现AD用户可以登陆linux主机后,也就可以对AD用户进行quota设置了。
参考资料:http://wiki.samba.org/index.php/Samba_&_Active_Directory
http://emcome.iteye.com/admin/blogs/306838
分享到:
相关推荐
在IT领域,尤其是在网络环境管理中,将Samba加入到Windows的AD(活动目录)域是一项常见的任务。Samba是一个开源软件,它使得Linux和Unix系统能够与Microsoft Windows网络无缝集成,提供文件和打印共享服务。这篇...
SAMBA 文件服务器的 AD 域控搭建 SAMBA 文件服务器的 AD 域控搭建是指建立一个具有域控制器的 SAMBA 文件服务器,以便于实现用户权限的分配和管理。在这种搭建中,我们需要首先安装 Windows Server 2008 作为域...
**Linux与Windows共享文件Samba详解** 在信息技术领域,跨平台文件共享是一个常见的需求,特别是在混合操作系统环境中,如Linux和Windows。Samba是解决这个问题的关键工具,它允许Linux系统与Windows系统之间无缝地...
Windows10 修改samba 445 端口为4455 脚本
### Linux与Windows共享文件:Samba的深度解析 在跨平台网络环境中,实现不同操作系统间的文件共享是一项常见的需求。Samba作为一款开源软件,扮演着Linux与Windows系统间桥梁的角色,使得两者之间的文件共享变得...
Samba不仅支持Windows与Linux之间的文件共享,同时也支持Linux系统间的文件共享。尽管Linux提供了其他文件共享方案如NFS(Network File System),但Samba因其对Windows兼容性的优势,在跨平台协作环境中被广泛采用...
在企业级环境中,为了统一管理资源与用户权限,通常会采用 Windows AD(Active Directory)域进行集中式管理。对于运行 Ubuntu 16.04 的机器来说,加入 AD 域不仅可以实现统一认证,还能方便地进行策略管理和资源...
在Windows与Linux下Samba共享文件夹以及映射的详细使用说明是指在Windows和Linux操作系统中如何使用Samba来共享文件夹和映射网络资源的详细使用说明。Samba是一个自由开源的软件,能够让Windows和Linux操作系统之间...
Samba不仅为Linux和Unix系统提供了与Windows网络无缝集成的能力,还允许不同操作系统的用户共享文件、打印机和其他资源。本文将深入探讨Samba的工作原理、配置步骤以及在Windows、Linux和Ubuntu环境中实现共享的具体...
Samba 是一款开源软件套件,它提供了一个能够使Linux/Unix系统与基于Microsoft Windows系统的计算机之间实现文件共享和服务的平台。Samba4 版本开始支持 Active Directory (AD) 域控制器功能,这使得它可以充当类似...
一步一学Linux与Windows 共享文件Samba .doc 一步一学Linux与Windows 共享文件Samba .doc 一步一学Linux与Windows 共享文件Samba .doc 一步一学Linux与Windows 共享文件Samba .doc
在Ubuntu系统中,配置Samba服务能够让你的Linux系统与Windows设备之间实现文件共享,这在多操作系统混合的网络环境中非常实用。以下是配置Samba的详细步骤和相关知识点: 1. **前期准备**: - 安装轻量级桌面环境...
1. 配置IP及检查连通性:确保CentOS 7虚拟机与Windows Server 2012之间的网络通信正常,可以通过ping命令进行测试。 2. 安装Samba服务器软件包: - 挂载CentOS 7的ISO文件到/mnt/cdrom。 - 清空并创建新的yum仓库...
本文将详细介绍如何在Linux上配置Samba服务,以便实现Linux与Windows之间的文件共享。 首先,我们要明确目标:Linux需要能够访问Windows的共享文件,同时Windows也需要能够访问Linux上的共享资源。在Linux上配置...
Samba的配置文件通常是 `/etc/samba/smb.conf`,需要修改以支持与Windows AD的集成。 - **关键配置项**: - `workgroup` 应设置为与Windows AD相同的名称。 - `realm` 应设置为Windows AD的完整域名。 - `...
在Windows 7和Windows 10操作系统中,与Linux或Unix服务器进行文件共享时,通常会用到Samba服务。Samba是一个开源软件,它允许Windows系统与使用SMB(Server Message Block)协议的系统进行通信,这在跨平台网络共享...
使用 Samba 服务器实现 Linux 与 Windows XP 之间的文件共享 Samba 服务器是一种开放源代码的文件共享工具,能够让 Linux 和 Windows 操作系统之间实现文件共享。在本文中,我们将详细介绍如何使用 Samba 服务器...
Linux 与 Windows 之间的文件共享通常通过 Samba 服务实现,Samba 是一个开源软件,它使得 Linux 系统能够无缝地与 Windows 网络环境集成,允许 Windows 用户访问 Linux 服务器上的文件和打印机。Samba 实现了微软的...