關於這陣子實習架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
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
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
$ vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=HPCOG-ASL
設定DNS 服務器:
$ vi /etc/resolv.conf
nameserver 168.95.192.1
nameserver 所在地的dns
nameserver 168.95.192.1
nameserver 所在地的dns
設定eth0 為第一個網卡模組的別名,eth1 為第二塊網卡的別名。
$ vi /etc/modprobe.conf
alias eth0 8139too
alias eth1 3c59x
$ vi /etc/modprobe.conf
alias eth0 8139too
alias eth1 3c59x
啟動兩個網卡模組:
$ modprobe 8139too 3c59x && lsmod
$ /etc/rc.d/init.d/network restart
重新啟動網路,應該也可以使用ifup eth0 eth1 這個指令來實現。
重新啟動網路,應該也可以使用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
#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
以上是老師所教的一些簡單的設定,對於複雜的設定,我目前仍不懂,所以無法解釋,建議自行找資料!
Recommend to Front page
KEYSTONE施工



Comment Permissions: Only members may comment. If you are not a PIXNET member, click here to sign up.