2009年4月29日 星期三

筆記:使用shorewall和dnsmasq在Ubuntu架設簡單的NAT

July 22 2009 Update: 我漏了一個很重要的步驟 Orz

這篇文章敘述在Ubuntu下架設一個非常簡單的NAT環境:
  • eth0是一張連到網路的網卡
  • eth1是一張進行NAT的網卡,其網路線連到另一台電腦的網卡(或一個Router)
我所用的方法比較冷門,不過確實可用 :) 為了方便就這樣記下來吧:

  • 首先,安裝shorewall和dnsmasq:
    sudo aptitude install shorewall dnsmasq
網路組態部分

  • 調整/etc/network/interfaces,加上:
    auto eth1
    iface eth1 inet static
    address 192.168.1.254
    netmask 255.255.255.0
  • sudo /etc/init.d/networking restart
Shorewall部分
  • 複製shorewall的two interfaces範例:
    cd /usr/share/doc/shorewall-common/examples/two-interfaces
    sudo cp * /etc/shorewall/
  • 修改 shorewall.conf: (7/22發現)
    cd /etc/shorewall/
    sudo gunzip shorewall.conf.gz
    確定覆蓋檔案
    sudo vim shorewall.conf
    把STARTUP_ENABLED改成Yes
  • 用你喜歡的編輯器修改/etc/shorewall/rules,加上:
    DNS/ACCEPT loc $FW
  • 選擇性:如果你希望你的Ubuntu仍然可以上網,修改/etc/shorewall/policy
    把$FW net REJECT info 改成$FW net ACCEPT
  • 修改/etc/default/shorewall,把startup從0調成1
  • sudo /etc/init.d/shorewall restart
dnsmasq部分
  • 修改/etc/dnsmasq.conf,加上:
    interface=eth1
    dhcp-range=192.168.1.1,192.168.1.100,12h
  • sudo /etc/init.d/dnsmasq restart

沒有留言: