在 RedHat Linux 下用 Webmin 配置 NAT 服務(一)

來源:互聯網
上載者:User

環境:RedHat Linux9.0。Webmin version 1.38。Webmin是一款B/S結構的優秀的Linux系統管理軟體,利用其圖形化使用者介面,可以方便、高效的管理大多數Linux的服務、應用、網路和硬體設定。Webmin安裝後不用運行Apache伺服器,自己就提供Web服務,預設的連接埠是10000。

網卡:
eth0:外網卡,IP=10.0.0.118,255.255.255.0
  eth1:內網卡,IP=192.168.0.118,255.255.255.0

在Linux下用ifconfig命令查看網卡配置的結果:
  [root@mylinux root]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:03:FF:0B:21:81
          inet addr:10.0.0.118  Bcast:10.0.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1447 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1257 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:134788 (131.6 Kb)  TX bytes:131251 (128.1 Kb)
          Interrupt:11 Base address:0x9000

eth1      Link encap:Ethernet  HWaddr 00:03:FF:19:21:81
          inet addr:192.168.0.118  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2133 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2082 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:160402 (156.6 Kb)  TX bytes:156738 (153.0 Kb)
          Interrupt:11 Base address:0xd000

/etc/sysconfig/network_scripts/ ifcfg-eth0檔案內容:
# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
USERCTL=no
PEERDNS=yes
GATEWAY=10.0.0.2
TYPE=Ethernet
DEVICE=eth0
HWADDR=00:03:ff:0b:21:81
BOOTPROTO=none
NETMASK=255.255.255.0
ONBOOT=yes
IPADDR=10.0.0.118
NETWORK=10.0.0.0
BROADCAST=10.0.0.255

/etc/sysconfig/network_scripts/ ifcfg-eth1檔案內容:
# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
USERCTL=no
PEERDNS=yes
TYPE=Ethernet
DEVICE=eth1
HWADDR=00:03:ff:19:21:81
BOOTPROTO=none
NETMASK=255.255.255.0
ONBOOT=yes
IPADDR=192.168.0.118
NETWORK=192.168.0.0
BROADCAST=192.168.0.255

路由表:
[root@mylinux root]# gedit
[root@mylinux root]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         10.0.0.2        0.0.0.0         UG    0      0        0 eth0

配置:
開啟Webmin網址:http//10.0.0.2:10000,輸入root帳戶名稱和其密碼,選擇網路設定下的“Linux Firewall”:

開啟的介面,在“Showing Iptable”按鈕右邊預設選擇的是“Packet filtering(filter)”,可以進行防火牆的配置。如果原來已經設定啟用了中級或進階防火牆策略,那就必須注意在這裡配置轉寄(Forwarded packets (FORWARD))規則,允許NAT通訊的有關協議、連接埠的流量由內向外通過(注意方向不能搞錯,內網卡是input,外網卡是output),使NAT真正生效。實驗時,我們允許所有的通訊通過,規則如下:
Accept - If input interface is eth1 and output interface is eth0
並且注意規則的執行順序,是由上而下,最上面的先被匹配,只要找到匹配的規則,就直接跳出規則隊列。
為了配置NAT服務,需要選擇“Showing Iptable”按鈕右邊的“Network Address Translation(nat)”選項,然後點擊“Showing Iptable”按鈕,進入NAT配置介面。

按“Add Role”按鈕,開啟規則配置介面。

“Action to take”選“Source NAT”,“IPs and ports for SNAT”的“IP range”填10.0.0.118;Outgoing interface選等於(Equals)eth0,就是外網卡;別的選項選擇預設值。然後按“Save”按鈕儲存,再按“Apply Configuration”按鈕,使規則即可生效。

注意,配置到這裡,其實還是不能實現需要的功能,不知道是Webmin的功能欠缺還是別的什麼原因,我們還需要配置Linux實現“IP轉寄”功能,才能最後完成所有任務。
配置Linux“IP轉寄”,有的資料上說必須在/etc/sysconfig/network檔案末加FORWARD_IPV4=yes語句:
  /etc/sysconfig/network:
  NETWORKING=yes
  HOSTNAME=myLinux
  GATEWAY=10.0.0.2
  FORWARD_IPV4=yes
同時再執行echo 1 > /proc/sys/net/ipv4/ip_forward語句。但是我發現在Redhat Linux9.0下只要執行後一條語句就夠了,不知道別的Linux發行版是不是與此相同。
為了使語句echo 1 > /proc/sys/net/ipv4/ip_forward語句在開機後自動執行,我們把它加到/etc/rc.d/rc.local檔案末尾就可以了。

用Webmin配置防火牆和NAT服務,本質上是編輯和操作/etc/sysconfig/iptables檔案,所有配置結果都儲存在該檔案中,/etc/sysconfig/iptables內容:
# Firewall configuration written by lokkit
# Manual customization of this file is not recommended.
# Note: ifup-post will punch the current nameservers through the
# firewall; such entries will *not* be listed here.
*filter
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:RH-Lokkit-0-50-INPUT - [0:0]
:OUTPUT ACCEPT [0:0]
:My-test-Chain - [0:0]
-A INPUT -p tcp -m tcp -i eth0 --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp -i eth0 --dport 137:139 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -i lo -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 0:1023 -j REJECT  --syn
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 2049 -j REJECT  --syn
-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 0:1023 -j REJECT
-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 2049 -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 6000:6009 -j REJECT  --syn
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 7100 -j REJECT  --syn
-A My-test-Chain -p icmp -d 10.0.0.118 -i eth0 -j DROP
-A INPUT -j RH-Lokkit-0-50-INPUT
-A FORWARD -j RH-Lokkit-0-50-INPUT
-A OUTPUT -o eth0 -j ACCEPT
# Not ping 10.0.0.118
-A INPUT -p icmp -d 10.0.0.118 -i eth0
-A FORWARD -i eth1 -o eth0 -j ACCEPT
COMMIT
# Generated by webmin
*mangle
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed
# Generated by webmin
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j SNAT --to-source 10.0.0.118
COMMIT
# Completed
其實,核心配置語句就是一句:
-A POSTROUTING -o eth0 -j SNAT --to-source 10.0.0.118 

本文來自“十萬個為什麼”電腦學習網 http://www.why100000.com
http://www.why100000.com/_Linux/doc/RHLinux_Webmin_Nat.swf

作者:張慶(網眼)2008-1-21

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.