天天看點

使用Debian Linux作業系統架設網關

1、網關主機設定

    伺服器上有兩塊網卡,eth0使用*.*.*.*IP位址連接配接Internet,eth1連接配接LAN,則其/etc/network/interfaces的設定如下:  

    auto lo

    iface lo inet loopback

    auto eth0

    iface eth0 inet static

    address *.*.*.*

    netmask 255.255.255.0

    gateway *.*.*.254

    auto eth1

    iface eth1 inet static

    address 192.168.0.1

    network 192.168.0.0

    netmask 255.255.255.0

    broadcast 192.168.0.255

    當然也可以使用ifconfig進行配置:

   $ ifconfig eth0 *.*.*.* netmask 255.255.255.0

   $ route add default gw *.*.*.254

   $ ifconfig eth1 192.168.0.1 netmask 255.255.255.0

   dns在/etc/resolv.conf中設定,修改或添加nameserver字段:

   nameserver 202.120.2.101

   如果ip位址是與mac綁定的,還要修改mac位址:

   $ ifconfig eth0 down

   $ ifconfig eth0 hw ether *:*:*:*:*:*

   $ ifconfig eth0 up

  2、IP僞裝(IP-masquerade)

   這時将lan内主機網關改為192.168.0.1,應該能ping通該網關,但是還是連不上internet。要實作LAN内的機器通過共享一個單獨的可通路外網的IP位址來通路Internet資源,還需要在網關上安裝ipmasq。

   $ sudo apt-get install ipmasq

   會提示進行一些設定,都預設即可。之後lan内主機應該就能連上internet了。

其實這裡就用後面講到的iptables都可以。

  3、端口映射

   假設lan内有一ftp192.168.0.2,要從internet上通路該ftp,需要在網關主機上進行一定的端口映射。可使用iptables完成。下面是具體實作的腳本例子:

   #!/bin/sh

   /sbin/modprobe iptable_filter

   /sbin/modprobe ip_tables

   /sbin/modprobe iptable_nat

   /sbin/modprobe ip_nat_ftp

   /sbin/modprobe ip_conntrack

   /sbin/modprobe ip_conntrack_ftp

   iptables -F

   iptables -P INPUT ACCEPT

   iptables -P FORWARD ACCEPT

   iptables -P OUTPUT ACCEPT

   iptables -F -t nat

   iptables  -t nat -A PREROUTING -p tcp -i eth0  -d 202.120.2.101 --dport 21 -j DNAT --to 192.168.123.6:21

   iptables -t nat -A PREROUTING -p tcp -i eth0 -d 202.120.2.101 --dport 2345 -j DNAT --to 192.168.123.116:3389

   iptables -t nat -A  POSTROUTING -s 192.168.123.0/24 -o eth0 -j SNAT --to 202.120.16.34

   echo 1 > /proc/sys/net/ipv4/ip_forward

參考:Debian 參考手冊-使用Debian系統架設網關

    http://www.huihoo.com/debian/reference/ch-gateway.zh-cn.html

    改mac位址

    http://www.linuxmine.com/828.html 

本來想補充一點iproute内容的。下次補上了,linux下的多路由選擇工具。

繼續閱讀