一、介紹
Solaris IP Filter主要提供三種功能:過濾、路由、地址池。二、啟用服務
首先是要啟用IP Filter服務進程,可用如下命令查看是否安裝了IP Filter:
# pkginfo | grep 'IP Filter'
system SUNWipfr IP Filter utilities, (Root)
system SUNWipfu IP Filter utilities, (Usr)
這裡顯示已安裝了所必需的兩個軟件包:SUNWipfr和SUNWipfu。
如果沒有顯示安裝,請從Solaris 10的安裝介質中安裝。用如下命令,先查看一下所必需的兩個服務有沒有啟用:
# svcs /network/pfil
STATE STIME FMRI
online 19:09:25 svc:/network/pfil:default
# svcs /network/ipfilter
STATE STIME FMRI
disabled 19:09:30 svc:/network/ipfilter:default
這裡顯示pfil服務已開啟,但ipfilter服務未啟用,稍後再啟用。使用IP Filter功能,就要先指定使用此功能的網絡接口,這正是pfil進程的作用,它的配置文件是pfil.ap,用如下命令查看:
# cat /etc/ipf/pfil.ap
#iprb -1 0 pfil
#elxl -1 0 pfil
#e1000g -1 0 pfil
#bge -1 0 pfil
#nf -1 0 pfil
#fa -1 0 pfil
#ci -1 0 pfil
#el -1 0 pfil
#ipdptp -1 0 pfil
#lane -1 0 pfil
#dnet -1 0 pfil
#pcelx -1 0 pfil
#spwr -1 0 pfil
這裡顯示的是網絡設備類型列表,我們需要把相應的網絡設備類型加入進去!用如下命令可查看當前系統的網絡設備類型:
# ifconfig -a
lo0: flags=2001000849
mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
rtls0: flags=1100843 mtu 1500 index 2
inet 192.168.224.251 netmask ffffff00 broadcast 192.168.224.255
ether 0:a:eb:29:86:97
rtls1: flags=1100843 mtu 1500 index 3
inet 192.168.1.1 netmask ffffff00 broadcast 192.168.1.255
ether 0:14:78:20:8a:c6
這裡顯示系統的網卡類型是rtls,用兩個網卡:rtls0和rtls1.所以我們需要對pfil做如下修改:
# vi /etc/ipf/pfil.ap
rtls -1 0 pfil
#iprb -1 0 pfil
#elxl -1 0 pfil
#e1000g -1 0 pfil
#bge -1 0 pfil
#nf -1 0 pfil
這裡顯示是加入了rtls網絡設備類型,如果列表中已有系統的網絡設備類型,只要去掉相應行前面的#符號就可以了。用如下命令可使新的pfil.ap配置生效(因為稍後要重啟,就不需要執行此命令了!):
# svcadm restart network/pfil下面將啟動IP Filter必需的兩個服務進程,並確認已在線運行:
# svcadm enable network/pfil
# svcs network/pfil
STATE STIME FMRI
online 20:31:22 svc:/network/pfil:default
# svcadm enable network/ipfilter
# svcs network/ipfilter
STATE STIME FMRI
online 20:31:22 svc:/network/ipfilter:default
這裡顯示,兩個服務正在運行。建議重啟:
# reboot如果不想重啟,還要用如下命令重啟網卡:
# ifconfig rtls0 unplumb
# ifconfig rtls0 plumb 192.168.224.251 netmask 255.255.255.0 up
# ifconfig rtls1 unplumb
# ifconfig rtls1 plumb 192.168.1.1 netmask 255.255.255.0 up# ifconfig hme0 inet6 unplumb IPv6使用
# ifconfig hme0 inet6 plumb fec3:f840::1/96 up IPv6使用
三、過濾功能
下面討論一下過濾規則的設置,我們先默認允許通過所有數據包:
設置如下:
# Allow all pass!
pass in all
pass out all用下面命令來應用新的過濾規則:
# ipf -y
到這裡,就完成了簡單的過濾配置,可以緊接著設置路由功能!用下面命令來臨時解除過濾功能:
ipf -Fa 解除所有過濾規則
ipf -Fi 解除所有進入包的過濾規則
ipf -Fo 解除所有出去包的過濾規則下面詳細討論一些常用的過濾規則和適用場合。
四、路由功能
下面討論的路由功能是針對雙網卡的,先要修改路由配置文件:
設置如下:
map rtls0 192.168.1.0/24 -> 0/32
這裡顯示:從內網192.168.1.0/24來的數據包可以通過外網接口rtls0的默認地址向外轉發。用下面命令來應用新的路由規則:
# routeadm
Configuration Current Current
Option Configuration System State
---------------------------------------------------------------
IPv4 forwarding disabled disabled
IPv4 routing default (disabled) disabled
IPv6 forwarding disabled disabled
IPv6 routing disabled disabled用如下命令啟動路由轉發功能,這裡只設置了ipv4:
routeadm -e ipv4_forwarding建設重啟:
# reboot如果不想重啟,還要如下命令刷新內核:
# routeadm -u到這裡,這完成了簡單的NAT配置,可以測試一下!下面命令用來顯示當前的路由規則:
# ipnat -l用如下命令臨時解除路由規則:
# ipnat -FC下面詳細討論一些常用的路由規則和適用場合。五、地址池功能六、停止服務
用如下命令停IP Filter服務:
# svcadm disable network/ipfilter 停止IP Filter
# svcadm disable network/pfil 系統默認是保留pfil,可以不執行此命令# routeadm -d ipv4-forwarding 停止路由轉發功能
# routeadm -u 刷新內核