CentOS7.2下源码搭建Samba文件服务器[原创]

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

服务器软件采用:CentOS 7.2.1511

CentOS7.2下源码搭建Samba文件服务器[原创]

图1

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

CentOS7.2下源码搭建Samba文件服务器[原创]

图2

CentOS7.2下源码搭建Samba文件服务器[原创]

图3

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

CentOS7.2下源码搭建Samba文件服务器[原创]

图4

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

命令:yum install gccgcc++ gnutls-devel Python python-devel python-lib* libacl-developenldap-devel -y

CentOS7.2下源码搭建Samba文件服务器[原创]

图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

CentOS7.2下源码搭建Samba文件服务器[原创]

图6 configure

CentOS7.2下源码搭建Samba文件服务器[原创]

图7 make

CentOS7.2下源码搭建Samba文件服务器[原创]

图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、 cpsmb.confsmb.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)

建立4个user账户,都加入到“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系统密码无关。

CentOS7.2下源码搭建Samba文件服务器[原创]

图9 pdbedit

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

CentOS7.2下源码搭建Samba文件服务器[原创]

图10

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

CentOS7.2下源码搭建Samba文件服务器[原创]

图11

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

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

CentOS7.2下源码搭建Samba文件服务器[原创]

图12

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

------------------------------------分割线------------------------------------

------------------------------------分割线------------------------------------

相关推荐