精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● FreeBSD>>网络安全>>防火墙>>[转载]:PF防火墙使用

主题:[转载]:PF防火墙使用
发信人: zenz.hu(乱了)
整理人: zhcharles(2002-01-30 15:36:56), 站内信件
★原文转载自openbsd版zenz.hu的《PF防火墙使用》★
PF防火墙确实和IPF的语法很相似,下面是我使用PF的一点经验。
1、编辑/etc/pf.conf文件,加入规则如下:
ExtIf="tun0"      #管理的网络界面
ServicePorts="{ 21, 22, 80, 443 }"        #开放的端口
BlockPorts="{ 13, 23, 79, 111, 113, 139, 143, 3050, 3306 }"  #封闭的端口

scrub in all    #先把非正常或者紊乱的包修正(对于使用Win客户的,但是会增加系统的负担,如能不用就不用)

block in log quick on $ExtIf inet proto { tcp, udp } from any to any port $BlockPorts      #封闭掉不希望开放的端口对应于IPv4的udp/tcp访问
block in log quick on $ExtIf inet proto tcp from any to any port = 53   #对于53端口保留udp访问(DNS需要)

pass in quick on $ExtIf inet proto tcp from any to any port $ServicePorts flags S/SA     #允许开放的端口tcp访问,并保持连接

pass out on $ExtIf proto tcp from any to any keep state    #从内部发起的访问全部通过,并保持连接

pass in on lo0 all
pass out on lo0 all    #localhost全部允许。

2。修改/etc/rc.conf文件,把
pf=NO
改为
pf=YES

3。创建一个新的pflog文件(很奇怪他不象IPF一样自动生成)
touch /var/log/pflog

重新启动后PF防火墙就生效了。

生成的pflog是tcpdump数据流格式的,必须用tcpdump来观看
tcpdump -n -ttt -r /var/log/pflog

如果希望不重新启动系统让PF工作,则
# ifconfig pflog0 up
# pfctl -R /etc/pf.conf -e


个人认为PF最大改进就是可以采用变量来简化规则的编写,同时支持用"{ }"来快速检验符合的项目。


[关闭][返回]