《Linux防火墙(第4版)》——2.5 过滤传出数据包

2.5 过滤传出数据包

如果您的环境代表了一个可信赖的环境,那么过滤传出数据包可能看上去并不像过滤传入数据包那样重要。您的系统不会对无法穿过防火墙的消息进行响应。住宅站点通常采用这种方式。然而,哪怕是对住宅站点来说,对称的过滤也很重要,尤其是当防火墙保护着运行微软公司Windows系统的计算机。对于商用站点来说,传出过滤的重要性是毫无争议的。

如果您的防火墙保护着由微软公司Windows系统构成的局域网,那么控制传出流量将变得更加重要。被盗用的Windows计算机已在历史上(并将继续)被用于协助DoS攻击和其他对外部的攻击。特别是基于这个原因,对离开您的网络的数据包进行过滤是十分重要的。

过滤传出消息也能够让您运行局域网服务而不致将它泄漏到互联网中,这些数据包不属于那里。这不仅仅是禁止外部访问本地局域网服务的问题。也是不要将本地系统的信息广播到互联网的问题。例子是如果您在运行着本地的DHCPD、NTP、SMB或者其他用于内部的服务。其他令人讨厌的服务可能在广播wall或syslogd消息。

一个相关的源头是某些个人电脑软件,它们有时会忽略互联网服务端口协议和保留的分配。这相当于一个连接到互联网的计算机上运行着面向局域网使用而设计的程序。

最后的原因就是简单地保持本地的流量本地化,那些不应离开局域网但却可以这样做的流量。保持本地流量本地化从安全角度来说是一个好主意,但也是保护带宽的一种手段。

2.5.1 本地源地址过滤
基于源地址进行传出数据包过滤是容易的。对于小型站点或连接到互联网的单一计算机来说,源地址总是您计算机正常使用时的IP地址。没有原因应允许一个拥有其他源地址的传出数据包传出,防火墙应该阻止它。

对于那些IP地址由他们的ISP动态分配的人来说,在地址分配阶段存在短暂的异常。这个异常针对DHCP,主机广播消息时使用0.0.0.0作为它的源地址。

对于那些在局域网中,而防火墙计算机使用动态分配的IP地址的人来说,限制传出数据包包含防火墙计算机源地址的行为是强制性的。它能避免许多常见的配置错误,这些错误对于远程主机来说像是源地址欺骗或非法源地址。

如果您的用户或他们的软件不是100%值得信赖的,那么保证本地流量仅包含合法的、本地地址是很重要的,它能避免被用来作为源地址欺骗参与到DoS攻击中。

最后的一点尤其重要。RFC 2827,“Network Ingress Filtering:Defeating Denial of Service AttacksWhich Employ IP Source Address Spoofing”(更新的RFC 3704,“Ingress Filtering for Multihomed Networks”)是讨论这一点的当前的“最佳实践”。理想情况下,每个路由器都应过滤明显非法的源地址并保证离开本地网络的流量仅包含属于本地网络的可路由的源地址。

2.5.2 远程目的地址过滤
同传入数据包过滤一样,您可能想要只允许特定种类的寻址到特定远程网络或个人计算机的传出数据包通过。这种情况下,防火墙规则将定义特定的IP地址或一个有限目的IP地址的范围,仅有这些数据包能够被允许通过。

第一类由目的地址过滤的传出数据包是去往您所联系的远程服务器的数据包。尽管有些数据包,例如那些发往Web或FTP服务器的,可能去往互联网的任何角落,但其他远程服务只会由您的ISP或特定的受信任的主机合法地提供。可能仅由您的ISP提供的服务的例子是邮件服务(例如SMTP或POP3)、DNS服务、DHCP动态IP地址分配和Usenet新闻服务。

第二类由目的地址过滤的传出数据包是发往远程客户端的数据包,这些客户端访问您的站点提供的服务。再次的,尽管一些传出服务连接,例如从您本地Web服务发出的响应可能会到达任何地方,但其他本地服务只会向一少部分受信任的远程站点或朋友们提供。受限制的本地服务的例子是:telnet、SSH、基于Samba的服务、通过portmap访问的RPC服务。防火墙规则不仅拒绝针对这些服务的到来的连接,而且会拒绝从这些服务向任何人传出的响应。

2.5.3 本地源端口过滤
“显式地定义您网络中的哪个服务端口能够被用于传出连接”有两个目的:一个是针对您的客户端程序,另一个则是针对您的服务器程序。指定您传出连接允许的源端口有助于保证您的程序正确地工作,它也能保护其他人使其不受任何不应传递至互联网的本地网络流量的影响。

从您的本地客户端发起的传出连接将总是从非特权源端口号发出。在防火墙规则中将您的客户端限制为非特权端口有助于通过保证您的客户端程序按预期运行以保护其他人免受您这端存在的潜在的错误的影响。

从您的本地服务器程序发出的传出数据包将总是从分配给它们的服务端口号发出,并且只响应接收到的请求。“在防火墙层次里限制您的服务器仅使用分配给它们的端口”可以保证您的服务器在协议层面正确地工作。更重要的是,它能帮助保护任何您可能从外部访问的私有的本地网络服务。它还能保护远程站点免受本应限制在您的本地系统的网络流量的打扰。

2.5.4 远程目的端口过滤
您的本地客户端程序被设计用来连接到通过已分配的服务端口提供服务的网络服务器。从这个角度看,限制您的本地客户端仅连接到相关的服务器服务端口号能保证协议的正确性。限制您的客户端连接到特定的目标端口还有一些其他的目的:第一,它帮助防止本地的、私有网络客户端无意中试图访问互联网上的服务器。第二,它能禁止传出的错误,端口扫描和其他可能来源于您的站点的恶作剧。

您的本地服务器程序将几乎总是参与到由非特权端口发起的连接中。防火墙规则将限制您服务器的流量仅能传出到非特权目的端口。

2.5.5 传出TCP连接状态过滤
传出的TCP数据包接受规则可以使用TCP连接相关的连接状态,就像传入规则做的那样。所有的TCP连接都遵循同样的连接状态集合,这在客户端和服务器间可能会有不同。

从本地客户端传出的TCP数据包将在第一个发出的数据包中设置SYN标志,这是三次握手的一部分。最初的连接请求将设置SYN标志,但不设置ACK标志。您的本地客户端防火墙规则将允许设置了SYN标志或ACK标志的传出数据包。

从本地服务器传出的数据包将总是响应由远程客户端程序发起的连接请求。每个从您的服务器发出的数据包都会设置ACK标志。您的本地服务器防火墙规则将要求所有从您的服务器传出的数据包都设置了ACK标志。

时间: 2024-09-12 03:38:12

《Linux防火墙(第4版)》——2.5 过滤传出数据包的相关文章

《Linux防火墙(第4版)》——导读

前言 欢迎阅读本书.本书介绍了在运行Linux的计算机上建立防火墙所需要的各方面内容.在开始介绍Linux下的防火墙iptables以及最新的nftables之前,本书会介绍一些基础的内容,包括网络.IP以及安全. 本书是构建Linux防火墙的权威指南,包括如何使用Linux iptables/nftables来实现防火墙安全的主题.本书共分三大部分.第1部分为数据包过滤以及基本的安全措施,其内容有:数据包过滤防火墙的预备知识.数据包过滤防火墙概念.传统的Linux防火墙管理程序iptables

《Linux防火墙(第4版)》——2.4 过滤传入的数据包

2.4 过滤传入的数据包 外部网卡I/O对中的输入端.输入规则集,对于保护您的站点而言,是更值得注意的.就像前面提到的那样,您能够基于源地址.目的地址.源端口.目的端口.TCP状态标志以及其他标准进行过滤. 您将在后面的章节中了解到所有这些信息. 2.4.1 远程源地址过滤 在数据包层面,唯一确定IP数据包发送者的方式便是数据包报头的源地址.这个事实为源地址欺骗(source address spoofing)提供了可能,发送者将一个并非他/她真实地址的错误地址放在报文的相应源地址域里.该地址可

Linux 防火墙策略

1. inux开启防火墙端口和查看 即时生效,重启后失效  开启: service iptables start  关闭: service iptables stop  重启后生效  开启: chkconfig iptables on  关闭: chkconfig iptables off  2.开启相关端口号 在开启了防火墙时,做如下设置,开启相关端口  修改/etc/sysconfig/iptables 文件,添加以下内容:  -A RH-Firewall-1-INPUT -m state

