FreeBSD
近段時間越來越多朋友利用FreeBSD強大的網絡功能建立自己的服務器,在這過程中可能遇到了一些麻煩.為了大家少走彎路,這裡力求簡單說明一些常用服務的設置.
基本網絡設置:
defaultrouter="192.168.0.1"
gateway_enable="YES"
hostname="xxxhost.xxxdomain.com"
ifconfig_rl0="inet 192.168.0.1 netmask 255.255.255.0"
注意: rl0為內網卡,你需要按你實際的網卡設備去寫.
一 如何在FreeBSD設置ADSL上網
我曾經發表過一篇這樣的文章,在這裡我不在羅嗦了. 可以參考下面:
如何在FreeBSD設置ADSL上網(在FreeBSD 4.4下測試通過)
網上有部分關於FreeBSD設置ADSL上網的文章有些錯誤,這裡公布蔥頭的設置文件。
1。編輯/etc/ppp/ppp.conf 文件
default:
set log Phase tun command
enable dns
adsl:
set device PPPoE: 設備名 ;即網卡的設備名
set speed sync
set mru 1492
set mtu 1492
set dial
set login
add default HISADDR
set authname 帳戶名
set authkey 密碼
Papchap:
set authname 帳戶名
set authkey 密碼
2。編輯/boot/defaults/loader.conf
ng_pppoe_load="YES"
虛擬撥號: ppp -background adsl
測試: ifconfig -a 看到tun0偽設備捆綁了ISP分配的IP地址即成功
如果想開機就自動撥號,那就要修改/etc/rc.conf,增加一下字段:
ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="adsl"
二 設置緩沖型DNS
1. 編輯/etc/resolv.conf
domain xxxxx.com
nameserver 127.0.0.1
nameserver xxx.xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx.xxx
(後面兩個一般在撥號時自動生成, 那是ISP的域名解析服務器地址. 127.0.0.1必須放在他們之前)
2. 創建localhost.rev文件
chmod 744 /etc/namedb/make-localhost (將腳本改為可執行)
cd /etc/namedb
./make-localhost
3.編輯/etc/namedb/named.conf
options {
directory "/etc/namedb";
forward only;
forwarders {
xxx.xxx.xxx.xxx; xxx.xxx.xxx.xxx;
};
};
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};
注: 上面兩個xxx.xxx.xxx.xxx就是/etc/resolv.conf 裡面的兩個nameserver地址
4.修改/etc/rc.conf
加入 named_enable="YES"
三 設置透明代理
這裡假設你已經設置好squid並已投入使用,如果大家對squid不熟悉的話,我稍後會貼出squid的設置.
一般網上都是用ipfw做防火牆的,但我覺得ipfilter較ipfw方便而且好用,所以這裡采用ipfilter.
1.編輯/boot/defaults/loader.conf
在Networking modules段加入:
ipl_load="YES"
2.創建/etc/ipfilter.rules (ipfilter規則),這裡僅僅給出一個例子,要根據自己的實際需求設定規則.
block in log on 外網卡名 from any to any
block out log on 外網卡名 from any to any
pass out log on 外網卡名 proto icmp all keep state
pass out log on 外網卡名 proto tcp/udp from any to any keep state
pass in on 外網卡名 proto tcp from any to any port = ftp-data keep state
pass in on 外網卡名 proto tcp from any port = ftp-data to any port > 1023 keep state
pass in on 內網卡名 all
pass out on 內網卡名 all
block return-rst in log on 外網卡名 proto tcp from any to any flags S/SA
block return-icmp(net-unr) in log on 外網卡名 proto udp from any to any
3.創建/etc/ipnat.rules (NAT規則)
rdr 內網卡名 0.0.0.0/0 port 80 -> 192.168.0.1 port 3128 tcp/udp
注: 192.168.0.1 為內網卡ip地址, 並假設你的squid的端口為3128,不是的話改成實際的就可以了.
4.編輯 /etc/rc.conf , 加入:
ipfilter_enable="YES"
ipfilter_rules="/etc/ipfilter.rules"
ipnat_enable="YES"
ipnat_rules="/etc/ipnat.rules"
到這裡為止,整個設置透明代理設置基本完成, 確保你的squid服務正常並開機自動啟動. 然後重新啟動服務器.將客戶端電腦的網關和DNS服務器地址都改為內網卡ip地址(我那裡是192.168.0.1) 就可以了.