• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

wangJL02

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

20242827 2024-2025-2 《网络攻防实践》实践五报告

20242827 2024-2025-2 《网络攻防实践》实践五报告

实践内容
一、防火墙配置(IP地址仅供参考,以实际为准)
任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问
二、动手实践:Snort
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在学习通中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。

Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)
三、分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。

1.实践内容

1.1 防火墙

防火墙是一种网络安全设备或软件,用于监控和控制网络流量的传输,以保护内部网络免受未经授权的访问、攻击和恶意软件的侵害。它可以根据预先设定的规则,对网络数据包进行过滤,阻止或允许特定类型的流量通过。防火墙通常用于防范各种网络威胁,包括黑客入侵、病毒传播、僵尸网络和数据泄露等。防火墙可以部署在网络边界、主机系统或应用程序层,具体的实现方式包括网络防火墙、主机防火墙和应用程序防火墙。它们可以采用不同的技术来实现,如基于端口、IP地址、协议类型、内容过滤等规则进行流量控制和审查。在企业网络中,防火墙通常作为网络安全策略的一部分,与其他安全设备和技术(如入侵检测系统、虚拟专用网络等)配合使用,构建多层防御体系,以提高网络安全性。

1.2 iptables

iptables是一个用于管理 Linux 内核防火墙功能的命令行工具。它允许用户配置规则集,用于控制网络流量的传输,实现网络安全策略。通过 iptables,用户可以定义规则来允许或拒绝特定类型的数据包通过系统,从而保护网络免受未经授权的访问和攻击。
iptables 的主要功能包括:
过滤功能:允许或拒绝数据包的传输,可以基于源 IP 地址、目标 IP 地址、端口号、协议类型等来过滤流量。
网络地址转换 (NAT):可以修改数据包的源或目标地址和端口,实现网络地址转换,常用于构建内部网络与外部网络之间的映射。
连接追踪:跟踪网络连接状态,可以跟踪 TCP、UDP 和 ICMP 连接的状态,从而实现更精细的流量控制。
数据包修改:允许用户修改数据包的内容,如修改数据包的标记、修改 TTL 等。

1.3 Snort

Snort 是一个开源的网络入侵检测系统 (NIDS),它能够实时监测网络上的流量,并对可能的攻击行为进行检测和警报。Snort 通过分析网络数据包的内容和头部信息来检测可能的恶意行为,如端口扫描、攻击尝试、恶意软件传播等。
Snort 的工作原理主要包括以下几个步骤:
数据包捕获:Snort 通过网络接口捕获到达主机的网络数据包。
数据包预处理:对捕获到的数据包进行预处理,包括数据包重组、协议分析等操作。
规则匹配:Snort 使用预先定义的规则集对数据包进行匹配,规则通常包括特征、动作等信息。
警报生成:如果数据包匹配了某个规则,Snort 将生成警报,指示可能发生了恶意行为。
日志记录:Snort 会将匹配规则的数据包信息记录到日志文件中,以便后续分析和审查。
Snort 的规则集可以根据网络环境和需求进行定制和扩展,用户可以根据需要添加新的规则或修改现有规则,以提高检测的准确性和适用性。Snort 还支持多种输出方式,如控制台输出、日志文件记录、邮件通知等,用户可以根据需求配置不同的输出方式。

1.4 IDS与IPS的区别

IDS(入侵检测系统)和 IPS(入侵防御系统)是网络安全中常见的两种技术,它们都旨在保护网络免受未经授权的访问和恶意攻击,但在功能和实现方式上有一些区别。
IDS(入侵检测系统): IDS 主要用于监测网络中的异常活动和潜在的安全事件,但不会主动干预或阻止这些事件的发生。它通过分析网络流量、日志或系统活动等信息来检测可能的入侵行为。 IDS 的工作方式通常是 passively(被动地)监测网络流量,分析数据包的内容和头部信息,以识别潜在的攻击特征或异常行为。当 IDS 检测到可能的入侵行为时,它会生成警报并通知管理员,管理员需要手动对警报进行响应和处理。
IPS(入侵防御系统):IPS 不仅可以检测网络中的异常活动,还可以主动阻止和防御这些活动,以保护网络免受攻击。它可以自动执行预定义的动作来响应检测到的入侵行为。IPS 的工作方式是 actively(主动地)干预网络流量,当检测到潜在的入侵行为时,它可以立即采取措施来阻止攻击,如阻断连接、封锁 IP 地址等。 IPS 具有实时响应和自动化防御的特性,可以更快地对入侵行为进行反应,并减少管理员手动干预的需求。IDS 主要是监测网络中的异常行为并生成警报,而 IPS 则在此基础上增加了主动阻止和防御的功能,能够实时响应入侵行为并自动执行防御措施。

2.实践过程

本次实验中,各个虚拟机的IP地址是

2.1 防火墙配置

2.1.1 过滤ICMP数据包,使得主机不接收Ping包;

