1
Linux服务器配置与应用
1.11.4.3 8.4.3 iptables命令

第8章 网络安全

教学资源

学习目标

学习计算机网络安全知识

了解网络安全应对措施

学习防火墙技术

本章单词

请在预习前完成下列单词,并将单词写在横线上。

① Security([sɪˈkjʊərəti] 安全):____________________________________

② header([ˈhedə(r)] 数据包头):_____________________________________

预习任务

1.《网络安全审查办法》于____年___月___号发布、____年___月___号起实施。

2.iptabels使用的状态有( )。(选择多项)

A.ESTABLISHED

B.INVALID

C.NEW

D.RELATED

8.1 计算机网络安全基础知识

8.1.1 计算机网络安全介绍

计算机网络安全是指利用网络管理控制和技术措施,保证在一个网络环境里,数据的保密性、完整性及可使用性受到保护。计算机网络安全包括两个方面,即物理安全和逻辑安全。物理安全指系统设备及相关设施受到物理保护,免于破坏、丢失等。逻辑安全包括信息的完整性、保密性和可用性。

2020年4月27日,国家互联网信息办公室、国家发展和改革委员会、工业和信息化部、公安部、国家安全部、财政部、商务部、中国人民银行、国家市场监督管理总局、国家广播电视总局、国家保密局、国家密码管理局共12个部门联合发布《网络安全审查办法》,于2020年6月1日起实施。

计算机网络安全不仅包括组网的硬件、管理控制网络的软件,也包括共享的资源,快捷的网络服务,所以定义网络安全应考虑涵盖计算机网络所涉及的全部内容。参照ISO给出的计算机安全定义,认为计算机网络安全是指:“保护计算机网络系统中的硬件,软件和数据资源,不因偶然或恶意的原因遭到破坏、更改、泄露,使网络系统连续可靠性地正常运行,网络服务正常有序。”

8.1.2 网络攻击

对计算机信息构成不安全的因素很多,其中包括人为的因素、自然的因素和偶发的因素。其中,人为因素是指,一些不法之徒利用计算机网络存在的漏洞,或者潜入计算机房,盗用计算机系统资源,非法获取重要数据、篡改系统数据、破坏硬件设备、编制计算机病毒。人为因素是对计算机信息网络安全威胁最大的因素。计算机网络不安全因素主要表现在几个方面:保密性,信息不泄露给非授权用户、实体或过程,或供其利用的特性;完整性,数据未经授权不能进行改变的特性(即信息在存储或传输过程中保持不被修改、不被破坏和丢失的特性);可用性,可被授权实体访问并按需求使用的特性(即当需要时能否存取所需的信息),例如网络环境下拒绝服务、破坏网络和有关系统的正常运行等都属于对可用性的攻击;可控性,对信息的传播及内容具有控制能力;可审查性,出现的安全问题时提供依据与手段。

互联网对全世界都是开放的网络,任何单位或个人都可以在网上方便地传输和获取各种信息,互联网这种具有开放性、共享性、国际性的特点就对计算机网络安全提出了挑战。互联网的不安全性主要有:网络的技术是全开放的,使得网络所面临的攻击来自多方面。或是来自物理传输线路的攻击,或是来自对网络通信协议的攻击,以及对计算机软件、硬件的漏洞实施攻击;意味着对网络的攻击不仅是来自本地网络的用户,还可以是互联网上其他国家的黑客,所以,网络的安全面临着国际化的挑战;未受监督的监控或间谍软件,由于现代计算机软件是极端复杂的,现有的很多应用软件和操作系统都存在各种各样的漏洞。间谍软件可以利用这些漏洞侵入到你的计算机。理论上你不可能防止这种侵入,当你在冲浪网页,点击一张小图片可能给你带来可怕的间谍软件。除给你的操作系统打上必要的补丁,尽可能不去不安全或不熟悉的站点是减少这种侵入的有效方法。计算机网络本身存在一些固有的弱点(脆弱性),非授权用户利用这些脆弱性可对网络系统进行非法访问,这种非法访问会使系统内数据的完整性受到威胁,也可能使信息遭到破坏而不能继续使用,更为严重的是有价值的信息被窃取而不留任何痕迹。

网络系统的脆弱性主要表现为几方面:

网络操作系统体系结构本身就是不安全的。为了系统集成和系统扩充的需要,操作系统采用动态联接结构,系统的服务和I/O操作都可以补丁方式进行升级和动态联接。这种方式虽然为厂商和用户提供了方便,但同时也为黑客提供了入侵的方便(漏洞),这种动态联接也是计算机病毒产生的温床。操作系统可以创建进程,而且这些进程可在远程节点上被创建与激活,更加严重的是被创建的进程又可以继续创建其他进程。这样,若黑客在远程将“间谍”程序以补丁方式附在合法用户,特别是超级用户上,就能摆脱系统进程与作业监视程序的检测。操作系统为维护方便而预留的无口令入口和提供的远程过程调用(RPC)服务都是黑客进入系统的通道。操作系统的另一个安全漏洞就是存在超级用户,如果入侵者得到了超级用户口令,整个系统将完全受控于入侵者。

计算机系统本身的脆弱性。计算机系统的硬件和软件故障可影响系统的正常运行,严重时系统会停止工作。系统的硬件故障通常电源故障、芯片主板故障、驱动器故障等;系统的软件故障通常有操作系统故障、应用软件故障和驱动程序故障等。

电磁泄漏。计算机网络中的网络端口、传输线路和各种处理机都有可能因屏蔽不严或未屏蔽而造成电磁信息辐射,从而造成有用信息甚至机密信息泄漏。

数据的可访问性。进入系统的用户可方便地复制系统数据而不留任何痕迹;网络用户在一定的条件下,可以访问系统中的所有数据,并可将其复制、删除或破坏掉。

通信系统和通信协议的弱点。网络系统的通信线路面对各种威胁显得非常脆弱,非法用户可对线路进行物理破坏、搭线窃听、通过未保护的外部线路访问系统内部信息等。数据库系统的脆弱性。由于数据集库管理系统对数据库的管理是建立在分级管理的概念上,因此,DBMS的安全必须与操作系统的安全配套,这无疑是一个先天的不足之处。黑客通过探访工具可强行登录或越权使用数据库数据,可能会带来巨大损失;数据加密往往与DBMS的功能发生冲突或影响数据库的运行效率。由于服务器/浏览器(B/S)结构中的应用程序直接对数据库进行操作,所以,使用B/S结构的网络应用程序的某些缺陷可能威胁数据库的安全。国际通用的数据库如Oracle、sql server、mysql、db2存在大量的安全漏洞,以Oracle为例,仅CVE公布的数据库漏洞就不少于2000个,同时我们在使用数据库的时候,存在补丁未升级、权限提升、缓冲区溢出等问题,数据库安全也由于这些存在的漏洞让安全部门越来越重视。

