20211901 2021-2022-2《网络攻防实践》第五次(第七周)作业

1.实验内容

1.1安全模型

  • PDR模型:是一种基于时间的动态安全模型,并提出安全性可量化和可计算的观点。
  • P2DR模型:网络安全=安全策略(Policy)+防护策略(Protection)+实时检测(Detection)+实时响应(Response),其中安全策略是核心。

1.2网络安全防范技术与系统

防火墙简介
防火墙具有很好的保护作用。入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机。你可以将防火墙配置成许多不同保护级别。高级别的保护可能会禁止一些服务,如视频流等。根据防火墙在协议栈工作的层次,可以分类为包过滤、电路级网关和应用层代理技术,对应的层次为网络层、传输层和应用层。

防火墙安全功能
①控制进出网络的流量
②防止脆弱或不安全的协议和服务
③防止内部网络信息的外泄
④对网络存取和访问进行监控
⑤强化网络安全策略并集成其他安全防御机制

防火墙产品
集成包过滤功能的路由器、基于通用操作系统的防火墙软件产品、基于安全操作系统的防火墙和硬件防火墙设备。

防火墙部署方法
①包过滤路由器:将带有包过滤功能的路由器作为内部网络和外部网络之间的唯一连接点,路由器在完成数据包转发的基本功能的同时,依据访问控制表对数据包进行过滤。
②双宿主堡垒主机:使用应用代理网关作为双宿主堡垒主机,代替了包过滤路由器。双宿主堡垒主机有两个网络接口,一个使用公网IP地址连接外部网络,另一个使用私有IP地址进行连接内部网络。
③屏蔽主机:采用屏蔽路由和堡垒主机双重安全措施
④屏蔽子网:采用屏蔽路由---堡垒主机---屏蔽路由的防火墙部署模式。其中应用代理服务器和对外开放服务器所处的网段也被成为DMZ。

防火墙安全缺陷
①无法防范来自内部网络的安全威胁
②无法防范非法外联的网络攻击
③无法防范计算机病毒传播
④无法有效防范准对开放服务安全漏洞的渗透攻击
⑤无法有效防范针对网络客户端程序的渗透攻击
⑥无法有效防范特洛伊木马和僵尸网络

Linux开源防火墙:netfilter/iptables
netfilter/iptables(简称为iptables)组成 Linux 平台下的包过滤防火墙,与大多数的Linux 软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。

  • iptables基础
    规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的主要工作就是添加、修改和删除这些规则。链(chains)是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一条或数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定义的默认策略来处理数据包。
    表(tables)提供特定的功能,iptables内置了4个表,即filter表、nat表、mangle表和raw表,分别用于实现包过滤,网络地址转换、包重构(修改)和数据跟踪处理。

  • iptables传输数据包过程

  • 命令选项iptables命令格式
    -P或--policy <链名>:定义默认策略
    -L或--list <链名>:查看iptables规则列表
    -A或—append <链名>:在规则列表的最后增加1条规则
    -I或--insert <链名>:在指定的位置插入1条规则
    -D或--delete <链名>:从规则列表中删除1条规则
    -R或--replace <链名>:替换规则列表中的某条规则
    -F或--flush <链名>:删除表中所有规则
    -Z或--zero <链名>:将表中数据包计数器和流量计数器归零

  • 匹配选项iptables命令格式
    -i或--in-interface <网络接口名>:指定数据包从哪个网络接口进入,如ppp0、eth0和eth1等
    -o或--out-interface <网络接口名>:指定数据包从哪块网络接口输出,如ppp0、eth0和eth1等
    -p或---proto协议类型 < 协议类型>:指定数据包匹配的协议,如TCP、UDP和ICMP等
    -s或--source <源地址或子网>:指定数据包匹配的源地址
    --sport <源端口号>:指定数据包匹配的源端口号,可以使用“起始端口号:结束端口号”的格式指定一个范围的端口
    -d或--destination <目标地址或子网>:指定数据包匹配的目标地址
    --dport目标端口号:指定数据包匹配的目标端口号,可以使用“起始端口号:结束端口号”的格式指定一个范围的端口

  • 动作选项iptables命令格式
    ACCEPT:接受数据包
    DROP:丢弃数据包
    REDIRECT:与DROP基本一样,区别在于它除了阻塞包之外, 还向发送者返回错误信息。
    SNAT:源地址转换,即改变数据包的源地址
    DNAT:目标地址转换,即改变数据包的目的地址
    MASQUERADE: IP伪装,即是常说的NAT技术,MASQUERADE只能用于ADSL等拨号上网的IP伪装,也就是主机的IP是由ISP分配动态的;如果主机的IP地址是静态固定的,就要使用SNAT
    LOG:日志功能,将符合规则的数据包的相关信息记录在日志中,以便管理员的分析和排错

2.实验过程

2.1防火墙配置

2.1.1配置Linux操作系统平台上的iptables

过滤ICMP数据包,使得主机不接收PING包

实验用主机ip如下:
Kali :192.168.200.4
Seedubuntu:192.168.200.3

①打开seed Ubuntu,输入命令:sudo iptables -F(清空规则)
sudo iptables -L(查看防火墙的规则信息)

②在Ubuntu上使用如下命令过滤所接收到的ICMP数据包,目的是丢弃icmp包

③接下来用kali虚拟机PING Ubuntu,无法ping通

④打开kali中的wireshark捕获的数据包,发现两主机间有ICMP数据包的往来

2.1.2在Linux操作系统平台上只允许特定IP地址访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址无法访问

实验用主机如下:
Kali:192.168.200.4
Winxp:192.168.200.2
Ubuntu:192.168.200.3

①用kali和winxp对目标主机Ubuntu进行telnet测试,发现可以正常连接telnet

②接下来在Ubuntu上配置如下规则,输入命令为
sudo iptables -P INPUT DROP(屏蔽所有的数据包)
sudo iptables -A INPUT -p tcp -s 192.168.200.4 --dport 23 -j ACCEPT(只接受来自kali的数据包)

③然后在kali上进行ping测试,不能ping通,但可telnet连接

④登录过程中kali的wireshark捕获的数据包如下:

⑤在winxp中telnet Ubuntu,失败

2.1.3在Windows操作系统平台上过滤ICMP数据包,使得主机不接收PING包

①打开自己计算机的控制面板->系统和安全->防火墙->高级设置->入站规则->新建规则->自定义:

②本机的ip地址:222.28.136.233

③kali设为桥接模式,设置后的ip地址如下

④在kali上ping自己的计算机,无法ping通,ping的过程中wireshark捕获ICMP数据包

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

实验用到的主机ip地址
Kali:192.168.200.4
Winxp:192.168.200.2
Ubuntu:192.168.200.3

实验开始前kali和ubuntu都能和Winxp进行telnet连接,

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

②设置阻止任何IP访问的筛选器,为新添加IP安全规则添加 的安全规则属性(和第一添加规则步骤是相同的),添加新的筛选器:在ip筛选列表选择——添加——输入筛选名称——添加,再进入向导后:先设置禁止所有IP访问——源地址:任何IP地址——目标地址:我的IP地址——协议:TCP——到此端口输入:3389(3389为windows远程访问端口),其它均可保持默认。完成后,会在IP筛选列表看到添加的信息。配置IP筛选器允许的动作:在点确定后——选择配置的“阻止所有IP远程访问”,下一步——添加——选择“阻止”——最后确定。

③添加允许访问的IP筛选器列表,源地址需要选择“一个特定的IP地址”,筛选器操作选择“允许”,点确定后,回到“限制固定IP远程访问”窗口,会出现如下窗口,此时需要配置一条新的IP安全规则,即允许165.154访问的安全规则,并设置器筛选器操作。
(具体步骤可参考博客https://blog.csdn.net/tianwuya217/article/details/17400493,因为图片太多,此处只给出部分关键图片)

④配置好之后,用kali进行telnet连接,连接成功

⑤再用ubuntu进行telnet连接,失败

2.2动手实践:Snort

使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在云班课中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。

Snort运行命令提示如下:

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

①从pcap数据包文件中读取网络日志数据。指令为snort -c /etc/snort/snort.conf -r listen.pacp

②输入指令获得报警日志

③可以看到源主机和目的主机的IP地址以及相应的端口号等信息

2.3分析配置规则

分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。

①首先使用命令vim /etc/init.d/rc.firewall查看roo在开机启动的过程中iptables的初始化操作:

②使用iptables -L查看IPTables的实际规则列表

③输入指令vim /etc/init.d/snortd查看snort运行参数,可查看到参数选项,在指定网卡接口后,如果没有其他的参数,将按照默认参数运行。如默认不开启-A模式,使用默认目录的config文件,默认使用eth0、使用二进制模式保存log文件等。

④定义了执行操作的用户、用户组、二进制log文件位置、配置文件和默认网卡等等。

⑤使用命令vim /etc/init.d/hw-snort_inline可以看到Snort_inline运行时参数。-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置

⑥防火墙、NIDS、NIPS启动方式
使用chkconfig --list | grep [服务]查看服务情况,如果从0~6全是off,那就不自动启动。可以看到防火墙和NIPS(snort_inline)是自动启动的,NIDS要手动启动。

⑦输入指令vim /etc/honeywall.conf打开配置文件,可以看到update variables的no,说明不会自动更新

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

  • 问题1:实验前telnet失败
  • 问题1解决方案:未启动telnet,启动即可

4.学习感悟、思考等

本次实验较为繁琐,很考验耐心,因此需要静下心来好好做

参考资料

  • 《网络攻防技术与实践》
posted @ 2022-04-16 23:18  只喝凉白开无糖拿铁  阅读(207)  评论(0编辑  收藏  举报