为了避免此类情况发生,减少被攻击和入侵的风险,我们采用了如下措施。

(1)将服务器底层系统从ESXi 6.0升级到7.0

(2)将ERP服务器操作系统从Windows Server 2008 R2升级到Windows Server 2022

(3)配置1台VPN的虚拟机,各连锁机房通过VPN连接到ERP服务器,不再直接通过公网地址加端口的方式访问ERP服务器。

经过实际测试,我们采用SoftEther搭建了VPN系统,效果较好。

SoftEther VPN是一种开源免费跨平台多协议 VPN 程序,采用 Apache 许可证 2.0,可以在 https://www.softether.org/下载。

VPN服务器端选择Linux版本,配置了一台Cent OS 7的虚拟机。VPN客户端采用OpenVPN客户端程序(使用UDP协议连接)。下面一一介绍。

1 在Cent OS安装SoftEther

在物理服务器ESXi上创建一台名称为CentOS7-SoftEther的虚拟机,为虚拟机分配4个CPU、4GB内存、100GB硬盘空间,1块网卡。然后在虚拟机中安装Cent OS 7.9,为网卡设置内网的IP地址,本示例为192.168.100.19(当前虚拟机及服务器都是使用192.168.100.0/24的地址段)。

【说明】本节用到的相关软件如下:

(1)CentOS-7-x86_64-DVD-2207-02.iso,在 https://developer.aliyun.com/mirror/下载。

(2)SoftEther VPN服务器软件Linux版本,文件名称为softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-x64-64bit.tar

(3)SoftEther VPN管理软件Windows版本,文件名称为softether-vpn_admin_tools-v4.42-9798-rtm-2023.06.30-win32.zip

安装完Cent OS 7.9后,将Centos7设置使用阿里云镜像源,安装SoftEther。下面介绍主要步骤。

(1)执行如下命令备份CentOS-Base.repo文件

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

(2)删除Cent OS原yum源