《Wireshark数据包分析实战(第2版)》—第6章6.5节互联网控制消息协议

6.5 互联网控制消息协议互联网控制消息协议(Internet Control Message Protocol, ICMP)是TCP/IP协议族中的一个效用协议,负责提供在TCP/IP网络上设备.服务以及路由器可用性的信息.大多数网络检修技巧和工具都是基于常用的ICMP消息类型.ICMP在RFC792中定义. 6.5.1 ICMP头ICMP是IP的一部分并依赖IP来传递消息.ICMP头相对较小并根据用途而改变.如图6-29所示,ICMP头包含了以下几个域. 类型(Type):ICMP消息基于R

《Linux防火墙(第4版)》——1.5 主机名和IP地址

1.5 主机名和IP地址 人们喜欢使用词语来命名事物,例如命名一个计算机为mycomputer.mydomain.example.com.从技术上严格来说,这个命名并不指这台计算机,而是这台计算机中的网络接口.如果这台计算机有多个网卡,每个网卡将拥有不同的名字以及地址,看上去可能是在不同的网络和不同的子域中. 主机名的各部分间使用点进行分割.例如mycomputer.mydomain.example.com,最左边的部分mycomputer,是主机名,而.mydomain..example以及.

《Linux防火墙(第4版)》——第1章 数据包过滤防火墙的预备知识 1.1OSI网络模型

第1部分 数据包过滤以及基本安全措施 第1章 数据包过滤防火墙的预备知识 一个小型站点可能会通过多种方式连接到互联网,如T1专线.电缆调制解调器.DSL.无线.PPP.综合业务数字网(ISDN)或者其他的方式.直接连接到互联网的计算机通常是安全问题的焦点.无论是一台计算机还是由连接起来的多台计算机所组成的局域网(LAN),对于小型站点来说,最初的焦点将是直接连接到互联网的那台计算机.这台计算机将被用来搭建防火墙. 防火墙(firewall)这个术语根据其实现方式和使用目的不同而有多种不同的含义.

《Linux防火墙(第4版)》——2.6 私有网络服务VS公有网络服务

2.6 私有网络服务VS公有网络服务 最容易因疏忽导致未经请求的入侵即是允许外部访问那些被设计为只用于LAN的本地服务.一些服务,如果仅仅在本地提供,绝不应该跨越您的本地局域网和互联网的界限.如果这样的服务在您的局域网外可用,那么有些服务会骚扰您的邻居,有些会提供您应该保密的信息,有些则代表着明显的安全漏洞. 一些最早期的网络服务,尤其是被设计用于本地的分享并且简化在受信任的环境里跨多个实验室的计算机间访问的r-*-based.后来的一些服务用于接入互联网,但它们被设计于一个互联网基本是由学者和

《Linux防火墙(第4版)》——1.2 IP协议

1.2 IP协议 IP协议是互联网运行的基础.IP层和其他层的协议一起为不计其数的应用提供通信.IP是无连接的协议,它提供第三层的路由功能. 1.2.1 IP编址和子网划分 也许您已经有所了解,但我觉得仍有必要介绍下,IPv4的IP地址由4个8比特的数字组成,它们用点进行分隔,即"点分十进制"记法.而IPv6的IP地址有128比特,通常以8组由冒号分隔的十六进制数表示.尽管看上去每个人都知道或至少见到过IP地址,但只有少之又少的人了解子网划分和子网掩码,它们是IP编址方案中一个重要的组

《Linux防火墙(第4版)》——2.3 对一个数据包的驳回(Rejecting)VS拒绝(Denying)

2.3 对一个数据包的驳回(Rejecting)VS拒绝(Denying) 在iptables和nftables中的Netfilter防火墙机制给予您驳回或丢弃数据包的选项.那么,二者有何不同?如图2.5所示,当一个数据包被驳回(reject)时,该数据包被丢弃,同时一个ICMP错误消息将被返回到发送方.当一个数据包被丢弃时,它仅仅是被简单地丢弃而已,不会向发送者进行通知. 静静地丢掉数据包通常是更好的选择,共有三个原因.第一,发送一个错误回应会增加网络流量.大多数被丢弃的数据包被丢弃是因为它们