网络存储介质的脆弱:各种存储器中存储大量的信息,这些存储介质很容易被盗窃或损坏,造成信息的丢失;存储器中的信息也很容易被复制而不留痕迹。

网络系统面临的威胁主要来自外部的人为影响和自然环境的影响,它们包括对网络设备的威胁和对网络中信息的威胁。这些威胁的主要表现有:非法授权访问,假冒合法用户,病毒破坏,线路窃听,黑客入侵,干扰系统正常运行,修改或删除数据等。这些威胁大致可分为无意威胁和故意威胁两大类。

无意威胁是在无预谋的情况下破坏系统的安全性、可靠性或信息的完整性。无意威胁主要是由一些偶然因素引起,如软、硬件的机能失常,人为误操作,电源故障和自然灾害等。

人为的失误现象有:人为误操作,管理不善而造成系统信息丢失、设备被盗、发生火灾、水灾,安全设置不当而留下的安全漏洞,用户口令不慎暴露,信息资源共享设置不当而被非法用户访问等。

自然灾害威胁如地震、风暴、泥石流、洪水、闪电雷击、虫鼠害及高温、各种污染等构成的威胁。

故意威胁实际上就是“人为攻击”。由于网络本身存在脆弱性,因此总有某些人或某些组织想方设法利用网络系统达到某种目的,如从事工业、商业或军事情报搜集工作的“间谍”,对相应领域的网络信息是最感兴趣的,他们对网络系统的安全构成了主要威胁。攻击者对系统的攻击范围,可从随便浏览信息到使用特殊技术对系统进行攻击,以便得到有针对性的信息。这些攻击又可分为被动攻击和主动攻击。

被动攻击是指攻击者只通过监听网络线路上的信息流而获得信息内容,或获得信息的长度、传输频率等特征,以便进行信息流量分析攻击。被动攻击不干扰信息的正常流动,如被动地搭线窃听或非授权地阅读信息。被动攻击破坏了信息的保密性。

主动攻击是指攻击者对传输中的信息或存储的信息进行各种非法处理,有选择地更改、插入、延迟、删除或复制这些信息。主动攻击常用的方法有:篡改程序及数据、假冒合法用户入侵系统、破坏软件和数据、中断系统正常运行、传播计算机病毒、耗尽系统的服务资源而造成拒绝服务等。主动攻击的破坏力更大,它直接威胁网络系统的可靠性、信息的保密性、完整性和可用性。

被动攻击不容易被检测到,因为它没有影响信息的正常传输,发送和接受双方均不容易觉察。但被动攻击却容易防止,只要采用加密技术将传输的信息加密,即使该信息被窃取,非法接收者也不能识别信息的内容。

主动攻击较容易被检测到,但却难于防范。因为正常传输的信息被篡改或被伪造,接收方根据经验和规律能容易地觉察出来。除采用加密技术外,还要采用鉴别技术和其他保护机制和措施,才能有效地防止主动攻击。

被动攻击和主动攻击有以下四种具体类型:窃取,攻击者未经授权浏览了信息资源,这是对信息保密性的威胁,例如通过搭线捕获线路上传输的数据等。中断,攻击者中断正常的信息传输,使接收方收不到信息,正常的信息变得无用或无法利用,这是对信息可用性的威胁,例如破坏存储介质、切断通信线路、侵犯文件管理系统等。篡改,攻击者未经授权而访问了信息资源,并篡改了信息,这是对信息完整性的威胁,例如修改文件中的数据、改变程序功能、修改传输的报文内容等。伪造,攻击者在系统中加入了伪造的内容,这也是对数据完整性的威胁,如向网络用户发送虚假信息,在文件中插入伪造的记录等。

8.1.3 网络防范

利用虚拟网络技术,防止基于网络监听的入侵手段;利用防火墙技术保护网络免遭黑客袭击;利用病毒防护技术可以防毒、查毒和杀毒;利用入侵检测技术提供实时的入侵检测及采取相应的防护手段;安全扫描技术为发现网络安全漏洞提供了强大的支持;采用认证和数字签名技术。认证技术用以解决网络通信过程中通信双方的身份认可,数字签名技术用于通信过程中的不可抵赖要求的实现;采用VPN技术。我们将利用公共网络实现的私用网络称为虚拟私用网VPN;利用应用系统的安全技术以保证电子邮件和操作系统等应用平台的安全。

8.1.4 操作系统安全问题

操作系统是作为一个支撑软件,使得你的程序或别的应用系统在上面正常运行的一个环境。操作系统提供了很多的管理功能,主要是管理系统的软件资源和硬件资源。操作系统软件自身的不安全性,系统开发设计得不周而留下的破绽,都给网络安全留下隐患。操作系统结构体系的缺陷。操作系统本身有内存管理、CPU 管理、外设的管理,每个管理都涉及一些模块或程序,如果在这些程序里面存在问题,比如内存管理的问题,外部网络的一个连接过来,刚好连接一个有缺陷的模块,可能出现的情况是,计算机系统会因此崩溃。所以,有些黑客往往是针对操作系统的不完善进行攻击,使计算机系统,特别是服务器系统立刻瘫痪。

操作系统支持在网络上传送文件、加载或安装程序,包括可执行文件,这些功能也会带来不安全因素。网络很重要的一个功能就是文件传输功能,比如FTP,这些安装程序经常会带一些可执行文件,这些可执行文件都是人为编写的程序,如果某个地方出现漏洞,那么系统可能就会造成崩溃。像这些远程调用、文件传输,如果生产厂家或个人在上面安装监听程序,那么用户的整个传输过程、使用过程都会被别人监视到,所有的这些传输文件、加载的程序、安装的程序、执行文件,都可能给操作系统带来安全的隐患。所以,建议尽量少使用一些来历不明,或者无法证明它的安全性的软件。

操作系统不安全的一个原因在于它可以创建进程,支持进程的远程创建和激活,支持被创建的进程继承创建的权利,这些机制提供了在远端服务器上安装监听软件的条件。若将监听软件以打补丁的方式安装在一个合法用户上,特别是安装在一个特权用户上,黑客或监听软件就可以使系统进程与作业的监视程序监测不到它的存在。

操作系统有些守护进程,它是系统的一些进程,总是在等待某些事件的出现。所谓守护进程,比如用户是否按键盘或鼠标,或者别的一些处理。一些监控病毒的监控软件也是守护进程,这些进程可能是好的,比如防病毒程序,一有病毒出现就会被捕捉到。但是有些进程是一些病毒,一碰到特定的情况,比如碰到特定的设置日期,它就会对用户的硬件、系统或者是软件进行恶意破坏,这些进程就是很危险的守护进程。

操作系统会提供一些远程调用功能,所谓远程调用就是一台计算机可以调用远程一个大型服务器里面的一些程序,可以提交程序给远程的服务器执行,如telnet。远程调用要经过很多的环节,中间的通讯环节可能会出现被人监控等安全的问题。

操作系统的后门和漏洞。后门程序是指那些绕过安全控制而获取对程序或系统访问权的程序方法。在软件开发阶段,程序员利用软件的后门程序得以便利修改程序设计中的不足。一旦后门被黑客利用,或在发布软件前没有删除后门程序,容易被黑客当成漏洞进行攻击,造成信息泄密和丢失。此外,操作系统的无口令的入口,也是信息安全的一大隐患。

尽管操作系统的漏洞可以通过版本的不断升级来克服,但是系统的某一个安全漏洞就会使得系统的所有安全控制毫无价值。当发现问题到升级这段时间,一个小小的漏洞就足以使你的整个网络瘫痪掉。

数据库管理系统大量的信息存储在各种各样的数据库里面,包括我们上网看到的所有信息,数据库主要考虑的是信息方便存储、利用和管理,但在安全方面考虑得比较少。例如:授权用户超出了访问权限进行数据的更改活动;非法用户绕过安全内核,窃取信息。对于数据库的安全而言,就是要保证数据的安全可靠和正确有效,即确保数据的安全性、完整性。数据的安全性是防止数据库被破坏和非法存取;数据库的完整性是防止数据库中存在不符合语义的数据。

8.1.5 其他安全问题

计算机系统硬件和通信设施极易遭受到自然环境的影响,如:各种自然灾害(如地震、泥石流、水灾、风暴、建筑物破坏等)对计算机网络构成威胁。还有一些偶发性因素,如电源故障、设备的机能失常、软件开发过程中留下的某些漏洞等,也对计算机网络构成严重威胁。此外管理缺失、规章制度不健全、安全管理水平较低、操作失误、渎职行为等都会对计算机信息安全造成威胁。

8.2 网络安全应对措施

8.2.1 技术层面措施

对于技术方面,计算机网络安全技术主要有实时扫描技术、实时监测技术、防火墙、完整性检验保护技术、病毒情况分析报告技术和系统安全管理技术。综合起来,技术层面可以采取以下对策:建立安全管理制度。提高包括系统管理员和用户在内的人员的技术素质和职业道德修养。对重要部门和信息,严格做好开机查毒,及时备份数据,这是一种简单有效的方法;网络访问控制。访问控制是网络安全防范和保护的主要策略。它的主要任务是保证网络资源不被非法使用和访问。它是保证网络安全最重要的核心策略之一。访问控制涉及的技术比较广,包括入网访问控制、网络权限控制、目录级控制以及属性控制等多种手段;数据库的备份与恢复。数据库的备份与恢复是数据库管理员维护数据安全性和完整性的重要操作。备份是恢复数据库最容易和最能防止意外的保证方法。恢复是在意外发生后利用备份来恢复数据的操作。有三种主要备份策略:只备份数据库、备份数据库和事务日志、增量备份;应用密码技术。应用密码技术是信息安全核心技术,密码手段为信息安全提供了可靠保证。基于密码的数字签名和身份认证是当前保证信息完整性的最主要方法之一,密码技术主要包括古典密码体制、单钥密码体制、公钥密码体制、数字签名以及密钥管理;切断传播途径。对被感染的硬盘和计算机进行彻底杀毒处理,不使用来历不明的外界存储和程序,不随意下载网络可疑信息;提高网络反病毒技术能力。通过安装病毒防火墙,进行实时过滤。对网络服务器中的文件进行频繁扫描和监测,在工作站上采用防病毒卡,加强网络目录和文件访问权限的设置。在网络中,限制只能由服务器才允许执行的文件;研发并完善高安全的操作系统。研发具有高安全的操作系统,不给病毒得以滋生的温床才能更安全。

8.2.2 管理层面措施

计算机网络的安全管理,不仅要看所采用的安全技术和防范措施,而且要看它所采取的管理措施和执行计算机安全保护法律、法规的力度。只有将两者紧密结合,才能使计算机网络安全确实有效。

计算机网络的安全管理,包括对计算机用户的安全教育、建立相应的安全管理机构、不断完善和加强计算机的管理功能、加强计算机及网络的立法和执法力度等方面。加强计算机安全管理、加强用户的法律、法规和道德观念,提高计算机用户的安全意识,对防止计算机犯罪、抵制黑客攻击和防止计算机病毒干扰,是十分重要的措施。

这就要对计算机用户不断进行法制教育,包括计算机安全法、计算机犯罪法、保密法、数据保护法等,明确计算机用户和系统管理人员应履行的权利和义务,自觉遵守合法信息系统原则、合法用户原则、信息公开原则、信息利用原则和资源限制原则,自觉地和一切违法犯罪的行为作斗争,维护计算机及网络系统的安全,维护信息系统的安全。除此之外,还应教育计算机用户和全体工作人员,应自觉遵守为维护系统安全而建立的一切规章制度,包括人员管理制度、运行维护和管理制度、计算机处理的控制和管理制度、各种资料管理制度、机房保卫管理制度、专机专用和严格分工等管理制度。

8.2.3 物理安全层面措施

要保证计算机网络系统的安全、可靠,必须保证系统实体有个安全的物理环境条件。这个安全的环境是指机房及其设施。

计算机系统的环境条件。计算机系统的安全环境条件,包括温度、湿度、空气洁净度、腐蚀度、虫害、振动和冲击、电气干扰等方面,都要有具体的要求和严格的标准。

机房场地环境的选择。计算机系统选择一个合适的安装场所十分重要。它直接影响到系统的安全性和可靠性。选择计算机房场地,要注意其外部环境安全性、地质可靠性、场地抗电磁干扰性,避开强振动源和强噪声源,并避免设在建筑物高层和用水设备的下层或隔壁。还要注意出入口的管理。

机房的安全防护。机房的安全防护是针对环境的物理灾害和防止未授权的个人或团体破坏、篡改或盗窃网络设施、重要数据而采取的安全措施和对策。为做到区域安全,首先,应考虑物理访问控制来识别访问用户的身份,并对其合法性进行验证;其次,对来访者必须限定其活动范围;第三,要在计算机系统中心设备外设多层安全防护圈,以防止非法暴力入侵;第四设备所在的建筑物应具有抵御各种自然灾害的设施。

