20212911陈金翔-2022-3 网络攻防实践 第五次(第七周)作业

1.实践内容

防火墙技术及产品

  • 定义:防火墙指的是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备,达到保护特定网络安全域免受非法访问和破坏的安全目标。

  • 功能

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

    • 先天:无法防范包括来自网络内部的安全威胁、通过非法外联的网络攻击和计算机病毒传播的传播。
    • 技术瓶颈:无法防范包括针对开放服务安全漏洞的渗透攻击、针对网络客户端程序的渗透攻击和隐蔽通道进行通信的特洛伊木马或僵尸网络。
  • 技术

    • 包过滤技术:在路由功能基础上进行扩展,通过对网络层和传输层包头信息的检查,根据用户定义的安全策略规则集,确定是否应该转发该数据包(简单、安全功能有限)。
    • 基于状态检测的包过滤技术:也称动态包过滤。除了使用静态规则进行安全进行安全策略匹配,还进行数据包的网络连接的上下文关系探测,来确定是否允许通信。这种技术相比较传统的包过滤技术安全性更高,数据合法性得到了更有效的保障(对网络性能有一定的影响)。
    • 代理技术:允许客户端通过代理与网络服务进行非直接的连接,也称“网络代理”。主要是客户端与代理服务器连接,代理服务器再与目标服务器连接。代理技术包括应用层代理(工作在应用层)、电路级代理(工作在传输层)和NAT代理(工作在网络层)等。
  • 部署方法

    • 包过滤路由器:带有包过滤防火墙功能的路由器。
    • 双宿主堡垒主机:应用代理网关作为双宿主堡垒主机。
    • 屏蔽主机:堡垒主机和包过滤的结合。
    • 屏蔽子网:在屏蔽主机的基础上增加第二道包过滤路由器。

    firewall

Linux开源防火墙netfilter/iptables介绍

  • 简介:iptables是运行在用户空间的防火墙配置工具,通过控制运行在Linux内核空间的netfilter模块,来管理网络数据包的处理和转发(最新已经有ip6tables用于ipv6)。

  • 规则:规则是用户预定义的,也是我们常说的防火墙规则,配置防火墙的主要工作就是添加、修改和删除这些规则。由一个目标和很多匹配组成。匹配如interface(e.g. eth0)、协议类型源IP/端口目的IP/端口等。目标是用户自定义的链、一个内置的特定目标或者是一个目标扩展,如ACCEPTDROPREJECTSNATDNAT等。

  • :链是顺序执行规则的编排方式,在复杂的网络环境中,管理员需求这种可控的、有序执行的规则应用方式。iptables 提供了5条链:INPUT链OUTPUT链FORWARD链路由前链(Pre-Routing)路由后链(Post-Routing)

  • :表的本质就是规则集的组织形式。iptables提供了以下5种表:filter表(过滤)、nat表(地址转换)、mangle表(包修改)、raw表security表(强制访问)。

    tab

iptables指令

说明指令
制定iptables表 iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目标动作或转发] 思路:选表->选链->选条件->选动作
规则启动 systemctl enable iptables.service systemctl start iptables.service
保存和加载规则 iptables-save > /etc/sysconfig/iptables systemctl reload iptables
查看规则 iptables -nvL [--line-numbers] [-t 表名] [链名]
添加规则 iptables -A INPUT -s 192.168.1.5 -j DROP
修改规则 iptables -R INPUT 2 -s 127.0.0.1 -d 127.0.0.1 -i lo -j ACCEPT

 

 

 

snort基本介绍

  • 简介:Snort是一个强大的网络入侵检测系统。它具有实时数据流量分析和记录IP网络数据包的能力,能够进行协议分析,对网络数据包内容进行搜索/匹配,可以检测各种不同的攻击方式,对攻击进行实时报警等。
  • 四大模块数据包嗅探模块预处理模块(用相应的插件来检查原始数据包)、检测模块(检测引擎依据预先设置的规则检查数据包)、报警/日志模块(经检测引擎检查后的Snort数据输出)。
  • 三种工作模式嗅探模式(从网络上读取数据包,常用命令snort -dev)、数据包记录模式(把数据包记录到硬盘上,常用命令snort -b)、网络入侵检测模式(载入规则库才能工作,Snort并不记录所有捕获的包,而是将包与规则对比,仅当包与某个规则匹配的时候,才会记录日志或产生报警)。
  • 分析一个规则实例
    • alert tcp !192.168.0.1/24 any ->any 21 (content:"USER";msg: "FTP Login";)
    • alert表示规则动作为报警。
    • tcp表示协议类型为TCP协议。
    • !192.168.0.1/24表示源IP地址不是192.168.0.1/24。
    • 第一个any表示源端口为任意端口。
    • ->表示发送方向操作符。
    • 第二个any表示目的IP地址为任意IP地址,21表示目的端口为21。
    • content:"USER"表示匹配的字符串为“USER”。
    • msg:"FTPLogin"表示报警信息为“FTPLogin”。
    • 此外,还有一个双向操作符<>,它使Snort对这条规则中,两个IP地址/端口之间的数据传输进行记录/分析。

2.实践过程


实践一:防火墙配置

任务:配置Linux和Windows上的个人防火墙,完成如下功能

  • 过滤ICMP数据包,使主机不接受ping包。
  • 只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问。

对Linux防火墙进行配置:

  首先我们以kali作为服务器,利用MetaSploitable访问kali,MetaSplitable作为信任主机,Windows作为不可信任主机。IP地址如下。

机器IP地址
kali 192.168.2.3
MetaSploitable 92.168.2.1
Windows 192.168.2.6

过滤icmp包:

1. 首先在kali上通过iptables -L查看规则,发现都是默认规则。

 

 

 

2. 通过指令iptables -A INPUT -p icmp -j DROP指令使得主机不接受icmp的数据包。指令详解:-A是追加一条规则,INPUT表示数据包入口(规则),-p用于匹配协议,-j用于指定如何处理(ACTION)。

再次利用iptables -L查看规则,发现icmp已经被禁用

 

 3.Windows ping不同的结果更直观,所以我们使用Windows ping命令,此时发现kali已经ping不通

 

 4.使用iptables -F删除自定义规则,方便下一次使用

特定ip访问特定服务:

1. 首先,我们确定两台机器都可以进行ftp登陆。

 

 

 

 

2. 接下来使用iptables -P INPUT DROP指令拒绝一切的数据包流入(修改的是默认规则-P),此时应该两台电脑都无法进行访问。

3. 使用指令iptables -A INPUT -p tcp -s 192.168.3.19 -j ACCEPT开启192.168.3.19对本机的tcp服务。并用iptables -L查看规则。

 

 4. 此时我们发现MetaSploitable是可以正常访问telnet服务的,但是Windows却是无法访问的。

 

 

 

 

 5. 最后别忘了执行iptables -Fiptables -P INPUT ACCEPT两条指令恢复之前的状态。

 对Windows防火墙进行配置

  这次我们以Windows11作为服务器,利用MetaSploitable访问Windows,MetaSplitable作为信任主机,kali作为不可信任主机。IP地址如下。

机器IP地址
kali 192.168.2.3
MetaSploitable 92.168.2.1
Windows 192.168.2.9

过滤icmp包:

1.打开Windows防火墙

 

 2.在高级→ICMP设置中,把允许传入回显请求勾掉

 

 

 然后我们就会发现,kali已经无法ping通win

只允许特定地址访问

在防火墙中添加端口23,更改范围,填写主机kali的ip地址192.168.2.3,点击确定

 

 然后在kali和Metasploitabl上重新尝试登录WinXPattacker的telnet服务,可以发现在Metasploitable上能够成功连接主机,但是在kali上连接失败

 

 

 

 

 

 

 

 

 

 

 

实践二:Snort

任务:使用Snort对给定的pcap文件进行入侵检测,并对检测出的攻击进行说明

关于Snort的一些实践在第四章已经实践过,这里用的文件还是第四章的listen.pcap文件。
1. 首先利用指令snort -r listen.pcap -c /etc/snort/snort.conf -K asciilisten.pacp进行入侵检测,其他的指令第四周都已经详细介绍了,-K ascii主要是为了指定输出log文件的编码为ASCII(默认为binary)。

 

 

2. 查看输出,我们可以看到检测出的数据包大部分为TCP数据包。

 

 3. 在/var/log/snort/目录下可以查找到alert文件,这个文件即输出的日志文件,通过vim打开可以发现这个攻击是nmap发起的,当然还有很多其他的信息,譬如源地址、目的地址等等。

 

 

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

 1.查看防火墙配置的命令 vim /etc/init.d/rc.firewall

 

 

可以看到rc.firewall脚中有三个链:黑名单、白名单、防护名单。

对于黑名单中的主机,防火墙会丢弃与他相关的包;对于白名单中的主机,防火墙允许通过;防护名单里的主机,防火墙不让他们访问某些主机。

 

2.输入iptables -t filter -L,查看规则表。

可以看到默认的规则入INPUT、FORWARD、OUTPUT都已经被关闭了。

 

3.输入vim /etc/rc.d/init.d/snortd查看snort的执行参数

可以看到使用默认目录下的snort.conf规则,监听网卡为eth0,存储日志路径为/var/log/snort

 

4.通过vim /etc/init.d/hw-snort_inline打开Snort_inline脚本文件,可以观察到实际执行参数。

-D表示Daemon模式;-c表示配置文件;-Q表示队列模式;-l表示日志目录;-t表示初始化后改变进程所参考的根目录位置

 

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

问题:在win11中添加防火墙策略尝试禁用ping命令失败

解决:还在查找原因,尚未解决

4.学习感想和体会

通过这次实验,学习了蓝方防御的基础操作,对防火墙相关知识有了更深入的了解。

posted @ 2022-04-17 16:11  虎啊虎呀  阅读(34)  评论(0编辑  收藏  举报