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
inet 127.0.0.1 netmask ff000000
rtls0: flags=1100843
inet 192.168.224.251 netmask ffffff00 broadcast 192.168.224.255
ether 0:a:eb:29:86:97
rtls1: flags=1100843
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 刷新内核