Linux操作系统下NAT及防火墙的混合应用
主要讲述Linux系统下的NAT(网络地址转换)和基于NAT的防火墙技术。
首先由Linux系统的安装引入,着重介绍LINUX下的NAT的网络配置(服务端和客户端),以及防火墙配置原则。
其次,从理论上阐述,“什么是NAT”和网络上的攻击方法。
i0B4vK:f:O}#Tl!M(_0 ITPUB个人空间-Ktf3`6j aZ1t/}
【引言】
LINUX凭借其稳定性、安全性和代码开放在这几年中,风靡全球;作为一种类UNIX系统,Linux正在互联网的各个层面得到应用,从科学计算到银行取款机,从网络web服务到高层的Oracle 数据库应用。都可以看到linux的影子。而由于Linux遵循于GPL协议(公共软件许可证),任何人可以得到并且修改它的源代码,所以他的安全性相较于其他的非开源系统来说要高的多;并且它可以从网络中免费下载。从这2点来说他非常适合用于网络信息闸(软路由或网关)和自制防火墙(事实上国内的硬件防火墙厂商都是用工业X86硬件和linux来做他们的产品,虽然那不是真正意义上的硬件防火墙)。现在学校过于注重对windows及其windows平台上的软件、开发工具的学习。但是学生们没有意识到,真正撑起这个互联网的正是UNIX系统;就从我对Linux的见解为大家展示UNIX系统的一角吧。
什么是NAT?
ux4wc)T!?a0
N6M4Ib.@0 NAT英文全称是Network Address Translation,称是网络地址转换,它是一个IETF标准,允许一个机构(包括多个网络节点)以一个地址出现在Internet上。NAT将每个局域网节点的地址转换成一个IP地址,反之亦然。它也可以应用到防火墙技术里,把个别IP地址隐藏起来不被外界发现,使外界无法直接访问内部网络设备,同时,它还帮助网络可以超越地址的限制,合理地安排网络中的公有Internet 地址和私有IP地址 的使用。ITPUB个人空间!xY yPO _GA
?
A~ L1_1zf0\g0 为什么要进行NAT
假设校园网提供园区Internet接入服务,为了方便管理,校园网络中心分配给园区用户的IP地址都是伪IP(内部IP),但是部分用户要求建立自己的WWW服务器对外发布信息,这时候我们就可以通过NAT来提供这种服务了。我们可以在防火墙的外部网卡上绑定多个合法IP地址或端口,然后通过NAT技术使发给其中某一个IP地址的包转发至内部某一用户的WWW服务器上,然后再将该内部WWW服务器响应包伪装成该合法IP发出的包。ITPUB个人空间|0q5k[J.j1W
k!QGf2^SwC |0 实验环境介绍
本文所有到的实验环境如下:
LINUX系统主机一台(服务端):双网卡 REDHAT 9.0 主机名:hostITPUB个人空间@B9P@g
WINDOWS 98 系统主机一台(客户端):单网卡 主机名:test ITPUB个人空间y ]\5j\
联想D-link 8口 10M/100M交换机一个ITPUB个人空间
m6mj@rn#qY{
]hU'iI'f|0 【正文】
网络的拓朴结构:
pbY
\~ q0
{ eZO9h1I0 ITPUB个人空间Ev!g&N@%K;wpG
Q,|&kh3GrZd{R0 一、 RED HAT 9.0 安装和注意点
Linux是一个独立的操作系统,所以不能在其他操作系统下进行安装,他有自己的启动方式,可以采用以下两种方法进行安装。
● 从CD-ROM进行安装
Sbjg6_0~*?0 ● 从FTP服务器进行安装
由于Linux系统安装(第一种方法),有随机参考手册,难度不大,所以我们着重介绍从ftp安装。
在安装之前制作启动盘:
1. 在windows操作系统下将安装盘放入光驱;
iTh"X:xw5P
|0 2. 运行 e:\dosutils\rawrite.exe(e盘为光驱)ITPUB个人空间:b2r(}8G!_F-T2O9B1a
3. 在运行后的界面中输入e:\images\bootnet.img
iBz6N4?jw;A6H*I0 4. 指定目标盘,输入用户软盘盘符:aITPUB个人空间\#Vcd0[8D[%b K0e
这样一张安装程序的启动盘就建好了。
^NF+a+]i0
*L|*C`)^0 用软盘引导计算机,进入蓝色界面后,输入FTP服务器地址和ftp上的用户名及口令就可以下在安装了。
RED HAT 9.0安装界面为中文,安装中文说明基本可以完成系统定制,在此要强调的是,分区的时候,/swap(交换分区)大小要是内存大小的2倍;既然是作nat网关,要把/var(日志分区)单分出来,并且不要少于500M,有充裕的空间存储日志,也为将来将来系统故障或受到攻击做到有据可查。
0[9_
C4gU2c0a.aD0
lD9lE/a3E0 二.LINUX的网络设置和nat原理
2.1网络设置
我们把linux系统安装完后,整个设置平台算是搭建完毕,但是还要设置网络;设置网络之前,或者说让linux上网前,应该把和这台服务器应该起到作用的无关服务关掉。
可以在命令行下敲入setup回车,会出现一个文本菜单,里面有“系统服务”一项,直接用空格键取消服务前面的勾然后重新启动系统就行了。
LM Kr&s%u{0 假如是UNIX的熟练用户,可以在取消服务后,不用重新启动,在命令行行打入psaux
会显示现在在后台运行的所有服务,看到要杀死的进程后,打入
kill -9ITPUB个人空间1KdP\&WVka
t
(-9代表强制杀掉进程)杀死进程。
)X#r9tYTM4n+y0 然后进入/etc/sysconfig/network-scripts/目录ITPUB个人空间}`s-j+y
viifcfg-eth0会出现以下内容
#A4I O ~;[B1M!k0 device=eth0
cJq0u1aa,jY0T%X0 onboot=yes
oMBJLkP0 bootproto=none
?)p8^E^K@f0 IPADDR=192.168.0.1 #(内网网卡IP)
*F$~ s-|&i0 netmask=255.255.255.0
S5N
xX%[0 TYPE=ETHERNETITPUB个人空间rg?4\}8z
USERCTL=NOITPUB个人空间O#R o
?&g
PEERDNS=NOITPUB个人空间 m!T.woY7Ng
NETWORK=192.168.0.0(网络号)ITPUB个人空间
vEt2OT
Broadcast=192.168.0.255(广播号)ITPUB个人空间7B4z~mD']*A|
上面的设置的意思是:eth0对内的内网网卡,ip地址为192.168.0.1,子网掩码为:255.255.255.0;ITPUB个人空间3i'~ J3|/tFK7^*tC
-N e v/ur7KO0 viifcfg-eth1会出现以下内容ITPUB个人空间)`
Y8b%ZB
device=eth1
-Ocn^a(K'r0 onboot=yesITPUB个人空间.I5Q!x*C4O7P
u.s
bootproto=noneITPUB个人空间}bAuUX
IPADDR=202.204.208.5 #(外网网卡IP)
S-A!e'{p
a ~0 netmask=255.255.255.128
i,M5v^%B!tB0`0 TYPE=ETHERNETITPUB个人空间9@k#_^@r@-iO
USERCTL=NO
{OH x'f
xE3`S0 PEERDNS=NO
{8m0A Z;M)_2Vz;Im0 NETWORK=202.204.208.0(网络号)
7@.W']-b
p^0P#R0 Broadcast=202.204.208.127(广播号)
i5H;Y-z2k
q9OD8P?0 上面的设置的意思是:eth1是对外的外网网卡,ip地址为202.204.208.5。ITPUB个人空间mP8E7CyZKri({$l
网卡的设置就完成了
(y0j/DRv0 ITPUB个人空间!W;K
u.jJ`%t6C
加入nat客户端ip和名称ITPUB个人空间C4a3H+Rt
vi /etc/hosts
q {
w f"Y gC1V0 格式为:
:V.n k(^I)A8^6k
T0 ip地址 主机名
8\o-u
P*f0z0 127.0.0.1 hostITPUB个人空间*w'JK)j R2nb:q{
]
ITPUB个人空间3q.G?6l6s%U
指定内网网关
NW
b-Ro^oN#R]0 vi /etc/sysconfig/network
O-h2U@4rs6z+I0 gateway=202.204.208.7 #(网关地址,假如服务端的外网为拨号,就不要指定)
;x
Km0PCI*V0
%R$E)[{e7w/uhB-}
z0 设置DNS服务器ITPUB个人空间/s"YH%Zy'b7s
vi /etc/resolv.conf
D)Qp(T9y `k(I)Gf2K#N0 格式为ITPUB个人空间s f%Z
Kj vwU
nameserver ip地址ITPUB个人空间8v:o6G^+]
nameserver 202.106.196.115ITPUB个人空间,t@E7Rv#xV-m
都设置好后,从新启动系统,在命令行下打入
+h$Y.l)AM-[1Y'A0 route -a #察看路由表,看一下默认网关是否为202.204.208.7
(oBr2xEwFJ0 假如是的话,服务端的网络配置就已经全部完成。ITPUB个人空间 hLZ(]:P
+~0SD,kZ#uK{0 下面是客户端的网络配置
h9})k)qd-o
t0 因为是win 98系统,所以只给出配置参数,配置方法略
+b)\cEZ| K~0 ip地址为192.168.0.2
X1wpl2iI@&UJ
^{0 子网掩码:255.255.255.0
\$IR+L }a0 域名服务器:202.106.196.115ITPUB个人空间,_3R[ }Cv
网关:192.168.0.1ITPUB个人空间|sp5sK5T&NW2P~
全部网络设置完成ITPUB个人空间cE5t-hV
dg
['qidmRv0 2.2 NAT原理
2.2.1在进入NAT设置之前,我们要先讨论一下NAT的工作原理
在引言部分,我们已经提到了一个NAT应用实例,从这个实例中可以看出NAT和防火墙是一体的,换句话说,NAT就是防火墙。NAT对防火墙来说是子集的关系。
在本节,我们会深入讨论NAT的原理部分,为了更清晰的认识NAT,我们借用INTERNET标准化组织发布的RFC3022文档的部分内容。
NAT有三种类型:静态NAT(Static NAT)、网络地址端口转换DNAT(destination- NAT)、动态地址NAT(Pooled NAT)。我们主要讨论前面2种nat.
静态nat解决问题的办法是:在内部网络中使用内部地址,通过NAT把内部地址翻译成合法的IP地址在Internet上使用,其具体的做法是把IP包内的地址域用合法的IP地址来替换。NAT设备维护一个状态表(路由表,所以也称NAT为软路由),用来把非法的IP地址映射到合法的IP地址上去。每个包在NAT设备中都被翻译成正确的IP地址,发往下一级,这意味着给处理器带来了一定的负担。但对于一般的网络来说,这种负担是微不足道的。
网络地址端口转换NAT,也叫做反向NAT,他解决问题的方法是:在内部网络中,使用内部地址的计算机开设了网络服务(80,21等),当外部ip想访问这些服务时,NAT网关把外部访问ip翻译成内部ip,也就是说,把内部开设的服务,映射到一个合法的ip和端口上,已供外部访问。
假如想进一步了解他的工作原理,NAT其实就是一种IP包欺诈,也可以说是对IP报头的修改,请看下表
4位版本
.e}%J!UbG0 4位首部长度
z@Up-r0 8位服务类型
9GR)H
]T0 16位总长度(字节数)
&?9M.\e|S%uW]0 16位标识ITPUB个人空间q(`M SP^
3位标志ITPUB个人空间+c4R2m`+V?m:nH
13位片偏移
$w{'`L#]c+C%@H7C]ww0 8位生存时间(ttl)ITPUB个人空间&ypc7m`
8位协议
"uCY6x~8v4KSj9N,]0 16位首部校验和
OJt2} _
M2Q+A5g0 32位源ip地址ITPUB个人空间 cz7WfE(nUKO
32位目的ip地址ITPUB个人空间/PE6Nm%_0s)Ihx
其他选项ITPUB个人空间"D[z
E6TV8SY
携带数据ITPUB个人空间2@:\5` C1C t
IP数据包格式和报头中的各字段
NAT网关(外202.204.208.5;内192.168.0.1)收到本地局域网内的客户机(192.168.0.2),发来的ip数据,先判断是否是本地子网中发来的,假如通过,则按照她的目的ip地址查找本地路由表进行转发,NAT在包被继续向前送出之前转换32位源地址192.168.0.1成202.204.208.5。相应的,IP包往回传时依据相同的地址进行转换。
2.2.2 NAT设置
我们知道了NAT的原理,就可以进行NAT的配置了,我们前面说过了NAT就是防火墙,在RED HAT9.0下自带防火墙 IPTABLS
我们在做好网络设置后,假如要实现客户端(win98)通过服务端上网(静态NAT),可以在命令行下直接打入
iptables -t nat -A POSTROUTING -o eth1 -j SNAT - to 202.204.208.5
说明:ITPUB个人空间]GCu8y&F!|9b
-t nat : 调用nat表,调用这个表说明遇到了产生新的连接的包。ITPUB个人空间HU bgk%M2~V
-A :该命令将一条规则附加到链的末尾。
T?+{KIw
o#O0 POSTROUTING:指定正当信息包打算离开防火墙时改变它们的规则。ITPUB个人空间F;q-`2URFon(N+m
-o eth1:输出接口为ETH1
$} C W0j#X"B0 -j SNAT:跳转,也叫触发条件,当满足Snat规则是便发生跳转
-Y&o;J%l$}.\ wQ0 整条语句的意思为: 当防火墙遇到产生新的连接的包,则在他要离开防火墙时改变他的源ip为202.204.208.5并且从ETH1出口送出。
&w;V5d4O*u[:Q+B0
~lp }
_0 nat的规则指定完成后,还要打开IP转发功能:
J-A1`5Za"A2P{G;u0 echo 1 > /proc/sys/net/ipv
导入论坛 引用链接 收藏 分享给好友 推荐到圈子 管理 举报
TAG:
标题搜索
日历
|
|||||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
| 1 | 2 | 3 | 4 | 5 | 6 | ||||
| 7 | 8 | 9 | 10 | 11 | 12 | 13 | |||
| 14 | 15 | 16 | 17 | 18 | 19 | 20 | |||
| 21 | 22 | 23 | 24 | 25 | 26 | 27 | |||
| 28 | 29 | 30 | 31 | ||||||
数据统计
- 访问量: 65354
- 日志数: 3708
- 建立时间: 2008-04-12
- 更新时间: 2008-08-15

