Samba是SMB网络协议(CIFS是它的一个版本)的重新实现,免费且提供文件和打印共享服务。通过Samba实现的文件共享服务在很多公司中使用,因为目前主流的桌面操作系统都支持SMB协议,比如Windows、macOS等。Samba服务虽然兼容性很好,但是账号和权限管理比较麻烦。
实际使用中,我们可能想配置某个文件夹只能允许一个部门访问,一些文件夹每个人都可以访问,单个人可以拥有自己私有的文件夹,如果都使用Linux的本地账号管理,将非常麻烦,本文介绍Samba集成LDAP,实现集中式的账号管理和权限隔离。
为演示方便,假定运行FreeIPA的主机名为“ipa.example.com”,运行Sam流量套餐ba的服务器主机名为“samba.example.com”。
前提条件
服务器操作系统为“CentOS Linux release 7.9.2009 (Core)”主机都配置合格的主机名,且能够正常解析如果使用现有的DNS服务,添加服务器IP的反向解析每台服务器配置NTP同步如果内网环境安全性较高,可以关闭SELinux,iptables各个链的默认策略配置为“ACCEPT”LDAP实现
使用FreeIPA实现LDAP,安装配置比较简单,参见Grafana集成LDAP认证
Samba主机配置
1,注册Samba主机到FreeIPA
# 安装ipa-client,完成后,可以使用ipa-client-ins流量套餐tall命令 yum install -y ipa-client # 执行下面命令后,主机samba.example.com将出现在FreeIPA的”Identity->Hosts”中 ipa-client–install –mkhomedir –force-ntpd –enable-dns-updates“ipa-client-install”这条命令做了很多事情,操作完后可以通过FreeIPA上的账号登录服务器,同时还会生成文件/etc/krb5.keytab。
2,安装Samba
yum -y install samba samba-clientsssd-libwbclient systemc流量套餐tlenable nmb.service systemctl enable smb.serviceFreeIPA主机配置
1,添加CIFS Principal
ipa service-add cifs/samba.example.com2,LDAP数据库中添加Samba属性(很重要)
yum -y install ipa-server-trust-ad # 全部回答“yes” ipa-adtrust-install –add-sids3,权限授予
为了实现FreeIPA与Samba服务的集成,需要给Samba服务授予读取用户密码的权限
ipa permission-add “CIFS server can rea流量套餐d user passwords” \ –attrs={ipaNTHash,ipaNTSecurityIdentifier} \ –type=user –right={read,search,compare} –bindtype=permission ipa privilege-add “CIFS server privilege” ipa privilege-add-permission “CIFS server privilege” \ –permission=“CIFS server can read user passwords” ipa role-ad流量套餐d “CIFS server” ipa role-add-privilege “CIFS server” –privilege=“CIFS server privilege” ipa role-add-member “CIFS server” –services=cifs/samba.example.comSamba服务配置
1,生成CIFS的keytab
Samba服务对FreeIPA来说也是一个实体,需要生成相应的keytab
kinit-kt /etc/krb5.keytab ipa-getkeytab -s ipa.example.com -p cifs/samba.example.com –流量套餐k /etc/samba/samba.keytab2,安装“ipa-server-trust-ad”包,
yum -y install ipa-server-trust-adSamba配置文件”/etc/samba/smb.conf”中有些选项需要“ipa-server-trust-ad”包的支持
3,准备Samba配置文件
内容如下:
[global] # freeipa configurations debug pid = yes realm = EXAMPLE.COM workgroup = EXAMPLE domain master = Yes ldap group suffix = cn=groups,cn=accoun流量套餐ts ldap machine suffix = cn=computers,cn=accounts ldap ssl = off ldap suffix = dc=example,dc=com ldap user suffix = cn=users,cn=accounts log file = /var/log/samba/log max log size = 100000 domain logons = Yes registry shares = Yes disable spoolss = Yes dedicated keytab file = FILE:/etc/samba/samba.keytab kerberos method 流量套餐= dedicated keytab passdb backend = ipasam:ldap://ipa.example.com security = USER create krb5 conf = No rpc_daemon:lsasd = fork rpc_daemon:epmd = fork rpc_server:tcpip = yes rpc_server:netlogon = external rpc_server:samr = external rpc_server:lsasd = external rpc_server:lsass = external rpc_server:lsarpc = externa流量套餐l rpc_server:epmapper = external ldapsam:trusted = yes idmap config * : backend = tdb idmap config * : range = 10000-999999 ldap admin dn = cn=Directory Manager # public share configurations map to guest = bad user # 用户独享的目录空间-家目录 [homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No in流量套餐herit acls = Yes # 通过验证的用户都可以访问share [share] comment = Public Share path = /samba/share writable = yes browsable = yes guest ok = yes read only = no # 通过验证且属于infra组的用户可以访问infra [infra] comment = Public Share path = /samba/infra writable = yes browsable = yes guest ok = yes read only = no valid users = @infra # 通过验证且属于development组的用户可以访问de流量套餐v [dev] comment = Public Share path = /samba/dev writable = yes browsable = yes guest ok = yes read only = no valid users = @development4,创建用户
在FreeIPA上创建用户,并将用户加入预先创建的用户组。测试中创建两个组“infra”和“development”,操作这步,便可以通过用户组的粒度来控制权限的分配。
创建两个组
5,创建需要的目录
根据Samba的配置文件,创建对应的目录并授予合适的权限。为了成功访问Samba共享的内容,用户不仅要满足文件系统的权限要求而且要满足Samba服务的权限要求流量套餐。为了方便管理,可以在文件系统层授予用户全部权限,仅使用Samba管理用户权限:
[aneirin@samba ~]$ls -lh /samba total 0 drwxrwxrwx 2 nobody nobody 6 Jul 3 14:46 dev drwxrwxrwx 2 nobody nobody 6 Jul 3 14:45 infra drwxrwxrwx 2 nobody nobody 19 May 24 17:58 share总结
Samba集成Ldap认证比较复杂,里面涉及的概念较多,文章没有对Samba配置文件中的各个选项做介绍,读者可以自行上网查找,遇到问题,欢迎讨论。
希望这篇文章能帮到正在努力的你,欢迎关注、评论!
友情提醒: 请添加客服微信进行免费领取流量卡!
QQ交流群:226333560 站长微信:qgzmt2
原创文章,作者:sunyaqun,如若转载,请注明出处:https://www.dallk.cn/49274.html