Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐: 强烈推荐:Ylmf OS 3.0 正式版发布附迅雷高 XP系统下硬盘安装Fedora 14图文教程
搜索:
您的位置: Linux安全网 > Linux入门 > » 正文

samba

来源: 未知 分享至:

一. 简介:
   在一些中小型网络,或者企业的内部网中,利用Linux建立文件服务器是一个很好的解决方案。针对企业内部网中的绝大部分客户机采用Windows的情况,我们可以通过使用Samba来实现文件服务器功能。
  Samba是在Linux及Unix上实现SMB(Server Message Block)协议的一个免费软件,由服务器及客户端程序构成。这里我们只介绍服务器程序。 
  我们首先介绍一些SMB协议的情况。SMB协议是建立在NetBIOS协议之上的应用协议,是基于TCP138、139两个端口的服务。NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统。这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block)协议。这个协议被用于Lan Manager和Windows服务器系统中,实现不同计算机之间共享打印机和文件等。因此,为了让Windows和Unix/Linux计算机相集成,最好的办法就是在Unix/Linux计算机中安装支持SMB协议的软件。这样使用Windows的客户端不需要更改设置,就能像使用Windows NT或Windows 2000服务器一样,使用Unix/Linux计算机上的共享资源了。Samba使SMB协议运行在NetBIOS协议上,并且使用Windows的NetBEUI协议让Unix/Linux服务器可以在Windows的网络邻居上被访问到。
 
    Samba的服务器程序可以实现以下主要功能:
 
    ◆ 文件及打印共享;
    ◆ 计算机名与IP的解悉;
    ◆ WINS服务的支持;
    ◆ 用户权限设置(如果配合Linux 的Quota还可以实现用户磁盘空间配额)。
二.samba 服务器的配置及使用
   (假设虚拟机为samba服务器,真机为samba 的客户端。虚拟机IP: 192.168.0.122,真机IP:192.168.0.22)
    首先你应该在服务器上用: yum install samba-common samba -y
       你要添加一个本地用户作为samba用户,smbpasswd -a student
    将本地用户添加到samba共享,那么在客户端就可以访问家目录了。( 默认将家目录共享出来)
    samba 的住配置文件:   /etc/init.d/smb.conf 
   注意要将selinux 设置成强制。vi /etc/sysconfig/selinux
此时你在客户端输入: smbclient  -L //192.168.0.122    (列出服务器192.168。0.122上的所有共享目录)
                smbclient  -L //192.168.0.122 -U student
注意在企业中配置服务的时候会先将selinux关闭的,然后配置各种服务,配置好之后,然后再开启调试。
注意:假如有时候你以root身份编辑某个文件的时候,你会发现不能写进去,那是因为有1个交换文件的存在:如/etc/samba/smb.conf不能编辑,是因为存在/etc/samba/.smb.conf.swp的存在。你应该rm -rf /etc/samba/.smb.conf.swp
三.访问 CIFS 共享
通用 Internet 文件系统( CIFS )也称为服务器信息块( SMB ),是适用于 Microsoft Windows 服务器
和客户端的标准文件和打印机共享系统。 RHEL 可以用作 CIFS 文件和打印机共享的客户端以及服务器。
在本节中,我们将回顾连接到 CIFS 文件共享的四个基本方法:
1. 图形访问 CIFS 共享
转至 “位置” --> “ 连接服务器”。填写以下字段:
Service type: Windows share
Server: instructor.example.com
User Name: guest2001
Password: password
2. 手动挂载 CIFS 共享
[root@serverX ~]# mount -t cifs -o user=guest2001 //instructor.example.com/ftp /mnt
3. 持续挂载 CIFS 共享
将以下行添加到 /etc/fstab :
//instructor.example.com/ftp /mnt
cifs
credentials=/root/userpasswd 0 0
创建 /root/userpasswd :
user=guest2001
pass=password

