实施
1、修改防火墙设置
#firewall-cmd --permanent --add-service=samba //设置防火墙,允许添加samba服务
#firewall-cmd --reload //重新加载防火墙 使上一条语句生效
2、安装 samba 并启动 samba 服务
# yum install samba samba-client -y //安装samba服务和依赖包
# systemctl start smb.service nmb.service //启动samba服务
# systemctl status smb.service nmb.service //查看服务
3、建立共享目录
mkdir /home/company
4、创建访问账号
//创建用户,不能登录系统
#useradd -s /sbin/nologin xzusr
#useradd -s /sbin/nologin gcusr
#useradd -s /sbin/nologin xsusr
//把用户添加成为samba用户,且指定密码
#smbpasswd -a xzusr
#smbpasswd -a gcusr
#smbpasswd -a xsusr
smbpasswd
【选项】:
-a 添加 smb 帐号;
-x 删除 smb 帐号;
-d 禁用 smb 帐号;
-e 启用 smb 帐号;
5、修改配置文件:/etc/samba/smb.conf
配置之前先备份:cd /etc/samba; cp smb.conf smb.conf.bak
默认情况下,Samba 已经配置为允许用户通过远程共享访问账号的主目录。
1)vim /etc/samba/smb.conf
2)定位到末尾,输入
[company] //共享名称为 company
comment = company share //共享注释
path = /home/company //指定共享路径
browseable = yes //是否允许所有人可见
guest ok = no //是否允许匿名访问
writeable = yes //是否支持写入数据(文件本身也要开启)
:wq
3)systemctl restart smb nmb
【注意:修改配置文件以后,必须重启服务(systemctl restart smb nmb)使更改生效】
【其他配置项含义】
[global] //表全局变量
write list =@xzgroup //代表限制组(基本组)
security=user //表示要用户登录后才可访问
maptoguest=BadUser //允许匿名用户访问 smbclient -U nobody //IP/共享文件
hosts allow=192.168.10.5 //只允许某个IP访问 拒绝为 hosts deny=
[company]
comment = company share
path = /home/company
guest ok = no //拒绝匿名访问
valid users=xzusr,gcusr,xsusr //允许访问的用户列表
write list=xzusr //允许写入的用户列表
6、测试配置文件 --testparm
testparm 当配置文件的语法出错时会给出提示,修改再次运行 testparm 测试。
7、测试 Samba 服务器
在 linux 客户端访问测试:
1)cd /home/company;touch gsfile.txt
2)smbclient -U xzusr //192.168.75.128/company
输入用户密码
3)setenforce 0 //关闭selinux的保护机制
4)systemctl stop //firewalld 关闭防火墙
5)setfacl -m u:smbuser1:rwx company
chmod 770 company //设置文件夹的权限 (读写权限为配置文件的权限和文件本身的权限 )
5)ls查看文件列表ls //访问成功
exit 退出samba访问共享
注:selinux机制是默认禁止samba访问的,通过getenforce查看,Enforcing表开启;setenforce 0表关闭
8、windows访问linux共享文件 file://IP/共享文件夹名
在windows系统文件 :
file://192.168.75.128/company
如果出现找不到的情况就直接跟IP 不跟共享文件夹
file://192.168.75.128
查看服务器的共享文件有哪些:
smbclient -L 192.168.75.128
查看 smbuser 用户可以访问的共享文件:
smbclient -L 192.168.75.128 -U xzusr
设置特殊权限让xzusr可以对/home/company进行访问
setacl -m u:xzusr:rwx /home/company
9、在 Linux 下访问 Windows 共享目录的配置方法
(注,windows的用户要有密码,且文件设置可以共享,windows功能设置文件可以共享)
(1)在 Windows xp 上设置一个共享目录:d:\myfiles
(2)在 Linux 下安装 samba-client 客户端
# yum install samba-client
(3)安装 cifs-utils 软件包
# yum install cifs-utils
(4)在 Linux 下创建一个挂载点
mkdir /mnt/Windows
(5)挂载 Windows 上的共享目录 d:\myfiles 到 Linux 下的/mnt/Windows 目录下
注:windows分享的文件夹,路径都不跟盘符名 直接跟文件名
把windows上的Administrator IP为192.168.0.3分享的文件myfiles挂载到/mnt/windows
mount -t cifs -o username=Administrator //192.168.0.3/myfiles /mnt/Windows
Enter password: *******
(6)如果挂载成功,则可以进入/mnt/Windows 下进行相应操作。
(7)在/etc/fstab 文件中,加入该共享目录的挂载信息
//192.168.1.123/redhat_disk /mnt/Windows cifs username=tommy,password=*****
(8)到此为止,Windows 上的共享目录//192.168.1.123/redhat_disk 就被成功挂载到了 Linux上面了,并且 Linux 重启后,会自动挂载该目录到/mnt/Windows 目录下
补充
一、配置匿名用户访问
1、vim /etc/samba/samba.conf
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
map to guest = Bad User 允许匿名用户访问
[company]
comment = company
path = /mnt/company
writable = yes
browseable = yes
guest ok = yes
2、配置文件权限
共享权限为写入,并不能代表可以写入,还需要文件的写入权限。
匿名用户名为:nobody,根据需求需要配置nobody用户对文件的权限;
drwxr-xr-x. 2 nobody root 19 3月 3 12:42 company
二、配置Samba用户访问
1、vim /etc/samba/samba.conf
[company]
comment = company
path = /mnt/company
writable = yes
browseable = yes
guest ok = no
2、新建用户
[root@localhost mnt]# useradd -s /bin/nologin smbuser1
[root@localhost mnt]# useradd -s /bin/nologin smbuser2
[root@localhost mnt]# useradd -s /bin/nologin smbuser3
3、设置samba用户及密码
[root@localhost mnt]# smbpasswd -a smbuser1 ---设置密码
[root@localhost mnt]# smbpasswd -a smbuser2
[root@localhost mnt]# smbpasswd -a smbuser3
4、设置文件权限
[root@localhost mnt]# setfacl -m u:smbuser1:rwx company
5、用户限制
valid users=xzusr,gcusr,xsusr //允许访问的用户列表
write list=xzusr //允许写入的用户列表
vim /etc/samba/smb.conf
[company]
comment = company
path = /mnt/company
# writable = yes
valid users=smbuser1,smbuser2
browseable = yes
guest ok = no
6、用户组限制
vim /etc/samba/smb.conf
[company]
comment = company
path = /mnt/company
# writable = yes
valid users=@samab,@groups
write list=@samab
browseable = yes
guest ok = no
7、客户端限制
hosts allow 允许
hosts deny 拒绝
举例1:只允许在IP地址为192.168.10.5的客户端上访问teach共享目录
[tech]
comment=technet
path=/home/technet
writable=yes
hosts allow=192.168.10.5
举例2:允许地址段192.168.10.0/24内的用户访问tech共享目录,IP地址为
192.168.10.254的计算机除外
[tech]
Comment=technet
path=/home/technet
Writable=yes
Hosts allow=192.168.10. EXCEPT 192.168.10.254
三、配置Linux系统访问Winodws 系统共享文件
(1)在 Windows xp 上设置一个共享目录:d:\myfiles
(2)在 Linux 下安装 samba-client 客户端
# yum install samba-client
(3)安装 cifs-utils 软件包
# yum install cifs-utils
(4)在 Linux 下创建一个挂载点
# mkdir /mnt/Windows
(5)挂载 Windows 上的共享目录 d:\myfiles 到 Linux 下的/mnt/Windows 目录下
# mount -t cifs -o username=Administrator //192.168.0.3/mytest /mnt/Windows
Enter password: ********
(6)如果挂载成功,则可以进入/mnt/Windows 下进行相应操作。
(7)在/etc/fstab 文件中,加入该共享目录的挂载信息
//192.168.1.123/redhat_disk /mnt/Windows cifs username=tommy,password=111111 0 0
(8)到此为止,Windows 上的共享目录//192.168.1.123/redhat_disk 就被成功挂载到了 Linux 上面了,并且 Linux 重启后,会自动挂载该目录到/mnt/Windows 目录下
samba共享服务的安全加固方案
用户的共享权限和文件权限(设置访问者/IP/网段)
用户的密码设置,不允许匿名
例:某公司经过不断发展,公司的网络环境建设日趋完善,内部网络逐渐增多。为了使员工能方便共享不同操作系统之间的资源,将安装局域网 Samba 服务器,实现 Windows 和 Linux资源的互通。服务器上的共享文件夹(/homt/company)中存放的是公司的各项规章制度,其他部门的用户只能下载查看,只有行政部的用户可以上传和删除里面的文件。
1)设置防火墙允许添加samba服务
firewall-cmd --permanent --add-service=samba
2)重启防火墙
firewall-cmd --reload
3)安装samba和samba-client服务
yum install samba samba-client -y
4)开启samba服务
systemctl start smb.service nmb.service
5)查看samba服务是否开启
systemctl status smb.service nmb.service
6)创建共享文件夹/home/company
mkdir /home/company
touch file.txt
7)创建用户xzb和yg并加入samba用户设置密码为123456
useradd xzb
useradd yg
smbpasswd -a xzb ——> 123456
smbpasswd -a yg ——> 123456
8)配置源文件 vim /etc/samba/smb.conf
[company]
comment=company share
path=/home/company
browseable=yes
guest ok=yes
write list=xzb
9)测试,查看是否配置成功 testparm
10)Linux远程登录:
smbclient -U xzb //192.168.220.130/company
11)windows远程登录(在文件夹的地址栏输入):
[file://]192.168.220.130/company