2007/07/20

架設 NATD-Server & IP-FireWall 防火牆

natd簡單的來說就是進行位址轉換,也就是說通常是用在真實ip位址不夠用時.
所採取的替代方案

參考這篇文章這篇文章以及這篇文章

【作業環境】

FreeBSD 6.2-RELEASE

【安裝及設定】

Step1.編輯 kernel 檔

首先先在 kernel 檔中加入下列內容

修改kernel

#cd /usr/src/sys/i386/conf
#ee GENERIC


options IPFIREWALL //支援防火牆
options IPFIREWALL_DEFAULT_TO_ACCEPT //預設允許所有封包通過
options IPFIREWALL_VERBOSE //在ipfw中設定要記錄哪些封包
options IPFIREWALL_VERBOSE_LIMIT=10 //記錄十個封包
options IPFIREWALL_FORWARD //支援封包轉向
options IPDIVERT //支援NAT
options DUMMYNET //流量管制

然後再去編譯 kernel 檔

#config GENERIC
#cd ../../compile/GENERIC
#make depend all install
#make clean

Step2.編輯 /etc/rc.conf

#ee /etc/rc.conf

加入以下部分
#NAT設定
#宣告本主機可做為gateway(通訊閘)
gateway_enable="YES"
#宣告防火牆(IP-FIREWALL)
firewall_enable="YES"
firewall_type="OPEN" //打開firewall
#定義 NATD 的網路卡介面,應定義在設定 public IP 的網卡代號上
natd_interface="fxp0" //依網路卡不同要注意
natd_enable="YES" //開機啟動nat服務
#設定ip導向的設定檔
natd_flags="-f /etc/natd.conf"


再看看/etc/service中是否有natd 8668/divert這一行,若沒有就加上去吧。
如此NAT應該就成功了。

Step3.編輯 /etc/rc.firewall


修改 /etc/rc.firewall 檔:(先將原檔案備份)

#cd /etc
#mv rc.firewall rc.firewall.bak
#ee rc.firewall


加入以下部分
#!/bin/sh
# ================
# 清除所有防火牆過濾的規則(歸零),ipfw詳細語法請:man ipfw
/sbin/ipfw -f flush

# ================
# 先定義 deny,由此處開始定義防火牆過濾的規則
# 我是比較狠一點,要擋就全部都擋住,滴水不漏。
# ================

# 這裡的 all ,是指 /etc/services 檔案中所記載的各項服務名稱。
# 如此設定防火牆規則後,他連 ping 我的主機都別想了。

# 以下的 IP 或 Class C ,不是有入侵動作、就是亂寄廣告信,我不歡迎這種人,所以拒絕提供任何服務。
# ----- spam ----- #
#/sbin/ipfw add deny all from 211.22.166.45 to any //擋一個ip
#/sbin/ipfw add deny all from 61.154.244.0/24 to any //擋一個ClassC


# ================
# 這一行是定義NAT的通行,如果只是設定 firewall 的話,不需要設定這一行。
/sbin/ipfw add divert natd all from any to any via fxp0 //網卡名稱要設對

# ================
# 其餘的(all)都放行了,NAT 和 FireWall 都需要設定這一行。
/sbin/ipfw add pass all from any to any


Step4.編輯 /etc/natd.con


#ee /etc/natd.conf

加入以下部分
#emule
redirect_port tcp 192.168.0.80:4661 1.2.3.4:4661
redirect_port tcp 192.168.0.80:4662 1.2.3.4:4662

#BT
redirect_port tcp 192.168.0.80:47645 1.2.3.4:47645

#魔獸三
redirect_port tcp 192.168.0.80:6112 1.2.3.4:6112
redirect_port udp 192.168.0.80:6112 1.2.3.4:6112


//1.2.3.4是真實的IP

0 意見: