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

环境: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]# ifconfigeth0 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=noPEERDNS=yesGATEWAY=10.0.0.2TYPE=EthernetDEVICE=eth0HWADDR=00:03:ff:0b:21:81BOOTPROTO=noneNETMASK=255.255.255.0ONBOOT=yesIPADDR=10.0.0.118NETWORK=10.0.0.0BROADCAST=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=noPEERDNS=yesTYPE=EthernetDEVICE=eth1HWADDR=00:03:ff:19:21:81BOOTPROTO=noneNETMASK=255.255.255.0ONBOOT=yesIPADDR=192.168.0.118NETWORK=192.168.0.0BROADCAST=192.168.0.255

路由表:[root@mylinux root]# gedit[root@mylinux root]# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo0.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 ACCEPTCOMMIT# 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.118COMMIT# Completed其实,核心配置语句就是一句:-A POSTROUTING -o eth0 -j SNAT –to-source 10.0.0.118

本文来自“十万个为什么”电脑学习网 http://www.why100000.comhttp://www.why100000.com/_Linux/doc/RHLinux_Webmin_Nat.swf

作者:张庆(网眼)2008-1-21

在爱情里,有时候简单的一句话,能胜过千言万语。

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

相关文章:

你感兴趣的文章:

标签云: