晓张 XiaoZhang.net http://www.xiaozhang.net [分享] [RSS]

日志

源码搭建Samba文件服务器

已有 697 次阅读2017-6-5 16:19 |个人分类:IT世界| 晓张, 搭建Samba


 

源码搭建Samba文件服务器

 

  最近Windows SMB协议的445端口漏洞闹得沸沸扬扬,接着Unix和类Unix操作系统也报出相关漏洞,好在都已经被修复。本次文章是将在Linux环境下用Samba源代码搭建一个SMB文件服务器,Samba采用目前最新的4.6.4版本。

 


  服务器软件采用:CentOS 7.2.1511

1

 

  安装CentOS时,采用最小化安装,这样可以减少不必要的系统开销与漏洞风险。安装完成后,建议先关闭SELinux(图2)和防火墙(图3),待应用布署完成后,再作安全防护调试。


2


 

3

 

  CentOS最小化安装并没有包括网络工具组件,可以先将此安装:命令:yum install –y mlocate net-tools

4

 

  接下来我们为Samba源码安装布署环境基础。

  命令:yum install gcc gcc++ gnutls-devel python python-devel python-lib* libacl-devel openldap-devel -y

5

 

  将“samba-4.6.4.tar.gz”文件复制到“/tmp”目录下并解压并安装。

  1、    tar -zxvf samba-4.6.4.tar.gz

  2、    cd samba-4.6.4

  3、    ./configure  --prefix=/opt/samba/

  4、    make

  5、    make install

 

6 configure


 

7 make


 

8 make install


 

  添加动态链接库

  echo "/opt/samba/lib" >> /etc/ld.so.conf

  ldconfig        #加载动态链接库

 

  复制、过滤配置文件,可以省略自己生成

  1、cp /tmp/samba-4.6.4/packaging/LSB/smb.conf  /opt/samba/etc/

  2、cd!$

  3、cp smb.conf smb.conf.bak           # smb.conf备份

  4、grep -Ev "#|^$|;" smb.conf.bak > smb.conf

 

  至此Samba已安装完成,接下来还有如下6步工作要做。

  1、    配置smb.conf文件

  目前smb.conf默认内容如下:

[global]

   workgroup = MYGROUP

   server string = Samba Server

   printcap name = /etc/printcap

   load printers = yes

   log file = /var/log/samba/log.%m

   max log size = 50

   security = user

   dns proxy = no

 

[homes]

   comment = Home Directories

   browseable = no

   writable = yes

 

[printers]

   comment = All Printers

   path = /var/spool/samba

   browseable = no

   guest ok = no

   writable = no

   printable = yes

 

  根据我的共享需求,在根目录下建立“ShareFiles”文件夹,将一些软件、资料共享在此处,并设置“user-group”组对此目录有读取权限,但此组中只有“user01”有写权限。

[ShareFiles]

   comment = Files Shares

   path = /ShareFiles

   browseable = no

   writeable = no

   valid users = @user-group

   write list = user01

 

2、    添加Linux系统账户(useradd

  建立4user账户,都加入到“user-group”组中,这4个帐户只用于Samba应用,没有登陆系统的权限。

  这里假设了两个场景:1)user01-user03用户除了可以读共享内容之外,还可以读写自己的Home目录。2)user04用户只能读共享内容,不能读写自己的Home目录,所以在建立user04帐户时使用了“-M -N”(不建立同名组和Home目录)。

  groupadd user-group

  useradd -s /sbin/nologin -G user-group user01

  useradd -s /sbin/nologin -G user-group user02

  useradd -s /sbin/nologin -G user-group user03

  useradd -s /sbin/nologin -G user-group -M -N user04

 

3、    Linux已存在系统帐户添加到Samba应用中(pdbedit

  /opt/samba/bin/pdbedit -a -u user01

  /opt/samba/bin/pdbedit -a -u user02

  /opt/samba/bin/pdbedit -a -u user03

  /opt/samba/bin/pdbedit -a -u user04

  将系统的4个用户添加到Samba应用中,并设置密码(图9),此密码是Samba密码,与Linux系统密码无关。


9 pdbedit

 

  建立Samba帐户,查看是否成功(图10)。


10

 

  4、    修改共享目录权限。对于Samba共享文件夹中的读写权限,除了smb.conf文件中作相应的配置之外,也需要在Linux系统层面对此共享文件夹作写操作,可将组(Group)设置为可写,也可将其它(Other)设置为写(图11)。命令:chmod o+w ShareFiles/

11

 

  5、    启动Samba服务。命令:/opt/samba/sbin/smbd

  6、    查看Samba进程是否存在(图12)。


12

 

  到此,Samba应用搭建完成,smb.conf中有很多参数,请各位多多测试,灵活使用,找到自己合适的使用配置。

 

收藏 分享 转发到微博 举报

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

成都宠物论坛|手机版|成都宠物网搜索|百度|谷歌|宠我网 ( 蜀ICP备07500266号 

GMT+8, 2020-10-30 17:46 , Processed in 0.124361 second(s), 16 queries .

© 2007 By www.Petovo.com Some rights reserved

回顶部