20199131 2019-2020-2 《网络攻防实践》第6周作业
1.实践内容
1.1 安全模型
- 静态安全模型:对网络进行风险分析,制定相应的安全策略,然后采取安全技术作为防护措施,主要针对固定、静态的威胁和环境弱点。
- PDR安全模型:基于闭环控制理论的时间动态可适应网络安全模型,以经典的网络安全不等式P>D+R(保护、检测、响应)为本质基础,并提出安全性可量化和可计算的观点。
- P2DR安全模型:基于PDR安全模型提出,增加了Policy分析制定安全策略,并以此为核心,所有的防护、检测、响应都是依据安全策略实施的。
1.2 网络安全防范技术与系统
- 防火墙技术及产品
- 定义:防火墙指的是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备,达到保护特定网络安全域免受非法访问和破坏的安全目标。
- 功能:
检查控制进出网络的流量。
防止脆弱或不安全的协议和服务。
防止内部网络信息的外泄。
对网络存取和访问进行监控审计。
强化网络安全策略并集成其他安全防御机制。 - 不足:
先天:无法防范包括来自网络内部的安全威胁、通过非法外联的网络攻击和计算机病毒传播的传播。
技术瓶颈:无法防范包括针对开放服务安全漏洞的渗透攻击、针对网络客户端程序的渗透攻击和隐蔽通道进行通信的特洛伊木马或僵尸网络。 - 技术:
包过滤技术:在路由功能基础上进行扩展,通过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,确定是否应该转发该数据包(简单、安全功能有限)。
基于状态检测的包过滤技术:也称动态包过滤。除了使用静态规则进行安全进行安全策略匹配,还进行数据包的网络连接的上下文关系探测,来确定是否允许通信。这种技术相比较传统的包过滤技术安全性更高,数据合法性得到了更有效的保障(对网络性能有一定的影响)。
代理技术:允许客户端通过代理与网络服务进行非直接的连接,也称“网络代理”。主要是客户端与代理服务器连接,代理服务器再与目标服务器连接。代理技术包括应用层代理(工作在应用层)、电路级代理(工作在传输层)和NAT代理(工作在网络层)等。
部署方法:
包过滤路由器:带有包过滤防火墙功能的路由器。
双宿主堡垒主机:应用代理网关作为双宿主堡垒主机。
屏蔽主机:堡垒主机和包过滤的结合。
屏蔽子网:在屏蔽主机的基础上增加第二道包过滤路由器。
1.3 iptable
- iptables命令介绍
iptables:administration tool for IPv4/IPv6 packet filtering and NAT
1)简介:Linux的2.4版内核引入了一种全新的包处理引擎Netfilter,同时还有一个管理它的命令行工具iptables。iptables用于建立、维护和检查Linux内核中IPv4包过滤规则的表。
2)结构层次:iptables - 表table - 链chain(内建或自定义) - 规则(目标target子句等)。
iptables对网络上的数据包有次序地施加规则“链”。链的集合就构成了表,用于处理特定类型的流量。
默认的iptables表为filter(过滤器)。它包含3个默认链:FORWARD、INPUT和OUTPUT,内核处理的每个包都要经过3个链中的某一个。FORWARD链里的规则用于在一个网络接口收到的、而且需要转发到另一个网络接口的所有包。INPUT和OUTPUT链里的规则分别用于目的是本地主机,或者从本地主机发出的流量。
nat表包含的规则链控制着NAT(网络地址转换)。另外,还有mangle、raw和security表,这里不详述。
构成一条链的每条规则都有一个“target(目标)”子句,它决定了如何处理匹配的包。一旦某个包匹配了一条规则,那么它的结局就确定了,不再用其他规则来检查它。虽然iptables内部定义了许多target,但还是可以指定另一条链作为规则的target。在filter表中的规则可以使用的target子句有ACCEPT(包可以继续通过)、DROP(默默地丢弃包)和REJECT(把包丢弃并返回一则ICMP错误消息)等。
-
iptable命令参数详解:
查看状态:iptables -Liptables 参数选项:
-t<表>:指定要操纵的表;
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-i:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清楚规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-s:指定要匹配的数据包源ip地址;
-j<目标>:指定要跳转的目标;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。
2.实践过程
实践一:防火墙配置
实践任务:配置Linux平台上的iptables,完成如下功能并测试
-
过滤ICMP数据包,使主机不接受ping包。
-
只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问。
-
实验环境
kali(访问方 IP:192.168.200.8)、Metasploitable2-Linux(需要配置防火墙的主机 IP:192.168.200.10)、SEEDUbuntu9-Aug-2010(访问方 192.168.200.3) -
实验具体步骤
使用命令:iptables -L,列出规则链中所有的规则进行查看,都是默认规则
使用命令:iptables -A INPUT -p icmp -j DROP,配置过滤ICMP数据包的规则,-A:在指定链的末尾添加(append)一条新的规则;-P:指定要匹配的数据包协议类型;-j:指定要跳转的目标(包括DROP、ACEEPT等);
列出规则链中所有的规则进行查看,发现已经添加成功
kali Ping Metasploitable2-Linux 配置规则前后对比如图所示:
使用命令:sudo iptables -P INPUT DROP,关闭流量流向是本机的本地主机的所有端口
使用命令:sudo iptables -A INPUT -p tcp --dport 23 -s 192.168.200.8 -j ACCEPT,配置该规则来允许IP为192.168.200.8的主机可以telnet访问本机
分别使用kali和SEEDUbuntu9-Aug-2010 telnet登录Metasploitable2-Linux,如图,kali可以访问,其他主机(包括SEEDUbuntu9-Aug-2010)都无法访问
3.学习中遇到的问题及解决
- 问题1:iptables命令出错
- 问题1解决方案:iptables命令参数严格区分大小写
4.实践总结
xxx xxx