隨著互聯網應用的飛速發展,互聯網給人們的生活帶來了極大的便利。然而互聯網暗藏的風險也如懸在頭頂的利劍,隨時可能帶來致命的傷害。因此,即便是今天,依然有許多涉密單位和網絡,既存在與互聯網交換數據的實際需求,又希望能與互聯網能夠物理隔離。
傳統解決的辦法是在兩個網絡之間增加安全網閘。然而,安全網閘本身結構比較復雜,購置成本較高,而且配置部署需要專業人士,安全性甚至由網絡管理員技術水平決定。
本文提出建立個數據中轉服務器,在兩個物理隔離的網絡之間進行數據中轉。并通過程序代碼予以實現。
一、建立中轉服務器
在兩個物理隔離的網絡之間設置一臺普通的計算機作為數據中轉站。該計算機安裝兩個網卡,分別連接兩個網絡。平時兩個網卡均為禁用狀態,連路斷開,兩個網絡與數據中轉站為物理隔離狀態。
圖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字節的中轉服務器小程序即可工作。