【配置SMB、NFS共享】
【Samba服务基础】
用途:为客户机提供共享文件夹
协议:SMB(TCP 139)、CIFS(TCP 445)
管理共享账号
Samba用户——专用来访问共享文件夹的用户
--采用独立设置密码
--需要预先建立同名的系统用户(可以不设密码)
pdbedit管理工具
添加用户 pdbedit -a 用户名
删除用户 pdbedit -x 用户名
查询用户 pdbedit -L [用户名]
配置文件
/etc/samba/smb.conf 全局设置
--->
[global]
workgroup = 工作组名
...
[自定义共享名]
path = 路径
public = no|yes 公共访问,默认no
browseable = yes|no 浏览器访问,默认yes
read only = yes|no 可读权限,默认yes
write list = 用户名 可写用户,默认无
vaild users = 用户名 默认任何用户
hosts allow = 客户机IP或网段 设置允许主机
hosts deny = 客户机IP或网段 设置禁止主机
SELinux对SMB共享的保护
查看SELinux开关
getsebool -a | grep ^samba_exp
--->
samba_export_all_ro --> off
samba_export_all_rw --> off 可读写共享默认关闭
永久开启SELinux设置
setsebool -P samba_export_all_rw=on
【访问共享文件夹】
软件:samba-client
列出共享资源
smbclient -L 服务器地址
连接共享文件夹
smbclient -U 用户名 //服务器地址/共享名
smb:>ls 检查是否可列出目录内容
smb: > quit 退出smb:>交互环境
mount挂载---客户端
软件:cifs-utils
手动挂载
mount //服务器地址/共享名 挂载点
挂载全部 mount -a
检查挂载点 df -hT /mnt/dev/
开机挂载配置
[root@desktop0 ~]# vim /etc/fstab
//服务器地址/共享名 挂载点 cifs
[username=Smb用户名,password=共享密码,]_netdev 0 0
//172.25.0.11/devops /mnt/dev cifs
username=kenji,password=123,_netdev 0 0
【Samba共享配置步骤】
1.在服务器上发布Samba共享文件夹
1)安装软件包samba
yum -y install samba
2)创建共享账号并设置密码
[root@server0 ~]# useradd harry
[root@server0 ~]# pdbedit -a harry
--->密码设置:harry
[root@server0 ~]# useradd kenj
[root@server0 ~]# pdbedit -a kenji
--->密码设置:kenji
[root@server0 ~]# useradd chihiro
[root@server0 ~]# pdbedit -a chihiro
--->密码设置:chihiro
确认共享账号
[root@server0 ~]# pdbedit -L
harry:1001:
chihiro:1003:
kenji:1002:
3)准备共享文件夹
[root@server0 ~]# mkdir /common
[root@server0 ~]# mkdir /devops
[root@server0 ~]# setfacl -m u:chihiro:rwx
/devops //单独配置写入权限
4)调整SELinux开关策略,允许发布可写的Samba共享资源
永久打开SELinux设置
setsebool -P samba_export_all_rw=on
查看SELinux配置
getsebool -a | grep ^samba_exp
--->
samba_export_all_ro --> off
samba_export_all_rw --> on
5)配置共享目录
[root@server0 ~]# vim /etc/samba/smb.conf
--->
[global]
workgroup = STAFF
...
[common]
path = /common
hosts allow = 172.25.0.0/24
[devops]
path = /devops
hosts allow = 172.25.0.0/24
write list = chihiro
6)重启smb服务
[root@server0 ~]# systemctl restart smb
[root@server0 ~]# systemctl enable smb
查看
[root@server0 ~]# netstat -antpu | grep smb
2.在客户机desktop0测试Samba共享资源
1)安装软件包samba-client
yum -y install samba-client
2)浏览共享资源
smbclient -L server0.example.com
---> Enter root's password:(Enter)
3)连接共享目录
[root@desktop0 ~]# smbclient -U harry
//server0.example.com/common
---> Enter root's password:harry 共享密码
smb:>ls 检查是否可列出目录内容
smb: > quit 退出smb:>交互环境
【multiuser机制】
共享源多用户访问
SMB客户端的multiuser挂载技术
--只需一次挂载
--客户端访问挂载点时,若需不同权限,
可以临时切换为新共享用户,无需重新挂载
实现方式
1)挂载SMB共享时启用multiuser
2)使用cifscreds临时切换身份
挂载参数调整
mount.cifs的挂载参数
multiuser,提供对客户端多个用户身份的区分支持
sec=ntlmssp,提供NT局域网管理安全支持
[root@desktop0 ~]# vim /etc/fstab
//服务器地址/共享名 挂载点 cifs username=Smb用户名,
password=共享密码,multiuser,sec=ntlmssp,_netdev 0 0
//172.25.0.11/devops /mnt/dev cifs username=kenji,
password=123,multiuser,sec=ntlmssp,_netdev 0 0
重新挂载共享
umount /mnt/dev ;mount -a
切换共享用户身份
[root@desktop0 ~]# su - student
[student@desktop0 ~]$
提交新用户凭据并测试
cifscreds add [| update] -u 共享用户名 服务器地址
cifscreds add -u chihiro server0
Password: 共享密码
touch /mnt/dev/ch.txt 写测试
ls /mnt/dev/ch.txt 确认结果
【多用户Samba挂载配置】
1.挂载Samba共享目录
1)创建挂载点
[root@desktop0 ~]# mkdir /mnt/dev
2)安装cifs-utils软件包
yum -y install cifs-utils
3)配置开机挂载
[root@desktop0 ~]# vim /etc/fstab
4)测试挂载配置
[root@desktop0 ~]# mount -a
[root@desktop0 ~]# df -hT /mnt/dev 查看
2.启用multiuser多用户支持
1)修改挂载配置,添加多用户支持
[root@desktop0 ~]# vim /etc/fstab
重新挂载此共享
umount /mnt/dev;mount -a
2)验证多用户访问
student验证,无权访问挂载点/mnt/dev
以共享用户chihiro身份提交新的访问凭据
[root@desktop0 ~]# su - student
[student@desktop0 ~]$ cifscreds -u chihiro
add server0.example.com
Password: 共享密码
[student@desktop0 ~]$ touch /mnt/dev/a.txt
[student@desktop0 ~]$ ls /mnt/dev/a.txt
---> /mnt/dev/a.txt
配置NFS共享
【普通NFS服务】
Network File System,网络文件系统
--用途:提供共享文件夹
--协议:NFS(TCP/UDP 2049)、RPC(TCP/UDP 111)
软件包:nfs-utils
系统服务:nfs-server
[root@server0 ~]# rpm -q nfs-utils
exports配置文件解析
配置文件 /etc/exports
文件夹路径 客户机地址(权限) 客户机地址(权限)
更新配置
exportfs -r
重启nfs-server服务
systemctl restart nfs-server
访问共享文件夹
列出NFS资源
showmount -e 服务器地址
手动挂载NFS共享
mount 服务器地址:文件夹路径 挂载点
开机配置/etc/fstab
服务器地址:文件夹路径 挂载点 nfs _netdev 0 0
【普通NFS共享的实现】
1.在服务器上发布NFS共享目录
1)准备需要共享的文件夹
mkdir /public
mkdir /protected
2)建立NFS共享配置
vim /etc/exports
--->
/public 172.25.0.0/24(ro)
/protected 172.25.0.0/24(rw)
3)启动系统服务nfs-server,并设置开机自启
systemctl restart nfs-server
systemctl enable nfs-server
2.在客户端上挂载/public NFS共享目录
1)创建挂载点
mkdir /mnt/nfsmount
2)列出server0上提供的NFS共享资源
showmount -e server0.example.com
3)配置开机挂载server0的NFS共享目录/public
vim /etc/fstab
4)测试挂载配置
mount -a
df -hT /mnt/nfsmount/
Filesystem Type Size Used Avail Use% Mounted on
server0.example.com:/public nfs4 10G 3.2G 6.8G 32%
/mnt/nfsmount
【安全NFS服务】
安全NFS服务的特点
结合LDAP+kerberos技术,实现认证和加密支持
同一个kerberos领域内,认证用户可实现“一次密码认证,
多次免密登陆”的通行证机制
发布安全NFS
1)调整共享目录配置,启用安全NFS支持
2)部署kerberos密钥文件
3)还需要启动nfs-secure-server服务
vim /etc/exports
--->
/protected *(rw,sec=krb5p)
wget -O /etc/krb5.keytab
http://classroom/pub/keytabs/server0.keytab
systemctl restart nfs-secure-server nfs-server
exportfs -r
访问安全NFS
部署kerberos密钥文件
启动客户端的nfs-secure服务
调整挂载设置添加sec=krb5p参数
wget -O /etc/krb5.keytab
http://classroom/pub/keytabs/desktop0.keytab
systemctl restart nfs-secure
vim /etc/fstab
--->
172.25.0.11://protected /mnt/nfssecure nfs
sec=krb5p,_netdev 0 0
验证挂载配置
mount -a
df -hT /mnt/nfs*
【安全NFS共享的实现】
1.将server0、desktop0加入kerberos认证领域
1)初始化服务器
lab nfskrb5 setup
2)初始化客户机
lab nfskrb5 setup
3)验证初始化结果
可以使用网络账号ldapuser0登入到server0或desktop0,
其密码是kerberos:
[root@server0 ~]# ssh ldapuser0@desktop0.example.com
password:
[ldapuser0@desktop0 ~]$ 成功登陆
[ldapuser0@desktop0 ~]$ exit 返回原环境
[root@server0 ~]#
2.为服务器、客户机部署kerberos密钥
1)为服务器下载及部署密钥
[root@server0 ~]# wget http://classroom/pub/
keytabs/server0.keytab -O /etc/krb5.keytab
检查部署结果
[root@server0 ~]# file /etc/krb5.keytab
---> /etc/krb5.keytab:data
2)为客户机下载及部署密钥
[root@desktop0 ~]# wget http://classroom/pub/
keytabs/desktop0.keytab -O /etc/krb5.keytab
检查部署结果
[root@desktop0 ~]# file /etc/krb5.keytab
---> /etc krb5.keytab:data
3.在服务器上调整/protected共享配置
1)创建指定的子目录
[root@server0 ~]# mkdir /protected/project
赋予可写权限
[root@server0 ~]# chown ldapuser0
/protected/project
2)调整共享目录的安全控制类型
[root@server0 ~]# vim /etc/exports
--->
/public 172.25.0.0/24(ro)
/protected 172.25.0.0/24(rw,sec=krb5p)
指定安全类型
3)重启服务nfs-server、nfs-secure-server
systemctl restart nfs-server nfs-secure-server
systemctl enable nfs-server nfs-secure-server
4.在客户机上挂载/protected安全NFS共享
1)创建挂载点
mkdir /mnt/nfssecure
2)启动系统服务nfs-secure
systemctl restart nfs-secure
systemctl enable nfs-secure
3)配置开机挂载安全NFS共享
vim /etc/fstab
--->
server0.example.com:/public /mnt/nfsmount
nfs _netdev 0 0
server0.example.com:/protected /mnt/ nfssecure nfs sec=krb5p,_netdev 0 0
4)验证挂载配置
[root@desktop0 ~]# mount -a
[root@desktop0 ~]# df -hT /mnt/nfs*
5)测试对挂载点的写入权限
--以用户ldapuser0通过SSH的方式登入客户端,
ssh ldapuser0@desktop0.example.com
password:
[ldapuser0@desktop0 ~]$ 成功登陆
验证密码(kerberos)以获取通行证
--访问客户机挂载点/mnt/nfssecure/的子目录project,
touch /mnt/nfssecure/project/a.txt
ls -lh /mnt/nfssecure/project/a.txt
-rw-rw-r-- 测试可写入