zty1234

导航

20241903 2024-2025-2 《网络攻防实践》第5次作业

1. 实践内容

本次实践分为三个实验。首先是进行防火墙的配置,使得先后完成一些功能:过滤ICMP数据包,使得主机不接收Ping包;只允许特定IP地址访问主机的某一网络服务而其他的IP地址不行。其次是使用Snort对给定的listen.pcap文件进行入侵检测,并通过警报日志说明检测出的攻击。最后是分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,对蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的进行说明。


2. 前置知识

防火墙 :防火墙是一种网络安全设备或软件,用于监控和控制网络流量,以保护内部网络免受外部威胁和未经授权的访问。
其基本原理如下:

  • 监控网络流量:防火墙可以检查流经网络的数据包,根据预设的规则决定是否允许这些数据包通过。
  • 规则设置:用户可以根据需要设置规则,例如允许或拒绝特定IP地址、端口或协议的流量。
  • 访问控制:它能够区分内部网络(受信任区域)和外部网络(不受信任区域),只允许合法的流量进入内部网络。

它能实现的主要功能有:

  • 阻止恶意攻击:防止黑客、病毒和恶意软件入侵内部网络。
  • 保护隐私数据:防止内部敏感信息被外部窃取。
  • 过滤垃圾信息:减少不必要的网络流量,提高网络性能。

入侵检测/入侵检测系统入侵检测(Intrusion Detection) 是一种网络安全技术,用于监测和识别网络或系统中是否存在未经授权的访问或恶意活动。入侵检测系统(IDS) 是一种基于入侵检测技术的一种网络防御系统,是网络安全的重要组成部分,能够帮助及时发现并应对潜在的安全威胁。
它的主要功能有:

  • 监控网络流量:实时分析网络数据包,查找异常行为模式。
  • 检测攻击行为:识别常见的攻击手段,如扫描、暴力破解、恶意软件传播等。
  • 发出警报:一旦发现可疑活动,系统会发出警报,通知管理员采取措施。

其工作原理为:

  • 基于特征检测:通过匹配已知攻击特征来识别威胁。
  • 基于异常检测:分析网络和系统行为,检测偏离正常模式的异常情况。

蜜网网关 通过配置 防火墙和入侵检测系统/入侵防御系统(IDS/IPS)的规则 ,实现了攻击数据的捕获和控制需求。具体实现方式如下:

防火墙配置:

  • 过滤特定流量:蜜网网关的防火墙(如使用iptables)配置规则用于 过滤和控制网络流量 。例如,可以设置规则过滤ICMP数据包,使得主机不接收Ping包,还可以限制只有特定的攻击机IP地址能够访问蜜网网关的某些服务(如FTP、HTTP、SMB),而其他IP地址则无法访问。
  • 设置黑白名单:防火墙规则中可能包括 黑名单 (阻止某些网络地址和用户进入主机)和 白名单 (允许信任的网络用户及地址访问)。此外,还可能设置 防护名单 ,保护不允许被外部访问的蜜罐主机。

IDS/IPS配置:

  • 入侵检测与防御:IDS/IPS(如Snort)用于 检测和防御具体的攻击行为 。蜜网网关通过配置Snort的规则文件(如snort.conf),能够检测到攻击流量并触发警报。例如,当检测到攻击流量时,IDS/IPS会记录攻击的相关信息,如攻击机IP地址、靶机IP地址、端口号等。
  • 自动响应措施:IDS/IPS还可以根据配置采取相应的防御措施,如阻止攻击流量或发送通知。

攻击数据捕获与控制:

  • 捕获攻击数据:蜜网网关通过防火墙和IDS/IPS的协同工作,诱使攻击者将其注意力集中在虚拟网络上,并捕获攻击数据。防火墙规则允许特定的攻击流量进入蜜网,而IDS/IPS则对这些流量进行详细分析和记录。
  • 控制攻击流量:防火墙规则可以限制攻击流量的范围和方向,确保只有符合特定条件的流量能够进入蜜网网关。同时,IDS/IPS能够对检测到的攻击行为进行实时响应,进一步控制攻击的影响。通过这样的配置,蜜网网关能够有效地捕获攻击数据并对其进行分析和响应,从而增强网络的安全性。

3. 实践过程

