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服务,内含遇到的问题+转载如何配置

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java代码基础算法练习-统计学生成绩-2024.04.11

任务描述&#xff1a; 编写程序&#xff0c;输入n个(0<n<50)学生的成绩(输入-1结束)&#xff0c;要求统计并输出优秀(大任务描述:于85)、及格(60~84)和不及格(小于60)的学生人数。(成绩取值范围0~100) 任务要求&#xff1a; 代码示例&#xff1a; /*** 这个程序用于统计…

1200/天,长期兼职贵么?

今天收到一个客户询盘&#xff0c;问公司长期招聘一个兼职程序员&#xff0c;包月的这种。问我多少钱一个月&#xff0c;在这种需求未明确的情况下&#xff0c;单纯的问价格其实意义不大的&#xff0c;只要报价不在客户心理预期范围内基本没戏的。 关于定价 关于程序员价格的定…

基于SSM在线CRM系统的设计与实现需求(内附设计LW + PPT+ 源码下载)

基于SSM在线CRM系统的设计与实现需求&#xff08;内附设计LW PPT 源码下载&#xff09; 摘 要&#xff1a; 信息化的价值让社会变得一次又一次的更加进步&#xff0c;那么在于传统制造行业来说&#xff0c;信息化更能够改变其业务逻辑、生产成本&#xff0c;实现降本增效的…

加速度JUSDO | 电子元器件商城行业调研及运营方案

一、行业背景与竞品分析 随着电子元器件行业的快速发展&#xff0c;线上元器件商城已成为行业交易的重要渠道。目前市场上存在多个知名的元器件商城&#xff0c;如立创、云汉芯城、贸泽商城等&#xff0c;它们都提供了丰富的元器件产品和便捷的线上交易服务。 立创商城&#x…

损失函数篇 | YOLOv8更换损失函数之Powerful-IoU(2024年最新IoU)

前言:Hello大家好,我是小哥谈。损失函数是机器学习中用来衡量模型预测值与真实值之间差异的函数。在训练模型时,我们希望通过不断调整模型参数,使得损失函数的值最小化,从而使得模型的预测值更加接近真实值。不同的损失函数适用于不同的问题,例如均方误差损失函数适用于回…

手拉手安装启动Kafka2.13

启动Kafka本地环境需Java 8以上 Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者在网站中的所有动作流数据。 这种动作&#xff08;网页浏览&#xff0c;搜索和其他用户的行动&#xff09;是在现代网络上的许多社会功能的一个关键因素。 Kafka启动…

创新指南|战略衡量的增长组织:用人工智能增强关键绩效指标(KPI)

传统的关键绩效指标 (KPI)越来越无法提供领导者取得成功所需的信息和见解。他们在跟踪进展、协调人员和流程、确定资源优先级以及推进问责制方面存在不足。本文是 2024 年第一份麻省理工学院 SMR - BCG 人工智能和商业战略全球高管学习和研究项目的调查结果——人工智能和业务战…

Spring Cloud学习笔记:Eureka简介,Eureka简单样例

这是本人学习的总结&#xff0c;主要学习资料如下 - 马士兵教育 [TOC](目录)1、Eureka 1.1、架构 Eureka是SpringCloud Nexflix的核心子模块&#xff0c;其中包含Server和Client。 Server提供服务注册&#xff0c;存储所有可用服务节点。 Client用于简化和Server的通讯复杂…

国家统计局行政区划获取及入库ES实践

我们先看下最终效果&#xff1a; 1. ES索引新建 PUT administrative_division {"mappings": {"properties": {"province": {"type": "keyword"},"province_code": {"type": "keyword"},&q…

MATLAB有限元结构动力学分析与工程应用-徐斌|【PDF电子书+配套Matlab源码】

专栏导读 作者简介&#xff1a;工学博士&#xff0c;高级工程师&#xff0c;专注于工业软件算法研究本文已收录于专栏&#xff1a;《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现&#xff0c;并提供所有案例完整源码&#xff1b;2.单元…

SQL Serve---查询

概要 1、order by子句 —默认asc&#xff08;升序&#xff09;、desc&#xff08;降序&#xff09; 2、distinct关键字 3、group by子句 4、聚合函数 —max()、min()、sum()、avg()、count() 5、having子句 6、compute子句 英文关键字 order by 排序 asc…

day16 java 包装类

包装类 包装类 : Java给每种基本数据类型都创建了一个对应的类 该类叫作包装类。 包装类的作用&#xff1a; 包装类可以弥补基本数据类型在面向对象的环境中的局限性和便利性。 自动拆箱 &#xff1a;将包装类的类型转成基本数据类型。 自动装箱 &#xff1a;将基本数据类型转…