20212937 曾俊铭 实践五 网络安全防范技术

20212937 曾俊铭 2021-2022-2 《网络攻防实践》实践报告

1.实践内容

一、防火墙配置
配置Linux操作系统平台上的iptables,以及Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问
二、动手实践:Snort
使用Snort对给定pcap文件,进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。

Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)
三、分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。


2.实践过程

实践一:防火墙配置
实践任务:
配置Linux平台上的iptables,完成如下功能并测试
过滤ICMP数据包,使主机不接受ping包。

只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问。

实验环境
kali(访问方 IP:192.168.57.226)、Metasploitable2-Linux(需要配置防火墙的主机 IP:192.168.57.20)、SEEDUbuntu(访问方 192.168.57.113)

使用命令:iptables -L,列出规则链中所有的规则进行查看,都是默认规则
image

使用命令:iptables -A INPUT -p icmp -j DROP,配置过滤ICMP数据包的规则,-A:在指定链的末尾添加(append)一条新的规则;-P:指定要匹配的数据包协议类型;-j:指定要跳转的目标(包括DROP、ACEEPT等)
image

列出规则链中所有的规则进行查看,发现已经添加成功
image

kali Ping Metasploitable2-Linux 配置规则前后对比如图所示:
image
image

使用命令:sudo iptables -P INPUT DROP,关闭流量流向是本机的本地主机的所有端口
image

使用命令:sudo iptables -A INPUT -p tcp --dport 23 -s 192.168.57.113 -j ACCEPT,配置该规则来允许IP为192.168.57.113的主机可以telnet访问本机
image

分别使用kali和SEEDUbuntu9-Aug-2010 telnet登录Metasploitable2-Linux,如图,kali可以访问,其他主机(包括SEEDUbuntu9-Aug-2010)都无法访问
image
image

配置Windows操作系统平台上的个人防火墙

并过滤ICMP数据包使得主机不接收Ping包,设置只允许特定的IP访问主机的某个服务而其他IP不能访问

实验环境
kali( IP:192.168.1.116)、winXP( IP:192.168.1.118)、SEEDUbuntu(192.168.1.120)

  • 过滤ICMP数据包,使得主机不接收Ping包
    打开Kali,ping WinXP,测试可以ping通
    image

    打开WinXP,点击开始--控制面板--Windows安全中心--Windows防火墙--还原为默认值(还原为默认值后ICMP的设置里允许传入回显请求会被自动取消勾选)
    image

打开Kali,ping WinXP,发现ping不通了
image

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

首先确保kali和SEEDUbuntu可以正常telnet WinXP,但是输入之后发现不能正常telnet WinXP
image

使得kali可以正常telnet WinXP,在WinXP点击开始--运行打开cmd,输入services.msc,跳出服务界面,找到Telnet,发现目前状态是已禁止,我们需要右键--属性,修改启动类型为自动或者手动
image

然后,再回到列表的Telnet,右键--启动
image

在cmd输入net start telnet,也显示已启动,表明启动成功
image

开始--控制面板--Windows防火墙--高级--网络连接设置--勾选Telnet服务器
image

再回到kali和SEEDUbuntu就可以正常telnet WinXP
image

image

  • 下面再WinXP设置IP安全策略来限制固定IP(kali的IP)访问

创建安全策略:控制面板--管理工具--本地安全策略--IP安全策略右键--创建IP安全策略,进入设置向导,设置IP安全策略名称为“限制固定IP远程访问”,在警告提示框选择“是”,其他均保持默认点击下一步
image

image

结果如下图,我们创建了一个IP筛选器
image

添加阻止特定IP访问的筛选器
点击添加--进入安全规则向导--一直保持默认设置点击下一步--遇到警告点击“是”

image

点击添加--自定义IP筛选器名称为“阻止特定IP远程访问”--添加--进入安全规则向导
image

点击下一步--源地址选择“一个特定的IP地址(Kali:192.168.1.116)”--下一步--目标地址选择“我的IP地址”--选择协议类型“TCP”--下一步--设置IP协议端口“从任意端口”“到此端口(输入23)”--下一步--完成。完成后,会在IP筛选列表看到添加的信息,如下图,再点击确定

image

Telnet服务器的端口号23是打开控制面板--Windows防火墙--Telnet服务器--编辑--查看端口号为23
image

配置IP筛选器阻止的动作:在点确定后--选择配置的“阻止所有IP远程访问”,点击下一步
image

点击添加--选择阻止--确定,得到下图“新筛选操作(1)”,代表的是阻止
image

image

然后选中“新筛选操作(1)”,点击下一步--完成,如图所示,至此我们添加好了阻止特定IP访问的筛选器

image

添加允许特定IP访问的筛选器(跟添加阻止特定IP访问的筛选器步骤一样)
继续点击添加--点击添加--进入安全规则向导--一直保持默认设置点击下一步--遇到警告点击“是”

image

点击添加--自定义IP筛选器名称为“允许特定IP远程访问”--添加--进入安全规则向导
image

点击下一步--源地址选择“一个特定的IP地址(SEEDUbuntu:192.168.1.120)”--下一步--目标地址选择“我的IP地址”--选择协议类型“TCP”--下一步--设置IP协议端口“从任意端口”“到此端口(输入23)”--下一步--完成。完成后,会在IP筛选列表看到添加的信息,如下图,再点击确定
image

image

配置IP筛选器允许的动作:在点确定后--选择配置的“允许所有IP远程访问”,点击下一步
image

点击添加--选择允许--确定,得到下图“新筛选操作(2)”,代表的是允许
image

然后选中“新筛选操作(2)”,点击下一步--完成,如图所示,至此我们添加好了允许特定IP访问的筛选器
image

应用我们刚刚配置的两个IP安全规则(允许特定IP远程访问和阻止特定IP远程访问)
指派此安全规则:右键“限制固定IP远程访问”——选择“指派”,至此所有工作配置完成,如图
image

这样被阻止访问WinXP的Kali去telnet靶机WinXP,发现一直处于trying状态,而被允许访问WinXP的SEEDUbuntu去telnet靶机WinXP发现可以连通
image

image


实践二:Snort
任务:使用Snort对给定pcap文件(第4章中的解码网络扫描任-一个pcap文件)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。

Snort运行命令提示如下:

  • 从离线的pcap文件读取网络日志数据源。
  • 在snort.conf中配置明文输出报警日志文件。
  • 指定报警日志log目录(或缺省log目录=var/log/snort) 。

使用之前实验的listen.pcap,确认下它还健在,及其位置
image

利用指令snort -r /home/user/listen.pcap -c /etc/snort/snort.conf -K ascii对listen.pacp进行入侵检测, 其中-c表示选择snort配置文件,-r表示从pcap格式的文件中读取数据包,-K ascii是用来指定输出日志文件的为ASCII编码
image

查看输出里检测出的数据包,可以看到大部分数据流为tcp会话,少部分为ARP包
image

报警数据包有10条,均被日志记录,所有数据包都裁决允许:
image

数据流统计:
image

此时snort会在默认目录生成一个日志文件,进入报警日志目录cd /var/log/snort, 查看日志文件vim alert,记录了报警数据10条的入侵检测信息,可以发现本次攻击是使用nmap发起的。攻击主机的IP地址是172.31.4.178 ,网络扫描的目标IP地址是172.31.4.188
image


实践三:分析蜜网网关的防火墙和IDS/IPS配置规则

  • 打开蜜罐(roo,honey),【su -】,然后执行【vim /etc/init.d/rc.firewall】查看防火墙文件。在防火墙文件中可以看到有三个链,分别是黑名单、白名单、防护名单。-N的意思表示根据用户指定的名字创建新链。
    防火墙对源地址或者目的地址属于黑名单的主机,丢弃所有包。
    对于属于白名单的主机,接受且不记录。
    对于属于防护名单内的主机,禁止访问某些不希望被访问到的主机。
    image

另外可以发现蜜罐系统识别的协议:TCP、UDP、ICMP、其他。在对数据控制时,要对各协议设置单位时间内发送包的上限,对于超出发送上限包的方式处理有三种:Drop、Reject和Replace
image

对于数据捕获,iptables或snort可以通过记录日志的形式来捕获网络连接信息。

  • 获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数。
    使用命令【iptables -t filter -L】来查看规则列表,-t是指定规则表,-L表示列表。(其实,我们可以省略-t filter,当没有使用-t选项指定表时,默认为操作filter表,即iptables -L表示列出filter表中的所有规则)
    image

  • Snort和Snort_inline的实际执行参数:
    执行【vim /etc/init.d/snortd】,snortd是snort启动的脚本文件,可以看到一些实际执行参数,默认使用snort.conf规则,默认监听网卡为eth0等。
    image

  • 执行【vim /etc/init.d/hw-snort_inline】打开snort_inline的脚本文件,可以看到一些参数选项。-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置。
    image

  • 蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
    使用命令【chkconfig --list | grep 服务】对服务进行查询,如果从0~6全是off,那就不自动启动。chkconfig命令主要用于检查,设置系统的各种服务。可以发现NIDS是需要手动启动的,防火墙、NIPS是跟随系统启动的。
    image

  • Snort规则是如何自动升级的?
    使用命令【vim /etc/honeywall.conf】打开配置文件,找到update variables,可以看到其值为no,即不自动更新。还可以看到Oinkmaster,这是个自动更新的软件,利用Oinkmaster进行升级。
    image


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

  • 问题1:iptables命令出错
  • 问题1解决方案:iptables命令参数严格区分大小写
  • 问题2:在Windows上配置个人防火墙时,重新打开虚拟机IP地址发生变化自己却没发现,导致一直PING不同,TELNET也一直出问题
  • 问题2解决方案:重新找到各个虚拟机IP地址 ...

4.实践总结

这次试验比较繁琐,特别是配置Windows操作平台的防火墙时,其他的都还好,只是很多命令或者参数需要参考别人的,不然看不懂。慢慢来嘛,别着急。

posted on 2022-04-16 14:59  曾俊铭  阅读(29)  评论(0编辑  收藏  举报

导航