20232805 2023-2024 《网络攻防实践》第5周作业

实践五 网络安全防范技术

1.实践内容

1.1 防火墙

1.1.1 概念

防火墙是一种网络安全系统,它监控和控制进出某一网络的数据包。防火墙可以是硬件也可以是软件,或者二者的结合。其主要功能是根据一定的规则过滤流经它的数据包,以防止未授权的网络访问,同时允许合法的通信。防火墙可以配置为最简单的访问控制列表形式,也可以包括更复杂的安全功能,如入侵防御系统(IDS)和入侵防御系统(IPS)。

1.1.2 功能
  1. 访问控制

    • 防火墙的核心功能是实施访问控制,以决定哪些服务(如HTTP、FTP或SMTP等)可从网络的一个部分访问另一个部分。
    • 它可以基于源IP地址、目标IP地址、端口号等信息,允许或拒绝数据包的传输。
    • 这种控制不仅限于入站流量(从外部网络到内部网络),也适用于出站流量(从内部网络到外部网络)。
  2. 包过滤

    • 防火墙会检查经过的每个数据包,并根据预定规则决定这些数据包是否被允许通过。
    • 这包括分析数据包的头部信息,比如源地址和目标地址、端口号和协议类型。
  3. 状态检查(有状态防火墙):

    • 有状态防火墙不仅基于单个数据包的信息作出决策,还会跟踪每个网络连接的状态信息(例如,TCP连接的建立、传输和断开)。
    • 这种方法允许防火墙更精确地控制流量,因为它能够识别和区分不同阶段的网络通信。
  4. 网络地址转换(NAT)

    • 防火墙可以修改经过的数据包中的源或目的IP地址,这被称为网络地址转换。
    • NAT可以用于隐藏内部网络的IP地址,提供额外的一层保护,并支持私有地址在互联网上的通信。
  5. 应用层过滤

    • 高级防火墙可以进行应用层过滤,检查通过HTTP、HTTPS、FTP等协议的数据流内容。
    • 它们可以拦截和阻止特定类型的网络流量,如病毒、蠕虫、间谍软件和其它恶意软件,甚至是针对特定应用程序的攻击。
  6. 虚拟私人网络(VPN)支持

    • 许多防火墙提供VPN功能,允许远程用户安全地连接到内部网络。
    • VPN使用加密和其他安全措施来保护数据传输,确保数据的私密性和完整性。
  7. 入侵检测和防御

    • 一些高级防火墙还集成了入侵检测系统(IDS)和入侵防御系统(IPS)的功能。
    • 这些系统能够监测和分析网络流量,以识别和响应各种网络攻击和异常行为。

1.2 iptables

iptables是Linux操作系统上广泛使用的一个命令行防火墙工具,它允许系统管理员配置内核防火墙提供的表和链条。iptables工具是基于Netfilter框架,用于创建和管理网络包过滤规则。这些规则可以用来控制进入、离开或通过系统的数据包,实现包过滤、网络地址转换(NAT)和其它类型的包处理。iptables的灵活性和强大的功能使其成为Linux系统中网络安全管理的基石之一。

1.3 snort

Snort是一个开源的网络入侵防御系统(NIDS)和网络入侵检测系统(NIDS),能够实时进行包分析和日志记录。它使用一系列的规则来分析网络流量,并通过匹配这些规则来检测各种攻击、探测、拒绝服务攻击、溢出、和其它可疑行为。Snort广泛应用于网络安全领域,不仅因为它功能强大,还因为它的灵活性,用户可以编写和实现自己的检测规则,以适应不断变化的网络威胁环境。

2.实践过程

2.1 防火墙

2.1.1 过滤包

验证kali和xp可以互相ping通

kali查看iptables配置 iptables -L

现在是空的

向里面添加过滤ICMP过滤规则 iptables -A INPUT -p icmp -j DROP

现在遇到ICMP包会直接drop掉

现在XP ping不通kali了

2.1.2 服务访问过滤

kali装telnet

装xinetd

编辑/etc/inetd.conf nano /etc/inetd.conf

删除这一行前面的注释

配置xinted.conf,添加默认配置

配置telnet

启动服务(改完配置文件之后是restart)

XP可以登录

seed也可以

不允许访问

仅允许.3(seed)访问 iptables -A INPUT -p tcp -s 192.168.200.3 -j ACCEPT

.4(XP)无法访问

.3(seed)仍然可以

2.2 snort入侵检测

在Seed Ubuntu20.04做,不要在Kali做,Kali获取的snort缺少很多东西

编辑配置文件,以ASCII格式输出警报日志,把原来的输出方式注释掉

进对应目录然后

snort -c /etc/snort/snort.conf -l /var/log/snort -A fast -r /home/treedream/history/3.21/listen.pcap

会自己跑分析

10条被记录的警报(警报规则设置不一样)

总共67660个会话,其中67657个都是TCP包

去对应目录下查看警报文件

可以看到发现很多nmap扫描

2.3 分析蜜网配置文件

2.3.1 数据控制

包括两方面,防火墙对数据的控制,IPS对异常数据的限制(snort_inline)。大致在上面的功能之上,增加了:

  • 防火墙对源地址或者目的地址属于黑名单的主机,丢弃所有包。
  • 对于属于白名单的主机,接受且不记录。
  • 对于属于防护名单内的主机,禁止访问某些不希望被访问到的主机。
  • 白名单是设置能通过的用户,白名单以外的用户都不能通过,黑名单是设置不能通过的用户,防护名单是部分包能通过

vim /etc/init.d/rc.firewall,然后找到creat_chains函数位置

2.3.2 数据捕获

数据捕获包括:防火墙的日志记录(记录的信息如目的地址/端口、源地址/端口、协议、长度等。)Snort记录的网络流。

2.3.3 IPTables的实际规则列表

通过指令iptables -t filter -L来查看规则列表。找到chain output等所在的默认规则

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

2.3.4 Snort实际执行参数

vim /etc/rc.d/init.d/snortd

可以看到默认使用默认目录下的snort.conf规则,默认监听网卡为eth0,配置文件的位置在/etc/snort/snort.conf

2.3.5 Snort_inline实际执行参数

vim /etc/init.d/hw-snort_inline


-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置

2.3.6 蜜网网关相关
2.3.6.1 查看服务开启状态

chkconfig --list | grep iptables 查看防火墙服务开启状态

chkconfig --list | grep snort 查看snort服务开启状态

  • 0~6分别表示关机、单用户模式、无网络连接的多用户命令行模式、有网络连接的多用户命令行模式、不可用、带图形界面的多用户模式、重新启动。
  • 可以看出iptables和hw-snort_inline在无网络连接的多用户命令行模式下开始启动,而snortd不会自启动。
2.3.6.2 查看更新方式

vim /etc/honeywall.conf

rule 和 snort_restart都是NO,snort的rule默认不自动更新,snort也不自动重启

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

虚拟机要联网的话,除了访问某些公网IP以外,记得给自己的虚拟机设置DNS服务器,不然装不了各种软件包

继续用Kali做的话,要重新安装和配置snort,并且语法是3.x版本的,按2.x版本的语法写配置文件会报错

4.学习感想和体会

最麻烦的部分就是在Kali安装telnet,有些方法和教程或许有些过时?或者有一些小瑕疵,导致安装失败或者服务启动失败。

  • 22
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值