發表文章

無狀態和有狀態防火牆

圖片
目前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伺服器存檔,但就是一筆一筆的文字檔,沒有經過整理非常不方便使用,頂多就是查一筆紀錄而已,廠商都有提供自己的商用的配套方案紀錄報表伺服器,就看公司怎麼選擇。

switch 和 switch 之間的設定

圖片
如果說我們有一個環境,客戶有一台L3 Switch連接 1F、2F、3F。 1F全部都要vlan10,2F全部都要vlan20,3F全部都要vlan30。 客戶表示我第一port設定access port vlan 10,第二port設定access port vlan 20,第三port設定access port vlan 30,這樣我下面怎麼串接預設設定的switch都會通,也可以達到我的需求。 CoreSwitch的設定如下: interface GigabitEthernet1/0/1  switchport access vlan 10  switchport mode access interface GigabitEthernet1/0/2  switchport access vlan 20  switchport mode access interface GigabitEthernet1/0/3  switchport access vlan 30  switchport mode access 我們只觀察一樓,其他樓依此類推,我們電腦接到一樓的edge端switch確實可以連到gateway,表示這個架構OK。 Core上面出現VLAN mismatch的訊息,但好像還是會通。 我們看一下port的狀態是access vlan10。 我們知道switch和switch之間溝通cisco是靠CDP,我們看了natvie vlan是vlan1顯示mismatch。 因此推論出access port access vlan等於native vlan。 我們到一樓跟Core連的switch上看也是VLAN mismatch,但好像還是會通。 我們看一下port的狀態,雖然有DTP但是dymanic auto,而且對方是access寫死,所以最終溝通結果是 access vlan10。 我們知道switch和switch之間溝通cisco是靠CDP,我們看了natvie vlan是vlan10顯示mismatch。 因此推論access port access vlan等於native vlan...

中小企業防火牆常見的對外服務

圖片
這是我的架構圖,客戶向ISP業者申請四個實體IP,網段為 222.222.222.221 ~ 222.222.222.224,內部伺服器網段為192.168.1.0/24。 介面IP和預設閘道設定好以後,我們會建立一條政策讓所有主機可以上網,通常就是使用介面IP來做PAT即可。 郵件伺服器使用222.222.222.222作NAT的IP。 驗證192.168.1.100其他的伺服器要出去都轉成222.222.222.221實體介面IP。 只有郵件伺服器轉成222.222.222.222實體IP出去。 郵件伺服器一定要使用222.222.222.222帶自己的IP做NAT出去,為什麼呢? 通常對方伺郵件服器收到這封信之後,為了要確認這封信確實是由你們公司寄出,所以會看寄出的IP有無帶DNS反解,舉例來說他收到來自 59.124.61.242這個IP,會反查這個IP屬於哪個公司,最後查出是synology.com,又這個帳號是support@synology.com寄出,這樣會比較相信信件是由公司寄出的,不然可能會丟到垃圾郵件中。 接下來我們要設定外對內的服務,所以是WAN to LAN,實體IP對應到虛擬IP。 我們把 222.222.222.224都對應到內部DNS IP, 222.222.222.223都對應到內部MAIL IP,因為只剩下一個222.222.222.222 IP可以用,所以我們必須透過PORT轉換,比方說WEB1的80 port和 222.222.222.222 的80 port 對應,WEB2的80 port和222.222.222.222的81 port對應,常用在監視器上,比方說一個實體IP對應多個網頁監視鏡頭。 111.111.111.111是郵件伺服器維護廠商的公司IP,有時候需要從外面連遠端桌面,所以我們只開放111.111.111.111可以連入。 如果其他IP來連的話就會被防火牆阻擋。 接下來要測試郵件伺服器,郵件伺服器需要外面寄信進來或外部認證寄信(25 port),外部的人可以透過outlook收信(110 port),或是使用郵件webmail(80),測試方式可以直接telnet 他的25 port。 只要有看到東西就表示連線有建...

vlan設定常見犯的錯誤

圖片
這裡有一台交換器目前除了vlan1以外沒有其他手動設定的vlan。 Gi1/0/24跑trunk port,允許所有vlan,但因為目前vlan資料庫裡面只有vlan1,所以最終結果只允許vlan1通過此trunk。 我們把Gi1/0/1塞到vlan98,因為vlan98沒有在vlan資料庫裡,所以系統很貼心的幫我們自動新增vlan98。 vlan資料庫確實自動新增vlan98。 Gi1/0/24跑trunk port,允許所有vlan,但因為目前vlan資料庫裡面只有vlan1和vlan98,所以最終結果只允許vlan1和vlan98通過此trunk。 新增interface vlan 99 發現這個虛擬的介面居然是down down,肯定不能用啊。 我們查詢vlan99,發現系統沒有自動新增vlan99。 最終結果只允許vlan1和vlan98通過此trunk,沒有改變狀態。 不得已只好手動新增vlan99在資料庫裡。 虛擬的介面vlan99 up up起來了。 最終結果只允許vlan1、vlan98和vlan99通過此trunk。 結論: 這兩個和vlan相關的設定還蠻相似的,所以常常有人會混淆或是搞不清楚vlan什麼時候會自動新增,什麼時候又不會,其實設定完後用show vlan檢查vlan資料庫裡確認有無這個vlan才是最保險的,至少vlan資料庫一定要有這個vlan id才會有作用,因此設定的正確步驟一定是先把這個交換器上相關vlan先手動建立出來,後續再去做vlan相關的設定才不會有問題。