实践五 网络安全防范技术

20212806 2021-2022-2 《网络攻防实践》实践五报告

1.实践内容

防火墙

(1)基本概念
       所谓“防火墙”是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种建立在现代通信网络技术和信息安全技术基础上的应用性安全技术,隔离技术。越来越多地应用于专用网络与公用网络的互联环境之中,尤其以接入Internet网络为最甚。
(2)功能
       网络安全的屏障。一个防火墙(作为阻塞点、控制点)能极大地提高一个内部网络的安全性,并通过过滤不安全的服务而降低风险。由于只有经过精心选择的应用协议才能通过防火墙,所以网络环境变得更安全。
       强化网络安全策略。通过以防火墙为中心的安全方案配置,能将所有安全软件(如口令、加密、身份认证、审计等)配置在防火墙上。与将网络安全问题分散到各个主机上相比,防火墙的集中安全管理更经济。例如在网络访问时,一次一密口令系统和其它的身份认证系统完全可以不必分散在各个主机上,而集中在防火墙一身上。
       监控审计。如果所有的访问都经过防火墙,那么,防火墙就能记录下这些访问并作出日志记录,同时也能提供网络使用情况的统计数据。当发生可疑动作时,防火墙能进行适当的报警,并提供网络是否受到监测和攻击的详细信息。
       防止内部信息的外泄。通过利用防火墙对内部网络的划分,可实现内部网重点网段的隔离,从而限制了局部重点或敏感网络安全问题对全局网络造成的影响。再者,隐私是内部网络非常关心的问题,一个内部网络中不引人注意的细节可能包含了有关安全的线索而引起外部攻击者的兴趣,甚至因此而暴漏了内部网络的某些安全漏洞。使用防火墙就可以隐蔽那些透漏内部细节如Finger,DNS等服务。Finger显示了主机的所有用户的注册名、真名,最后登录时间和使用shell类型等。
       日志记录与事件通知。进出网络的数据都必须经过防火墙,防火墙通过日志对其进行记录,能提供网络使用的详细统计信息。当发生可疑事件时,防火墙更能根据机制进行报警和通知,提供网络是否受到威胁的信息。

开源网络入侵检测系统snort基本介绍

       简介:Snort是一个强大的网络入侵检测系统。它具有实时数据流量分析和记录IP网络数据包的能力,能够进行协议分析,对网络数据包内容进行搜索/匹配,可以检测各种不同的攻击方式,对攻击进行实时报警等。

  • 四个主要部件:
    1.数据包嗅探:将网卡设置为混杂模式,用libpacp函数来进行数据包监听和抓包。
    2.预处理器:用于弥补检测引擎检测能力的不足。主要有TCP/IP协议栈模拟、应用层协议解码、异常检测。
    3.检测引擎:是主题模块,主要包括规则库解析、多模式匹配、规则插件。
    4.输出模块:进行各种多样化的报警和日志记录。
  • 主要功能:
    1.嗅探模式(从网络上读取数据包,常用命令snort -dev)
    2.数据包记录模式(把数据包记录到硬盘上,常用命令snort -b)
    3.网络入侵检测模式(载入规则库才能工作,Snort并不记录所有捕获的包,而是将包与规则对比,仅当包与某个规则匹配的时候,才会记录日志或产生报警)

2.实践过程

2.1防火墙配置

配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包

  • 使用iptables -L查看seed所有规则,确认是默认的:

此时,用kali(192.168.37.129)ping seed(192.168.37.130),没有问题:

  • 使用命令iptables -A INPUT -p icmp -j DROP使得主机不接收ICMP包
-A INPUT:将input规则添加到链尾;
-p icmp:指定icmp协议;
-j DROP:指定对应数据包进行丢弃。

再次查看规则:

此时用kali再次ping seed ,可见已经不能成功了:

而wireshark证明发出了很多icmp数据包:

成功后,使用iptables -F 清除所有规则
(2)只允许特定IP地址,访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址无法访问。

  • 设置前,用kali和winXPattacker访问主机的ftp服务,都可成功;
  • 使用命令iptables -P INPUT DROP拒绝一切数据流入;
  • 使用命令iptables -A INPUT -p tcp -s 192.168.37.129 -j ACCEPT只允许kali(192.168.37.129)访问主机。查看如下:
  • 设置好后,用kali和winXPattacker访问seed,可见只有kali可以成功访问:

  • 输入iptables -F和iptables -P INPUT ACCEPT恢复之前的状态。

2.2 动手实践:Snort

使用Snort对给定pcap文件(listen.pcap文件)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或 Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。

  • 执行snort -r listen.pcap -c /etc/snort/snort.conf -K ascii从离线的pcap文件读取网络日志数据源:

可见,TCP包占绝大多数。

  • snort会在默认目录 /var/log/snort 生成一个日志文件,cd/var/log/snort 查看日志文件 vim snort.alert.fast,可看到本次攻击是用nmap发起的。攻击机IP地址是 172.31.4.178,靶机IP地址是 172.31.4.188 ,还可以看到端口号等:

2.3 分析配置规则

(1)数据捕获

蜜罐网关通过三种方式捕获数据:防火墙日志、网络通讯、系统活动
防火墙日志:防火墙能够记录所有的进入和外出本网络的连接。所有进出防火墙的日志信息记录在/var /log /messages 文件中。但防火墙能记录的数据是有限的,主要是报头信息,如攻击的时间、源和目的IP地址以及源和目的端口,对于入侵者的击键行为、数据包的载荷等无能为力。

IDS能够捕获所有的网络活动,记录每一个包和载荷。IDS 能够充分发挥其数据捕获的能力,得到蜜网环境中所有的数据包。Snort捕获所有IP通信,并将其转储到日志文件tcpdump中留待以后分析。将嗅探器与外部网口eth0绑定,那么记录下的将不仅是与Honeynet相关的数据,还会有外部网络的通信。
(2)数据控制
蜜网网关实现数据控制的主要方法有:基于IPTables的外出连接数限制和snort-inline入侵检测系统。
基于re.firewall脚本的IPTables防火墙可以限制外出的TCP连接和UDP、ICMP协议的数据包数.限制时间可以是秒,分钟,小时或天为单位,方便灵话,易于合理控制。还可以修改外出连接的数据包使其不能到达目的地,让入侵者认为数据包正常发出。

  • 打开蜜网,输入:vim /etc/init.d/rc.firewall
    黑名单、白名单、防护名单:


    对于属于黑名单的主机,丢弃所有包;对于属于白名单的主机,接受数据包;对于属于防护名单中的,是不允许被外部访问的蜜罐主机
  • 输入iptables -L可以查看实际规则列表,看到默认的规则OUTPUT、INPUT、FORWARD都已经被关闭了:
  • 输入vim /etc/init.d/snortd,查看snort的脚本文件,可以看到实际运行时候的参数:
  • 输入vim /etc/init.d/hw-snort_inline打开snort_inline的脚本文件,可以获取Snort_inline实际执行参数:
  • 输入chkconfig --list | grep[服务]来查询当前服务是不是开启的,可以看到防火墙和NIPS(snort_inline)是跟随系统启动的,NIDS是需要手动启动的:
  • 输入vim /etc/honeywall.conf,打开honeywall配置文件,可以看到snort默认为不自动更新:

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

  • 问题1:从离线的pcap文件读取网络日志数据源时出现错误如下:

  • 问题1解决方案:因为使用snort命令读取数据源时需要root权限,所以要使用sudo su命令,切换成root用户。

  • 问题2:执行snort -c /etc/snort/snort.conf -r /home/kali/Desktop/listen.pcap检测后,默认目录 /var/log/snort下没有alert文件。

  • 问题2解决方案:执行snort命令后面添加参数-K ascii以ascii字符集存储即可解决。

4.实践总结

       本次实践主要运用了iptables进行防火墙配置、snort工具进行入侵检测以及通过分析脚本文件大致明白了蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。相对来说本次实践难度适中,实践过程中发现对命令的各个参数的使用还是容易混淆,还需要多加实践才能更好的掌握。

posted @ 2022-04-11 22:01  20212806胡云深  阅读(131)  评论(0编辑  收藏  举报