随着互联网应用的飞速发展,互联网给人们的生活带来了极大的便利。然而互联网暗藏的风险也如悬在头顶的利剑,随时可能带来致命的伤害。因此,即便是今天,依然有许多涉密单位和网络,既存在与互联网交换数据的实际需求,又希望能与互联网能够物理隔离。
传统解决的办法是在两个网络之间增加安全网闸。然而,安全网闸本身结构比较复杂,购置成本较高,而且配置部署需要专业人士,安全性甚至由网络管理员技术水平决定。
本文提出建立个数据中转服务器,在两个物理隔离的网络之间进行数据中转。并通过程序代码予以实现。
一、建立中转服务器
在两个物理隔离的网络之间设置一台普通的计算机作为数据中转站。该计算机安装两个网卡,分别连接两个网络。平时两个网卡均为禁用状态,连路断开,两个网络与数据中转站为物理隔离状态。
图1数据中转站架设示意图
数据中转站中安装有数据中转应用服务器,由计划任务或者其他唤醒程序启动。运行分三步:
1.开启源服务器网络连接,连接源服务器,约定下次通讯的方式(可选),获取数据;
2.关闭与源服务器网络的连接,开启目标服务器网络连接,向目标服务器写入数据;
3.关闭与目标服务器网络的连接,进入缄默模式,等待下一次被唤醒。
二、中转应用服务器实现代码
本文的中转应用服务器实现的功能是定期从内部涉密网络数据库读取预先设定好的可以公开的信息,写入Internet中的数据库中。
this.show()
begin_time=now()
ln.of_netlink(connect_in,con_open_command)//打开内网连接
str_err=str_err+ln.of_geterror()
Sleep(5)
f_get_data()//获取内网数据
ln.of_netlink(connect_in,con_close_command)//关闭内网连接
Sleep(5)
str_err=ln.of_geterror()
ln.of_netlink(connect_out,con_open_command)//打开外网连接
Sleep(5)
str_err=str_err+ln.of_geterror()
f_write_data()//写入外网数据
fori=1to100
yield()
next
end_time=now()
Sleep(30)
str_err=str_err+ln.of_geterror()
err_text=str_err
f_write_log()//记录日志
ln.of_netlink(connect_out,con_close_command)//关闭内网连接
图2中转服务器工作状态示例
三、中转服务器与网闸比较
中转服务器能够实现网闸的功能,确保在两个物理隔离的网络间就是定期交换预先设定好的数据。其部署过程可以由用户参与,自行设定交换哪些数据信息。而一旦数据交换完毕,中转服务器立即断开物理连接。
这种断开用户也可以直观的检查其工作状态,也能极大地降低被扫描、入侵的风险。相比网闸,中转服务器更易于部署。而且价格比网闸便宜多了。一台当下最普通的个人电脑,可以作为工作站,再安装一个如前文所提及的几十K字节的中转服务器小程序即可工作。