再者,老師個人電腦很多都是notebook 都申請無線上網,因為是透過AP的鎖MAC功能來管理IP以及AP的連線,而每台AP頂多能夠所64個MAC Address 眼看即將不夠用了...想到pf 的table 功能(可用一個檔案來管理一堆IP),可以達到我要的效果,所以,...把pf 架起來先....
1.安裝FreeBSD
想辦法找到了一台 PII-600的舊server,沒想到裡面還有個4G的SCSI硬碟在,加上512MB的SD-RAM(其實硬碟不用SCSI,IDE舊的就OK了),再加上兩片intel的網卡(網卡倒是要好一點,比較不會吃主機的資源)
2.修改kernel
#cd /sys/i386/conf/GENERIC
加入
device pf
device pflog
device pfsync
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_CDNR
options ALTQ_PRIQ
options ALTQ_DEBUG
options HZ=1000 然後
#make depend
#cd ../compile/.....
#make
#make install -->重新開機
3.修改 rc.conf
在rc.conf中加入,
inetd_enable="YES"
pf_enable="YES"
pf_rules="/etc/pf.conf"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""
gateway_enable="YES" ---- 有用NAT這一條要加上喔
4.修改 sysctl.conf
在sysctl.conf中加入
net.inet.ip.forwarding=1
5.修改inetd.conf
將最後一行的 #(mark)拿掉改成這樣
ftp-proxy stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy -n -m 55000 -M 57000 -u nobody
6.編寫pf.conf 規則
pf規則的編寫,要注意順序,因pf是last match,..所以順序錯了,就連不上網了...
pf.conf順序
Macro
Tables
Options
Traffic Normalization
Queueing
Translation
Packet Filtering
pf.conf的大致內容
#macro
#options
ext_if="fxp0"
int_if="xl0"
jam2 = "192.168.2.0/24"
ext_ip = "163.20.39.57"
..........
#Translation
nat on $ext_if from $jam2 to any -> $ext_ip
rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021#packet filtering
要讓client 的ftp可以正常使用,..要加入一條
pass in on $ext_if inet proto tcp from any to $ext_if port > 55000 keep state
pass in on $ext_if inet proto tcp from any to $ext_if port 20 flags S/SA modulate state
................
#7.安裝DHCP
下載dhcpd-3.0lp2.tar.gz...# tar zxvf dhcpd-3.0lp2.tar.gz
# cd dhcpd-3.0lp2
# configure
# make
# make install
# cd /var/db/
# touch dhcpd.leases
# cd /etc
編輯 dhcpd.conf
# cd /usr/local/etc/rc.d
# 新增 dhcpd.sh 開機啟動
沒有留言:
張貼留言