计算机网络安全是一项复杂的系统工程,涉及技术、设备、管理和制度等多方面的因素,安全解决方案的制定需要从整体上进行把握。网络安全解决方案是综合各种计算机网络信息系统安全技术,将安全操作系统技术、防火墙技术、病毒防护技术、入侵检测技术、安全扫描技术等综合起来,形成一套完整的、协调一致的网络安全防护体系。我们必须做到管理和技术并重,安全技术必须结合安全措施,并加强计算机立法和执法的力度,建立备份和恢复机制,制定相应的安全标准。此外,由于计算机病毒、计算机犯罪等技术是不分国界的,因此必须进行充分的国际合作,来共同对付日益猖獗的计算机犯罪和计算机病毒等问题。

8.3 防火墙

8.3.1 防火墙介绍

防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障。它是一种计算机硬件和软件的结合,使Internet 与Intranet 之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入。

防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。

防火墙技术的功能主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,其中处理措施包括隔离与保护,同时可对计算机网络安全当中的各项操作实施记录与检测,以确保计算机网络运行的安全性,保障用户资料与信息的完整性,为用户提供更好、更安全的计算机网络使用体验。

但防火墙只能提供网络的安全性,不能保证网络的绝对安全,它也难以防范网络内部的攻击和病毒的侵犯。并不要指望防火墙靠自身就能够给予计算机安全。防火墙保护你免受一类攻击的威胁,但是却不能防止从LAN 内部的攻击,若是内部的人和外部的人联合起来,即使防火墙再强,也是没有优势的。它甚至不能保护你免受所有那些它能检测到的攻击。随着技术的发展,还有一些破解的方法也使得防火墙造成一定隐患。这就是防火墙的局限性。

防火墙主要是借助硬件和软件的作用于内部和外部网络的环境间产生一种保护的屏障,从而实现对计算机不安全网络因素的阻断。只有在防火墙同意情况下,用户才能够进入计算机内,如果不同意就会被阻挡于外,防火墙技术的警报功能十分强大,在外部的用户要进入到计算机内时,防火墙就会迅速发出相应的警报,提醒用户的行为,并进行自我的判断来决定是否允许外部的用户进入到内部,只要是在网络环境内的用户,这种防火墙都能够进行有效的查询,同时把查到信息朝用户进行显示,然后用户需要按照自身需要对防火墙实施相应设置,对不允许的用户行为进行阻断。通过防火墙还能够对信息数据的流量实施有效查看,还能够对数据信息的上传和下载速度进行掌握,便于用户对计算机使用的情况具有良好的控制判断,计算机的内部情况也可以通过这种防火墙进行查看,还具有启动与关闭程序的功能,而计算机系统的内部中具有的日志功能,其实也是防火墙对计算机的内部系统实时安全情况与每日流量情况进行的总结和整理。

防火墙是在两个网络通信时执行的一种访问控制尺度,能最大限度阻止网络中的黑客访问你的网络。是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。它是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力。它是提供信息安全服务,实现网络和信息安全的基础设施。在逻辑上,防火墙是一个分离器,一个限制器,也是一个分析器,有效地监控了内部网和Internet之间的任何活动,保证了内部网络的安全,如图8.1所示。

图8.1 防火墙

8.3.2 防火墙功能

防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。

一个防火墙(作为阻塞点、控制点)能极大地提高一个内部网络的安全性,并通过过滤不安全的服务而降低风险。由于只有经过精心选择的应用协议才能通过防火墙,所以网络环境变得更安全。如防火墙可以禁止诸如众所周知的不安全的NFS协议进出受保护网络,这样外部的攻击者就不可能利用这些脆弱的协议来攻击内部网络。防火墙同时可以保护网络免受基于路由的攻击,如IP选项中的源路由攻击和ICMP重定向中的重定向路径。防火墙应该可以拒绝所有以上类型攻击的报文并通知防火墙管理员。

通过以防火墙为中心的安全方案配置,能将所有安全软件(如口令、加密、身份认证、审计等)配置在防火墙上。与将网络安全问题分散到各个主机上相比,防火墙的集中安全管理更经济。例如在网络访问时,一次一密口令系统和其他的身份认证系统完全可以不必分散在各个主机上,而集中在防火墙一身上。

如果所有的访问都经过防火墙,那么,防火墙就能记录下这些访问并作出日志记录,同时也能提供网络使用情况的统计数据。当发生可疑动作时,防火墙能进行适当的报警,并提供网络是否受到监测和攻击的详细信息。另外,收集一个网络的使用和误用情况也是非常重要的。首先的理由是可以清楚防火墙是否能够抵挡攻击者的探测和攻击,并且清楚防火墙的控制是否充足。而网络使用统计对网络需求分析和威胁分析等而言也是非常重要的。

通过利用防火墙对内部网络的划分,可实现内部网重点网段的隔离,从而限制了局部重点或敏感网络安全问题对全局网络造成的影响。再者,隐私是内部网络非常关心的问题,一个内部网络中不引人注意的细节可能包含了有关安全的线索而引起外部攻击者的兴趣,甚至因此而暴露了内部网络的某些安全漏洞。使用防火墙就可以隐蔽那些透漏内部细节如Finger,DNS等服务。Finger显示了主机的所有用户的注册名、真名,最后登录时间和使用shell类型等。但是Finger显示的信息非常容易被攻击者所获悉。攻击者可以知道一个系统使用的频繁程度,这个系统是否有用户正在连线上网,这个系统是否在被攻击时引起注意等等。防火墙可以同样阻塞有关内部网络中的DNS信息,这样一台主机的域名和IP地址就不会被外界所了解。除了安全作用,防火墙还支持具有Internet服务性的企业内部网络技术体系VPN(虚拟专用网)。

进出网络的数据都必须经过防火墙,防火墙通过日志对其进行记录,能提供网络使用的详细统计信息。当发生可疑事件时,防火墙更能根据机制进行报警和通知,提供网络是否受到威胁的信息。

8.3.3 防火墙重要性

数据信息对于计算机网络建设工作有着积极的促进作用,同时其对于计算机网络安全也有着一定程度上的影响。通过防火墙技术能够收集计算机网络在运行的过程当中的数据传输、信息访问等多方面的内容,同时对收集的信息进行分类分组,借此找出其中存在安全隐患的数据信息,采取针对性的措施进行解决,有效防止这些数据信息影响到计算机网络的安全。除此之外,工作人员在对防火墙之中记录的数据信息进行总结之后,能够明确不同类型的异常数据信息的特点,借此能够有效提高计算机网络风险防控工作的效率和质量。

计算机网络安全问题之中有相当一部分是由工作人员进入了存在安全隐患的网站所导致的。通过应用防火墙技术能够对工作人员的操作进行实时监控,一旦发现工作人员即将进入存在安全隐患的网站,防火墙就会立刻发出警报,借此有效防止工作人员误入存在安全隐患的网站,有效提高访问工作的安全性。

计算机网络在运行的过程当中会出现许多不安全服务,这些不安全服务会严重影响到计算机网络的安全。通过应用防火墙技术能够有效降低工作人员的实际操作风险,其能够将不安全服务有效拦截下来,有效防止非法攻击对计算机网络安全造成影响。此外,通过防火墙技术还能够实现对计算机网络之中的各项工作进行实时监控,借此使得计算机用户的各项工作能够在一个安全可靠的环境之下进行,有效防止因为计算机网络问题给用户带来经济损失。

8.3.4 防火墙类型

防火墙是现代网络安全防护技术中的重要构成内容,可以有效地防护外部的侵扰与影响。随着网络技术手段的完善,防火墙技术的功能也在不断地完善,可以实现对信息的过滤,保障信息的安全性。防火墙就是一种在内部与外部网络的中间过程中发挥作用的防御系统,具有安全防护的价值与作用,通过防火墙可以实现内部与外部资源的有效流通,及时处理各种安全隐患问题,进而提升了信息数据资料的安全性。防火墙技术具有一定的抗攻击能力,对于外部攻击具有自我保护的作用,随着计算机技术的进步防火墙技术也在不断发展。

过滤型防火墙是在网络层与传输层中,可以基于数据源头的地址以及协议类型等标志特征进行分析,确定是否可以通过。在符合防火墙规定标准之下,满足安全性能以及类型才可以进行信息的传递,而一些不安全的因素则会被防火墙过滤、阻挡。

应用代理防火墙主要的工作范围就是在OSI的最高层,位于应用层之上。其主要的特征是可以完全隔离网络通信流,通过特定的代理程序就可以实现对应用层的监督与控制。这两种防火墙是应用较为普遍的防火墙,其他一些防火墙应用效果也较为显著,在实际应用中要综合具体的需求以及状况合理地选择防火墙的类型,这样才可以有效地避免防火墙的外部侵扰等问题的出现。

复合型防火墙技术,综合了包过滤防火墙技术以及应用代理防火墙技术的优点,譬如发过来的安全策略是包过滤策略,那么可以针对报文的报头部分进行访问控制;如果安全策略是代理策略,就可以针对报文的内容数据进行访问控制,因此复合型防火墙技术综合了其组成部分的优点,同时摒弃了两种防火墙的原有缺点,大大提高了防火墙技术在应用实践中的灵活性和安全性。

8.3.5 防火墙技术

防火墙的包过滤技术一般只应用于OSI7层的模型网络层的数据中,其能够完成对防火墙的状态检测,从而预先可以把逻辑策略进行确定。逻辑策略主要针对地址、端口与源地址,通过防火墙所有的数据都需要进行分析,如果数据包内具有的信息和策略要求是不相符的,则其数据包就能够顺利通过,如果是完全相符的,则其数据包就被迅速拦截。计算机数据包传输的过程中,一般都会分解成为很多由目的地址等组成的一种小型数据包,当它们通过防火墙的时候,尽管其能够通过很多传输路径进行传输,而最终都会汇合于同一地方,在这个目地点位置,所有的数据包都需要进行防火墙的检测,在检测合格后,才会允许通过,如果传输的过程中,出现数据包的丢失以及地址的变化等情况,则就会被抛弃。

计算机信息传输的过程中,借助防火墙还能够有效实现信息的加密,通过这种加密技术,相关人员就能够对传输的信息进行有效的加密,其中信息密码是信息交流的双方进行掌握,对信息进行接受的人员需要对加密的信息实施解密处理后,才能获取所传输的信息数据,在防火墙加密技术应用中,要时刻注意信息加密处理安全性的保障。在防火墙技术应用中,想要实现信息的安全传输,还需要做好用户身份的验证,在进行加密处理后,信息的传输需要对用户授权,然后对信息接收方以及发送方要进行身份的验证,从而建立信息安全传递的通道,保证计算机的网络信息在传递中具有良好的安全性,非法分子不拥有正确的身份验证条件,因此,其就不能对计算机的网络信息实施入侵。

防火墙具有防病毒的功能,在防病毒技术的应用中,其主要包括病毒的预防、清除和检测等方面。防火墙的防病毒预防功能来说,在网络的建设过程中,通过安装相应的防火墙来对计算机和互联网间的信息数据进行严格的控制,从而形成一种安全的屏障来对计算机外网以及内网数据实施保护。计算机网络要想进行连接,一般都是通过互联网和路由器连接实现的,则对网络保护就需要从主干网的部分开始,在主干网的中心资源实施控制,防止服务器出现非法的访问,为了杜绝外来非法的入侵对信息进行盗用,在计算机连接的端口所接入的数据,还要进行以太网和IP地址的严格检查,被盗用IP地址会被丢弃,同时还会对重要信息资源进行全面记录,保障其计算机的信息网络具有良好安全性。

代理服务器是防火墙技术引用比较广泛的功能,根据其计算机的网络运行方法可以通过防火墙技术设置相应的代理服务器,从而借助代理服务器来进行信息的交互。在信息数据从内网向外网发送时,其信息数据就会携带着正确IP,非法攻击者能够分局信息数据IP作为追踪的对象,来让病毒进入到内网中,如果使用代理服务器,则就能够实现信息数据IP的虚拟化,非法攻击者在进行虚拟IP的跟踪中,就不能够获取真实的解析信息,从而代理服务器实现对计算机网络的安全防护。另外,代理服务器还能够进行信息数据的中转,对计算机内网以及外网信息的交互进行控制,对计算机的网络安全起到保护。

8.3.6 防火墙部署方式

防火墙是为加强网络安全防护能力在网络中部署的硬件设备,有多种部署方式,常见的有桥模式、网关模式和NAT模式等。

桥模式也叫做透明模式。最简单的网络由客户端和服务器组成,客户端和服务器处于同一网段。为了安全方面的考虑,在客户端和服务器之间增加了防火墙设备,对经过的流量进行安全控制。正常的客户端请求通过防火墙送达服务器,服务器将响应返回给客户端,用户不会感觉到中间设备的存在。工作在桥模式下的防火墙没有IP地址,当对网络进行扩容时无需对网络地址进行重新规划,但牺牲了路由、VPN等功能。

网关模式适用于内外网不在同一网段的情况,防火墙设置网关地址实现路由器的功能,为不同网段进行路由转发。网关模式相比桥模式具备更高的安全性,在进行访问控制的同时实现了安全隔离,具备了一定的私密性。

NAT(Network Address Translation)地址翻译技术由防火墙对内部网络的IP地址进行地址翻译,使用防火墙的IP地址替换内部网络的源地址向外部网络发送数据;当外部网络的响应数据流量返回到防火墙后,防火墙再将目的地址替换为内部网络的源地址。NAT模式能够实现外部网络不能直接看到内部网络的IP地址,进一步增强了对内部网络的安全防护。同时,在NAT模式的网络中,内部网络可以使用私网地址,可以解决IP地址数量受限的问题。

如果在NAT模式的基础上需要实现外部网络访问内部网络服务的需求时,还可以使用地址/端口映射(MAP)技术,在防火墙上进行地址/端口映射配置,当外部网络用户需要访问内部服务时,防火墙将请求映射到内部服务器上;当内部服务器返回相应数据时,防火墙再将数据转发给外部网络。使用地址/端口映射技术实现了外部用户能够访问内部服务,但是外部用户无法看到内部服务器的真实地址,只能看到防火墙的地址,增强了内部服务器的安全性。

防火墙都部署在网络的出入口,是网络通信的大门,这就要求防火墙的部署必须具备高可靠性。一般IT设备的使用寿命被设计为3至5年,当单点设备发生故障时,要通过冗余技术实现可靠性,可以通过如虚拟路由冗余协议(VRRP)等技术实现主备冗余。

8.4 Linux架构包过滤防火墙

8.4.1 包过滤防火墙介绍

包过滤防火墙是用一个软件查看所流经的数据包的包头(header),由此决定整个包的命运。它可能会决定丢弃(DROP)这个包,可能会接受(ACCEPT)这个包(让这个包通过),也可能执行其他更复杂的动作。

在Linux系统下,包过滤功能是内建于核心的(作为一个核心模块,或者直接内建),同时还有一些可以运用于数据包之上的技巧,不过最常用的依然是查看包头以决定包的命运。包过滤防火墙将对每一个接收到的包做出允许或拒绝的决定。具体地讲,它针对每一个数据包的包头,按照包过滤规则进行判定,与规则相匹配的包依据路由信息继续转发,否则就丢弃。包过滤是在IP层实现的,包过滤根据数据包的源IP地址、目的IP地址、协议类型(TCP包、UDP包、ICMP包)、源端口、目的端口等包头信息及数据包传输方向等信息来判断是否允许数据包通过。包过滤也包括与服务相关的过滤,这是指基于特定的服务进行包过滤,由于绝大多数服务的监听都驻留在特定TCP/UDP端口,因此,为阻断所有进入特定服务的链接,防火墙只需将所有包含特定TCP/UDP目的端口的包丢弃即可。

数据包过滤是通过对数据包的IP头和TCP头或UDP头的检查来实现的,主要信息有:IP源地址、IP目标地址、协议(TCP包、UDP包和ICMP包)、TCP或UDP包的源端口、TCP或UDP包的目标端口、ICMP消息类型、TCP包头中的ACK位、数据包到达的端口、数据包出去的端口,如图8.2所示。

图8.2 包过滤防火墙

8.4.2 iptables介绍

IPTABLES 是与3.5或以后版本 Linux内核集成的 IP 信息包过滤系统。如果 Linux系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器,则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。

防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的数据包过滤表中,而这些表集成在 Linux 内核中。在数据包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 数据包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它。

iptables 的最大优点是它可以配置有状态的防火墙,这是 ipfwadm 和 ipchains等以前的工具都无法提供的一种重要功能。有状态的防火墙能够指定并记住为发送或接收信息包所建立的连接的状态。防火墙可以从信息包的连接跟踪状态获得该信息。在决定新的信息包过滤时,防火墙所使用的这些状态信息可以增加其效率和速度。这里有四种有效状态,名称分别为 ESTABLISHED、INVALID、NEW和RELATED。

状态 ESTABLISHED 指出该信息包属于已建立的连接,该连接一直用于发送和接收信息包并且完全有效。INVALID 状态指出该信息包与任何已知的流或连接都不相关联,它可能包含错误的数据或头。状态 NEW 意味着该信息包已经或将启动新的连接,或者它与尚未用于发送和接收信息包的连接相关联。最后,RELATED 表示该信息包正在启动新连接,以及它与已建立的连接相关联。

iptables 的另一个重要优点是,它使用户可以完全控制防火墙配置和信息包过滤。您可以定制自己的规则来满足您的特定需求,从而只允许您想要的网络流量进入系统,如图8.3所示。

图8.3 iptables

8.4.3 iptables命令

iptables 是用来设置、维护和检查Linux内核的IP包过滤规则的。

可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作'target'(目标),也可以跳向同一个表内的用户定义的链。

TARGETS

防火墙的规则指定所检查包的特征和目标。如果包不匹配,将送往该链中下一条规则检查;如果匹配,那么下一条规则由目标值确定,该目标值可以是用户定义的链名,或是某个专用值,如ACCEPT[通过],DROP[删除],QUEUE[排队],或者 RETURN[返回]。

ACCEPT 表示让这个包通过。DROP表示将这个包丢弃。QUEUE表示把这个包传递到用户空间。RETURN表示停止这条链的匹配,到前一个链的规则重新开始。如果到达了一个内建的链(的末端),或者遇到内建链的规则是RETURN,包的命运将由链准则指定的目标决定。

TABLES

当前有三个表(哪个表是当前表取决于内核配置选项和当前模块)。

-t table

这个选项指定命令要操作的匹配包的表。如果内核被配置为自动加载模块,这时若模块没有加载,(系统)将尝试(为该表)加载适合的模块。这些表如下:filter,这是默认的表,包含了内建的链INPUT(处理进入的包)、FORWARD(处理通过的包)和OUTPUT(处理本地生成的包)。nat,这个表被查询时表示遇到了产生新的连接的包,由三个内建的链构成:PREROUTING (修改到来的包)、OUTPUT(修改路由之前本地的包)、POSTROUTING(修改准备出去的包)。mangle 这个表用来对指定的包进行修改。它有两个内建规则:PREROUTING(修改路由之前进入的包)和OUTPUT(修改路由之前本地的包)。

OPTIONS

这些可被iptables识别的选项可以区分不同的种类。

COMMANDS

这些选项指定执行明确的动作,若指令行下没有其他规定,该行只能指定一个选项。对于长格式的命令和选项名,所用字母长度只要保证iptables能从其他选项中区分出该指令就行了。

-A -append

在所选择的链末添加一条或更多规则。当源(地址)或者/与目的(地址)转换为多个地址时,这条规则会加到所有可能的地址(组合)后面。

-D -delete

从所选链中删除一条或更多规则。这条命令可以有两种方法,可以把被删除规则指定为链中的序号(第一条序号为1),或者指定为要匹配的规则。

-R -replace

从选中的链中取代一条规则。如果源(地址)或者/与目的(地址)被转换为多地址,该命令会失败。规则序号从1开始。

-I -insert

根据给出的规则序号向所选链中插入一条或更多规则。所以,如果规则序号为1,规则会被插入链的头部。这也是不指定规则序号时的默认方式。

-L -list

显示所选链的所有规则。如果没有选择链,所有链将被显示。也可以和z选项一起使用,这时链会被自动列出和归零。精确输出受其他所给参数影响。

-F -flush

清空所选链。这等于把所有规则一个个删除。

--Z -zero

把所有链的包及字节的计数器清空。它可以和 -L配合使用,在清空前察看计数器,请参见前文。

-N -new-chain

根据给出的名称建立一个新的用户定义链。这必须保证没有同名的链存在。

-X -delete-chain

删除指定的用户自定义链。这个链必须没有被引用,如果被引用,在删除之前你必须删除或者替换与之有关的规则。如果没有给出参数,这条命令将试着删除每个非内建的链。

-P -policy

设置链的目标规则。

-E -rename-chain

根据用户给出的名字对指定链进行重命名,这仅仅是修饰,对整个表的结构没有影响。TARGETS参数给出一个合法的目标。只有非用户自定义链可以使用规则,而且内建链和用户自定义链都不能是规则的目标。

-h Help.

帮助。给出当前命令语法非常简短的说明。

PARAMETERS

参数

以下参数构成规则详述,如用于add、delete、replace、append 和 check命令。

规则或者包检查(待检查包)的协议。指定协议可以是tcp、udp、icmp中的一个或者全部,也可以是数值,代表这些协议中的某一个。当然也可以使用在/etc/protocols中定义的协议名。在协议名前加上"!"表示相反的规则。数字0相当于所有all。Protocol all会匹配所有协议,而且这是缺省时的选项。在和check命令结合时,all可以不被使用。

指定源地址,可以是主机名、网络名和清楚的IP地址。mask说明可以是网络掩码或清楚的数字,在网络掩码的左边指定网络掩码左边"1"的个数,因此,mask值为24等于255.255.255.0。在指定地址前加上"!"说明指定了相反的地址段。标志 --src 是这个选项的简写。

指定目标地址,要获取详细说明请参见 -s标志的说明。标志 --dst 是这个选项的简写。

指定规则的目标;也就是说,如果包匹配应当做什么。目标可以是用户自定义链(不是这条规则所在的),某个会立即决定包的命运的专用内建目标,或者一个扩展(参见下面的EXTENSIONS)。如果规则的这个选项被忽略,那么匹配的过程不会对包产生影响,不过规则的计数器会增加。

这是包经由该接口接收的可选的入口名称,包通过该接口接收(在链INPUT、FORWORD和PREROUTING中进入的包)。当在接口名前使用"!"说明后,指的是相反的名称。如果接口名后面加上"+",则所有以此接口名开头的接口都会被匹配。如果这个选项被忽略,会假设为"+",那么将匹配任意接口。

这是包经由该接口送出的可选的出口名称,包通过该口输出(在链FORWARD、OUTPUT和POSTROUTING中送出的包)将匹配所有任意接口。

这意味着在分片的包中,规则只询问第二及以后的片。自那以后由于无法判断这种包的源端口或目标端口(或者是ICMP类型的),这类包将不能匹配任何指定对他们进行匹配的规则。如果"!"说明用在了"-f"标志之前,表示相反的意思。

OTHER OPTIONS

其他选项

还可以指定下列附加选项:

详细输出。这个选项让list命令显示接口地址、规则选项(如果有)和TOS(Type of Service)掩码。包和字节计数器也将被显示,分别用K、M、G(前缀)表示1000、1,000,000和1,000,000,000倍(不过请参看-x标志改变它),对于添加,插入,删除和替换命令,这会使一个或多个规则的相关详细信息被打印。

数字输出。IP地址和端口会以数字的形式打印。默认情况下,程序显示主机名、网络名或者服务(只要可用)。

扩展数字。显示包和字节计数器的精确值,代替用K,M,G表示的约数。这个选项仅能用于 -L 命令。

当列表显示规则时,在每个规则的前面加上行号,与该规则在链中的位置相对应。

MATCH EXTENSIONS

对应的扩展

iptables能够使用一些与模块匹配的扩展包。以下就是含于基本包内的扩展包,而且他们大多数都可以通过在前面加上!来表示相反的意思。

tcp

当 --protocol tcp 被指定,且其他匹配的扩展未被指定时,这些扩展被装载。它提供以下选项:

源端口或端口范围指定。这可以是服务名或端口号。使用格式端口:端口也可以指定包含的(端口)范围。如果首端口号被忽略,默认是"0",如果末端口号被忽略,默认是"65535",如果第二个端口号大于第一个,那么它们会被交换。这个选项可以使用--sport的别名。

目标端口或端口范围指定。这个选项可以使用 --dport别名来代替。

匹配指定的TCP标记。第一个参数是我们要检查的标记,一个用逗号分开的列表,第二个参数是用逗号分开的标记表,是必须被设置的。标记如下:SYN ACK FIN RST URG PSH ALL NONE。因此这条命令:iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST SYN只匹配那些SYN标记被设置而ACK、FIN和RST标记没有设置的包。

只匹配那些设置了SYN位而清除了ACK和FIN位的TCP包。这些包用于TCP连接初始化时发出请求;例如,大量的这种包进入一个接口发生堵塞时会阻止进入的TCP连接,而出去的TCP连接不会受到影响。这等于 --tcp-flags SYN,RST,ACK SYN。如果"--syn"前面有"!"标记,表示相反的意思。

匹配设置了TCP选项的。

udp

当protocol udp 被指定,且其他匹配的扩展未被指定时,这些扩展被装载,它提供以下选项:

源端口或端口范围指定。详见 TCP扩展的--source-port选项说明。

目标端口或端口范围指定。详见 TCP扩展的--destination-port选项说明。

icmp

当protocol icmp被指定,且其他匹配的扩展未被指定时,该扩展被装载。它提供以下选项:

这个选项允许指定ICMP类型,可以是一个数值型的ICMP类型,或者是某个由命令iptables -p icmp -h所显示的ICMP类型名。

匹配物理地址。必须是XX:XX:XX:XX:XX:XX这样的格式。注意它只对来自以太设备并进入PREROUTING、FORWARD和INPUT链的包有效。

MASQUERADE

只用于nat表的POSTROUTING链。只能用于动态获取IP(拨号)连接,如果你拥有静态IP地址,你要用SNAT。伪装相当于给包发出时所经过接口的IP地址设置一个映像,当接口关闭连接会终止。这是因为当下一次拨号时未必是相同的接口地址(以后所有建立的连接都将关闭)。它有一个选项:

指定使用的源端口范围,覆盖默认的SNAT源地址选择(见上面)。这个选项只适用于指定了-p tcp或者-p udp的规则。

REDIRECT

只适用于nat表的PREROUTING和OUTPUT链和只调用它们的用户自定义链。它修改包的目标IP地址来发送包到机器自身(本地生成的包被安置为地址127.0.0.1)。它包含一个选项:

指定使用的目的端口或端口范围,不指定的话,目标端口不会被修改。只能用于指定了-p tcp 或 -p udp的规则。

DIAGNOSTICS

诊断

不同的错误信息会打印成标准错误,退出代码0表示正确。类似于不对的或者滥用的命令行参数错误会返回错误代码2,其他错误返回代码为1。

BUGS

臭虫

Check is not implemented (yet).

检查还未完成。

COMPATIBILITY WITH IPCHAINS

与ipchains的兼容性

iptables和Rusty Russell的ipchains非常相似。主要区别是INPUT 链只用于进入本地主机的包,而OUTPUT只用于自本地主机生成的包。因此每个包只经过三个链的一个,然而以前转发的包会经过所有三个链。其他主要区别是 -i 引用进入接口,-o引用输出接口,两者都适用于进入FORWARD链的包。当和可选扩展模块一起使用默认过滤器表时,iptables是一个纯粹的包过滤器。这能大大减少以前对IP伪装和包过滤结合使用的混淆,所以使用-j MASQ、-M –S、-M -L选项作了不同的处理。

在iptables中有几个不同的链。

limit

这个模块匹配标志用一个标记桶过滤器以一定速度进行匹配,它和LOG目标结合使用来给出有限的登录数,当达到这个极限值时,使用这个扩展包的规则将进行匹配 (除非使用了"!"标记)。

最大平均匹配速率:可赋的值有'/second','/minute','/hour',or '/day'这样的单位,默认是3/hour。

待匹配包初始个数的最大值:若前面指定的极限还没达到这个数值,则概数字加1.默认值为5

multiport

这个模块匹配一组源端口或目标端口,最多可以指定15个端口。只能和-p tcp 或者 -p udp 连着使用。

如果源端口是其中一个给定端口则匹配

如果目标端口是其中一个给定端口则匹配

若源端口和目的端口相等并与某个给定端口相等,则匹配。

mark

这个模块和与netfilter过滤器标记字段匹配(就可以在下面设置为使用MARK标记)。

匹配那些无符号标记值的包(如果指定mask,在比较之前会给掩码加上逻辑的标记)。

owner

此模块试为本地生成包匹配包创建者的不同特征。只能用于OUTPUT链,而且即使这样一些包(如ICMP ping应答)还可能没有所有者,因此永远不会匹配。

如果给出有效的user id,那么匹配它的进程产生的包。

如果给出有效的group id,那么匹配它的进程产生的包。

根据给出的会话组匹配该进程产生的包。

state

此模块,当与连接跟踪结合使用时,允许访问包的连接跟踪状态。

这里state是一个逗号分隔的匹配连接状态列表。可能的状态是:INVALID表示包是未知连接,ESTABLISHED表示是双向传送的连接,NEW表示包为新的连接,否则是非双向传送的,而RELATED表示包由新连接开始,但是和一个已存在的连接在一起,如FTP数据传送,或者一个ICMP错误。

unclean

此模块没有可选项,不过它试着匹配那些奇怪的、不常见的包。处在实验中。

tos

此模块匹配IP包首部的8位tos(服务类型)字段(也就是说,包含在优先位中)。

--tos tos

这个参数可以是一个标准名称,(用iptables -m tos -h 察看该列表),或者数值。

iptables可以使用扩展目标模块:以下都包含在标准版中。

LOG

为匹配的包开启内核记录。当在规则中设置了这一选项后,linux内核会通过printk()打印一些关于全部匹配包的信息(诸如IP包头字段等)。

记录级别。

在纪录信息前加上特定的前缀,最多14个字母长,用来和记录中其他信息区别。

记录TCP序列号。如果记录能被用户读取那么这将存在安全隐患。

记录来自TCP包头部的选项。

记录来自IP包头部的选项。

MARK

用来设置包的netfilter标记值。只适用于mangle表。

作为对匹配的包的响应,返回一个错误的包,其他情况下和DROP相同。

此目标只适用于INPUT、FORWARD和OUTPUT链,和调用这些链的用户自定义链。这几个选项控制返回的错误包的特性:

Type可以是icmp-net-unreachable、icmp-host-unreachable、icmp-port-nr eacha ble、icmp-proto-unreachable、icmp-net-prohibited 或者icmp-host- pro hibi ted,该类型会返回相应的ICMP错误信息(默认是port-unreachable)。选项echo-reply也是允许的;它只能用于指定ICMP ping包的规则中,生成ping的回应。最后,选项tcp-reset可以用于在INPUT链中,或自INPUT链调用的规则,只匹配TCP协议:将回应一个TCP RST包。

TOS

用来设置IP包的首部八位tos。只能用于mangle表。

你可以使用一个数值型的TOS 值,或者用iptables -j TOS -h 来查看有效TOS名列表。

MIRROR

这是一个试验示范目标,可用于转换IP首部字段中的源地址和目标地址,再传送该包,并只适用于INPUT、FORWARD和OUTPUT链,以及只调用它们的用户自定义链。

SNAT

这个目标只适用于nat表的POSTROUTING链。它规定修改包的源地址(此连接以后所有的包都会被影响),停止对规则的检查,它包含选项如下

指定SANT转换后的地址。

总结

本章就网络安全做了介绍,了解了网络安全应对措施,并且深入地理解了防火墙,对防火墙技术进行了学习。通过本章的学习,我们对网络安全有了深刻的认识。

作业

1.列举几个网络攻击类型。

2.列举几个网络防御的方式。

扩展练习

通过本章内容的学习,请你写出你熟悉的防火墙运行方式。