20199135-2019-2020《网络攻防实践》第6周作业

20199135-2019-2020《网络攻防实践》第6周作业

问题 回答
作业所属课程 网络攻防实践(https://edu.cnblogs.com/campus/besti/19attackdefense)
这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10589
我在这个课程的目标是 学习第六章
这个作业在哪个具体方面帮助我实现目标 熟悉linux环境
作业正文 见下文
参考文献 见博客结尾

实践内容

防火墙的功能

(1) 检査控制进出网络的网络流量
(2) 防止脆弱或不安全的协议和服务
(3) 防止内部网络信息的外泄
(4) 对网络存取和访问进行监控审计
(5) 防火墙可以强化网络安全策略并集成其他安全防御机制

防火墙的不足

作为网络边界防护机制而先天无法防范的安全威胁包括如下。
(1) 来自网络内部的安全威胁
(2) 通过非法外联的网络攻击
(3) 计算机病毒传播
由于技术瓶颈问题冃前还无法有效防范的安全威胁包括如下。
(1) 针对开放服务安全漏洞的渗透攻击
(2) 针对网络客户端程序的渗透攻击
(3) 基于隐蔽通道进行通信的特洛伊木马或僵尸网络

防火墙技术




防火墙部署方法



Netfilter/iptables

在数据包流经内核协议栈的整个过程中,在一些已预定义的关键点上PRE_ROUTING、LOCAL_IN、FORWARD、LOCAL_OUT和POST_ROUTING会根据数据包的协议簇PF_INET到这些关键点去查找是否注册有钩子函数。如果没有,则直接返回okfn函数指针所指向的函数继续走协议栈;如果有,则调用nf_hook_slow函数,从而进入到Netfilter框架中去进一步调用已注册在该过滤点下的钩子函数,再根据其返回值来确定是否继续执行由函数指针okfn所指向的函数。
iptables 是运行在用户空间的防火墙配置工具,是 netfilter 项目的一部分,通过控制运行在 Linux 内核空间的 netfilter 模块,来管理网络数据包的处理和转发。之所以称之为配置工具是因为实际的防火墙过滤功能由内核模块 netfilter 提供,iptables 只是负责提供用户可操作的过滤 rules 配置接口。

简而言之,用户空间的 iptables 制定防火墙规则,内核空间的 netfilter 实现防火墙功能,iptables/netfilter(下文简称为 iptables)组合才是真防火墙。

制定 iptables 表规则思路:
选择一张表(此表决定了数据包的处理方式,e.g. filter、nat)
选择一条链(此链决定了数据包的流经位置,e.g. INPUT、OUTPUT)
选择合适的条件(此条件决定了对数据包做何种条件匹配,e.g. Source IP、icmp)
选择处理数据包的动作,制定相应的防火墙规则(e.g. ACCEPT、DEOP)
iptables [ -t 表名 ] 管理选项 [ 链名 ] [ 条件匹配 ] [ -j 目标动作或转发 ]

入侵检测技术基本概念与发展过程

入侵检测,对入侵行为的检测与发现。
信息收集是入侵检测技术的基础,入侵检测系统的可靠性和准确性在很大程度依赖于所收集信息的可靠性和完备性。
(1)误用检测
通过收集已知入侵行为的特征并进行描述,构成攻击特征库,然后对收集信息进行特征模式匹配,所有符合特征描述的行为均被视为入侵。
(2)异常检测
建立起系统的正常模式轮廓,若实时获得的系统或用户的轮廓值与上常值的差异超岀指定的阈偵,就进行入侵报警。

入侵检测系统部署

Snort介绍

著名的开源网络入侵检测系统软件。

数据包嗅探模块:主要负责监听网络数据包,并根据TCP/IP协议解析数据包。
预处理模块:1.包重组预处理器,它的作用是为了防止攻击信息被拆分到多个包中而 逃避了Snort的检测;2.协议编码预处理器,它的功能是把数据包协议解码成一个统一的格式,再传送给检测模块;3.协议异常检测预处器。
检测引擎模块:当预处理器把数据包送过来后,检测引擎将这些数据包与三维链表形式的检测规则进行匹配,一旦发现数据包中的内容和某条规则相匹配,就通知报警模块。
报警/日志模块:检测引擎将数据包传送给报警模块后,报警模块会根据规则定义(alert,log..)对其进行不同的处理(数据库,日志)。

实践过程

6.2.4动手实践:防火墙配置

实践任务:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1) 过滤ICMP数据包,使得主机不接收Ping包;
(2) 只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192.168.200.4) 无法访问。
seed ip 地址192.168,200,10
(1)在seed上通过iptables -L查看规则,发现都是默认规则

输入指令iptables -A INPUT -p icmp -j DROP指令使得主机不接受icmp的数据包。
其中-A是追加一条规则,INPUT表示数据包入口(规则),-p用于匹配协议,-j用于指定如何处理。
然后我们回到kali中去ping SEED Ubuntu发现ping一直没有反应,回到SEED再次查看规则,可看到一条icmp针对任何位置不允许访问的规则

(2)只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问
iptables -I INPUT -p tcp -s ip地址 --dport 80 -j ACCEPT

6.3.3动手实践:Snort

任务:使用Snort对给定pcap文件(第4章中的解码网络扫描任个pcap文件)进行入侵检测,并对检测出的攻击进行说明。
在BT4Linux攻击机或Windows Attacker攻击机上使用Snort, 对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下
•从离线的pcap文件读取网络日志数据源。
•在snort.conf中配置明文输出报警日志文件。
•指定报警日志log目录(或缺省log目录=/var/log/snort)。
seed中运行命令sudo snort -c /etc/snort/snort.conf -r ~/listen.pcap

运行命令vim /var/log/alert查看结果。可以从中找到SCAN nmap XMAS的关于nmap的报警信息。

实践作业

分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,并撰写分析报告, 说明蜜网网美是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。

(1)捕获数据机制:iptables可以通过记录日志的形式来捕获网络连接信息,包括源地址,目的地址,使用的端口和进行连接的协议、长度等等;Snort对符合入侵检测特征的攻击数据包发出响应的报警信息,从而标识网络流中存在的攻击事件。

我们先使用su -提权,然后输入vim /etc/init.d/rc.firewall去查看文件

文件中使用了全局变量,即使用了$的变量,-n表示使输出中的IP地址和端口以数值的形式显示,而不是默认的名字,比如主机名、网络名、程序名,-e暂未找到其含义,-N表示根据用户指定的名字创建新链,总的来说就是创建两条规则链,即白名单和黑名单规则链。
还有协议处理包

iptables中的默认策略和本地策略,-P表示为链设置默认的target(可用的是DROP和ACCEPT),这个target称作策略,默认策略中无论是入站、出站还是路由转发,全部丢弃,本地安全策略则是进站和出站都为允许,因为是在本地通信,故不存在路由转发。
(2)获取IPTables的实际规则列表、snort和snort_line的实际执行参数
输入iptables -L来查看规则列表

我们可以发现默认的规则INPUT、FORWARD、OUTPUT都已经被关闭了。
通过 vim /etc/init.d/snortd 打开Snort脚本文件,可以看到些参数的选项:默认使用默认目录下的snort.conf规则,默认监听网卡为eth0,默认存储日志路径为/var/log/snort。

获取Snort_inline实际执行参数:执行命令 vim /etc/init.d/hw-snort_inline 打开snort_inline的脚本文件,可以看到到实际执行的参数。

(3)密网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
使用 chkconfig --list 命令来对linux上运行的服务进行查询,可以发现NIDS的0~6都是off,说明是需要手动启动的,而防火墙和NIPS不全是off,是跟随系统启动的。-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置):

(4)密网网关中的Snort规则是如何自动升级的?
在/etc目录下使用命令“vim honeywall.conf”打开honeywall配置文件,这个里面可以看到一些,如我们配置的IP地址、子网掩码等等。
我们可以看到snort规则,默认是不自动更新的。还可以看到Oinkmaster字样,这是个自动更新的软件。

3.学习中遇到的问题及解决

  • 问题1:WinXPattacker 内部总是卡顿死机,无法关机也不能重启
  • 问题1解决方案:未找到解决方案,只能换虚拟机实验
  • 问题2:为什么每次做实验都没有那么顺利
  • 问题2解决方案:无解

4.实践总结

对计算机网络知识的了解程度果然很少很少,又是一个别人复习我预习的学习状态,操作过程一如既往的历经磨难,对于本章的原理理解还是停留在表面,还需要继续阅读,感谢身边优秀的同学,参考大家的博客给我点亮了无数的希望。

参考资料

posted @ 2020-04-08 15:22  付元元  阅读(276)  评论(0编辑  收藏  举报