时间:2021-05-19
这里我使用的是 samba(文件共享服务) v4.9.1 + OPENldap(后端数据库软件) v2.4.44 + smbldap-tools(后端数据库管理软件) v0.9.11 + CentOS7。 如果有不同,可能会有部分问题。
注:
初始化配置
yum 源和网络配置省略。
yum -y install samba openldap-servers openldap-clients smbldap-tools nss-pam-ldapd配置OPENldap服务
这里只进行简单的服务配置,数据库配置这里会使用 smbldap-tools 进行配置,如果不知道OPENldap 可以去看看这篇文章:《OPENLDAP 服务搭建和后期管理》
这里将 OPENldap 所有配置清空,重新配置。
# 首先备份文件,以免无法复原mkdir /root/backtar -Jcvf /root/back/slapd.config-`date '+(%Y.%m.%d_%H:%M:%S)'`.tar.xz /etc/openldap/slapd.d/tar -Jcvf /root/back/slapd.data-`date '+(%Y.%m.%d_%H:%M:%S)'`.tar.xz /var/lib/ldap/# 然后再删除配置文件rm -rf /etc/openldap/slapd.d/*rm -rf /var/lib/ldap/*# 复制一个samba的schema文件cp /usr/share/doc/samba-4.9.1/LDAP/samba.ldif /etc/openldap/schema/这里的配置文件我是从/usr/share/openldap-servers/slapd.ldif 中复制过来,并修改成如下这个样子的。主要修改了baseDN(suffix), OPENLDAPTLS,olcRootPW(密码由 slappasswd 生成,本文中的密码为: 123456) 和 include
# file: /tmp/slapd.ldifdn: cn=configobjectClass: olcGlobalcn: configolcArgsFile: /var/run/openldap/slapd.argsolcPidFile: /var/run/openldap/slapd.piddn: cn=schema,cn=configobjectClass: olcSchemaConfigcn: schemainclude: file:///etc/openldap/schema/core.ldifinclude: file:///etc/openldap/schema/cosine.ldifinclude: file:///etc/openldap/schema/nis.ldifinclude: file:///etc/openldap/schema/inetorgperson.ldifinclude: file:///etc/openldap/schema/samba.ldifdn: olcDatabase=frontend,cn=configobjectClass: olcDatabaseConfigobjectClass: olcFrontendConfigolcDatabase: frontenddn: olcDatabase=config,cn=configobjectClass: olcDatabaseConfigolcDatabase: configolcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * nonedn: olcDatabase=monitor,cn=configobjectClass: olcDatabaseConfigolcDatabase: monitorolcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=black,dc=com" read by * nonedn: olcDatabase=hdb,cn=configobjectClass: olcDatabaseConfigobjectClass: olcHdbConfigolcDatabase: hdbolcSuffix: dc=black,dc=comolcRootDN: cn=Manager,dc=black,dc=comolcRootPW: {SSHA}l1vBI/HOMKLEiQZgcm3Co+hFQI68rH1QolcDbDirectory: /var/lib/ldapolcDbIndex: objectClass eq,presolcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub,uid根据配置生成服务器的配置文件
slapadd -F "/etc/openldap/slapd.d/" -b "cn=config" -l /tmp/slapd.ldif# 这里还需要注意文件属主还是root的,需要改回为openldapchown -R ldap:ldap /etc/openldap/slapd.d/*# 然后再开启服务即可systemctl start slapd_#################### 100.00% eta none elapsed none fast!
Closing DB...
注:这里只配置了OPENldap中的服务配置部分,没有配置OPENldap 的数据库,这里再次强调以下。
配置 samba
这里只是为了测试使用samba 与 OPENldap 的使用,就不进行过于复杂的文件共享配置了,只共享一个用户的家目录仅供测试。
# file: /etc/samba/smb.conf[global] workgroup = MYGROUP # 指定共享组名称。 server string = Samba Server Version %v log file = /var/log/samba/log # 日志 security = user # 指定安全级别为User passdb backend = ldapsam:ldap://127.0.0.1 # 指定passdb 的后端数据库使用ldapsam ldap suffix = dc=black,dc=com # 指定ldap的 suffix ldap user suffix = ou=People # 指定用户的 suffix 段位 ou=People 这里会与上一个suffix结合。 ldap group suffix = ou=Group # 上同,指定的是用户组。 ldap admin dn = cn=Manager,dc=black,dc=com # 指定查询ldap服务使用的管理员用户 ldap ssl = no # 指定不使用SSL加密。 load printers = no # 指定不加载共享打印机。[homes] comment = Home Directories browseable = no writable = yes create mask = 0600 directory mask = 700smbpasswd -w 123456 # 存储用于连接 LDAP 服务的用户密码,!!!非常重要,否则无法启动smb服务。启动samba服务
systemctl start nmbsystemctl start smbsmbldap-tools 配置
这里使用 smbldap-tools 来快速完成 samba 服务所需要的数据信息,同时通过 smblda-tools 来进行用户段管理。但是smbldap-tools 有一个缺点就是 不会管你本地用户是否有相同的 UID 或则 GID,可能有冲突,需要注意。
smbldap 会从 /etc/samba/smb.conf 读取部分信息,所以需要先配置好samba再配置 smbldap-tools 服务。
smbldap-config # 配置 smbldap-tools 的配置,这里使用smbldap-conifg 简易配置。 这里省略下面的配置过程,不知道的默认即可。
smbldap-populate # 初始化配置 OPENldap 数据库。这里再创建一个用户用于后面的测试使用。
smbldap-useradd -a -m User1 # 添加用户User2# -a: 指定添加的用户类型为Windows,这样samba 才能识别到该用户。# -m: 指定创建该用户的家目录。smbldap-passwd User1 # 修改该用户的用户密码这里省略该用户的密码修改过程。
这样 OPENldap 的数据库初始化就完成了,这样就能去查询OPENldap 中的内容了。如下图,这个就是smbldap-populate 所创建的内容了。下图为 apache Directory Studio,有兴趣可以去研究一下《apache Directory Studio 简易使用》
在图中我们可以看到 UID = root 和 nobody 的用户,我并不想让这些特殊用户登入到服务器,所以在下面的配置,我会通过 fliter 将这2个用户过滤掉。
NSS 配置
这里的NSS配置主要就是需要配置,NSS 将 LDAP 的请求转发给 nslcd ,由 nslcd 来查询 OPENldap 中的用户信息。
首先配置 NSS ,只需添加 passwd 段和 group 段的ldap认证即可。
# file: /etc/nsswitch.confpasswd: files ldapshadow: filesgroup: files ldaphosts: files dns myhostnamebootparams: nisplus [NOTFOUND=return] filesethers: filesnetmasks: filesnetworks: filesprotocols: filesrpc: filesservices: files sssnetgroup: nisplus ssspublickey: nisplusautomount: files nisplus sssaliases: files nisplus然后配置 nslcd, 注意 nslcd 是以daemon 形式运行的,主要配置后重启。
# file:/etc/nslcd.confuid nslcdgid ldapuri ldap://127.0.0.1/ # ldap URL地址base dc=black,dc=com # base dn 路径binddn cn=Manager,dc=black,dc=com # 指定连接的用户bindpw 123456 # 指定密码ssl no # 指定不要使用SSL 加密连接。filter passwd (&(objectClass=posixAccount)(uidNumber>=1000)) # 编写 passwd 的过滤规则。filter group (&(objectClass=posixGroup)(gidNumber>=500)) # 上同,编写的是 groupCopychmod 600 /etc/nslcd.conf # 配置文件权限,非常重要,否则无法启动服务。systemctl start nslcd # 启动 nslcd 服务。我们这里测试以下 NSS 的配置是否可用
getent passwd User1User1:*:1001:513:System User:/var/smb/User1:/bin/bash
如上可见,我们配置的 NSS 和 OPENldap 服务 已经生效了,下面我们再来继续配置samba,使其可用。
samba 权限配置
如果看的比较仔细的人,就会发现我将用户的home 目录位置存放在了/var/smb 位置,主要是为了不与系统中的用户搞混。并且这样可以通过SELinux来隔离samba 禁止访问 /home 路径下的资源,详细请看下面操作。
# 上面通过 smbldap-useradd 命令,已经创建了用户的home 目录,# 下面可以直接进行SELinux 的相关配置了。semanage fcontext -a -t samba_share_t '/var/smb(/.*)?' # 修改/var/smb 路径的默认type,这里我用 samba 共享使用的type,SELinux 默认允许访问这个type类型# 如果要使samba 可以访问 /home 则应当开启 samba_enable_home_dirs 这个 bool 值。# 但是 我这里因为使用的是 samba_share_t 这个 type 类型,所以无需开启 任何 bool 值,这样就能使samba只能访问到 /var/smb 和 samba 其他所需文件。restorecon -R /var/smb/ # 然后我们在重置 /var/smb 目录下的SELinux type 类型即可。Copy# 这里我们就能进行samba的测试了smbclient -L //127.0.0.1/ -U User1这里我们也就可看到了,User1 用户已经可以登入并查询到共享目录了。
那么我们这里直接登入进去,上传一些文件做一些测试:
OK,那么这样一个samba 的文件共享就完成了。
总结
以上所述是小编给大家介绍的详解samba + OPENldap 搭建文件共享服务器问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
samba服务器类似于windows上的文件共享,通过//ip地址访问文件配置ip地址(教程:)实现内网互通,互pingip地址安装samba服务器yumins
当前,在国内很多企事业单位局域网中,通常会在局域网搭建共享文件服务器,便于实现资源共享和协同工作的需要;同时,由于文件共享服务器通常会采用Raid存储或磁盘阵列
实验环境:1、服务器型号ThinkServerRD4502、四块1TB普通SATA硬盘实验目的:配置RAID5,搭建公司文件共享服务器使用。标注:本教程四块硬盘
实验环境:1、服务器型号联想SystemX3850X62、四块300GSAS硬盘实验目的:配置RAID5,搭建公司重要文件共享服务器使用。标注:本教程四块硬盘全
黄石网站优化中网站打开速度想要网站打开速度快,就必需要保证服务器的质量。在选择服务器的时候,较好选择独立服务器,不要选择共享服务器,固然共享服务器廉价,但假