最近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 gccgcc++ gnutls-devel Python python-devel python-lib* libacl-developenldap-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、 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系统密码无关。
图9 pdbedit
建立Samba帐户,查看是否成功(图10)。
图10