安全文件共享的实现

2020-04-15 07:42西安薛民华解宝琦
网络安全和信息化 2020年4期
关键词:该软件端口服务器

■ 西安 薛民华 解宝琦

自“永恒之蓝”勒索病毒爆发以来,每年都有相应的勒索病毒变种出现,对事发单位的业务运营造成了严重影响。不管是2017年的“永恒之蓝”、2018年的“撒旦”还是2019年的“ GlobeImposter”等各种勒索病毒其变种病毒,其攻击原理都是利用了相应的操作系统或漏洞、协议的弱口令等进行入侵,通过共享服务端口进行内网传播。

而通常情况下各个安全厂家以及安全管理者给出的建议基本如下:

•对重要的业务系统数据要有数据备份的机制;

•要常态地化对服务器和应用系统进行漏洞检测,并及时发现、及时修复;

•对于不常用的服务端口需要采取关闭或者加固措施,比如:139端口、145端口、455端口、3389端口。

这样一来,安全问题解决了,但同时用户需要使用局域网文件共享也不可能再方便的进行了。很多时候,这种安全与用户需求的矛盾总是让系统维护和管理者头疼不已。再加上很多企业中由于计算机用户规模庞大,普通用户使用的Windows系统跨版本现象相当普遍,也给使用网络文件和打印机共享带来了很多设置难度。

自从因为安全原因,让局域网文件共享功能不再可用后,笔者经常会在和普通用户闲聊时被问及这一功能能否被恢复使用或者有没有更好的替代方法等问题。这说明这一功能的方便性确实在广大的计算机使用者中广受喜爱,有着很好的用户普及度。

为了帮用户恢复文件共享的功能,笔者结合OpenSSH服务器提供的SFTP功能以及第三方商业软件提供的映射网络驱动器功能,创建了加密传输的文件共享方案,很好地满足了用户的迫切需求及安全管理要求。

以下详细介绍实现方法。

服务器配置

在OpenSSH version 4.8以后的软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用SSHD守护进程(端口号默认是22)来完成相应的连接和答复操作。所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。

SFTP同样是使用加密传输认证信息和传输的数据,所以使用SFTP是非常安全的。在所有发行版Linux安装好SSH Server之后,SFTP的配置一般都是用一个外部独立的SFTP-Servers。SFTP与FTP有着几乎一样的语法和功能。为了满足目前网络安全性的要求,可以使用SFTP代替FTP作为共享文件的后端服务系统,以下将以创建规划的共享组和用户为例。

1.用户及目录规划

文件共享用户:test、test1。

文件共享组:workgroup。

文件共享组后端目录:/workgroup。

2.配置过程

(1)以root用户使用命令“groupadd workgroup”在SFTP服务器上添加文件共享组,分别使用命令:

useradd -g sftpworkgroup -d/sworkgroup/test -s/sbin/nologin test

useradd -g workgroup-d/sftpworkgroup/test1-s/sbin/nologin test1

创建规划的“test”与“test1”用 户,并使用“passwd”命令修改用户密码,尽管这两个用户是禁止直接登录到服务器系统的,但是该用户未来需要通过SFTP方式登录到服务器进行文件操作时需要密码验证,因此需要修改密码以便可以正常通过SFTP方式访问服务器。

图1 使用test1用户登录SFTP服务器并上传和删除txt文件

(2)以root用户使用命令“vi/etc/ssh/sshd_config”编辑SSH服务器配置文件,并添加如下内容:

Match Group workgroup

ChrootDirectory/workgroup/%u

ForceCommand internal-sftp

以上参数设置后,属于Workgroup组的用户在通过SFTP方式访问文件共享服务器时将被限定在定义的工作目录区域中。

(3)以root用户使用命令“vi/etc/ssh/sshd_config”编辑SSH服务器配置文件,添加如下行:

Port 3371

将SSH服务器服务端口修改为3371,用户可以根据自己的喜好进行服务端口的挑选和设定。

(4)以root用户分别使用命令:

mkdir/workgroup/test/test

mkdir/workgroup/test1/test1

创建“test”与“test1”用户的共享文件夹,并确保“Workgroup”目录属组为“root:root”,确保该目录下的SFTP用户主目录属组为“root:workgroup”,确 保SFTP用户目录下的新建目录属组为各自用户的属组。

目录权限设置上要遵循两点:

①ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是 root;

②ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是755。

3.共享文件的后端服务测试

后端服务器参数配置完成后,用户可以重启服务器,并执行命令进行应用测试,图1是使用test1用户登录到SFTP服务器并上传和删除一个txt文本文件的过程,用户登录并不能删除test1目录,只能在该目录下进行相关的文件操作。

