歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Solaris 10 IP Filter技術詳解

Solaris 10 IP Filter技術詳解   Solaris 10集成了許許多多的開源軟件,IP Filter就是其中之一,該軟件包直接替換了原來SUN screen 防火牆軟件包。IP Filter軟件包其功能也完全替代sun screen,功能包括狀態性包過濾和網絡地址轉換(NAT),同樣提供非狀態包過濾以及創建和管理地址池的能力。   包過濾是防止基於網絡攻擊最直接有效的保護方法,Solaris IP Filter可以根據不同需求,可通過IP地址、端口、協議、網卡對網絡包加載過濾功能。Solaris IP Filter也可以通過私有的源IP地址和目標IP地址 ,或者一個IP地址范圍,再或者一個IP池來進行網絡包的過濾。就是說其定制的策略是非常靈活的。   Solaris IP Filter配置文件介紹 Solaris IP Filter軟件包提供防火牆和網絡地址轉換(NAT)兩種功能,而起配置信息都可以使用相應的配置文件來提供。Solaris IP Filter配置文件都放在/etc/ipf目錄下,包括ipf.conf,ipf.nat以及ippool.conf等文件。這些文件在系統boot過程中被自動讀取,只要這些文件存放在/etc/ipf目錄下。   Solaris IP Filter包過濾特征介紹 通過使用包過濾規則集可以十分輕松設置防火牆功能,命令ipf是用來配合這些規則集進行功能設置。這些規則集既可以使用命令行進行設置,也可以使用編寫配置文件的方法來進行設置。/etc/ipf/ipf.conf配置文件裡面放置了所有包過濾規則集,在系統boot過程中被ipfilter服務所讀取。如果ipf.conf文件不放在/etc/ipf/目錄下,這些規則集就不會被讀取,但是可以在啟動完成後,使用命令來動態讀取。 Solaris IP Filter同時維護著兩份規則集,一個為激活使用的(在kernel中),一個為非激活的規則集。IP Filter在進行包過濾的時候是從規則集的開始一直到最後一行進行處理,並設置著一個標志,根據這個標志,IP Filter決定是否轉發或者攔截網絡包。 以上從頭到尾的遍歷處理方式有兩個例外情況,一個是規則中含有quick關鍵字,另外一個就是含有group關鍵字。如果規則中含有quick關鍵字,規則合規處理就為處理完所在規則行後,將不再往下讀取其他規則了。如果規則中含有group關鍵字,那麼只有帶有group標志的網絡包才被處理。   Solaris IP Filter語法通解 在/etc/ipf/ipf.conf文件中每一行的語法都如以下所示來描述一個規則: action [in|out] option keyword, keyword... 1.       action  每個規則必須使用的開始部分 這些action為其後規則被匹配時所采用的動作,具體如下: block                  阻止網絡包 pass                     允許網絡報文通過 log                        記錄所有被通過和阻止的網絡包,使用ipmon命令查看 count                 統計計算網絡報文數,使用ipfstat查看統計信息 skip number      過濾處理時跳過規則的個數 auth                     通過用戶程序驗證網絡報信息,需要進行包授權請求 preauth             過濾器查看預授權表請求,決定網絡包如何處理 2.       action後面必須為in或者out in為進來的網絡包,out是出去的網絡包 3.       第三部分為規則的一些選項 如果以下選項都被使用的話,必須按順序寫入規則集 log             最後一個規則被匹配時,網絡包將被記錄 quick                    如果網絡包被匹配時的規則行包含quick選項,將按該規則處理,後面的規則不在被讀取 on interface-name            只有進出指定網卡的網絡包才能適用該規則 dup-to interface-name      在指定網卡上,拷貝包然後發送拷貝的包到指定的IP上 to interface-name              將網絡包在改網卡上順序移動 4.       第四部分為網絡包的匹配原則 tos              根據服務類型進行包過濾,為一個十六進制或者十進制的整型數來表達 ttl                根據包的存活值time-to-live進行匹配,該值存放在數據包頭上 proto        根據指定的協議來匹配,可以使用任何在/etc/protocols文件中命名的協 議,比如tcp/udp用來匹配TCP或者UDP數據包        from/to/all/any           匹配以下任何一個或者全部數據包:源IP地址、目標IP地址 以及端口號 with             匹配與指定屬性相關聯的數據包,如果插入not或者no,是為了只                      有選項沒有表達情況才匹配 flags            用於TCP數據包,基於TCP 標志位被設置的情況 icmp-type  根據ICMP類型進行過濾 keep keep-options      檢測被保留的數據包的相關信息,keep-optons 包含在state選項                                         中才有效 head number               為過濾規則創建一個新的組,用number數字來標注 group number             增加一規則用組數number來替代缺省的組 配置文件的編寫,以及規則示例後面章節將加以詳細介紹。 Solaris IP Filter網絡地址轉換NAT特征介紹 網絡地址轉換NAT是一組映射規則的設置,它擔負著將源IP地址和目標IP地址映射成其他的IP地址或者INTERNET網絡地址。這些規則修改數據包裡的源IP地址和目標IP地址,使得這些數據包能夠發送到正確的地址上去。NAT也可以將數據包從一個端口發送到另一個端口上。   可以使用ipnat命令來維護制定NAT的列表,也可以使用配置文件來維護和制定此列表,這些列表都可以寫在ipnat.conf文件裡面。跟IP Filter包過濾配置文件一樣,如果需要在boot的時候讀取調用的話,就將ipnat.conf文件放置在/etc/ipf目錄下,如果不需要這樣,就可以放在任意指定的目錄中,使用命令讀取。 配置NAT列表 按以下的語法進行編制: command interface-name parameters 1.       每個規則必須以以下關鍵字開始 map            一個IP地址或者網絡映射到另一個IP地址或者網絡 rdr                從一個IP地址和端口的配對重定向到另一個IP地址和端口配對 bimap        在外部IP地址和內部IP地址之間建立一個雙向的NAT map-block 建立靜態IP地址翻譯 2.       第二部就是網卡的名字 3.       第三部是以下一些參數 ipmask       指明網絡掩碼 dstipmask 指明ipmask翻譯到網絡的地址 mapport     指定TCP,udp,或者TCP/UDP端口,或者一個端口號范圍 Solaris IP Filter IP地址池特征介紹 IP地址池創建了一個參考標准,用來命名一個地址/端口配對組,這樣帶來的好處就是大大減小了用規則來匹配IP的時間,提高了處理效率。   IP地址池配置規則放置在ippool.conf文件中,和前面的FILTER和NAT一樣,如果需要在引導系統就load進kernel的話,就將該文件放在/etc/ipf/目錄下。 配置IP地址池 配置IP地址池可以使用以下語法: table role = role-name type = storage-format number = reference-number table         為多個地址定義了一個參考表 role           指定這個池在Solaris IP Filter中的角色 type            指定池的存儲格式 number    指定一個參考數被過濾過濾規則使用 使用pfil STREAMS模塊激活IP Filter 激活Solaris IP Filter必須使用到pfil STREAMS模塊,Solaris IP Filter不提供自動機制來為每個接口(比如網卡)調用模塊,其替代方法就是pfil STRAMS模塊使用SMF svc:/network/pfil機制來管理。為網卡激活網絡包過濾功能,需要為網卡配置pfil.ap配置文件並激活svc:/network/pfil,這樣pfil STRAMS模塊就能為每個網卡服務了。enable 該模塊,必須用以下兩種方法來實現,一個是reboot系統,另外一個就是將所涉及的網卡 unplumb,在plumb起來,手動配置網口。   Solaris IP Filter配置指南 1.         Enable IP Filter Solaris IP Filter軟件在solaris 10版本及以後版本已經集成,缺省情況下是不啟用這個服務的,以下為打開該服務的步驟: a.  使用IP Filter角色用戶登陸系統或者直接使用root用戶 b.  創建Filter規則配置文件/etc/ipf/ipf.conf c.  Enable系統的Filter功能svcadm enable network/ipfilter 以下步驟是完成指定網卡設置的Filter功能 a.    創建關於網卡的文件pfil.ap 這個文件包含了需要包過濾的網卡,只要寫入該網卡的名字即可 例如:bge -1 0 pfil b.    重啟進程以讀取該文件內容 scvadm restart network/pfil c.    激活對網卡包過濾的規則策略的另種方法 l  # sync;sync;sync; init 6系統 l  # ifconfig bge0 unplumb; # ifconfig bge0 plumb 192.168.0.199/24 up 手工停啟用網卡,配置網絡IP等 2.         Re-Enable IP filter 修改了配置文件後必須是的進程重新讀取文件內容,才能使得新修訂的包過濾規則生效: #ipf –D停止Filter #ipf –E 啟用Filter #ipf –f /etc/ipf/ipf.conf重新讀取ipf.conf文件內容 Solaris IP Filter配置文件內容示例 以下內容為配置內容詳解,主要為制定一些包過濾規則策略提供參考: 1.       缺省情況下記錄所有的進出網卡nxge0的數據包 pass in log on nxge0 all pass out log on nxge0 all   2.       阻止,但是不記錄進入其他保留地址的數據包 block in quick on nxgel0 from 10.0.0.0/8 to any block in quick on nxgel0 from 172.16.0.0/12 to any 其中quick選項,在讀取配置文件時,只要數據包匹配了該行規則,就不再讀取後續的規則行 3.       阻止並記錄不可信任內部IP的所有數據包,192.168.100.100/32為運行IP filter的機器 block in log quick from 192.168.0.15 to 192.168.100.100/32 4.       阻止並記錄X11(port 600)協議所有數據包,以及RPC和portmapper(port 111),192.168.100.100/32為運行IP filter的機器 block in log quick on nxge0 proto tcp from any to 192.168.100.100/32 port = 6000 keep state block in log quick on nxge0 proto tcp/udp from any to192.168.100.100/32 port = 111 keep state   5.       靈活運用quick示例 pass in quick on nxgel0 from 192.168.0.101/32 to any pass out quick on nxgel0 from 192.168.0.101/32 to any pass in quick on nxgel0 from 192.168.0.200/32 to any pass out quick on nxgel0 from 192.168.0.200/32 to any block in quick on nxgel0 from 192.168.0.0/24 to any block out quick on nxgel0 from 192.168.0.0/24 to any 該例子阻止了192.168.0.0網段所有進出的數據包,但是該網段192.168.0.101和192.168.0.200兩台主機所有的數據包還是能夠正常發送和接受的。這是quick靈活運用的例子,quick表示在規則被匹配後,後續的規則不再讀取,這樣就能屏蔽掉後面的包含該規則的其他行。  
Copyright © Linux教程網 All Rights Reserved