基于Ubuntu网关配置(1)-- NAT
NAT,全称为Network Address Translation,意思是网络地址转换,如果想让所有的人都能够在共有IP不足的情况下上网,就可以使用NAT功能。
一台NAT主机一定要有两个IP: 其中一个是和互联网通信的共有IP;另一个是与内部局域网通信的私有IP。我们知道,网络上的所有信息封包的包头部分都含有源IP地址和目的IP地址,通过NAT主机,可以将从内部局域网发往互联网的封包的来源IP进行更改,将其更改NAT主机的共有IP,然后NAT主机将此更改的对应关系记录下来,这样内部主机就可以使用共有IP上网,反过来也是一样,从外部来的封包经过NAT主机时,NAT主机将封包的目的IP进行更改,从而使外网的主机能够访问内网的机器。通过使用NAT,不但节省了共有IP,而且能够有效地解决企业共有IP不足的问题。
想要实现NAT主机功能,需要一个包含Netfilter架构的内核。Netfilter是Linux系统的一个过滤机制,具体实现的功能室iptables软件来实现的。
Iptalbes是Linux中架设防火墙的工具,防火墙最大的功能就是能够限制某些进入主机的信息。对于Linux系统,防火墙主要有包过滤型和代理服务器,本文主要包过滤型防火墙。包过滤墙主要是能够对进出本机的网络信息封包进行分析,如果符合某个条件就让其通过,不符合条件就将封包丢弃,这样能够有效地保护主机的安全。但是包过滤型防火墙只是使用条件进行匹配,这样可能会阻止部分有效的信息。
iptables主要可以通过以下方式来对通过或进入的封包进行限定:
1)根据封包的协议来限定,主要有TCP,IP和ICMP协议。
2)根据封包的来源端口或目的端口来进行限定。
3)根据封包的来源IP或者是目的IP来进行限定。
4)根据封包的MAC地址进行限定。
iptables主要是由几张表组成常用的有filter表和nat表,filter表主要是用来进行封包过滤的,而nat表主要就是用来搭建NAT主机的。每个表都分别由几条链组成,而每条链里就是对封包进行判断的规则。filter表是由三条链组成的:INPUT链、OUPUT链、FORWARD链,每条链都有特定的功能。INPUT链就是对所有进入本机的封包进行控制的链;OUPUT链就是对所有由本机出去的封包进行控制的链;FROWARD链就是进行转发封包控制链。每条链都是由很多条规则组成的,这些规则就是对封包进行判断的条件,每个规则都会设定符合条件的行为,或者接受,或者丢弃,或者符合规则所指定的条件则很据行为进行操作。nat表包含三条链:PREPOSTING链、POSTROUTING链、和OUTPUT链,其中PREPOSTING链主要用于修改目的IP地址,用来配置DNAT,而POSTROUTING链主要可以用来修改源IP地址,用来配置SNAT。
接下来我们来看看NAT网关的具体配置方法:
初始状态时,我们利用NAT主机(笔记本电脑)上的无线网卡作为外网出口,初始IP是通过DHCP获得的,为192.168.1.108。
我们将内网的网络地址设定为192.168.2.0,以我们NAT主机上的有线网卡作为内网的网关,我们通过以下图1指令将其IP地址设为192.168.2.1:
图1
设定之后我们可见内外网网卡情况如下图2:
图2
继而我们利用iptables指令进行NAT网络的配置,首先清除一下已设定的iptables命令,具体指令如下图3:
图3
接着打开NAT网关,让数据封包能够进入,指令如下图4(将该条规则直接加到INPUT链的最后):
图4
然后设定iptables的转发使能,指令如下图5:
图5
继而我们通过iptables设定内网对外网的通信,使得当内网数据往外发送时,将数据包的源地址改为外网卡的IP地址,具体指令如下图6:
图6
然后,查看一下iptables的设定情况,指令和显示情况如下图7:
图7
当看到如上最后一行的显示表示配置成功。最后,我们打开ubuntu系统的IP转发功能,具体指令如下图8.1:
图8.1
接下来,我们设定外网对内网特定主机(192.168.2.99)的通信设定,实验中我们在192.168.2.99内网主机上放置了一个网页,然后通过外网访问该主页成功。我们需要设定如下iptables指令:
图8.2
至此NAT网关的配置完成。
接着,我们使用一台Windows7主机接到我们的内网网卡(有线网卡)上,并将其IP地址设定为192.168.2.100如下图9:
图9
然后我们在该内网主机上分别ping内网网关,ping外网(192.168.1.0网段)某台主机,以及上百度主页都能成功。具体情况如下图10:
图10
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。