当用户试图使用“test”与“test1”任一用户通过SSH访问服务器时,系统将出现如下报错:

This service allows sftp connections only.

Connection to 127.0.0.1 closed.

此时说明服务器端配置完成并且只允许用户“test”与“test1”通过SFTP方式访问特定的目录并进行文件的操作工作。

客户端配置

1.Linux系统客户端连接

(1)普通客户端访问模式

当共享文件的后端服务器配置完成后,如果在Linux操作系统的Gnome桌面下不用安装第三方软件即可使用该共享服务,用户只需要在“文件管理器”中点击其它位置,输入地址回车后继续输入定义的用户名和密码即可像操作本地文件一样完成各种操作。

(2)文件系统挂载方式

Linux用户可以通过SSHFS文件系统的方式将SFTP服务器的目录直接通过mount方式挂载到目录中,类似与本地文件系统访问方式。

如果要使用SSHFS,需要分别在REDHAT及Debian类Linux系统中使用“yum install sshfs”或者“aptget install sshfs”进行该软件组件的安装,之后可以使用命令“sshfs–p 3371 test@192.168.100.88/mnt/test”将SFTP提供的网络文件共享内容挂载到本地文件系统的“/mnt/test”目录中(以服务器IP地址为192.168.100.88,开 放端 口为3371为例)。当需要卸载该远程文件系统时,用户可以执行“fusermount–u/mnt/test”即可。

2.Windows系统客户端连接

Windows系统在使用SFTP提供的网络文件共享并将其变换成类似本地硬盘时需要借助第三方软件才能实现。

NetDrive网盘是一个独特的远程存储软件,使用NetDrive可以实现FTP或者SFTP映射到本地,可以实现像操作本地硬盘一样使用远程网盘,从桌面上就能访问远程的云储存网盘,还可以管理FTP、WebDAV和NAS服务器和连接Dropbox、Google云端硬盘。该软件包括谷歌驱动器、Dropbox的、OneDrive和亚马逊的云驱动器,以及FTP、WebDAV和NAS服务器。

笔者在Windows操作系统中进行了测试,该软件可以在Windows XP以上的32位及64位主机上很好地工作,其安装过程相对简单,当用户点击安装后只需要按照提示点击“下一步”,即可完成安装。安装完成后软件会提示重新启动系统,建议用户进行重启,重启后桌面将出现NetDrive应用程序图标,该软件为商业软件,用户在进行为期30天的免费试用后需要进行注册。

用户可以在Drives选项卡下添加SFTP文件共享映射管理,点击“Add Drive”按钮,在弹出的“Drive Info”选项卡中按照如图2所示输入必要的配置信息。

将各个共享映射磁盘添加完成后,用户需要在“Options”选项卡中勾选“Run NetDrive2 when Windows start”选项。这样,每次系统重新启动后,系统将自动加载SFTP共享资源并将其映射为本地磁盘。笔者实验环境中最后的效果图如图3所示。

其中“E”盘对应的就是SFTP共享用户“test”的文件夹资源,“F”盘对应的就是SFTP共享用户“test1”的文件夹资源。用户可以非常方便地直接对这些资源进行本地操作,很好地实现了类似Windows网络文件共享的功能。

用户还可以通过目前的自由开放软件来替代NetDrive功能,该软件可以通过“https://github.com/billziss-gh/winfsp/releases”“https://github.com/billziss-gh/winf-win/releases”下载及安装,并可以使用Windows自带的“映射网络驱动器”选项以连接串“\sshfs est@192.168.100.88:3371”将远程文件映射成本地磁盘。

图2 “Drive Info”选项卡中输入配置信息

图3 笔者实验环境中最后的效果图

后记

本文的由来是一次用户需求具体实践,在网络安全要求不断升级的当下,如何能够增强安全机制建设的同时,又能最大限度地发挥网络在生产生活中的方便性,一直是系统维护人员要努力的方向。

通过这样的实践,我们不但保持了网络文件共享的易用性,同时也真正的在应用层通过SSL的加密传输机制,通过SSH的服务抛弃了那种固定服务端口以及明文传输带来的安全隐患,最大限度地防止了传统共享文件机制带来的安全问题,保护了共享机制的安全。

猜你喜欢
该软件端口服务器
一种有源二端口网络参数计算方法
简单灵活 控制Windows 10更新更方便
一种端口故障的解决方案
多按键情况下,单片机端口不足的解决方法
PowerTCP Server Tool
BlackJumboDog
现有网络架构及迁移方案
2018年全球服务器市场将保持温和增长
Allen & Heath推出GLD Editor控制软件
捉拿李鬼