Samba详解

samba-client.i386
samba-common.i386
samba.i386
samba-swat.i386

1、安装软件包
# yum install samba* -y


配置目录 /etc/samba

man smb.conf

# vim /etc/samba/smb.conf

[global]
        workgroup = MYGROUP
        server string = Samba Server Version %v
        security = user
        passdb backend = tdbsam
        load printers = yes
        cups options = raw


[homes]
        comment = Home Directories
        browseable = no
        writable = yes
[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no   # <--- yes匿名可以访问,no拒绝匿名访问
        writable = no   # <--- yes 资源可以写,no只读
        printable = yes


[share]
comment = This is rhce testing
path = /common
browseable = yes #<---让资源可见
hosts allow = .example.com  # <---只允许example.com域下的用户访问
valid users = user1  # <---该资源只对user1用户有效,别的用户不能访问
writable = yes  # <--资源可写

2、创建目录并且修改selinux上下文

# mkdir /common
# chmod 775 /common


# chcon -R -t samba_share_t /common
# setsebool -P samba_export_all_ro on
或者
# setsebool -P samba_export_all_rw on


3、创建samba独立的帐号
注意:这些帐号必须是系统上本身就拥有的帐号

[  useradd user1  ]


# smbpasswd --help


# smbpasswd  -a user1 <---添加user1到smb专用的帐号数据文件里

4、设定iptables
samber有两个进程:
nmbd 137 , 138
smbd 139 , 445


iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 137,138,139,445 -j ACCEPT
iptables -A INPUT -p udp -m multiport --dports 137,138,139,445 -j ACCEPT
5、测试
# service smb restart


# smbclient -L //192.168.0.249 -U user1  <--列出可以访问的资源
# smbclient //192.168.0.249/share -U user1 <--访问名字叫share的资源

如果共享的目录是公共的目录,也就是该目录也被别的服务共享,selinux上下文这样设定:
# chcon -t public_content_t /common
# chcon -t public_content_rw_t /common/pub

总结:
如果/common目录被nfs,vsftp,samba同时共享出去
selinux设定:
如果要求对该目录有写的权限:
chcon -R -t public_content_rw_t /common
如果是只读:
chcon -R -t public_content_t /common


文件系统权限:
如果要求对该目录有写的权限:
chmod 775 /common
chown root:XXXX /common   《--XXXX代表通过samba在该目录写文件的哟用户所在的组

iptables设定(samba,nfs,ftp):

modprobe ip_conntrack_ftp  <---非常重要
echo "modprobe ip_conntrack_ftp"  >> /erc/rc.d/rc.local


iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 20,21,137,138,139,445,875,32803,32769,892,662,2020,111,2049 -j ACCEPT


iptables -P INPUT DROP


练习:


1、通过samba共享/common目录,要求不允许t113.org域的所有用户访问。只允许user2访问该资源

[share]
comment = "test"
path = /common
hosts deny = .t113.org
valid users = user2

useradd user2
smbpasswd -a user2

2、分别通过smbclient访问用户的家目录资源,测试是否支持上传等操作
给我找到和samba家目录有关的selinux布尔值设定
getsebool 命令 找到
# getsebool  -a | grep samba
samba_domain_controller --> off
samba_enable_home_dirs --> off  《-----
samba_export_all_ro --> off
samba_export_all_rw --> on
samba_share_nfs --> off
use_samba_home_dirs --> off  《-----
virt_use_samba --> off


setsebool -P samba_enable_home_dirs=1
setsebool -P use_samba_home_dirs=1

3、通过samba共享/share目录,要求所有人都可以访问,而且匿名也可以访问,并且匿名也可以上传文件。


[pub]
comment = "Public source"
path = /share
guest ok = yes
browseable = yes
writable = yes


# chcon -t public_content_rw_t /share/


还需设定目录权限和selinux策略
chmod 777 /share
setsebool -P allow_smbd_anon_write=1


测试
# smbclient -L //192.168.0.249
# smbclient  //192.168.0.249
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值