rm -rf /etc/yum.repos.d/*

(3)下载阿里云Centos-7.repo文件

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

如果提示没有找到wget命令,使用下面的命令安装

yum install -y wget

(4)清除yum缓存

yum clean all

(5)刷新缓存

yum makecache


将Linux版本SoftEther VPN服务器软件(本示例文件名称为softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-x64-64bit.tar)使用sftp上传到/tmp文件夹,然后执行如下命令安装。

(1)安装依赖包

yum -y install make gcc gcc-devel gcc-c++ zlib-devel openssl-devel readline-devel ncurses-devel


(2)解压缩文件

tar -xf softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-x64-64bit.tar.gz -C /usr/local/

(3)执行安装

cd /usr/local/vpnserver

make

(4)将SoftEther添加加服务。在/etc/init.d/文件夹中新建vpnserver的文件。

vi /etc/init.d/vpnserver

添加如下内容:


#!/bin/sh

# chkconfig: 2345 99 01

# description: SoftEther VPN Server

DAEMON=/usr/local/vpnserver/vpnserver

LOCK=/var/lock/subsys/vpnserver

test -x $DAEMON || exit 0

case "$1" in

start)

$DAEMON start

touch $LOCK

;;

stop)

$DAEMON stop

rm $LOCK

;;

restart)

$DAEMON stop

sleep 3

$DAEMON start

;;

*)

echo "Usage: $0 {start|stop|restart}"

exit 1

esac

exit 0


(5)将vpnserver添加为开机启动

chmod 755 /etc/init.d/vpnserver

/sbin/chkconfig --add vpnserver


(6)手动启动SoftEther服务

/etc/init.d/vpnserver start

(7)关闭SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

setenforce 0


(7) 在防火墙开放VPN服务所需的端口,这些包括管理端口80和5555,以及VPN服务所需要的TCP与UDP的1194、UDP的500和4500

firewall-cmd --permanent --add-port 80/tcp --add-port 1194/tcp --add-port 5555/tcp --add-port 500/udp --add-port 4500/udp --add-port 1194/udp

firewall-cmd --reload

firewall-cmd --list-all

在配置完成后,安装SoftEther管理客户端,管理配置SoftEther VPN服务器。

【说明】TCP 80与5555是SoftEther使用,UDP和500和4500是L2TP VPN客户端使用,UDP的1194是OpenVPN Server使用。如果需要使用MS-SSTP VPN,还需要映射TCP的443端口。

最后在出口防火墙(或路由器)映射VPN服务器使用的端口到192.168.100.19。在当前的案例中,我们使用OpenVPN客户端,L2TP VPN客户端及SoftEther VPN客户端备用。在出口防火墙或路由器映射TCP5555、UDP500、4500和1194到IP地址为192.168.100.19的VPN服务器。

2 管理配置SoftEther

在与SoftEther相同网络的环境中,准备一台Windows的虚拟机,下载并解压缩展开SoftEther管理端(本示例文件名称为softether-vpn_admin_tools-v4.42-9798-rtm-2023.06.30-win32.zip),执行vpnsmgr.exe程序进入管理界面。主要步骤如下。

在SoftEther VPN Server Manager界面,单击“新设置”按钮,进入“新的连接设置”对话框,输入设置名、目标VPN服务器的主机名(IP地址)及端口号,密码初次连接时需要设置密码。如图1所示。

一例ERP服务器被加密勒索改为内网访问的案例_客户端


新建连接

返回之后,选中连接名称,单击“连接”按钮,连接到VPN服务器。

(1)登录到VPN管理界面,单击“管理虚拟HUB”按钮,在“管理虚拟HUB”对话框中,单击“管理用户”按钮,在“管理用户”对话框中,单击“新建”按钮,创建VPN登录用户,如图2所示。根据需要,为每个门店创建一个VPN账户。

一例ERP服务器被加密勒索改为内网访问的案例_服务器_02


创建新用户

(2)在“管理虚拟HUB”对话框中,单击“虚拟NAT和虚拟DHCP服务器”单击“启用SecureNAT”按钮,启用SecureNAT。然后单击“SecureNAT”配置,打开SecureNAT配置界面,为VPN客户端设置IP地址及启用虚拟NAT功能,如图3所示。

一例ERP服务器被加密勒索改为内网访问的案例_服务器_03


配置NAT

3 启用OpenVPN克隆功能

SoftEther除了支持自己的VPN Server功能外,也支持标准的L2TP VPN和MS-SSTP VPN客户端,还支持克隆OpenVPN功能。远程用户可以使用SoftEther VPN客户端登录连接,也可以使用Windows内置的VPN客户端使用L2TP与MS-SSTP VPN客户端连接。经过实际测试,SoftEther服务器端使用OpenVPN克隆功能,客户端使用OpenVPN客户端连接效果较好。

在管理VPN Server首页中单击“Open VPN /MS-SSTP”设置按钮,打开Open VPN /MS-SSTP设置对话框,选中“启用Open VPN克隆Server功能”,并在“监听OpenVPN的UDP端口”列表中选择服务端口,本文使用默认端口 UDP的1194端口,如图4所示。

一例ERP服务器被加密勒索改为内网访问的案例_勒索软件_04


启用OpenVPN克隆Server功能

单击“为OpenVPN Client生成配置样本文件”,保存并生成OpenVPN客户端配置文件。这是一个打包的zip文件,生成之后,解压缩展开,用“记事本”打开名称为“localhost_openvpn_remote_access_l3.ovpn”的文件,修改并编辑如下内容:

# x1.x2.x3.x4为VPN服务器所在出口公网的IP地址

remote x1.x2.x3.x4 1194

# 最多设置1000条route

max-routes 1000

# 不接收openvpn server推送的route

route-nopull

# 设置优先级

route-metric 150

# 指定此网段才走VPN代理

route 192.168.100.0 255.255.255.0 vpn_gateway


配置之后,在分支机构的计算机上安装OpenVPN客户端,导入编辑好的OpenVPN客户端文件,输入账户和密码后登录到内网,如图5所示。

一例ERP服务器被加密勒索改为内网访问的案例_勒索软件_05


图5 登录到VPN服务器

然后使用内网IP地址访问ERP,不再通过公网地址直接访问ERP系统,这样避免ERP系统直接发布到公网而造成的攻击和入侵。