發表文章

目前顯示的是 1月, 2017的文章

無狀態和有狀態防火牆

圖片
目前USER和WEB_SERVER都是互通,所有服務都沒有阻擋。 有一天我們想讓所有經由F0/1到F0/0的連線都無法通過。 我們設定了一條ACL NAME TCPIN,然後把他擺在F0/1 IN方向的端口。 結果當然如我們預料的WEB_SERVER無法連到USER,但是USER不但ping不到也連不到web服務。 因為封包是一去一回,所以極有可能是回去的封包被阻擋了,因此我們在deny ip any any前加了兩條,允許established的封包和echo-reply的封包。 我們除了USER能ping和連WEB_SERVER的80port外,而且ACL的matches也有增加。 現在我們只是解決了兩個問題,可是如果還有其他服務要開呢?所以非常難以維護和使用。 仔細想想我們現在使用的防火牆,只有一條內對外全部允許,外對內全部拒絕,好像也是可以瀏覽網頁和PING,似乎有點矛盾? 因為傳統只靠這種ACL的防火牆我們稱作stateless firewall(無狀態防火牆),就是我有設定才放行,沒設定就不放行,所以管理者必須要很清楚所有封包往返的流量,他不會紀錄已出去的封包狀態。 但是現在的防火牆大部分為stateful firewall(有狀態防火牆),這有點像是我發起一個50000port去連google網站80port,防火牆當然會預期google網站會回應一個80port回給我50000port的連線,所以他所有出去的流量都會記錄在他的stateful表格裡,只要在表格內都會自動放行,當然等到他偵測到一個結束訊號的話,這些暫時放行的防火牆規則就會關掉了。 再舉個比方就像是我主動打電話給A,因為防火牆政策有允許我打給A,所以有狀態防火牆就會允許並且開始記錄這通電話的狀態,例如我和對方電話多少,目前進行到開始還是結束?而且之後所有這通電話A回應給我的聲音都會被防火牆自動允許,直到雙方說再見掛電話,防火牆的自動允許才會取消,但A能不能主動打給我呢?要看防火牆有沒有允許A能打給我的政策。

防火牆政策尋找連線符合允許和拒絕的規則

圖片
我們防火牆就兩個區域,一個是LAN,一個是DMZ。 我們想要達到的目的為: LAN TO DMZ:WIN7可以存取PRIVATE_WEB和PUBLIC_WEB。 LAN TO DMZ:XP只能存取PUBLIC_WEB。 如果是新建的防火牆,每個人大概五分鐘可以設定完成,可惜的是大部份的防火牆都不是新建的而是接前手或是廠商的,那原本的設定規則一但累積下去,在沒有定期整理的情況下,一、兩百條是家常便飯。 我們這台是XP,但是可以存取PRIVATE_WEB,表示設定和安全規範已經產生了落差。 原本防火牆就有設定好這五條,你當然可以說,我用邏輯判斷第四條設定有問題,但是如果有一百多條呢?你這時候很難判斷,或是需要花費大量的時間,所以我們需要靠機器輔助, 就是他到底是哪一條允許才可以存取資源的 ,記住防火牆預設是正向表列,就是最後一條一定是隱藏的拒絕全部。 我們進LOG看到原來是ID5政策允許的,這時候在去判斷邏輯就方便多了。 雖然ID3已經設定XP不能存取PRIVATE_WEB,但因為防火牆政策是採取TOP-DOWN的判斷方式,先進先出,所以我們在ID5政策已經允許XP的HTTP連線的,你之後在拒絕永遠不可能符合到這條條件,這是防火牆設定順序錯誤,我們把ID3和ID5政策對調順序。 改完設定之後果然XP不能存取PRIVATE_WEB,理由是違反ID3政策。 結論: 如果防火牆政策少的時候可以透過肉眼邏輯判斷問題,但是一多的時候就很難判斷,因此從LOG來看說是哪一條允許或拒絕的才是比較正確並且節省時間的做法,而且防火牆也要定期去檢視政策,會不會已經有不合乎安全規範但還是設定在上面,比方說廠商要連近來看所以暫時開放,但使用完後卻沒有拿掉政策之類的。

Logs的保存

圖片
Log就是紀錄的意思,一般來說當我們防火牆建置好之後當然是可以正常運作,可是當有狀況的時候,比方說駭客入侵竊取資料,或是說誰跟惡意IP連線,這時候我們就必須要查過往的紀錄,但是這些紀錄會存在哪呢? 一般來說在設備的Log設定裡面預設會丟到記憶體裡,比較大台的機器可能還會內建硬碟存放資料,或是說廠商會提供另一個裝置,比方說紀錄報表伺服器,這可能是實體或是虛擬的,最近還有一種就是丟在廠商的雲端紀錄報表伺服器上。 由於記憶體空間不可能很大,然後關機之後記憶體就揮發了,Log就消失了,一般不建議使用,唯一的好處就是買來就可以了,因此還是建議往外丟,就算整台機器出了問題還是可以查詢紀錄。 我們知道Log是用純文字的方式純放,以上只是一段Log的紀錄,大概可以看出這個是一個流量的紀錄,從 192.168.4.155 到 45.32.102.139,NAT 成 111.243.49.41,那有沒有更快查詢的方式呢? 就算你的Syslog伺服器真的支援搜尋好了,用起來也是綁手綁腳,未經整理的log丟出來頂多只能查一筆資料,而且都是沒有經過整理的資訊,非常難用。 我們來看一下,一般廠商的紀錄報表伺服器做到哪些功能,他可以根據你限定的時間給你一個目前流量概況。 目前的連線數或傳輸量已來源IP排序。 目前的連線數或傳輸量已目標IP排序 你也可以設定時間或欄位條件來查連線紀錄。 最後定期產生報表寄到你的電子郵件裡。 結論: Logs紀錄保存上都是非常重要的,而且資安相關法規也有規範,你可以丟到免費的syslog伺服器存檔,但就是一筆一筆的文字檔,沒有經過整理非常不方便使用,頂多就是查一筆紀錄而已,廠商都有提供自己的商用的配套方案紀錄報表伺服器,就看公司怎麼選擇。