四. 示例一:
   vi  /etc/samba/smb.conf
    [share]
       comment = mysamba
    path = /mnt
    writable = YES 
    //词条参数的意思就是指明这个路径的目录是可写的
         public = YES
  //允许匿名登录,所谓匿名登录就是你登录的时候不输入samba用户
   此时你应该考虑下selinux,安全上下文
  getsebool -a | grep samba 显示安全各种selinux服务的启动情况。
    setsebool -P samba_enable_home_dirs(允许samba共享目录)
    setsebool  -P samba-export_all_ro   on
    setsebool  -P samba-export_all_rw   on
   还有就是/mnt的目录具有可写的权限。
  chmod   777 /mnt

测试:smbclient //192.168.0.122/share  -U student
  smbclient //192.168.0.122/share  
    (不加用户名,匿名访问)
   ls 显示当前的samba共享的目录下的文件或目录
   !ls  显示的是你登录之前的目录的所有文件或目录
    put a.txt
   (注意samba只能上传当前目录的文件,不能上传绝对路径的文件  eg:不能上传 put /etc/fstab)
   
 示例二:
   vi  /etc/samba/smb.conf
    [share]
         comment = mysamba
     path = /mnt
     writable = YES (admin 的时候这个必须是YES,允许具有可写的权限)
         public = YES
         admin user = student
(赋予student用户管理员的权限,最高哦,)
此时给chmod   755  /mnt
测试:smbclient //192.168.0.122/share  -U student
    put b.txt
      此时用student登录你可写可执行,而你用sushan 这个用户登录的话你只可以看,不可以写,因为其他人只有rx权限。用student连接的时候继承的root权限。
 
   (注意samba只能上传当前目录的文件,不能上传绝对路径的文件  eg:不能上传 put /etc/fstab)
  示例三:
   vi  /etc/samba/smb.conf
    [share]
         comment = mysamba
     path = /mnt
     writable = NO
         public = YES
         write list = student,sushan (可以写的人)
       仅允许student,sushan 对该目录有写的权限,其他人为只读:
测试:smbclient //192.168.0.122/share  -U student
       put b.txt
 
      smbclient //192.168.0.122/share
   匿名用户就不能上传文件啊!
   示例四:
   vi  /etc/samba/smb.conf
    [share]
         comment = mysamba
     path = /mnt
     writable = NO
         public = YES
         write list = student,sushan (可以写的人)
              +student   (对student的用户组中的用户可写)
       仅允许student,sushan 对该目录有写的权限,其他人为只读:
测试:smbclient //192.168.0.122/share  -U student
       put b.txt
 
      smbclient //192.168.0.122/share
   匿名用户就不能上传文件啊!
示例五:
   vi  /etc/samba/smb.conf
    [share]
         comment = mysamba
     path = /mnt
     writable = NO
         public = YES
     特定用户使用,只有ww用户可写:
         valid users = ww,qq (valid users = @net (组))
         指明有效用户,值得是指明的这些用户可以登录进去,而下面的那个write list 是特别的指出只有ww 用户可写
        write list = ww
       browseable = no (使用smbclient //192.168.0.4/share -U ww无法看到,树级
目录 )
五.你自己创建一个目录,允许samba共享
    [public]
         comment = my samba for test
     path = /samba
         public = YES(允许匿名用户访问共享目录)
    writable = yes (匿名用户和普通用户可写,匿名用户以nobody身份创建目录
   
    chcon -R -t samba_share_t /samba
 测试:
 在客户端输入 samclient   //192.168.0.122/public
          可以上传下载等
六.你可以用图形化的共享samba服务,
     yum install samba-swat -y
     /etc/init.d/xinetd start
     vi /etc/xinetd.d/swat  
      中的disable=no
      only from 禁止
    stat.html' target='_blank'>netstat -antlpe | grep 901
     http://192.168.0.122:901
配置samba的网页配置,共享直接修改配置文件。共享出去。
七.
限制客户端系统的访问:
1. 按 IP 地址限制客户端系统访问特定的 CIFS 共享:
hosts allow = 192.168.0.254   127.    (只允许本机和192,168.0.254访问)
2. 启用防火墙并添加如下规则限制 CIFS 共享访问:
[root@serverX ~]# iptables -A INPUT ! -s 192.168.0.0/24 -p udp --dport 137:138 -j REJECT
[root@serverX ~]# iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 139 -j REJECT
[root@serverX ~]# iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 445 -j REJECT
 


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史