ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:40.82KB ,
资源ID:26224494      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26224494.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(linux环境下的防火墙设计和配置.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

linux环境下的防火墙设计和配置.docx

1、linux环境下的防火墙设计和配置Linux 环境下的netfilter/iptables防火墙设计和配置(防火墙课程设计-linux篇)1 问题和解答引言1)问:采用iptables如何限定QQ。答:QQ的source-port 为4000,destination-port为8000只需要在FORWARD里加入一条规则就可以:iptables -A FORWARD -i eth0 -p udp -dport 8000 -j DROP2)问:我不想开放我的端口,但我要在我的电脑上启用http服务,并对外服务。答:想开放除了80以外的端口 你可以这样iptables -P INPUT j DRO

2、P,用-P(大写字母)来拦截全部的通信,然后再来允许哪些端口可以被使用,结果可以这样写:iptables A INPUT p tcp dport 80 j ACCEPT3)问:由于我采用了linux的iptables作为内外网络之间的隔离墙,想在内网的计算机系统上架设ftp服务可以供外部访问,我该怎么做?答:要用到iptables 的一个强大的功能为端口映射了。举例如下:iptables -t nat -A PREROUTING -p tcp -m tcp -dport 25 -j DNAT -to-destination 192.168.0.6:25iptables -t nat -A PO

3、STROUTING -s 192.168.0.0/24 -d 192.168.0.6 -p tcp -m tcp -dport 25 -j SNAT -to-source 192.168.0.14)问:如何屏蔽对内部ping,其中eth0为与外部网络相连接。答:简单的iptables -A INPUT -p icmp -icmp-type echo-request -i eth0 -j DROP5)问:设有一台计算机作为linux防火墙,有两块网卡,eth0与校园网相连接,ip为222.18.134.129;eth1与内部网络相连接,ip为192.168.0.1。现在需要把发往地址222.18

4、.134.129的80端口的ip包转发到内网ip地址192.168.0.2的80端口,如何设置?答:iptables -t nat -A PREROUTING -d 222.18.134.129 -p tcp -m tcp -dport 80 -j DNAT -to-destination192.168.0.2:80iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 192.168.0.2 -p tcp -m tcp -dport 80 -j SNAT -to-source 192.168.0.1是否忘了打开FORWARD链的相关端口。6)如

5、何在Linux路由器下采用iptables防火墙构建DMZ (解答规则的实现中存在不完整的地方,请指出)?答:要构建一个带DMZ的防火墙,首先要对从连接外部网络的网卡(eth0)上流入的数据进行判断,这是在INPUT链上完成。如果数据的目标地址属于DMZ网段,就要将数据转发到连接DMZ网络的网卡(eth1)上;如果是内部网络的地址,就要将数据转发到连接内部网络的网卡(eth2)上,如图1所示。各个网络之间的访问关系如下描述(6条访问控制策略):(1) 内网可以访问外网内网的用户显然需要自由地访问外网。在这一策略中,防火墙需要进行源地址转换。(2) 内网可以访问DMZ此策略是为了方便内网用户使用

6、和管理DMZ中的服务器。(3) 外网不能访问内网很显然,内网中存放的是公司内部数据,这些数据不允许外网的用户进行访问。(4) 外网可以访问DMZDMZ中的服务器本身就是要给外界提供服务的,所以外网必须可以访问DMZ。同时,外网访问DMZ需要由防火墙完成对外地址到服务器实际地址的转换。(5) DMZ不能访问内网很明显,如果违背此策略,则当入侵者攻陷DMZ时,就可以进一步进攻到内网的重要数据。(6) DMZ不能访问外网此条策略也有例外,比如DMZ中放置邮件服务器时,就需要访问外网,否则将不能正常工作。 DMZ实现:根据以上访问控制策略可以设定Linux防火墙的过滤规则。用户在实际应用时可根据具体的

7、情况进行设置,设定虚拟环境的网络拓扑如图1。如图1所示,作为防火墙的Linux服务器使用三块网卡:网卡eth0与外部网络连接(或者通过路由器连接),网卡eth1与DMZ区的Hub或交换机相连接,网卡eth2与内网Hub或交换机相连接。对于防火墙,原则之一就是默认禁止所有数据通信,然后再打开必要的通信。所以在防火墙脚本的最初,需要清空系统原有的规则,然后将INPUT、OUTPUT、FORWARD的默认规则设置为丢弃所有数据包,对应的防火墙脚本片段如下:#清空系统原有的所有规则/sbin/iptables -F/sbin/iptables -X/sbin/iptables -t nat -F/sb