实验一:防火墙配置
本实验总共利用三台虚拟机:kali,metasploitable,winxpattacker。
分为两个小实验:1. 配置防火墙让主机不接受任何icmp包。2. 只允许特定ip访问主机某些服务而其他主机不行。

  1. 配置防火墙让主机不接受任何icmp包。
    打开kali虚拟机,键入iptables -L查看规则。

    可以发现,没有任何规则。
    现在,我们要使kali机过滤掉icmp数据包,不接受ping包。
    键入ifconfig查看kali的ip地址为192.168.200.6。

    我们尝试在winxpattacker上键入ping 192.168.200.6,成功ping通。

    现在,我们在kali中加入规则,键入iptables -A INPUT -p icmp -j DROP

    再次使用iptables -L查看规则,发现成功添加一条规则,意思是添加一条将从任何地方来到任何地方去的icmp包全部扔掉的规则:

    回到winxpattacker,再次尝试ping 192.168.200.6。发现全部超时,无法ping通。

    与此同时,我们再回到kali,键入iptables -D INPUT -p icmp -j DROP将刚刚那条规则删除。同时再去winxpattacker尝试ping 192.168.200.6,发现又能ping通了,这说明刚刚kali写入的规则生效了。

  2. 只允许特定ip访问主机某些服务而其他主机不行。
    打开metasploitable,键入ifconfig查看ip。可以看到它的ip是192.168.200.125。

    在kali和winxpattacker上分别键入telnet 192.168.200.125,输入账号密码登录metasploitable。


    回到metasploitable,键入sudo iptables -P INPUT DROP

    回到kali和winxpattacker,发现命令行全部卡死,无法输入任何命令。分别重新打开命令行再次键入telnet 192.168.200.125。发现没有响应无法连接。


    回到metasploitable,键入iptables -A INPUT -p tcp -s 192.168.200.6 -j ACCEPT,开启对原ip为192.168.200.6的虚拟机(kali)tcp端口的服务。

    键入iptables -L查看规则:

    回到kali和winxpattacker中,再次telnet 192.168.200.5,发现kali可以成功,但是winxpattacker依然失败。这说明我们的规则生效了,只允许ip为192.168.200.6的虚拟机(kali)访问主机某些服务(TCP服务)而其他主机不行。


    实验一完成!

实验二:snort入侵检测
本实验只使用一台虚拟机:kali。
在kali中下载listen.pcap包,键入命令snort -r /etc/snort/listen.pcap -c /etc/snort/snort.lua -A alert_fast -l /var/log/snort,snort3默认使用ascii编码,不需要额外打指令,然后我们查看有关于该pcap包的统计数据,且将警报信息写入/var/log/snort下。



可以看见,总共有13万余个包,其中tcp包占比99.985%,另外还有20个arp包。另外还有58个警告被记录在日志中。同时可以看到,总共会话数据有67660个,tcp流个数为67657个,该模块详细记录了tcp流的数据。
接下来我们键入vim /var/log/snort查看我们的警报日志。

如下,我们进入alert_fast.txt

可以看到警告的包的简要信息都在这个txt文件里,我们着重关注红框部分,可以发现是ip为172.31.4.178对172.31.4.188的Nmap攻击。


实验二完成!

实验三:分析配置规则
本实验只使用一台虚拟机:honeywall。
打开honeywall,用su -获得root权限之后,键入vim /etc/init.d/rc.firewall打开防火墙配置。

往下翻,找到 黑名单,白名单,和防护名单 。这分别对应三种策略:对于黑名单,丢弃所有的包;对于白名单,允许所有的包访问;对于防护名单,进行有选择的包过滤来保护某些不希望被访问的主机。

退出返回命令行,键入iptables -t filter -L | more来查看规则列表,这里展现了iptables的具体过滤和保护规则,是实现其安全性的核心部件之一。

退出返回命令行,键入vim /etc/init.d/snortd打开snort脚本文件。



可以看到,该脚本默认使用snort.conf配置文件,默认监听eth0网络,日志存储目录为/var/log/snort。同时还定义了一些其他的操作。
接下来键入vim /etc/init.d/hw-snort_inline ,打开snort_inline的脚本文件查看实际执行参数。
下图定义了一些变量参数。

下图定义了一些操作。

回到命令行,键入chkconfig --list | grep iptableschkconfig --list | grep snort分别检查iptables和snort下的脚本是否开启。

其中0~6分别表示关机、单用户模式、无网络连接的多用户命令行模式、有网络连接的多用户命令行模式、不可用、带图形界面的多用户模式、重新启动。可以看出iptables和hw-snort_inline在无网络连接的多用户命令行模式下开始启动,而snortd在任何情况下都不会自启动。
回到命令行,键入vim /etc/honeywall.conf查看蜜网的配置文件。找到有关于snort的配置模块,里面存放一些跟snort相关的配置。

实验三完成!


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

  • 问题1:snort的alert_fast模式无法输出日志。键入vim /var/log/snort内什么都没有。
  • 问题1解决方案:这是因为snort3为了节省内存默认将日志输出关闭,我们需要更改snort.lua。先键入nano /etc/snort/snort.lua往下找到configure outputs模块。将alert_fast前的注释符号删除,在括号内填入 file = true,limit = 64即可,这分别代表着允许以txt格式生成日志,且生成大小不能超过64MB(不写默认是0,可能也会导致无法输出)。

5. 实践总结

通过这次实践,我深刻体会到了网络安全防护技术的实际应用和重要性。在防火墙配置任务中,我掌握了如何利用iptables或个人防火墙实现对网络流量的精细控制,例如过滤ICMP数据包和限制特定IP地址对服务的访问,这让我明白了防火墙在网络安全中的基础防护作用。而在使用Snort进行入侵检测的实践中,我学会了如何从pcap文件中提取网络流量并检测潜在的攻击行为,这让我认识到入侵检测系统在主动防御中的关键作用。通过分析蜜网网关的防火墙和IDS/IPS配置规则,我进一步理解了如何结合这些技术来捕获攻击数据并控制攻击行为。这次实践不仅提升了我的技术能力,也让我更加意识到网络安全防护的复杂性和必要性,为今后的学习和工作打下了坚实的基础。


参考资料

posted on 2025-03-27 22:50  zty1423  阅读(87)  评论(0)    收藏  举报