20212810 2021-2022-2《网络攻防实践》第五次作业

20212810 2021-2022-2《网络攻防实践》第五次作业

一.实践内容

1.防火墙概述

防火墙指的是置于不同的网络安全域之间, 对网络流量或访问行为实施访问控制的安全组件或设备。
从技术范畴来说,防火墙属于一种网络上的访问控制机制,通过在不同的网络安全域之间建立起安全控制点,对通过的网络传输数据进行检查,根据具体的安全需求和策略设置决定是否允许网络访问通过防火墙,达到保护特定网络安全域免受非法访问和破坏的安全目标。

2.防火墙功能

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

3.防火墙技术

  • 包过滤技术:基于协议特定的标准,路由器在其端口能够区分包和限制包的能力叫包过滤 (Packet Filtering)。其技术原理在于加入 IP 过滤功能的路由器逐一审查包头信息,并根据匹配和规则决定包的前行或被舍弃,以达到拒绝发送可疑的包的目的;
  • 代理技术:代理 (Proxy) 技术是一种重要的计算机安全防护功能,允许客户端通过它与另一个网络服务进行非直按的连接,也称“网络代理”。

4.防火墙产品

  • 集成包过滤功能的路由器;
  • 基于通用操作系统的防火墙软件产品;
  • 基于安全操作系统的防火墙;
    硬件防火墙设备。

5.Linux 开源防火墙:netfilter/iptables

netfilter/iptables 组合是目前 Linux 开源操作系统中普遍使用的防火墙技术解决方案,其中 netfilter 是 Linux 内核中实现的防火墙功能模块,iptables 则是应用态的防火墙管理工具。

netfilter 是一个由 Linux 内核提供的框架,可以进行多种网络相关的自定义操作。

例如:

  • 无状态的报过滤(IPv4 and IPv6)
  • 有状态的报过滤(IPv4 and IPv6)
  • 网络地址转换(NAT/NAPT)

netfilter 在 Linux 内核中表现为一系列的 hook, 并允许 Linux 内核模块注册为回调函数,Linux 内核模块通过回调函数操作网络报文。

二.实践过程

1.防火墙配置

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

  • (1)过滤ICMP数据包,使得主机不接收Ping包;
    首先在 SEED 上查看默认规则:sudo iptables -L

执行sudo iptables -A INPUT -p icmp -j DROP,在 SEED 中可以看到新添加的规则:

这时我们可以尝试Kali 去pingseed,发现无法 ping 通 SEED:

最后,可以删除上述新添加的自定义规则sudo iptables -F,删除后可以看到只剩下默认规则了:

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

首先,确认 Kali 和 Linux 都可以连接至 SEED 的 telnet 服务:


接下来,在 SEED 上执行以下命令,拒绝一切数据包流入:
sudo iptables -P INPUT DROP

验证一下:


开启 192.168.1.7 (Kali) 对 SEED 的 tcp 服务,并查看规则:
sudo iptables -A INPUT -p tcp -s 192.168.1.7 -j ACCEPT

Kali 可以连接至 SEED 了:

Linux 测试连通性:

实验结束,执行以下命令恢复规则至默认:
sudo iptables -F
sudo iptables -P INPUT ACCEPT

2.动手实践:Snort

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

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

  • 在 Kali 中对老师提供的 pcap 包进行入侵检测分析:
    sudo snort -r listen.pcap -c /etc/snort/snort.conf -K ascii
  • 从检测结果中可以看到大量的 tcp 包:

  • 在 /var/log/snort/ 目录下可以查找到 alert 文件,即输出的日志文件。使用 vim 打开后可以看到这是 nmap 攻击:

3.分析配置规则

分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
打开 HoneyWall,查看防火墙配置规则:vim /etc/init.d/rc.firewall

下面的代码,分别是黑名单、白名单、防护名单(FenceList)。实现了:

防火墙对源地址或者目的地址属于黑名单的主机,丢弃所有包。
对于属于白名单的主机,接受且不记录。
对于属于防护名单内的主机,禁止访问某些不希望被访问到的主机。

通过下面的指令来查看规则列表:
iptables -t filter -L
不难发现,默认的规则入 OUTPUT、INPUT、FORWARD 都已经被关闭了,取而代之的是一些自定义的规则(包括之前配置 Roo 的一些参数也反映在规则表上)。

打开 Snort 脚本文件:
vim /etc/init.d/snortd
一些运行参数的执行过程如下:
通过指令:
chkconfig --list | grep [服务] 来查询当前服务是否开启。如下图,防火墙和 NIPS(snort_inline)是跟随系统启动的,并且开机自动配置刚才的脚本文件。NIDS 是需要手动启动的。

执行:vim /etc/honeywall.conf 打开 Honeywall 的配置文件。在命令模式下输入 /update,搜索匹配的字符串。

发现自动更新是默认关闭的。

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

查看 snort 日志文件时提示没有权限
解决:利用sudo su 提升权限

四.学习感想和体会

本次实验主要是偏分析配置文件,对这一部分没有一个整体性的认识。说到底还是基础知识不牢固,没有把握每一步的意义。

posted @ 2022-04-12 16:19  bzhuihui  阅读(110)  评论(0编辑  收藏  举报