防火墙和NAT
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
防火墙与NAT的配置与管理
防火墙概述 包过滤防火墙原理 Iptables配置防火墙 NAT概述 NAT的实现
结束
Linux下的包过滤防火墙管理工具 下的包过滤防火墙管理工具
从1.1内核开始,Linux就已经具有包过滤功能了,随着Linux内核版本的 不断升级Linux下的包过滤系统经历了如下3个阶段:
返回Hale Waihona Puke Baidu
19.5.2 NAT与防火墙
防火墙是基于网络层的安全系统,在网络之间执行访问控制策略。 防火墙对流经它的通信数据进行分析,并能够过滤掉一些有攻击特 征的数据。防火墙可以关闭不使用的端口,禁止特定端口的通信。 还可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有 通信。
返回
19.5.3 安全问题
19.1 NAT概述
19.1.1 NAT的工作原理
19.1.2 NAT的分类
返回
结束
19.1.1 NAT的工作原理
NAT是将一个地址段映射到另一个地址段的标准方法。NAT根据 RFC 1631开发的IETF标准,允许一个IP地址段以一个公有IP地址出 现在Internet上。NAT可以将内部网络中的所有节点的地址转换成一 个IP地址,反之亦然。
包的处理方式
Iptables –A INPUT –p icmp –j DROP 处理方式:drop丢弃、accept 接受、 reject弹回 Iptables –L –n 查看 如:允许ssh
iptables -A INPUT - p tcp -d 10.1.1.1 --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp -s 10.1.1.1 --sport 22 -j ACCEPT
如果单纯使用NAT技术,还会遇到以下方面的安全问题: NAT只对地址进行转换而不进行其他操作,因此,在建立了与外部 网络的连接时,NAT不会阻止任何从外部返回的恶意破坏信息。 虽然NAT隐藏了端到端的IP地址,但并不隐藏主机信息,这一问题 是NAT技术明显的安全隐患。 Internet上的恶意攻击通常针对机器的“公用端口”,如HTTP的80 端口、FTP的21端口和POP的110端口等。虽然NAT可以屏蔽不向外 部网络开放的端口,但针对面向公用端口的攻击,NAT是无能为力 的。
返回
19.1.2 NAT的分类
NAT按照所采用的地址转换技术可以分为三类,即静态NAT,动态 NAT和端口NAT。静态NAT的设置最为简单,内部网络中的每个主 机都被永久映射成外部网络中的某个合法的地址。动态NAT则是在 外部网络中定义了一系列的合法地址,采用动态分配的方法映射到 内部网络。这一系列外部网络的合法地址放在地址池中,因此动态 NAT也常被称为NAT池。端口NAT则是把内部地址映射到外部网络 的一个IP地址的不同端口上。根据不同的需要,各种NAT方案有利 有弊,本书在19.3节具体介绍这三种不同的地址转换方式。
返回
19.2 NAT的地址概念
19.2.1 内部本地地址 19.2.2 内部全局地址 19.2.3 外部本地地址 19.2.4 外部全局地址 返回 结束
19.2.1 内部本地地址
内部本地地址(Inside Local IP Address)是指在内部网上分配到一 个主机的IP地址。这个地址一般不是由网络信息中心NIC或服务提 供商所分配的合法IP地址,而是私有地址。
返回
返回
19.4 NAT配置实例
19.4.1 实例模型 19.4.2 配置NAT服务器 19.4.3 配置NAT客户端
返回
结束
19.4.1 实例模型
在Linux和Windows环境下配置NAT的实例模型如下。
返回
NAT转换
19.4.2 配置SNAT服务器
Source NAT在数据包送出之前改变数据包的源地址,参数如下: -j SNAT 定义SNAT --to-source 指定转换后的源地址[:port],可以简写成--to [:port],端口,是一个可选项,仅在指明TCP或UDP协议时使用 -o 出口接口(outgoing interface) 举例: 把数据包源地址转换为 1.2.3.4. iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
• • •
在2.0的内核中,采用ipfwadm来操作内核包过滤规则。 在2.2的内核中,采用ipchains来控制内核包过滤规则。 在2.4的内核中,采用一个全新的内核包过滤管理工具——iptables。
现在最新Linux内核版本是2.4.1,在2.4内核中不再使用ipchains,而是采 用一个全新的内核包过滤管理工具--iptables。这个全新的内核包过滤工 具将使用户更易于理解其工作原理,更容易被使用,当然也将具有更为强 大的功能。 iptables作为一个管理内核包过滤的工具,iptables 可以加入、插入或删 除核心包过滤表格(链)中的规则。实际上真正来执行这些过滤规则的是 Netfilter(Linux 核心中一个通用架构)及其相关模块(如iptables模块和 nat模块等)。
返回
19.2.2 内部全局地址
内部全局地址(Inside Global IP Address)是指合法的IP地址(由网 络信息中心NIC或服务提供商分配)。
返回
19.2.3 外部本地地址
外部本地地址(Outside Local IP Addresss)是指外部网络的主机地 址,属于外部网络的私有地址。
配置DNAT
Destination NAT,改变数据包中目的地址的值。参数如下: -j DNAT 定义DNAT --to-destination[:port] 指定转换后的目标地址[:port],可以简写成--to [:port],端口,是一个可选项,仅在指明TCP或UDP协议时使用 -i 入口接口 (incoming interface) 举例: 转换数据包目标地址为 5.6.7.8 iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8 转换数据包目标地址为 5.6.7.8, 5.6.7.9 or 5.6.7.10. iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10
包过滤原理
入站包 路由选择 FORWARD链 出站包
INPUT链
OUTPUT链
本地处理进程
包过滤原理
1)如果数据包的目的地址是本机,则系统将数据包送往INPUT链, 如果通过规则检查,则该包被发给相应的本地进程处理;如果没通 过规则检查,系统就会将这个包丢弃; (2)如果数据包的目的地址不是本机,也就是说,这个包将被转 发,则系统将数据包送往FORWARD链,如果通过规则检查,则该 包被发给相应的本地进程处理;如果没通过规则检查,系统就会将 这个包丢掉; (3)如果数据包是由本地系统进程产生的,则系统将其送往 OUTPUT链,如果通过规则检查,则该包被发给相应的本地进程处 理;如果没通过规则检查,系统就会将这个包丢掉。
配置DNAT
改变WWW访问请求的目标地址到5.6.7.8的8080端口 iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 \ -j DNAT --to 192.168.0.2:8080 重定向(Redirection) 重定向是Destination NAT的一个特例。比如我们经常提到的squid透 明**是把客户端对80端口的请求(WWW请求)重定向送到squid** : iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 \ -j REDIRECT --to-port
Iptables管理防火墙
Iptables –help |more 查看帮助 改变默认策略 iptables –P INPUT|FORWARD|OUTPUT DROP 保存:系统启动时会加载此文件种的配置 service Iptables save或iptables-save>/etc/sysconfig/iptables 开启转发功能: echo 1 > /proc/sys/net/ipv4/ip_forward 若要永久生效:vi/etc/sysctl.conf 更改net.ipv4.ip_forward=1
返回
配置SNAT
SNAT配置举例: 1.把数据包源地址转换为1.2.3.4, 1.2.3.5 或 1.2.3.6 iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6 2.把数据包源地址转换为1.2.3.4, 使用端口范围是1-1023 iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023 伪装(Masquerading) 伪装是Source NAT的一种特例,常用在诸如拨号上网等使用动态IP地 址的情况下: 伪装所有通过ppp0送出的数据包 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE 注:有固定IP地址的时候也可以使用IP伪装
19.4.3 配置NAT客户端
1. Windows中的NAT客户端配置 2. Linux中的NAT客户端配置
返回
19.5 NAT的安全问题
19.5.1 NAT与代理服务
19.5.2 NAT与防火墙 19.5.2 NAT与防火墙
返回
结束
19.5.1 NAT与代理服务
用户经常把NAT和代理服务相混淆,然而两者是有很大区别的。 NAT服务器对源机器和目标机器都是透明的(用户看不到),地址 转换只在网络边界进行。 而代理服务器是不透明的,源机器知道要通过代理服务器发出访问 请求,并且,需要在源机器上将目标机器设置为代理服务器,将数 据直接发送到代理服务器,由代理服务器将数据转发。
返回
19.2.4 外部全局地址
外部全局地址(Outside Global IP Addresss)是指外部网络主机的合 法地址。
返回
19.3 NAT地址转换方式
19.3.1 静态地址转换 19.3.2 动态地址转换 19.3.3 端口地址转换
返回
结束
19.3.1 静态地址转换
静态地址转换过程如下: 在NAT服务器上建立静态NAT映射表。当内部主机(IP地址为 192.168.10.122)需要建立条到Intemet的会话连接时,首先将请求 发送到NAT服务器上。NAT服务器接收到请求后,会根据接收到的 请求数据包检查NAT表。
返回
19.3.2 动态地址转换
动态地址转换同样也是讲内部本地地址与内部全局地址进行一一转 换,但是,动态的转换是从内部全局地址池中选择一个未使用的地 址,与内部本地地址进行转。
返回
19.3.3 端口地址转换
端口地址转换本质上也是一种动态地址转换技术,但允许多个内部 本地地址公用一个内部全局地址。端口地址转换适用于仅有少量内 部全局地址,却需要经常有多个用户连接外部网络的企业或机构.
防火墙概述 包过滤防火墙原理 Iptables配置防火墙 NAT概述 NAT的实现
结束
Linux下的包过滤防火墙管理工具 下的包过滤防火墙管理工具
从1.1内核开始,Linux就已经具有包过滤功能了,随着Linux内核版本的 不断升级Linux下的包过滤系统经历了如下3个阶段:
返回Hale Waihona Puke Baidu
19.5.2 NAT与防火墙
防火墙是基于网络层的安全系统,在网络之间执行访问控制策略。 防火墙对流经它的通信数据进行分析,并能够过滤掉一些有攻击特 征的数据。防火墙可以关闭不使用的端口,禁止特定端口的通信。 还可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有 通信。
返回
19.5.3 安全问题
19.1 NAT概述
19.1.1 NAT的工作原理
19.1.2 NAT的分类
返回
结束
19.1.1 NAT的工作原理
NAT是将一个地址段映射到另一个地址段的标准方法。NAT根据 RFC 1631开发的IETF标准,允许一个IP地址段以一个公有IP地址出 现在Internet上。NAT可以将内部网络中的所有节点的地址转换成一 个IP地址,反之亦然。
包的处理方式
Iptables –A INPUT –p icmp –j DROP 处理方式:drop丢弃、accept 接受、 reject弹回 Iptables –L –n 查看 如:允许ssh
iptables -A INPUT - p tcp -d 10.1.1.1 --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp -s 10.1.1.1 --sport 22 -j ACCEPT
如果单纯使用NAT技术,还会遇到以下方面的安全问题: NAT只对地址进行转换而不进行其他操作,因此,在建立了与外部 网络的连接时,NAT不会阻止任何从外部返回的恶意破坏信息。 虽然NAT隐藏了端到端的IP地址,但并不隐藏主机信息,这一问题 是NAT技术明显的安全隐患。 Internet上的恶意攻击通常针对机器的“公用端口”,如HTTP的80 端口、FTP的21端口和POP的110端口等。虽然NAT可以屏蔽不向外 部网络开放的端口,但针对面向公用端口的攻击,NAT是无能为力 的。
返回
19.1.2 NAT的分类
NAT按照所采用的地址转换技术可以分为三类,即静态NAT,动态 NAT和端口NAT。静态NAT的设置最为简单,内部网络中的每个主 机都被永久映射成外部网络中的某个合法的地址。动态NAT则是在 外部网络中定义了一系列的合法地址,采用动态分配的方法映射到 内部网络。这一系列外部网络的合法地址放在地址池中,因此动态 NAT也常被称为NAT池。端口NAT则是把内部地址映射到外部网络 的一个IP地址的不同端口上。根据不同的需要,各种NAT方案有利 有弊,本书在19.3节具体介绍这三种不同的地址转换方式。
返回
19.2 NAT的地址概念
19.2.1 内部本地地址 19.2.2 内部全局地址 19.2.3 外部本地地址 19.2.4 外部全局地址 返回 结束
19.2.1 内部本地地址
内部本地地址(Inside Local IP Address)是指在内部网上分配到一 个主机的IP地址。这个地址一般不是由网络信息中心NIC或服务提 供商所分配的合法IP地址,而是私有地址。
返回
返回
19.4 NAT配置实例
19.4.1 实例模型 19.4.2 配置NAT服务器 19.4.3 配置NAT客户端
返回
结束
19.4.1 实例模型
在Linux和Windows环境下配置NAT的实例模型如下。
返回
NAT转换
19.4.2 配置SNAT服务器
Source NAT在数据包送出之前改变数据包的源地址,参数如下: -j SNAT 定义SNAT --to-source 指定转换后的源地址[:port],可以简写成--to [:port],端口,是一个可选项,仅在指明TCP或UDP协议时使用 -o 出口接口(outgoing interface) 举例: 把数据包源地址转换为 1.2.3.4. iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
• • •
在2.0的内核中,采用ipfwadm来操作内核包过滤规则。 在2.2的内核中,采用ipchains来控制内核包过滤规则。 在2.4的内核中,采用一个全新的内核包过滤管理工具——iptables。
现在最新Linux内核版本是2.4.1,在2.4内核中不再使用ipchains,而是采 用一个全新的内核包过滤管理工具--iptables。这个全新的内核包过滤工 具将使用户更易于理解其工作原理,更容易被使用,当然也将具有更为强 大的功能。 iptables作为一个管理内核包过滤的工具,iptables 可以加入、插入或删 除核心包过滤表格(链)中的规则。实际上真正来执行这些过滤规则的是 Netfilter(Linux 核心中一个通用架构)及其相关模块(如iptables模块和 nat模块等)。
返回
19.2.2 内部全局地址
内部全局地址(Inside Global IP Address)是指合法的IP地址(由网 络信息中心NIC或服务提供商分配)。
返回
19.2.3 外部本地地址
外部本地地址(Outside Local IP Addresss)是指外部网络的主机地 址,属于外部网络的私有地址。
配置DNAT
Destination NAT,改变数据包中目的地址的值。参数如下: -j DNAT 定义DNAT --to-destination[:port] 指定转换后的目标地址[:port],可以简写成--to [:port],端口,是一个可选项,仅在指明TCP或UDP协议时使用 -i 入口接口 (incoming interface) 举例: 转换数据包目标地址为 5.6.7.8 iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8 转换数据包目标地址为 5.6.7.8, 5.6.7.9 or 5.6.7.10. iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10
包过滤原理
入站包 路由选择 FORWARD链 出站包
INPUT链
OUTPUT链
本地处理进程
包过滤原理
1)如果数据包的目的地址是本机,则系统将数据包送往INPUT链, 如果通过规则检查,则该包被发给相应的本地进程处理;如果没通 过规则检查,系统就会将这个包丢弃; (2)如果数据包的目的地址不是本机,也就是说,这个包将被转 发,则系统将数据包送往FORWARD链,如果通过规则检查,则该 包被发给相应的本地进程处理;如果没通过规则检查,系统就会将 这个包丢掉; (3)如果数据包是由本地系统进程产生的,则系统将其送往 OUTPUT链,如果通过规则检查,则该包被发给相应的本地进程处 理;如果没通过规则检查,系统就会将这个包丢掉。
配置DNAT
改变WWW访问请求的目标地址到5.6.7.8的8080端口 iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 \ -j DNAT --to 192.168.0.2:8080 重定向(Redirection) 重定向是Destination NAT的一个特例。比如我们经常提到的squid透 明**是把客户端对80端口的请求(WWW请求)重定向送到squid** : iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 \ -j REDIRECT --to-port
Iptables管理防火墙
Iptables –help |more 查看帮助 改变默认策略 iptables –P INPUT|FORWARD|OUTPUT DROP 保存:系统启动时会加载此文件种的配置 service Iptables save或iptables-save>/etc/sysconfig/iptables 开启转发功能: echo 1 > /proc/sys/net/ipv4/ip_forward 若要永久生效:vi/etc/sysctl.conf 更改net.ipv4.ip_forward=1
返回
配置SNAT
SNAT配置举例: 1.把数据包源地址转换为1.2.3.4, 1.2.3.5 或 1.2.3.6 iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6 2.把数据包源地址转换为1.2.3.4, 使用端口范围是1-1023 iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023 伪装(Masquerading) 伪装是Source NAT的一种特例,常用在诸如拨号上网等使用动态IP地 址的情况下: 伪装所有通过ppp0送出的数据包 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE 注:有固定IP地址的时候也可以使用IP伪装
19.4.3 配置NAT客户端
1. Windows中的NAT客户端配置 2. Linux中的NAT客户端配置
返回
19.5 NAT的安全问题
19.5.1 NAT与代理服务
19.5.2 NAT与防火墙 19.5.2 NAT与防火墙
返回
结束
19.5.1 NAT与代理服务
用户经常把NAT和代理服务相混淆,然而两者是有很大区别的。 NAT服务器对源机器和目标机器都是透明的(用户看不到),地址 转换只在网络边界进行。 而代理服务器是不透明的,源机器知道要通过代理服务器发出访问 请求,并且,需要在源机器上将目标机器设置为代理服务器,将数 据直接发送到代理服务器,由代理服务器将数据转发。
返回
19.2.4 外部全局地址
外部全局地址(Outside Global IP Addresss)是指外部网络主机的合 法地址。
返回
19.3 NAT地址转换方式
19.3.1 静态地址转换 19.3.2 动态地址转换 19.3.3 端口地址转换
返回
结束
19.3.1 静态地址转换
静态地址转换过程如下: 在NAT服务器上建立静态NAT映射表。当内部主机(IP地址为 192.168.10.122)需要建立条到Intemet的会话连接时,首先将请求 发送到NAT服务器上。NAT服务器接收到请求后,会根据接收到的 请求数据包检查NAT表。
返回
19.3.2 动态地址转换
动态地址转换同样也是讲内部本地地址与内部全局地址进行一一转 换,但是,动态的转换是从内部全局地址池中选择一个未使用的地 址,与内部本地地址进行转。
返回
19.3.3 端口地址转换
端口地址转换本质上也是一种动态地址转换技术,但允许多个内部 本地地址公用一个内部全局地址。端口地址转换适用于仅有少量内 部全局地址,却需要经常有多个用户连接外部网络的企业或机构.