Fedora Core - 架設 NAT 伺服器

1、前言

NAT 伺服器主要是用來簡化及保有 IP 位址,它可讓原本無法上網且使用內部IP位址的主機可以成功的連接 Internet。如此將大大減少 IP 位址的需求,因為基本上整個內部網路都可藉 NAT 上的一個外部 IP 來連至 Internet。NAT 伺服器的原理與運作流程



文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.設定網卡
          步驟2.開機自動啟動 iptables
          步驟3.啟用 IP Forwarding 功能
          步驟4.載入設定值
          步驟5.執行 iptables
4、參考



2、實作環境

  • Fedora Core 1



3、安裝及設定

步驟1.設定網卡

設定網卡 (eth0、eth1) 路徑為 /etc/sysconfig/network-scripts/ifcfg-eth (0~1)。

eth0 內容如下(Private IP)
 DEVICE=eth0               //連接內部網路、伺服器的網卡    
 BOOTPROTO=static          //BOOTP 協定
 BROADCAST=192.168.1.255   //廣播
 IPADDR=192.168.1.254      //此網卡IP位址
 NETMASK=255.255.255.0     //遮罩
 NETWORK=192.168.1.0       //網路位址
 ONBOOT=yes                //開機便啟動

eth1 內容如下(Public IP)
 DEVICE=eth1               //連接Internet的網卡
 BOOTPROTO=static          //BOOTP協定
 BROADCAST=61.60.59.255    //廣播
 IPADDR=61.60.59.58        //此網卡IP位址
 NETMASK=255.255.255.0     //遮罩
 NETWORK=61.60.59.0        //網路位址
 ONBOOT=yes                //開機便啟動  




步驟2.開機自動啟動 iptables

為了開機便能自動執行 iptables,輸入 ntsysv 後出現請選取 iptables 後確定,則下次開機時便會自動執行。




步驟3.啟用 IP Forwarding 功能

修改的 sysctl.conf 檔案內容以代替內部網路的主機傳送封包。
vi /etc/sysctl.conf    
 net.ipv4.ip_forward=0->1   

修改 /proc/sys/net/ipv4/ip_forward 的檔案內容將 0 -> 1。
echo 1 > /proc/sys/net/ipv4/ip_forward  
或修改 /etc/sysconfig/network 開啟 IPV4 的 Forward 功能。
vi /etc/sysconfig/network
 FORWARD_IPV4=yes     //加入此行




步驟4.載入設定值

將之前所設定的設定值重新載入。
/etc/rc.d/init.d/xinetd reload    //重新載入xinetd服務
 Reloading configuration:        [ OK ]




步驟5.執行 iptables

允許內部網路、伺服器及 DMZ 的主機可連接至 Internet,即 IP 偽裝。
iptables –t nat –A POSTROUTING –s 192.168.1.0/24 –j MASQUERADE   
但此允許規則,無法再下次開機後繼續執行,因此必須寫入 /etc/rc.d/rc.local 讓允許規則,一開機便自動執行允許規則,其允許規則如下:

開啟 SNAT 功能讓內部 PC 能夠連外即所謂的 IP 偽裝。
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE  
開啟 DNAT 功能外部連結合法 IP 時重新導向到私人 IP 即所謂的平衡負載,下列為開啟 61.60.59.58:80對應到192.168.1.10:80 (Web)-TCP。
iptables -t nat -A PREROUTING -p tcp -d 61.60.59.58/255.255.255.255 --dport 80 -j DNAT --to 192.168.1.10:80   



4、參考

  • /etc/sysconfig/network-scripts/ifcfg-eth0、1: 網卡。
  • /etc/sysctl.conf: 啟用 IP Forwarding 功能。
  • /proc/sys/net/ipv4/ip_forward: 啟用 IP Forwarding 功能。
  • /etc/rc.d/rc.local: 執行 iptables。