關於這陣子實習架linux伺服,首先將雙網卡都驅動起來,並設定好其對應的IP 地址
設定雙網卡,最好一個個的來,而且最好兩個網卡不是同一個型號的晶片
具體為什麼?我也不清楚,據說不這樣容易出錯。
  
 
設定對內的網卡eth0 的參數,要瞭解各個參數的意義,請查閱/usr/share/doc/initscripts-*/sysconfig.txt
 $ vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no
ONBOOT=yes
USERCTL=no
PEERDNS=yes
GATEWAY=
TYPE=Ethernet
DEVICE=eth0
BOOTPROTO=none
NETMASK=255.0.0.0
IPADDR=10.20.10.174

以下為設定對外的網卡eth1 的參數:
$ vi /etc/sysconfig/network-scripts/ifcfg-eth1
IPV6INIT=no
ONBOOT=yes
USERCTL=no
PEERDNS=yes
GATEWAY=外網實體閘道
TYPE=Ethernet
DEVICE=eth1
BOOTPROTO=none
NETMASK=255.255.255.192
IPADDR=外網實體ip

 

 

設定機器的網路訊息,比如主機名,是否啟動網路等:
$ vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=HPCOG-ASL

設定DNS 服務器:
$ vi /etc/resolv.conf
nameserver 168.95.192.1
nameserver 所在地的dns

設定eth0 為第一個網卡模組的別名,eth1 為第二塊網卡的別名。
$ vi /etc/modprobe.conf
alias eth0 8139too
alias eth1 3c59x

啟動兩個網卡模組:
$ modprobe 8139too 3c59x && lsmod

$ /etc/rc.d/init.d/network restart
重新啟動網路,應該也可以使用ifup eth0 eth1 這個指令來實現。

查看網路設定訊息:
$ /sbin/ifconfig


查看路由訊息:
$ /sbin/route

 

如果機器這部分已經設定好了的話,就可以直接進入下一步,使用iptables 設定NAT 服務
 

使用iptables模組設定NAT服務:
 
  #!/bin/bash
#filename: nat.sh
##################Introduction####################
# 1. The file content if for configuring linux NAT server.
# 2. Execution:
# $ mkdir -p /usr/local/nat
# $ cp nat.sh /usr/local/nat/nat.sh
# $ chmod u+x /usr/local/nat/nat.sh
# $ /usr/local/nat/nat.sh
# or you can let it run automatically when machine reboots.
# $ vi /etc/rc.d/rc.local
# append "/usr/local/nat/nat.sh start" to it.
# 3. modified by chunju 2009/11/03
# 4. mail me: pengchunju@xuite.net
##################################################
 
IPTABLES='/sbin/iptables'
EXTERNAL='eth1'
EXTERNIP='59.115.72.254'
INTERNAL='eth0'
INTERNIP='10.20.10.0/24'
 
#reset the three default ipchains
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
 
#reset the nat table
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
 
#flush the ipchains and nat table
$IPTABLES -F
$IPTABLES -t nat -F
 
#delete non-default rules of ipchains and nat table
$IPTABLES -X
$IPTABLES -t nat -X
 
#reset zero
$IPTABLES -Z
$IPTABLES -t nat -Z
 
start(){
        echo "Starting FireWall"
        #load necessary modules
        echo "Starting modprobe necessary modules for iptables"
        for i in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/* ; do
                t=`echo $i | sed 's/\..o$//g'`
                mod=`basename $t`
                /sbin/modprobe $mod
        done
 
        #enable ICMP packet (ping)
        $IPTABLES -A INPUT -p icmp -j ACCEPT
 
        #enable communication inside local domain
        $IPTABLES -A INPUT -i $INTERNAL -s $INTERNIP -j ACCEPT
        $IPTABLES -A OUTPUT -o $INTERNAL -d $INTERNIP -j ACCEPT
 
        #enable ip masquerade
        echo "1" >/proc/sys/net/ipv4/ip_forward
        $IPTABLES -t nat -A POSTROUTING -o $EXTERNAL -s $INTERNIP -j MASQUERADE
        # $IPTABLES -t nat -A POSTROUTING -s $IPDOMAIN -j SNAT --to $OUTIP
        # $IPTABLES -t nat -A PREROUTING -d $EXTERNIP -p tcp --dport 21 -j DNAT --to $FTPIP
        # $IPTABLES -t nat -A PREROUTING -d $EXTERNIP -p tcp --dport 80 -j DNAT --to $WEBIP
        # Attention: there are no security!!!
}
 
stop(){
        echo "Stopping firewall" 
        for i in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/* ; do
                t=`echo $i |sed 's/\..o$//g'`
                mod=`basename $t`
                /sbin/modprobe -r $mod
        done
        #disable ipv4 packet forwarding
        echo "0" >/proc/sys/net/ipv4/ip_forward
}
 
restart(){
        stop
        start
}
 
#see how we were called
case $1 in
start)
        start
        ;;
stop)
        stop
        ;;
restart)
        restart
        ;;
*)
        echo $"Usage:$0 { start | stop | restart }"
        exit 1
esac
 


以上是老師所教的一些簡單的設定,對於複雜的設定,我目前仍不懂,所以無法解釋,建議自行找資料!

Posted by chunju at 痞客邦 PIXNET Comments(0) Trackback(0) Hits(58)