ip="你的IP地址" ipfw -f flush #Forces your current firewall to be flushed! ipfw add pass log icmp from $ip to any icmp 8 ipfw add pass log icmp from not $ip to $ip icmp 0
這上面的示例能比較好的阻止一些端口掃描器的掃描,因為多數端口一般開始使用 ping來查看是否主機在線,但上面我們的traceroute就不能工作了,traceroute 先發送UDP信息包并等待icmp包返回,因此下面的規則是阻止入站的icmp type 8, 但允許所需要的icmp類型入站來進行traceroute的tracing(追蹤):
參照下面的列表: 0 echo-reply ping 3 destination-unreachable Any TCP/UDP traffic. (目標主機不可達) 5 redirect routing if not running routing daemon (如沒有有運行routing 守護程序重定向routing) 8 echo-request ping 11 time-exceeded traceroute (traceroute超時) 當然icmp還有其他類型,請參看Request for Comments: 792
1, ipfw add pass log udp from $ip to any 2, ipfw add pass log icmp from $ip to any icmp 8 3, ipfw add pass log icmp from not $ip to any icmp 0 4, ipfw add pass log icmp from not $ip to any icmp 11 5, ipfw add pass log icmp from not $ip to any icmp 3
上面的規則4是接受icmp type 11但拒絕你發送,規則5是接受icmp type 3,但 拒絕你發送icmp type 3的信息。