歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

FreeBSD 做網關


初期目的:以UNIX裡的FREEBSD系統做主機,實現網關功能,提供內網機器上網.
預期目的:同時實現防火牆FIREWALL的作用.
前序:我所知的也是目前用的UNIX下實現這個功能的有三種,1,IPFW,2,IPFILTER,3,安裝squid等第三方軟件.我選擇了IPFILTER,簡稱IPF方法.
注意:本問是對靜態IP的配置,對於PPP/ADSL撥號不適用.但差不多,撥號需要額外設置PPP
說明:本文中#代表系統提示符,## 解釋說明 ###解釋說明轉行。
開始:
1、使用雙網卡。一塊連接外,一塊連接內網.連接外網的網卡標識rl1,連接內網的為rl0
(因為我2塊網卡都是REALTEK8139的,所以網卡標識為rl,1和0是兩塊網卡的區別號)
ifconfig_rl1="inet 218.92.251.108 netmask 255.225.225.0" 
##(對外網卡的設置,很顯然,218.92.251.108為靜態IP地址。255.255.255.0子網掩碼。不懂?我顛~)
ifconfig_rl0="inet 192.168.0.1 netmask 255.255.255.0" 
##(對內網卡IP地址以及子網掩碼的設置)
firewall_enable="NO" #取消防火牆
gateway_enable="YES" ##啟用網關功能,很顯然,很重要。
named_enable="YES" ##啟用DNS名字服務,這樣可以讓內網通過設置主機做DNS
natd_enable="YES" ##啟用nat功能,很顯然,特重要
natd_interface="rl1" ##設置NAT轉發的網卡標識號,rl1為對外連接網卡。相當於###WIN2000裡的連接共享設置的那塊網卡連接。
map rl1 192.168.0.0/24 ->; 218.92.251.108/32 portmap tcp/udp 10000:65000
map rl1 192.168.0.0/24 ->; 218.92.251.108/32
##以上是設置允許共享連接的內網IP范圍,很顯然,24精確到最後一位!也就是說###192.168.0.*的子機都可以通過這台主機上網。
4,設定開機自動執行ipnat。
#cd /usr/local/etc/rc.d
#vi runipnat.sh
##加入以下內容:
#!/bin/sh
#chmod 755 runipnat.sh ##權限設為可執行。
5、設置內核,至關重要!
因為ipfw和ipfilter不能共存,所以如果要使用ipfilter,必須將內核中有關ipfw的部份注釋掉
#cd /usr/src/sys/i386/conf ##/usr/src/sys/i386/conf是內核文件所在目錄
#cp GENERIC DWOLF ##備份內核文件GENERIC
#grep -i IPFIREWALL DWOLF ##查找:IPFIREWALL,如果找到,就加"#"注釋掉:
#vi DWOLF ##vi編輯,也可以用ee編輯器
#options IPFIREWALL
#options IPDIVERT
##再加入:
options IPFILTER
options IPFILTER_LOG
##保存!
#config DWOLF ##檢查有沒有錯誤
#cd /usr/src
#make kernel KERNCONF=DWOLF ##編譯內核
#reboot
##重起以後打dmesg查看啟動信息,我看到有一條
IP Filter: v3.4.31 initialized. Default = pass all, Logging = enabled
#ipnat -l ## 顯示ipnat的設定狀況
map rl1 192.168.0.0/24 ->; 218.92.251.108/32 portmap tcp/udp 10000:65000
map rl1 192.168.0.0/24 ->; 218.92.251.108/32
呵呵,搞定!
試試內網機器能不能上網,(測試,可省略)
PING 192.168.0.1 成功連接主機,OK!
PING 218.92.251.122 PING通外網主機,OK!(注意,因為8月中旬全國ISO升級,禁止ICMP數據包,路由器外的IP一般都不給PING,你可以找一個自己可以PING通的外網IP,或者省略這一步,無所謂)
==附錄幾個常用的IPNAT命令
ipnat -l  會列出目前ipnat的設定及狀況
ipnat -C 清除ipnat的設定
ipfstat 監測數據的流量
Copyright © Linux教程網 All Rights Reserved