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


目录

  • 20232831 2023-2024-2 《网络攻防实践》第5次作业
    • 1.实验内容
      • (1)防火墙配置(具体IP配置参考自己的IP设置)
      • (2)动手实践:Snort
      • (3)分析配置规则
    • 2.实验过程
    • 3.学习中遇到的问题及解决
    • 4.学习感悟、思考等
    • 参考资料


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

1.实验内容

(1)防火墙配置(具体IP配置参考自己的IP设置)

任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:

①过滤ICMP数据包,使得主机不接收Ping包;
②只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问

(2)动手实践:Snort

使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在学习通中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。

(3)分析配置规则

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

2.实验过程

(1)防火墙配置(具体IP配置参考自己的IP设置)
①过滤ICMP数据包,使得主机不接收Ping包

虚拟机名称IP地址
Kali-Linux攻击机(Vmnet8网段192.168.200.4
Metasploitable-Linux靶机 (Vmnet1网段192.168.200.123

首先,打开Kali和Metasploitable-Linux,并使用以下代码在Kali虚拟机上进行iptables的安装

sudo apt-get install iptables

在这里插入图片描述

安装完毕后,使用以下命令进行打开iptables,可以先查看到已经存在的默认规则

sudo iptables -L

在这里插入图片描述
完成工具的安装后,先测试攻击机与靶机之间的连通性,发现二者是能够互ping的,这样才能进一步进行实验,即过滤Icmp,从而阻止二者互ping。
在这里插入图片描述
在这里插入图片描述

使用以下命令,使得Kali主机过滤掉所有的ICMP包,这样就无法建立ping连接,即无法互ping。

sudo iptables -A INPUT -p icmp -j DROP

在这里插入图片描述
再次互ping,可以发现icmp包全部不见,因为已经被过滤掉了,所以无法接受icmp,导致互ping失败
在这里插入图片描述
在这里插入图片描述
在Kali中打开wireshark可以发现,icmp包均被防火墙拦截,因此无法从kali攻击机发出
在这里插入图片描述
②只允许特定IP地址

虚拟机名称IP地址
Kali-Linux攻击机(Vmnet8网段192.168.200.4
Metasploitable-Linux靶机 (Vmnet1网段192.168.200.123
WinXPattacker靶机 (Vmnet8网段192.168.200.2

首先,为了进行该部分的测试,得在Kali上安装两个工具,分别是FTP(21号端口)和Telnet(23号端口)两个工具
使用以下命令进行FTP和Telnet的安装与端口的打开

sudo apt-get install xinetd telnetd #安装telnet
sudo apt-get install vsftpd #安装ftp

/etc/init.d/xinetd start #开启telnet
/etc/init.d/xinetd status

/etc/init.d/vsftpd start #开启ftp
/etc/init.d/vsftpd status

在这里插入图片描述
在这里插入图片描述
在Metasploitable-Linux和WinXPattacker上使用ftp进行Kali的连接,均可连接上

ftp 192.168.200.4

在这里插入图片描述
在这里插入图片描述
再分别使用以下命令进行telnet远程连接,结果发现二者均被拒绝,猜测是仅仅打开telnet服务是无法使用的

telnet 192.168.200.4

在这里插入图片描述
在这里插入图片描述
进过查询资料以及chatgpt得知,仅仅打开telnet服务是不够的,还需要检查Kali虚拟机的防火墙状态,只有关闭防火墙才能使用telnet服务:

sudo apt-get install ufw #安装ufw命令
sudo ufw status #查看防火墙状态

在这里插入图片描述
然而,防火墙是关着的,因此还得查找原因

查找得知,原因也许还可能是

/etc/inetd.conf文件没有telnet相关内容

因此,打开以下文件,查看是否存在telnet的配置信息,如果没有则需要手动配置(一定得用sudo,否则权限不够,无法 修改文件)
修改 /etc/inetd.conf

sudo vim /etc/inetd.conf

添加以下内容:

telnet    stream     tcp    nowait    telnetd    /usr/sbin/tcpd    /usr/sbin/in.telnetd

在这里插入图片描述

在这里插入图片描述

修改/etc/xinetd.conf

sudo  vim  /etc/xinetd.conf

将全文内容修改替换为以下内容:

# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
# Please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d

在这里插入图片描述

此外,还需要添加默认的telnet配置
修改/etc/xinetd.d/telnet

sudo  vim  /etc/xinetd.d/telnet

添加以下内容:

# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{    
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}

在这里插入图片描述
此后,重启telnet服务

/etc/init.d/xinetd restart   

在这里插入图片描述
配置完成telnet后,重新进行telnet远程连接的测试
二者均成功连接:
在这里插入图片描述
在这里插入图片描述

因此,完成所有配置后,重新进行实验
输入以下代码,使得只有Metasploitable靶机才能进行访问Kali主机的21号端口,而WinXPattacker则不行,即首先,使用sudo iptables -P INPUT DROP扔掉所有与INPUT链中任何规则都不匹配的数据包,然后设置只接受来自IP地址为192.168.200.123的21号端口请求。

sudo iptables -P INPUT DROP
sudo iptables -A INPUT -p tcp -s 192.168.200.123 --dport 21 -j ACCEPT

在这里插入图片描述
此后,再在两台虚拟机上进行Kali主机的连接,首先是Metasploitable,能够发现它能够连接kali的21号端口,但是无法连接23号端口

在这里插入图片描述
再在WinXPattacker上进行测试,能够发现二者均不可实现

在这里插入图片描述
在这里插入图片描述
若重新添加以下代码,添加21号端口后,则WinXPattacker上又可以连接21号端口了

sudo iptables -A INPUT -p tcp -s 192.168.200.2 --dport 21 -j ACCEPT

在这里插入图片描述

(2)动手实践:Snort

Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)

由于Kali里面安装snort总是失败,尝试多次无法进行,因此根据群内同学的建议,在SeedUbuntu中进行snort的安装并进行分析

通过以下代码,分析之前实验提供的listen.pcap文件(-c 表示选择snort配置文件,-r 表示从pcap格式的文件中读取数据包,-K ascii 用于指定输出日志文件为ASCII编码)

sudo snort -c /etc/snort/snort.conf -r listen.pcap -K ascii

在这里插入图片描述

通过以下命令可以查看日志

cd /var/log/snort
vim alert.1

在这里插入图片描述

在这里插入图片描述
可以看到,该文件中的攻击是使用nmap命令进行的,攻击机IP地址是 172.31.4.178,靶机IP地址是 172.31.4.188 ,可以看到端口号、IP地址等等信息,分析结果与之前的实验相同。

(3)分析配置规则
这部分的实验需要在蜜网网关上进行,首先进行防火墙的查看,分析防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
首先,使用以下命令进行查看

vim /etc/init.d/rc.firewall

在这里插入图片描述
首先,可以看到creat_chains函数,该函数有三块内容:BlackList、WhiteList和FenceList,它们存储了源地址和目的地址的黑名单、白名单、防护名单等等信息,并定义了相关规则。
在这里插入图片描述
下面在start()函数中进行查看(creat_chains函数在上面已经解释,下面省略)
在这里插入图片描述
load_modules():这个函数用于加载所需的内核模块,以支持防火墙所需的功能。它可能会加载类似iptable_filter、iptable_nat等模块,这些模块提供了防火墙规则和网络地址转换(NAT)等功能所需的支持。

flush():这个函数用于清除并创建防火墙中的链(chains)。链是防火墙规则的容器,用于对网络流量进行分类和处理。这个函数通常会清除现有的防火墙链,并创建所需的链,如输入链(INPUT)、输出链(OUTPUT)和转发链(FORWARD)等。

default_policy():这个函数用于设置防火墙的默认策略。默认策略定义了当没有匹配的防火墙规则时如何处理网络流量。例如,它可以指定默认允许或默认拒绝所有流量。这个函数通常会设置默认策略,如允许输入链(INPUT)和输出链(OUTPUT)的默认行为。

local_host_policy():这个函数用于设置本地主机(即蜜网网关自身)的策略。它可能包含一些针对本地主机的特定防火墙规则和策略设置,以确保本地主机的安全性。

management_policy():这个函数用于设置管理策略,通常是指允许或限制对蜜网网关的管理访问的策略。这可能包括允许特定IP地址或网络对蜜网网关进行管理操作(如SSH登录、Web管理界面等),以及限制其他来源的管理访问。
使用以下命令进行iptables规则表的查看

iptables -L

在这里插入图片描述
使用以下命令进行相关snort规则的查看,可以看到eth0这一网络接口的配置情况,即虚拟网卡端口eth0的规则

vim /etc/init.d/snortd

在这里插入图片描述
使用以下命令可以看到Snort_inline运行时的一些相关参数,例如Snort Inline 的路径信息、配置和相关的脚本等等信息,涉及启动、停止、重启 Snort Inline 服务的逻辑,以及其他与配置和管理 Snort Inline 相关的功能。

vim /etc/init.d/hw-snort_inline

在这里插入图片描述
通过以下命令,可以查看一些服务情况,例如以下命令查看iptables和snort的情况,下面如果是on,则该服务是开机自动启动的,如果是off,则是需要手动打开的。

chkconfig --list | grep iptables
chkconfig --list | grep snort

在这里插入图片描述

总结:

蜜网网关通过配置防火墙和入侵检测系统/入侵防御系统(IDS/IPS)的规则,实现了攻击数据的捕获和控制需求。防火墙规则用于过滤和控制网络流量,它可以限制对蜜网网关的访问,并允许只有特定的攻击流量进入。而IDS/IPS规则则用于检测和防御具体的攻击行为,当攻击流量被检测到时,IDS/IPS会触发警报或采取相应的防御措施,如阻止攻击流量或发送通知。通过这样的配置,蜜网网关能够诱使攻击者将其注意力集中在虚拟网络上,同时捕获攻击数据并对其进行分析和响应,以进一步加强网络的安全性。

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

  • 问题1:telnet服务无法使用
  • 问题1解决方案:检查发现问题,从是否是防火墙的问题到是否配置了telnet,一路排错,最终解决
  • 问题2:snort无法在Kali上实现使用
  • 问题2解决方案:与之前的实验一样,仍然在SeedUbuntu上进行snort工具的使用和分析

4.学习感悟、思考等

在这次实践中,通过防火墙设置,实现了过滤ICMP数据包,禁止了Ping请求,并限制了特定IP地址访问主机的特定网络服务。此外,还使用Snort对给定的pcap文件进行入侵检测,并成功获得了报警日志。最后,通过在蜜网网关上进行分析配置规则,进一步深入了解了防火墙、蜜网网关等相关知识。通过这些配置和工具的应用,提高了我对蜜网网关的安全性和防御能力的理解,使得更深入地理解了防火墙和入侵检测技术在攻防环境中的重要作用。

参考资料

  • Ubuntu无法telnet
  • ubuntu 配置telnet服务,内含遇到的问题+转载如何配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/535841.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读——SplitFed: When Federated Learning Meets Split Learning】

级别CCFA 1.摘要 联邦学习(FL)和分割学习(SL)是两种流行的分布式机器学习方法。两者都采用了模型对数据的场景;客户端在不共享原始数据的情况下训练和测试机器学习模型。由于机器学习模型的架构在客户端和服务器之间…

HWOD:二维数组下标合法性判断

一、知识点 1、停止读取的判定条件有两种写法 (1):while(scanf()!EOF) (2):while(scanf()>0) 在代码提交平台(1)和(2)都可以用 在本地,只能用(2),且要有非法输入的配合。比如要读取的是整数,但输入了字符串&am…

微信小程序自定义关闭按钮在弹窗下面的效果

效果图: 我之前用vant 的popup的弹窗写,会出现close图标移动到弹窗内容外部不可见。 自定义代码: popup.JS/*** 生命周期函数--监听页面初次渲染完成*/onReady() {//自定义弹窗 动态获取屏幕高度var that this;wx.getSystemInfo({success: (result) &…

如何排查k8s集群中Pod内mysqld进程占用内存消耗过高?

文章目录 1. **查看容器资源使用情况**:2. **进入容器内部**:3. **检查进程内存使用**:4. **MySQL服务器状态检查**:5. **MySQL日志分析**:6. **使用专门的MySQL监控工具**:7. **配置文件检查**&#xff1a…

一个PDF文件含有多篇不同的内容,如何把这些内容分离出来?

一,PDF的含义 PDF,全称Portable Document Format,即便携式文档格式,是一种由Adobe Systems开发的文件格式,用于呈现文档,包括文本、图像、向量图形、字体、颜色、页面布局等,并可在不同的操作系…

LLMs之ToolAlpaca:ToolAlpaca(通用工具学习框架/工具使用语料库)的简介、安装和使用方法、案例应用之详细攻略

LLMs之ToolAlpaca:ToolAlpaca(通用工具学习框架/工具使用语料库)的简介、安装和使用方法、案例应用之详细攻略 目录 ToolAlpaca的简介 0、《ToolAlpaca: Generalized Tool Learning for Language Models with 3000 Simulated Cases》翻译与解读 1、数据集列表 2…

PDF文件内容可以转成word版本吗?答案是肯定的 PDF转word的方法

一,PDF转Word的必要性 随着信息技术的飞速发展,文档的格式和转换成为了我们日常生活和工作中不可避免的一部分。其中,PDF转Word的需求尤为突出。PDF作为一种跨平台的文档格式,具有阅读效果好、不易被篡改等优点,但在编…

科技论文和会议录制高质量Presentation Video视频方法

一、背景 机器人领域,许多高质量的期刊和会议(如IEEE旗下的TRO,RAL,IROS,ICRA等)在你的论文收录后,需要上传一个Presentation Video材料,且对设备兼容性和视频质量有较高要求&#…

个人劳保用品穿戴检测系统 安全帽、工服、面罩、防护手套、防护鞋、安全背带穿戴检测等

背景 在工业生产、医疗护理、消防救援等高风险领域,正确穿戴个人防护装备或劳保用品(PPE:Personal Protective Equipment)是保障人员安全的重要措施,如安全帽、反光衣、安全背带等。然而,现实中往往会出现…

最新ChatGPT网站系统源码Midjourney-AI绘画,GPTs,AI换脸支持

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支持GPT…

微服务学习(黑马)

学习黑马的微服务课程的笔记 导学 微服务架构 认识微服务 SpringCloud spring.io/projects/spring-cloud/ 服务拆分和远程调用 根据订单id查询订单功能 存在的问题 硬编码 eureka注册中心 搭建eureka 服务注册 在order-service中完成服务拉取 Ribbon负载均衡 Nacos注册中心…

mars3d.MaterialType.Image2修改配置面状:图片2的speed数值实现动画效果说明

摘要: mars3d.MaterialType.Image2修改配置面状:图片2的speed数值实现动画效果说明 前提: 1.在示例中,尝试给mars3d.MaterialType.Image2材质的图片加上speed参数,实现动画效果,但是没有看到流动效果说明…

AI工具导航网站比较分析

介绍 本篇博客将从FutureTools和GPT-3 Demo两个AI工具导航网站出发,进行全面比较分析,为读者提供深入了解和选择适合需求的信息。同时针对需求提供标题和内容。 标题 "AI工具导航网站:FutureTools与GPT-3 Demo的全面比较分析" 内容…

背 单 词 (考研词汇闪过)

单词: 买考研词汇闪过 研究艾宾浩斯遗忘曲线 https://www.bilibili.com/video/BV18Y4y1h7YR/?spm_id_from333.337.search-card.all.click&vd_source5cbefe6dd70d6d84830a5891ceab2bf9 单词方法 闪记背两排(5min)重复一遍(2mi…

MySQL数据库的详解(1)

DDL(数据库操作) 查询 查询所有数据库:show databases;当前数据库:select database(); 创建 创建数据库:create database [ if not exists] 数据库名 ; 使用 使用数据库:use 数据库名 ; 删除 删除数…

Nginx 基础应用实战 06 构建一个PHP的站点

Nginx 基础应用实战 06 构建一个PHP的站点 使用套件 lmnp https://oneinstack.com 安装完成后 搭建bbs https://www.discuz.net/ 搭建博客 https://wordpress.com https://cn.wordpress.org/ CMS系统 http://www.dedecms.com/ 构建Lua站点 Openresty Nginx Lua …

【强化学习实践】Gym+倒立单摆+创建自己的环境

一、Gym Gym是OpenAI开发的一个强化学习算法测试环境集合包。Gym提供了多种标准的环境,包括经典的游戏(如Atari游戏)、机器人模拟任务以及其他各种类型的问题,供开发者测试和训练强化学习智能体。在Gym环境中,开发者可…

2024最新AI系统【SparkAI】,ChatGPT商业运营版系统源码/ai问答/ai绘画/GPTs,SunoAI音乐生成大模型/带分销AIGC搭建部署教程

一、文章前言 SparkAi创作系统是基于ChatGPT进行开发的ai智能问答系统和Midjourney-AI绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已…

利用Python实现可视化交互界面:Dash

Dash是一个低代码数据框架,用Python实现可视化交互界面,不用写Javascript,开源,支持回调、HTML组件等功能。 安装 pip install dash使用 # Import packages from dash import Dash, html, dash_table, dcc, callback, Output, …

MySQL压力测试最佳实践(16/16)

MySQL压力测试 基本概述 sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。项目地址:http://github.com/akopytov/sysbench 工具安装 1.1 在线安装(CentOS)&#xf…