# 20212908 2021-2022-2 《网络攻防实践》实践五报告
作者:互联网
一、实践内容
1.防火墙
1.1防火墙
从技术范畴上说,防火墙属于一种网络上的访问控制机制,通过在不同的网络安全域之间建立起安全控制点,对通过的网络传输数据进行检查,根据具体的安全需求和策略设置决定是否允许网络访问通过防火墙,达到保护特定网络安全域免受非法访问和破坏的安全目标。
- Linux开源防火墙:netfilter/iptables
工作原理:在nefilter/iptables防火墙系统中,netfilter 组件位于Linux的内核空间中,实现了静态包过滤和状态报文检查(即动态包过滤)基本防火墙功能,此外也支持一个灵活可扩展的框架,支持NAT网络地址转换等其他额外功能,并提供了多层API接口以支持第三方扩展,nefilter具备构建防火墙、NAT共享上网、利用NAT构建透明代理,以及构建QoS或策略路由器等安全功能。Iptables 则是工作在Linux用户空间中的防火墙配置工具,通过命令行方式允许用户为netfilter配置各种防火墙过滤和管理规则。nefilter/iptables 中包含三个最基本的规则表,分别为用于包过滤处理的filter表、用于网络地址转换处理的nat表,以及用于特殊目的数据包修改的mangle表。
命令语法:$ iptables [-t table] command [match] [target]
1.2防火墙配置
任务要求:配置Linux操作系统平台上的iptables,Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问
2.Snort
2.1开源网络入侵检测系统Snort
- Snort被设计成一个跨平台、轻量级的网络入侵检测系统,用C语言编写,并采用了标准的捕获数据包函数库libpcap,具有非常好的可移植性。目前Snort 可以在包括x86、SPARC、PowerPC、Alpha等指令集平台架构.上的Linux、Windows、MAC OS,以及各种UNIX操作系统上运行。Snort具有强大的功能:数据包嗅探、数据包记录和分析,以及各种入侵检测功能。Snort在设计时采用了注重高性能、简单和灵活的原则,并采用一套源码级插件机制,作为系统扩展的手段。Snort 软件的基本架构主要由四个基本部分组成:
(1)数据包嗅探/解码器( sniffer):首先,利用libpcap从网卡或离线记录中捕获数据包,然后数据包经过解码器填入到链路层协议的包结构体中,以便对高层次的协议进行解码,如TCP/UDP层。
(2)预处理器/插件(preprocessor):接着数据包被送到各种各样的预处理插件中,在检测引擎之前对数据包进行检查和操作。每个预处理插件检查数据包是否应该注意、报警或者修改某些东西。
(3)检测引擎/插件(detection engine):随后,包被送至检测引擎,检测引擎首先通过各种规则文件中定义的匹配字符电特征来对每个包的信息进行快速的模式匹配检测,然后由各种检测插件对包提供额外的检测功能。规则中每个关键字选项对应于检测引擎插件,能够提供不同的检测功能。
(4)输出模块/插件(output modules):对之前各个部件产生的报警/日志信息,根据用户配置,调用相应的输出插件进行发送和记录。
2.2动手实践:Snort
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在云班课中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)
3.分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
二、实践过程
1.防火墙配置
- linux操作系统
(1)过滤ICMP数据包,使得主机不接收Ping包
首先在SEED上查看默认规则:sudo iptables -L
执行:sudo iptables -A INPUT -p icmp -j DROP
使得SEED主机不接受icmp的数据包。这时,Kali则无法ping通SEED:
在SEED中可以看到新添加的规则:DROP icmp --anywhere
最后,可以删除上述新添加的自定义规则:sudo iptables -F
删除后可以看到只剩下默认规则了:
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问
首先确认Kali和Metas都可以连接至SEED的 telnet 服务:
接下来,在 SEED 上执行以下命令,拒绝一切数据包流入:sudo iptables -P INPUT DROP
则 Kali 和 Linux 无法连接至 SEED:
使用指令sudo iptables -A INPUT -p tcp -s 192.168.1.5 -j ACCEPT
开启 192.168.1.7 (Kali) 对 SEED 的 tcp 服务,并查看规则:
Kali可以连接至SEED:
Metas测试连通性,无法连通:
实验结束,执行以下命令恢复规则至默认:
sudo iptables -F
sudo iptables -P INPUT ACCEPT
- Windows操作系统
(1)过滤ICMP数据包,使得主机不接收Ping包
在winXP打开控制面板->本地安全策略->IP安全策略->创建IP安全策略
设置阻止icmp筛选器属性,筛选器操作设置为阻止
指派阻止icmp策略,策略显示已指派
发现kali不能ping通winXP
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问
管理IP筛选器表->添加筛选器允许kali,源地址:192.168.200.5,目的地址:我的地址,筛选器操作设置为允许
阻止icmp属性添加允许kali筛选器,应用
kali能ping通winXP
2.Snort
打开listen.pcap并输入命令:sudo snort -r listen.pcap -c /etc/snort/snort.conf
3.分析配置规则
三、学习中遇到的问题及解决
- 问题1:在winXP进行防火墙设置时,一开始忽略掉了设置筛选器后的指派动作,导致实验一直不成功
- 问题1解决方案:询问同学后,发现问题,设置指派,筛选器即可生效。
4.实践总结
本次实验,完成了windows系统、linux系统的防火墙设置,动手实践了Snort,并且分析了虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则。通过进行实操,加深了自己对于防火墙、snort的理解,加强了自己对于网络攻击相关概念的具体理解与应用,提高了自己的动手能力,为之后的网络攻防实验打下基础。
标签:iptables,插件,20212908,防火墙,实践,Snort,Linux,数据包,2021 来源: https://www.cnblogs.com/yangxinyi1201/p/16144735.html