码迷,mamicode.com
首页 > 系统相关 > 详细

基于Ubuntu网关配置(1)-- NAT

时间:2015-05-21 09:11:29      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:ubuntu   代理服务器   防火墙   iptables   

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


基于Ubuntu网关配置(1)-- NAT

标签:ubuntu   代理服务器   防火墙   iptables   

原文地址:http://blog.csdn.net/liuruiqun/article/details/45876649

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!