免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1324 | 回复: 0
打印 上一主题 下一主题

PF防火墙实例 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-13 15:54 |只看该作者 |倒序浏览
# macros
# macros 可想像成變數,方便套用
# int_if 對內的網卡,ext_if 對外網卡,請視需要修正
int_if = "fxp0"
ext_if = "rl0"
# 我的主機所開放的服務
my_services = "{ 22,25,53,80,110,443 }"
# 針對 Echo Request 即 icmp type 8 如 ping 做出回應
icmp_types = "echoreq"
# priv_nets 一些特殊的 ip,禁止由外 -> 內及內 -> 外,因為這不正常
priv_nets = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
# options
set block-policy return
set loginterface $ext_if
# scrub 重新整理
scrub in all
# nat -> 將內部 ip 轉到 ext_if 上
nat on $ext_if from $int_if:network to any -> ($ext_if)
# rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021
# filter rules
block all
# 對 lo0 pass all
pass quick on lo0 all
# 對不正常的 ip 請求一律 drop 掉
block drop in quick on $ext_if from $priv_nets to any
block drop out quick on $ext_if from any to $priv_nets
# 開放我的服務,由於有有用 dns 故要設 udp,如你沒有 udp 的服務,可拿掉
pass in on $ext_if inet proto { tcp, udp } from any to ($ext_if) port $my_services flags S/SA keep state
# 針對 icmp type 8 予以回應
pass in inet proto icmp all icmp-type $icmp_types keep state
# 將內部 -> 外全部開放
pass in on $int_if from $int_if:network to any keep state
pass out on $int_if from any to $int_if:network keep state
pass out on $ext_if proto tcp all modulate state flags S/SA
pass out on $ext_if proto { udp, icmp } all keep state
這樣一個實用的 firewall 就完成了..
另外 OpenBSD 因為內含 altq 所以可做到更多的功能,在 FreeBSD 中亦可做到,不過需要 patch kernel source,


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/22713/showart_214943.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP