20242934 2024-2025-2 《网络攻防实践》第五周作业
1.实践内容
1.1防火墙
(1)概念
防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使(互联网)与(内联网)之间建立起一个安全网关,从而保护内部网免受非法用户的侵入,防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。该计算机流入流出的所有网络通信和数据包均要经过此防火墙。
(2)作用
防火墙可以监控进出网络的通信量,从而完成看似不可能的任务,仅让安全、核准了的信息进入,同时又抵制对企业构成威胁的数据。
防火墙的作用是防止不希望的、未授权的通信进出被保护的网络,迫使单位强化自己的网络安全政策。
1.2 iptables
在nefilter/iptables防火墙系统中,netfilter 组件位于Linux的内核空间中,实现了静态包过滤和状态报文检查(即动态包过滤)基本防火墙功能,此外也支持一个灵活可扩展的框架,支持NAT网络地址转换等其他额外功能,并提供了多层API接口以支持第三方扩展,nefilter具备构建防火墙、NAT共享上网、利用NAT构建透明代理,以及构建QoS或策略路由器等安全功能。Iptables 则是工作在Linux用户空间中的防火墙配置工具,通过命令行方式允许用户为netfilter配置各种防火墙过滤和管理规则。nefilter/iptables 中包含三个最基本的规则表,分别为用于包过滤处理的filter表、用于网络地址转换处理的NAT表,以及用于特殊目的数据包修改的mangle表。
1.3 SNORT
Snort被设计成一个跨平台、轻量级的网络入侵检测系统,用C语言编写,并采用了标准的捕获数据包函数库libpcap,具有非常好的可移植性。目前Snort可以在包括x86、SPARC、PowerPC、Alpha等指令集平台架构上的Linux、Windows、MAC OS,以及各种UNIX操作系统上运行。
Snort具有强大的功能:数据包嗅探、数据包记录和分析,以及各种入侵检测功能。Snort在设计时采用了注重高性能、简单和灵活的原则,并采用一套源码级插件机制,作为系统扩展的手段。
2.实践过程
任务一:防火墙配置
首先打开kali虚拟机,输入 sudo iptables -L查看规则,可以看到当前没有任何规则
打开WinXP攻击机,使用ping命令检查与kali的连通性
(1)过滤ICMP数据包,使得主机不接收Ping包;
在kali机上输入sudo iptables -A INPUT -p ICMP -j DROP配置防火墙,把ICMP包过滤掉,再使用iptables -L查看规则
再在WinXP虚拟机上ping kali主机,发现无法ping通
在kali虚拟机上输入sudo iptables -D INPUT -p icmp -j DROP删去过滤icmp包,发现winXP能够再次ping通kali主机
(2)只允许特定IP地址,访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址无法访问
打开Ubuntu,查看其ip地址,为192.168.200.6
winXP和kali都能通过telnet与Ubuntu连接
在Ubuntu中输入iptables -P INPUT DROP来禁止所有输入数据包
发现winXP和kali都无法访问Ubuntu
回到Ubuntu通过命令iptables -A INPUT -p tcp -s 192.168.200.2 -j ACCEPT来开启kali虚拟机tcp服务,可以使用iptables -L查看
此时kali能访问Ubuntu,而winXP不能访问
最后,在Ubuntu中输入命令 iptables -F 和 iptables -P INPUT ACCEPT,恢复最初的状态。
此时winXP也能访问metaploitable了
任务二:动手实践:Snort
使用Snort对给定pcap文件进行入侵检测,并对检测出的攻击进行说明。打开kali,运行sudo snort -r /home/kali/listen.pcap -c /etc/snort/snort.lua
查看输出里检测出的数据包,可以看到大部分数据流为tcp会话,少部分为ARP包报警数据包有20条,均被日志记录,所有数据包都裁决允许。
输入入cd /var/log/snort命令进入报警日志目录, vim alert查看日志文件
任务二:分析配置规则
具体分析配置规则:
防火墙(nefilter+IlPTables) : /etc/init.d/rc.firewall、入侵检测系统(Snort) : /etc/init.d/hflow_snort 与/etc/snort/snort.conf、入侵防御系统(Snort_ inline) : /etc/init./hflow-snort. inline 与/etc/snot._inline/snort_inline.conf。
打开蜜网网关虚拟机,使用命令vim /etc/init.d/rc.firewall,可以看到黑名单、白名单和防护名单三个链
使用命令iptables -t filter -L | more来查看规则列表。
执行命令vim /etc/init.d/hw-snort_inline打开snort_inline的脚本文件,可以看到到实际执行的参数。
-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置。
通过指令“chkconfig --list | grep [服务]”来查询当前服务是不是开启的。
chkconfig命令主要用于检查,设置系统的各种服务。若0-6全部为off,则不自动启动。
可以看到防火墙和IPS(snort_inline)是跟随系统启动的,并且开机自动配置刚才的脚本文件,IDS不会自动启动。
3.学习中遇到的问题及解决
问题1:Linux 系统上执行 iptables 命令失败
问题1解决方案:使用 sudo 提权
问题2:在使用 snort -r /home/kali/listen.pcap -c /etc/snort/snort.conf -K ascii时遇到了问题
问题2解决方案:移除 -K ascii 选项
问题3:snort.conf 文件找不到
问题3解决方案:Snort 3.x 可能使用其他路径,如 /usr/local/etc/snort/snort.lua,因为 Snort 3 改用 Lua 配置
4.实践总结
本次实践主要学习防火墙、IDS、IPS的运行机制、原理以及配置规则等内容。通过防火墙和入侵检测,可以获取攻击者的攻击行为。防火墙和入侵检测有助于防御者采取针对性的防御措施,以最小的成本应对最大程度的威胁。蜜网网关拥有较为完善的防御机制,通过使用没有任何防御措施的蜜罐主机,诱导攻击者进入“圈套”。防御者通过观察攻击者对蜜罐主机的攻击,可以总结出攻击者的攻击手段和方法。