FreeBSD
5.3 Release PF 初體驗
Description :
FreeBSD 5.3 R 終於出來了,盼了好久終於
Release ,今天利用一些時間小小測試一下 Packet Filter, PF 果真不失所望,效能為現階段 FreeBSD 裡三款
Firewall 中最強之首選,以下是我個人的安裝過程,我將它記錄下來也給大家參考參考。
Environment :
硬體:i386 PC Intel P3 500
記憶體網卡:256M RAM + 二片 Intel 網卡
作業系統:FreeBSD 5.3 Release
Setp 1.
編譯核心 Compiler Kernel :
#cd
/usr/src/sys/i386/conf
#vi
GENERIC # 將 PF 防火牆 及
CBQ 頻寬控制 放入 FreeBSD 核心
device
pf
device
pflog
device
pfsync
options
ALTQ
options
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
# 顯示現階段所有統計的資料