如何使用FreeBSD防火墻保護企業網絡
以前我已經寫過一次《利用FreeBSD組建安全的網關》,主要偏向于如何建立一個FreeBSD防火墻,而防火墻在很多時候主要是要看如何使用,現在我們看看如何使用建立好了的FreeBSD防火墻保護企業,關于FreeBSD的防火墻建設過程請參考我的《利用FreeBSD組建安全的網關》,首先假設某企業有以下服務器和工作站:
1、WEB服務器兩臺、一臺企業主頁,一臺做BBS,希望IP地址為xxx.xxx.xxx.001和xxx.xxx.xxx.002
2、DNS服務器一臺,并且兼帶企業E-mail服務,IP地址為xxx.xxx.xxx.003,把www.testdomain.com解析到xxx.xxx.xxx.001以及bbs.testdomain.com解析到xxx.xxx.xxx.002
3、企業內部局域網絡,計算機N臺,IP地址為10.125.0.0到10.125.255.255
對于這樣的一個企業,我們首先要設計好網絡構架,在設計的同時要考慮到各個服務器以及內部網絡各放在什么位置,才能更有效的配合防火墻,使得防火墻對每個部分都能充分的保護。
我們首先來分析一下“黑客”入侵的手段和途徑,作為一個入侵者,他的第一步自然是先要找到目標企業在網絡中的位置,假設他已經知道該企業沒有使用主機托管服務,而是和企業的網絡放在了一起,那么他只須ping一下該企業的主頁就能了解到該企業的IP地址為xxx.xxx.xxx.001和xxx.xxx.xxx.002,而另外還有一臺DNS服務器,也可以使用nslookup這樣的工具,一下就能查到目標企業的DNS服務器為地址xxx.xxx.xxx.003,并且他還會計劃,假設已經進入以上三臺服務器中的一臺,他就會馬上分析網絡結構,并且進入內網,獲取內部網絡員工資料,以及很多重要數據。從上面看得出來,要保護這個網絡,我們需要做很多東西,首先我們可以想辦法對服務器之間以及服務器和內部網絡之間進行隔離,但又能應用到他們應該有的功能,現在對該企業的網絡做如下策劃:
首先確定FreeBSD防火墻是作為企業連接到Internet服務器的唯一途徑,然后對FreeBSD進行一定的設置,開啟它的ipfirewall以及NATD功能,上圖告訴了我們現在是把WWW、BBS、DNS等服務器都放在內部進行保護,所以在防火墻要開啟NATD的反向代理功能,首先我們把xxx.xxx.xxx.001,xxx.xxx.xxx.002,xxx.xxx.xxx.003,綁定在FreeBSD外部網卡上,假設外部網卡號為fxp0,在rc.conf里我們需要設置如下:
ifconfig_fxp0="inet xxx.xxx.xxx.001 netmask 255.255.255.0"
ifconfig_fxp0_alias0="inet xxx.xxx.xxx.002 netmask 255.255.255.0"
ifconfig_fxp0_alias1="inet xxx.xxx.xxx.003 netmask 255.255.255.0"
綁好之后我們現在就開始分析了,首先我們來看看內部網絡,內部要上Internet就必須要有一個網關,并且讓他們正常的使用網絡,假設FreeBSD內部網卡編號為fxp1,那么我們還要在rc.conf里加入:
ifconfig_fxp1="inet 10.125.0.1 netmask 255.255.0.0"
然后在防火墻規則里加上:
divert 8668 ip from any to any via fxp0
這條規則,允許NATD服務,僅允許NATD服務還不行,還要設置內部網絡能連接到Internet,我們再加上:
allow ip from any to 10.125.0.0/16
allow ip from 10.125.0.0/16 to any
內部網絡設置Gateway為10.125.0.1,這樣企業的內部網絡就能正常連接到Internet了。
然后我們來看看WWW服務器,這個服務器一般來說只要開放三個端口就夠了,第一個端口自然是HTTP端口不用說了,第二個端口那就是ftp端口以及ftp數據端口,其中HTTP端口自然是讓Internet上以及企業內部訪問的端口,而FTP端口是用來更新主頁或做別的事的,并且只須要企業內部人員訪問就足夠了,當然有必要的話還要開telnet或ssh端口,這是方便企業內部系統管理員遠程管理的,這里我建議使用ssh,并且為了防止萬一入侵者進來了,他可能要對其他機器進行攻擊,我決定對WWW服務器進行單獨分離,現在假設FreeBSD的內部網卡編號為fxp1,我們編輯rc.conf文件,加上:
ifconfig_fxp1_alias0 ="inet 10.80.0.1 netmask 255.255.255.0"
然后我們把WWW的服務器設置成10.80這個網段,網關為10.80.0.1,這樣就把WWW服務器單獨劃在了一個特殊的區域里了,假設我們設置WWW的IP為10.80.0.80現在我們再設置防火墻規則:
allow tcp from any to xxx.xxx.xxx.001 80 in
allow tcp from xxx.xxx.xxx.001 80 to any out //允許任意地方能訪問防火墻的80
allow tcp from 10.80.0.80 80 to any out
allow tcp from any to 10.80.0.80 80 in //允許任意地方訪問WWW服務器的80端口
allow tcp from 10.125.0.0/16 to 10.80.0.80 21 in
allow tcp from 10.125.0.0/16 to 10.80.0.80 20 in
allow tcp from 10.80.0.80 21 to 10.125.0.0/16 out
allow tcp from 10.80.0.80 20 to 10.125.0.0/16 out //允許內部網絡使用FTP服務器連接WWW服務器
設置完成防火墻規則還不行還需要設置NATD,我們設置NATD為:
redirect_port tcp 10.80.0.80:80 xxx.xxx.xxx.001:80
這樣設置以后,WWW服務器就可以允許企業內部人員順利的更新主頁和瀏覽主頁了,而Internet卻只能瀏覽WWW服務器上的主頁,就算萬一WWW服務器利用HTTP服務器入侵了該機器,由于該服務器的各種連接都被放火墻阻斷,而無法對企業內部網絡進行入侵和破壞,達到充分保護WWW服務器以及內部網絡的目的。
現在我們再來分析DNS服務器,由于BBS服務器和WWW服務器實質上都一樣這里就不討論了,DNS服務器自然要提供DNS服務器,也就是UDP53端口,由于同時還帶MAIL功能,所以還要開放SMTP端口以及POP3端口,而POP3服務器同樣只允許內部企業訪問,所以我們給rc.conf加入:
ifconfig_fxp1_alias0="inet 10.80.2.1 netmask 255.255.255.0"
然后給DNS服務器設置IP為10.80.2.53,設置防火墻規則為:
allow udp from any to xxx.xxx.xxx.003 53 in
allow udp from xxx.xxx.xxx.003 53 to any out //允許任意地方能訪問防火墻的53端口
allow tcp from any to xxx.xxx.xxx.003 25 in
allow tcp from xxx.xxx.xxx.003 25 to any out //允許任意地方能訪問防火墻的smtp端口
allow udp from 10.80.2.53 53 to any out
allow udp from any to 10.80.2.53 53 in //允許任意地方訪問DNS服務器的53端口
allow tcp from any to 10.80.2.53 25 in
allow tcp from 10.80.2.53 25 to any out //允許任意地方訪問DNS的SMTP端口
allow tcp from 10.125.0.0/16 to 10.80.2.53 110 in
allow tcp from 10.80.2.53 110 to 10.125.0.0/16 out //允許企業內部訪問DNS的POP3端口
NATD設置為:
redirect_port udp 10.80.2.53:53 xxx.xxx.xxx.003:53 //把10.80.2.53的53轉到xxx.xxx.xxx.003的53上,使用的UDP。
redirect_port tcp 10.80.2.53:25 xxx.xxx.xxx.003:25 //把10.80.2.53的25轉到xxx.xxx.xxx.003的25上,使用的TCP。
按照上面的規則設置好企業網絡后,使得企業網絡保護更加的嚴密,服務器和服務器之間以及服務器和企業內部網絡之間進行了嚴格控制。當然這里沒有考慮內部入侵,以及內部IP盜用行為,這也就是FreeBSD防火墻的局限性。不過可以添加一塊網卡,把企業內部人員的網絡單獨用一個網卡來進行隔離,達到彌補的辦法。
好了,以上為我使用FreeBSD防火墻保護企業網絡的個人做法,希望能給一部分企業網管有所幫助。
【編輯推薦】