在seedubuntu使用命令iptables -V,显示出了版本号说明我们已经安装了,如果没有,运行apt-get install iptables进行安装。然后使用命令sudo iptables -L查看当前防火墙配置信息。可以看到图中均显示policy ACCEPT,即都有权限。接着使用命令sudo iptables -A INPUT -p icmp -j DROP添加规则,然后使用sudo iptables -L查看当前防火墙配置信息,可以看到添加成功,其中-A是追加新规则于指定链的尾部,INPUT表示数据包入口(规则),-p用于匹配协议,-j用于指定如何处理。

打开Kali,在kali中使用命令ping 192.168.200.129(seedubuntu),发现不通。

在seedubuntu上,使用命令sudo iptables -F删除刚刚自定义的规则。

在Kali上再次使用命令ping 192.168.200.129,发现ping通了。

2.1.2 只允许特定IP地址(如局域网中的Linux攻击机192.168.200.6),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.124)无法访问。

在Kali中输入命令 'telnet 192.168.200.129' ,连接seedubuntu,此时是可以连通并登录的

在seedubuntu中输入命令'sudo iptables -P INPUT DROP' 使所有用户无法访问

此时在Kali中再次尝试与seedubuntu进行连接,发现无法连接

在seedubuntu中输入命令 'iptables -A INPUT -p tcp -s 192.168.200.4 -j ACCEPT',表示允许192.168.200.4与seedubuntu进行连接

此时返回Kali,发现可以通过telnet连接seedubuntu

在seedubuntu中输入命令 'iptables -F' 和 'iptables -P INPUT ACCEPT',恢复最初的状态。就都可以telnet登录了

2.2 动手实践:Snort

在kali下载好snort后,使用命令 snort -r /home/kali/learn/listen.pcap -c /etc/snort/snort.lua -A alert_fast -l /var/log/snort 对之前实验中的listen.pacp进行入侵检测 (-c 表示选择snort配置文件,-r 表示从pcap格式的文件中读取数据包,-A 设置报警输出模式为alert_fast,生成简洁的报警日志, -l可以指定报警日志的输出目录,记得在sudo模式下),可以看到被检测到的数据包中大部分为TCP会话。





此时snort会在默认目录生成一个日志文件,进入报警日志目录 cd /var/log/snort,查看日志文件 vim alert,可以看到报警数据的具体检测信息
(但是在这个pcap文件里,没有符合格式要求的信息,所以没有生成相应的日志文件)

2.3 分析配置规则

在蜜罐honeywall虚拟机 ,输入'su -'进入root权限,在root权限下输入命令 'vim /etc/init.d/rc.firewall' 查看防火墙文件,

在start函数中首先是create_chains函数,定义了下述程序中使用的规则。BlackList、WhiteList、FenceList和xxxHandler。它们分别用来存储源地址和目的地址黑名单,源地址和目的地址的白名单,源地址和目的地址的防护名单,以及供下述policy使用的各种协议对应的Handler链。

防火墙文件rc.firewall中还可以看到默认规则、本地规则、管理规则

防火墙开启后根据先前规则链及定义的规则函数过滤数据包

输入'iptables -t filter -L | less',查看IPTables的实际规则列表、snort和snort_line的实际执行参数,如下图:

使用 'vim /etc/init.d/snortd' 命令打开Snort脚本文件,查看相关的运行参数,可以分别看到一些参数的选项,包括实际运行时候的参数。学习一些snort的指令后进行分析,譬如在指定网卡接口后,如果没有其他的参数,将按照默认参数运行。如默认不开启-A模式,使用默认目录的config文件,默认使用eth0、使用二进制模式保存log文件等,还可以看到监听网卡和存储配置文件的位置如下图


输入'vim /etc/init.d/hw-snort_inline'命令可以看到Snort_inline运行时参数,-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置,如下图

防火墙、NIDS、NIPS是如何启动
例如使用'chkconfig --list|grep snort'命令来对linux上运行的服务进行查询,可以发现NIDS的0~6都是off,说明是需要手动启动的,
而防火墙和NIPS不全是off,是跟随系统启动的。

输入命令'vim /etc/honeywall.conf'打开honeywall配置文件,找到Snort Rule Update Variables,可以看到其值为no,不自动更新;

输入命令'vim /etc/oinkmaster.conf'打开该文件,发现了 snort.conf 文件,可以推断这里使用工具 Oinkmaster 默认跳过 local.rules、deleted.rules 和 snort.conf 的更新,以避免覆盖本地自定义配置。

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

  • 问题1:在honeywall中查找函数很麻烦
  • 问题1解决方案:可以使用命令进行快速查找,例如/default_policy可以快速找到这个函数。
  • 问题2:找不到文件的位置
  • 问题2解决方案:可以用locate来找

4.实践总结

在这次实验中对防火墙相关知识有了进一步的认识,了解了防火墙的配置规则,并进行了相关实践,同时也认识并实践了Snort和iptables。

posted on 2025-04-02 20:43  Wang_JL  阅读(57)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3