8、in/iptables -t nat -X# 默认丢弃所有数据包/sbin/iptables -P INPUT DROP/sbin/iptables -P OUTPUT DROP/sbin/iptables -P FORWARD DROP 完成6种策略的实现:(1) 内网可以访问外网,对应的防火墙脚本片段如下:/sbin/iptables -t nat -A POSTROUTING -s 内网地址 -d 外网地址 -o eth0 -j SNAT -to NAT的真实IP当数据从连接外网的eth0流出时,要将来自内网的数据包的源地址改成Internet上的真实IP,这样才能和外网的主机进行通信。

9、“NAT的真实IP”表示分配给NAT用户的真实IP,有几个就写几个,以空格分开,但至少要写一个。(2) 内网可以访问DMZ,对应的防火墙脚本片段如下:/sbin/iptables -A FORWARD -s 内网地址 -d DMZ地址 -i eth2 -j ACCEPT以上命令允许所有来自内网、目的地为DMZ的数据包通过。(3) 外网不能访问内网,对应的防火墙脚本片段如下:/sbin/iptables -t nat -A PREROUTING -s 外网地址 -d 内网地址 -i eth0 -j DROP以上命令将来自外网、去往内网的数据包全部丢弃。(4) 外网可以访问DMZ为了保护DMZ中的

10、服务器,外网对DMZ的访问也要加以限制。通常的思路是,只允许外网访问DMZ中服务器所提供的特定服务,比如HTTP。对应的防火墙脚本片段如下:/sbin/iptables -t nat -A PREROUTING -p tcp -dport 80 -d 分配给HTTP服务器的Internet上的真实IP -s 外网地址 -i eth0 -j DNAT -to HTTP服务器的实际IP/sbin/iptables -A FORWARD -p tcp -s 外网地址 -d HTTP服务器的实际IP -i eth0 -dport 80 -j ACCEPT/sbin/iptables -A FORWAR

11、D -p tcp -d 外网地址 -s HTTP服务器的实际IP -i eth1 -sport 80 ! -syn -j ACCEPT/sbin/iptables -t nat -A PREROUTING -s 外网地址 -d DMZ地址 -i eth0 -j DROP该防火墙脚本片段将开放HTTP服务,使得只有访问DMZ中HTTP服务的数据包才能通过防火墙。(5) DMZ不能访问内网,对应的防火墙脚本片段如下:/sbin/iptables -A FORWARD -s DMZ地址 -d 内网地址 -i eth1 -j DROP以上命令将丢弃所有从DMZ到内网的数据包。(是否有问题,不完整的解答

12、,可以采用状态检测吗)(6) DMZ不能访问外网,对应的防火墙脚本片段如下:/sbin/iptables -t nat -A POSTROUTING -p tcp -dport 25 -d 外网地址 -s 邮件服务器的IP -o eth0 -j SNAT -to 分配给SMTP服务器的Internet上的真实IP/sbin/iptables -A FORWARD -p tcp -s 邮件服务器的IP -d 外网地址 -i eth1 -dport 25 -j ACCEPT/sbin/iptables -A FORWARD -p tcp -d 邮件服务器的IP -s 外网地址 -i eth0-sp

13、ort 25 ! -syn -j ACCEPT以上命令先允许DMZ中邮件服务器连接外网的SMTP服务端口(25),然后禁止其它从DMZ发往外网的数据包。2 准备netfilter/iptables IP信息包过滤系统是一种功能强大的工具,可用于添加、编辑和删除规则,这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中,又对他们进行处理。netfilter 组件也称为内核空间(kernel space),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。iptables组件是一种工具,也称为用户空间(user space),它使插入、修改和删

14、除信息包过滤表中的规则变得容易。如果在你的linux系统没有安装这两组件,需要从filter.org(或filer.org/iptables)下载最新工具并安装使用它,还需要从www.kernel.org 下载最新的内核版本(注意软件包签名认证)。通过使用iptables用户空间,可以构建自己的定制规则,这些规则存储在内核空间的信息包过滤表中。Iptables工具的操作介绍根据后面部分和按照课程设计要求完成。(1) 安装 netfilter/iptables 系统因为 netfilter/iptables 的 netfilter 组件是与内核2.4及以上集成在一起的,通常只需要下载并安装 ip

15、tables 用户空间工具。下面是安装 netfilter/iptables 系统的需求: 硬件:要使用 netfilter/iptables,需要有一个运行 Linux OS 并连接到因特网、LAN 或 WAN 的系统。 软件:带有内核2.4或更高版本的任何版本的Linux OS。可以从 http:/www.kernel.org 下载最新版本的内核。还需要从filter.org 下载iptables 这个用户空间工具,因为这个工具不是内核的一部分。(2) 安装前的准备在开始安装 iptables 用户空间工具之前,需要对系统做某些修改。首先,需要使用make config命令来配置内核的选项

16、。在配置期间,必须通过将CONFIG_NETFILTER和 CONFIG_IP_NF_IPTABLES选项设置为Y来打开它们,因为这是使 netfilter/iptables工作所必需的。下面是可能要打开的其它选项: CONFIG_PACKET:如果要使应用程序和程序直接使用某些网络设备,那么这个选项是有用的。 CONFIG_IP_NF_MATCH_STATE:如果要配置有状态的防火墙,那么这个选项非常重要而且很有用。这类防火墙会记得先前关于信息包过滤所做的决定,并根据它们做出新的决定。 CONFIG_IP_NF_FILTER:这个选项提供一个基本的信息包过滤框架。如果打开这个选项,则会将一个

17、基本过滤表(带有内置的 INPUT、FORWARD 和 OUTPUT 链)添加到内核空间。 CONFIG_IP_NF_TARGET_REJECT:这个选项允许指定:应该发送ICMP错误消息来响应已被DROP丢弃的入站信息包,而不是简单地杀死它们。(3) 安装用户空间工具在下载iptables用户空间工具的源代码(它类似于iptables-1.2.6a.tar.bz2)之后,可以开始安装。您需要以root身份登录来执行安装。清单 1 给出了一个示例,它指出了安装该工具所需的命令,其必要的次序及其说明。清单 1 用户空间工具安装的示例 首先,解压工具包到一个指定的目录,命令操作如下:# bzip2

18、 -d iptables-1.3.5.tar.bz2# tar -xvf iptables-1.3.5.tar现在进入解压后的目录iptables-1.3.5中,在该目录中,有一个INSTALL文件包含了许多关于编译核安装信息,操作如下:# cd iptables-1.3.5现在开始编译用户空间工具,命令操作如下:# make KERNEL_DIR=/usr/src/linux-2.4.20注:KERNEL_DIR=/usr/src/linux-2.4.20指定为内核目录路径,有的内核目录名不同。最后,安装源代码,命令操作如下:# make install KERNEL_DIR=/usr/sr

19、c/linux-2.4.20以上,仅仅是一个简单的说明,详细的可以看看文件或查阅有关网站,站点可以如下: filter.org/documentation/HOWTO/netfilter-extensions-HOWTO.html www.kernel.org 等等。3 部分操作选项和参数介绍iptables 是用来设置、维护和检查Linux内核的IP包过滤规则的。可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链(user-define-chains)。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作“target”(目标),也可以跳

20、向同一个表内的用户定义的链。当前文档说明应用于IPv4的网络中。防火墙的规则指定所检查包的特征和目标。如果包不匹配,将送往该链中下一条规则检查;如果匹配,那么下一条规则由目标值确定。该目标值可以是用户定义的链名,或是某个专用值,如ACCEPT通过,DROP丢弃,QUEUE排队或者RETURN返回。ACCEPT表示让这个包通过;DROP表示将这个包丢弃;QUEUE表示把这个包传递到用户空间;RETURN表示停止这条链的匹配,到前一个链的规则重新开始。如果到达了一个内建的链(的末端),或者遇到内建链的规则是RETURN,包的最后处理将由链准则指定的目标决定。语法:通用格式:iptables -t

21、table command match -j target/jump具体格式:iptables -t table -AD chain rule-specification options iptables -t table I chain rulenum rule-specification options iptables -t table -R chain rulenum rule-specification options iptables -t table -D chain rulenum options iptables -t table -LFZ chain options ipt

22、ables -t table -N chain iptables -t table -X chain iptables -t table -P chain target options iptables -t table -E old-chain-name new-chain-name-t table参数用来指定规则表,目前有:filter、nat、mangle和raw,当未指定规则表-t时,则默认为是filter。各个规则表的功能如下:filter:当没有-t选项的时候,为规则表的默认值,处理的目标主要为:DROP、LOG、REJECT和ACCEPT。它包含INPUT(作为到达本地socke

23、t的包)、OUTPUT(作为本地产生的包) 和 FORWARD(作为路由的包)链。nat :用于要转发(路由)的信息包,要完成该类表的操作,目标主要有:DNAT、SNAT、MASQUERADE和REDIRECT。它包含PREROUTING(or altering incoming packets before routing)、OUTPUT(for altering locally-generated packets before routing)和 POSTROUTING(for altering packets as they are about to go out)三个内建的链。如果信息

24、包及其头内进行了任何更改,则使用 mangle 表。该表包含一些规则来标记用于高级路由的信息包,处理的目标有:TOS、TTL和MARK。在内核2.4.17中该表包含 PREROUTING 和 OUTPUT 链;在内核2.4.18以后,该表支持三个内建链INPUT (for packets coming into the box itself)、 FORWARD (for altering packets being routed through the box)和 POSTROUTING (for altering packets as they are about to go out)。ra

25、w:This table is used mainly for configuring exemptions from connection tracking in combination with the NOTRACK target, It registers at the netfilter hooks with higher priority and is thus called before ip_conntrack, or any other IP tables. It provides the following built-in chains: PREROUTING (for

26、packets arriving via any network interface) OUTPUT (for packets generated by local processes)。filter、nat和mangle三个规则链为常用。3.1 命令(command):-A,-append在所选择的链(chains)末添加一条或更多规则。当源(地址)或者/与 目的(地址)转换为多个地址时,这条规则会加到所有可能的地址(组合)后面。-D,-delete从所选链(chainas)中删除一条或更多规则。这条命令可以有两种方法:可以把被删除规则指定为链中的序号(第一条序号为1),或者指定为要匹配的规

27、则。-R,-replace从选中的链中取代一条规则。如果源(地址)或者/与 目的(地址)被转换为多地址,该命令会失败。规则序号从1开始。-I,-insert根据给出的规则序号向所选链中插入一条或更多规则。所以,如果规则序号为1,规则会被插入链的头部。这也是不指定规则序号时的默认方式。-L,-list显示所选链的所有规则。如果没有选择链,所有链将被显示。也可以和Z选项一起使用,这时链会被自动列出和归零。精确输出受其它所给参数影响。-F,-flush清空所选链。这等于把所有规则一个个的删除。-Z,-zero把所有链的包及字节的计数器清空。它可以和 -L配合使用,在清空前察看计数器。-N,-new-

28、chain根据给出的名称建立一个新的用户定义链。这必须保证没有同名的链存在。-X,-delete-chain删除指定的用户自定义链。这个链必须没有被引用,如果被引用,在删除之前你必须删除或者替换与之有关的规则。如果没有给出参数,这条命令将试着删除每个非内建的链。-P,-policy设置链的目标规则。-E,-rename-chain根据用户给出的名字对指定链进行重命名,这仅仅是修饰,对整个表的结构没有影响。TARGETS参数给出一个合法的目标。只有非用户自定义链可以使用规则,而且内建链和用户自定义链都不能是规则的目标。-h,-Help帮助。给出当前命令语法非常简短的说明。3.2 match(匹配

29、具体的规则,对命令增加、删除、替换等的rule-specification弥补)-p,-protocal !protocol规则或者包检查(待检查包)的协议。指定协议可以是tcp(6)、udp(17)、icmp(1)中的一个或者全部all,也可以是数值,代表这些协议中的某一个。当然也可以使用在/etc/protocols中定义的协议名。在协议名前加上“!”表示相反的规则。数字0相当于所有all。all会匹配所有协议,而且这是缺省时的选项。在和check命令结合时,all可以不被使用。-s,-source ! ipaddress/mask指定源地址,可以是主机名、网络名和一般的IP地址。mask

30、说明可以是网络掩码或一般的数字,比如mask值为24等于255.255.255.0。在指定地址前加上“!”说明指定了相反的地址段。标志 -src 是这个选项的简写。-d,-destination ! address/mask指定目标地址,与-s标志的说明类似。标志 -dst 是这个选项的简写。-j,-jump target 表示 -j 目标跳转指定包匹配规则后应当做什么。目标可以是内建的(如DROP),也可以是用户自定义链(不是这条规则所在的),或者一个扩展(参见下面的EXTENSIONS)。如果规则的这个选项被忽略,那么匹配的过程不会对包产生影响,不过规则的计数器会增加。-i,-in-interface ! name这是包经由该接口接收的可选的入口名称(即接口名称),包通过该接口接收(在链INPUT、FORWORD和PREROUTING中进入的包)。当在接口名前使用“!”说明后,指的是相反的名称。如果接口名后面加上“+”,则所有以此接口名开头的接口都会被匹配。如果这个选项被忽略,那么将匹配任意接口。-o,-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1