实施

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