上面你刚进行的测试显示PF已经按我们希望的那样正常运行了, 在其他环境中你可能希望检查一下PF的实际运行情况以及活动状态。
除了启用和停止PF以及导入规则集, pfctl还可以显示很多类型的信息。 要了解这些信息, 你可以使用pfctl -s再加上你要显示的信息类型。
下面的例子来自我写这本书时我家里的网关:
代码: 全选
$ sudo pfctl -s info
Status: Enabled for 17 days 00:24:58 Debug: Urgent
Interface Stats for ep0 IPv4 IPv6
Bytes In 9257508558 0
Bytes Out 551145119 352
Packets In
Passed 7004355 0
Blocked 18975 0
Packets Out
Passed 5222502 3
Blocked 65 2
State Table Total Rate
current entries 15
searches 19620603 13.3/s
inserts 173104 0.1/s
removals 173089 0.1/s
Counters
match 196723 0.1/s
bad-offset 0 0.0/s
fragment 22 0.0/s
short 0 0.0/s
normalize 0 0.0/s
memory 0 0.0/s
bad-timestamp 0 0.0/s
congestion 0 0.0/s
ip-option 28 0.0/s
proto-cksum 325 0.0/s
state-mismatch 983 0.0/s
state-insert 0 0.0/s
state-limit 0 0.0/s
src-limit 26 0.0/s
synproxy 0 0.0/s
这里的信息差不多就是你在仅应用IPV4的小型网络的网关上要了解的统计信息。请参说明4。
此时, 你也许想花费一些时间了解一下pfctl和你的配置。就像我们前面暗示的那样, pfctl是一个非常强大的工具,它提供了很多选项。 例如,
代码: 全选
pfctl -s all
代码: 全选
man 8 pfctl
根据上一个规则, 你的独立主机应该可以很好地与其它连接到Internet上的主机通讯。这个很简单的规则集是你控制自己网络通信的良好开端。这本书的最重要的议题就是告诉你如何控制你的网络。 这本书的余下部分从各个方面讨论如何根据你自己的需要通过扩展你的规则集来地严格控制你网络的通讯。
不过,这里还有一些遗漏,你可能想添加一些规则,即使没有其它原因,这里至少要允许某些ICMP和UDP通讯通过—为了自己的网络错误排查。
根据前面的情况, 你应该开始考虑可能影响你安全的那些网络服务, 例如ftp。 即使有最新最安全的选项可用, 也不如不开启这些服务安全, 你不得不处理这些类型的服务。尽管在一台个人独立主机上,你现在并非一定要这样做, 可是一旦你你需要为多台计算机和很多人的网络设置网关时,考虑安全问题就变得尤为重要了。
使用包过滤来有效地处理这些有安全要求的服务是本书从头至尾的中心思想。
说明4
别担心在IPv6那栏里有三个packets通过和两个被阻止。在OpenBSD里内置了IPv6的支持, 而在配置网络接口时, 为了本地默认的链接地址,TCP/IP堆栈发送IPv6 neighbor solicitation requests。在一个普通的IPv4-only的配置里, 实际上仅有开始的少量数据包通过, 而当我们的PF规则集全部加载后, 剩下的两个数据包则被我们默认的block all规则阻挡了。