红联Linux门户
Linux帮助

FreeBSD Release PF 使用体验

发布时间:2014-03-15 21:43:29来源:红联作者:tioced
来源:FreeBSD爱好者

作业系统:FreeBSD Release
Setp 1.
编译核心 Compiler Kernel :
#cd /usr/src/sys/i386/conf
#vi GENERIC # 将 PF 防火墙 及 CBQ 频宽控制 放入 FreeBSD 核心
device pfdevice pflogdevice pfsyncoptions ALTQoptions ALTQ_CBQ
#config GENERIC
#cd ../compile/GENERIC
#make depend all install
Setp 2.
设定配置 Configuration:
#vi /etc/rc.conf # 设定开机?动档
defaultrouter="88.88.88.254"hostname="pf.ntut.idv.tw"ifconfig_fxp0="inet 88.88.88.3 netmask 255.255.255.0"ifconfig_fxp1="inet 10.10.10.254 netmask 255.255.255.0"inetd_enable="YES"
pf_enable="YES"pflog_enable="YES"
#vi /etc/sysctl.conf # 开? NAT 的 IP Forwarding 环境
net.inet.ip.forwarding=1
#vi /etc/inetd.conf # 打开 ftp 的替代 port 如此 NAT 内部才能对外使用 ftp 抓东西
ftp-proxy stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy
#vi /etc/pf.conf # 设定防火墙规则,频宽控制upload 跟 download 一定要在不同 interface
# Macros 定义网路介面ext_if="fxp0" int_if="fxp1"
# ALTQ 定义频宽控制的进出
# Outgoing bandwidth limit
altq on $ext_if cbq bandwidth 512Kb queue { std_out }
queue std_out bandwidth 256Kb cbq (default)
# Incoming bandwidth limit
altq on $int_if cbq bandwidth 2Mb queue { std_in }
queue std_in bandwidth 768Kb cbq (default borrow)
# NAT 定义封包转换
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 定义防火墙规则
pass in all pass out all
# Bandwidth Control
pass out on $ext_if proto tcp from any to any queue std_out
pass in on $int_if proto tcp from any to any queue std_in
Setp 3.
操作控制 Operation & Control:
#pfctl -f /etc/pf.conf # 重新载入pf.conf 设定档
#pfctl -nf /etc/pf.conf # 确认语法有无符合,但不载入
#pfctl -Nf /etc/pf.conf # 只载入 NAT 的设定档
#pfctl -Rf /etc/pf.conf # 只载入防火墙的过滤设定档
#pfctl -sn # 显示现阶段 NAT 的规则
#pfctl -sr # 显示现阶段过滤的规则
#pfctl -ss # 显示现阶段封包运作状态
#pfctl -si # 显示现阶段过滤封包的统计资料
#pfctl -sa # 显示现阶段所有统计的资料
文章评论

共有 0 条评论