单包授权与端口试探工具Fwknop介绍

2024-03-23 18:32

本文主要是介绍单包授权与端口试探工具Fwknop介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

fwknop实现了一种称为单包授权(SPA)的授权方案,用于隐藏服务。SPA将单个数据包经过加密,不可重放,并通过HMAC进行身份验证,以便在传达到隐藏在防火墙后面的服务。

SPA的主要应用场景是防火墙来过滤一切SSH等服务流量,从而使漏洞的利用(包括0day的和未打补丁)变得更加困难。由于没有开放端口,因此无法使用Nmap扫描SPA隐藏的任何服务。

fwknop项目支持四种不同的防火墙:Linux,OpenBSD,FreeBSD和Mac OS X上的iptables,firewalld,PF和ipfw。

SPA基本上是下一代Port Knocking(PK),但在保留其核心优势的同时,解决了PK所表现出的许多限制。PK局限性包括难以防止重放攻击,不对称密码和HMAC计划,通常不可能可靠地支持,这是非常简单的挂载一个DoS攻击PK服务器通过欺骗一个额外的包成PK顺序遍历网络(因此令人信服的PK服务器客户端不知道正确的序列)。所有这些缺点都通过SPA得到了解决。

同时,SPA将服务隐藏在默认的drop防火墙策略后面,被动地获取SPA数据(通常通过libpcap或其他方法),并为SPA包身份验证和加密/解密实现标准的加密操作。

由fwknop生成的SPA数据包利用HMAC在加密然后验证模型中进行身份验证加密。虽然HMAC的使用目前是可选的(通过–use-hmac命令行开关启用),但有三个原因强烈建议使用:

1.如果没有HMAC,除非使用GnuPG,否则fwknop不可能进行加密的强身份验证,但即使这样,仍然应该应用HMAC。

2.加密后应用的HMAC可防止密码分析CBC模式填充oracle攻击,例如Vaudenay攻击和相关欺骗(如最近的针对SSL的“Lucky 13”攻击)。

3.wknopd守护进程验证HMAC所需的代码比解密SPA包所需的代码要简单得多,因此没有正确的HMAC的SPA包甚至不会通过解密例程发送。

上面的最后一个原因是,即使SPA数据包使用GnuPG加密,仍然应该使用HMAC,因为SPA数据不是通过libgpgme函数发送的,除非HMAC首先检出。GnuPG和libgpgme是相对复杂的代码体,因此限制潜在攻击者通过HMAC操作与此代码交互的能力有助于保持更强的安全性。生成用于SPA通信的HMAC除了普通加密密钥之外还需要专用密钥,并且可以使用该–key-gen选项生成两者。

fwknop使用Rijndael分组密码或通过GnuPG和相关的非对称密码对SPA数据包进行加密。如果选择了对称加密方法,则通常在客户端和服务器之间共享加密密钥(/etc/fwknop/access.conf有关详细信息,请参阅文件)。用于Rijndael加密的实际加密密钥是通过标准PBKDF1密钥导出算法生成的,并且设置了CBC模式。如果选择GnuPG方法,则加密密钥从GnuPG密钥环导出。

用例
使用单数据包授权(SPA)或安全性受到挑战的同类端口 Knocking(PK)的人通常访问在部署SPA / PK软件的同一系统上运行的SSHD。也就是说,在主机上运行的防火墙对所有传入的SSH连接都有一个默认删除策略,这样就不能扫描SSHD,但是SPA守护进程会重新配置防火墙,暂时授予对被动认证的SPA客户机的访问权:

fwknop支持上述内容,但也更加牛批,并且使用NAT(对于iptables / firewalld防火墙)。毕竟,重要的防火墙通常是网络之间的网关,而不是仅部署在独立主机上。NAT通常用于此类防火墙(至少用于IPv4通信),以便为RFC 1918地址空间上的内部网络提供Internet访问,并允许外部主机访问内部系统上托管的服务。

由于fwknop与NAT集成,因此可以利用SPA 通过外部Internet上的用户通过防火墙访问内部服务。虽然这在现代传统网络上有很多应用,但它也允许fwknop支持亚马逊的AWS等云计算环境:

用户界面
官方跨平台fwknop客户端用户界面fwknop-gui (下载,github)由Jonathan Bennett开发。支持大多数主要的客户端SPA模式,包括NAT请求,HMAC和Rijndael密钥(尚不支持GnuPG),fwknoprc节点保存等。目前fwknop-gui在Linux,Mac OS X和Windows上运行。

教程
有关fwknop的综合教程可以在这里找到:

http://www.cipherdyne.org/fwknop/docs/fwknop-tutorial.html

特征
以下是fwknop项目支持的完整功能列表:

1.在Linux上的iptables和firewalld防火墙,* BSD和Mac OS X上的ipfw防火墙以及OpenBSD上的PF上实现单个数据包授权。

2.fwknop客户端在Cygwin下的Linux,Mac OS X,* BSD和Windows上运行。此外,还有一个Android应用程序可以生成SPA数据包。

3.支持Rijndael和GnuPG方法用于SPA数据包的加密/解密。

4.支持Rijndael和GnuPG的HMAC认证加密。操作顺序是加密 – 然后验证以避免各种密码分析问题。

5.通过有效传入SPA数据包的SHA-256摘要比较来检测和阻止重播攻击。还支持其他摘要算法,但SHA-256是默认算法。

6.通过libpcap从导线上被动地嗅探SPA包。fwknopd服务器还可以从由单独的以太网嗅探器(例如with tcpdump -w ),iptables ULOG pcap writer或直接通过UDP套接字–udp-server模式写入的文件中获取数据包数据。

7.对于iptables防火墙,fwknop添加的ACCEPT规则在自定义iptables链中添加和删除(在可配置的超时之后),以便fwknop不会干扰可能已经加载到系统上的任何现有iptables策略。

8.支持经过身份验证的SPA通信的入站NAT连接(仅适用于iptables防火墙)。这意味着可以将fwknop配置为创建DNAT规则,以便您可以从开放Internet访问RFC 1918 IP地址上的内部系统上运行的服务(如SSH)。还支持SNAT规则,它实质上将fwknopd转换为SPA验证网关,以从内部网络访问Internet。

9.fwknop服务器支持多个用户,并且可以通过/etc/fwknop/access.conf文件为每个用户分配自己的对称或非对称加密密钥。

10.通过https://www.cipherdyne.org/cgi-bin/myip自动解析外部IP地址 (当从NAT设备后面运行fwknop客户端时,这非常有用)。由于外部IP地址在此模式下在每个SPA数据包内进行加密,因此中间人(MITM)会攻击内联设备拦截SPA数据包并仅从其他IP转发以获取访问权限受到阻碍。

11.SPA数据包的目标端口以及通过iptables NAT功能建立后续连接的端口支持端口随机化。后者适用于转发到内部服务的连接以及授予运行fwknopd的系统上的本地套接字的访问权限。

12.与Tor集成(如本DefCon 14演示文稿中所述)。请注意,由于Tor使用TCP进行传输,因此通过Tor网络发送SPA数据包要求每个SPA数据包都通过已建立的TCP连接发送,因此从技术上讲,这打破了“单数据包授权”的“单一”方面。但是,Tor提供的匿名优势在某些部署中可能超过这一考虑因素。

13.实现SPA通信的版本化协议,因此很容易扩展协议以提供新的SPA消息类型,同时保持与旧的fwknop客户端的向后兼容性。

14.支持代表有效SPA数据包执行shell命令。

15.fwknop服务器可以配置为对入站SPA数据包施加多个限制,超出加密密钥强制执行的限制和重放攻击检测。即,包年龄,源IP地址,远程用户,对请求端口的访问等。

16.捆绑了fwknop是一个全面的测试套件,它发布了一系列测试,旨在验证fwknop的客户端和服务器部分是否正常工作。这些测试涉及通过本地环回接口嗅探SPA数据包,构建临时防火墙规则,根据测试配置检查相应的访问权限,并解析来自fwknop客户端和fwknopd服务器的输出,以获得每个测试的预期标记。测试套件输出可以很容易地匿名化,以便与第三方进行通信以进行分析。

17.fwknop是第一个将端口敲击与被动操作系统指纹识别相结合的程序。但是,单包授权提供了除端口 knocking之外的许多安全优势,因此通常不推荐端口 knocking操作模式。

南昌手牵手科技

这篇关于单包授权与端口试探工具Fwknop介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/839174

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

C++——stack、queue的实现及deque的介绍

目录 1.stack与queue的实现 1.1stack的实现  1.2 queue的实现 2.重温vector、list、stack、queue的介绍 2.1 STL标准库中stack和queue的底层结构  3.deque的简单介绍 3.1为什么选择deque作为stack和queue的底层默认容器  3.2 STL中对stack与queue的模拟实现 ①stack模拟实现

超强的截图工具:PixPin

你是否还在为寻找一款功能强大、操作简便的截图工具而烦恼?市面上那么多工具,常常让人无从选择。今天,想给大家安利一款神器——PixPin,一款真正解放双手的截图工具。 想象一下,你只需要按下快捷键就能轻松完成多种截图任务,还能快速编辑、标注甚至保存多种格式的图片。这款工具能满足这些需求吗? PixPin不仅支持全屏、窗口、区域截图等基础功能,它还可以进行延时截图,让你捕捉到每个关键画面。不仅如此

Mysql BLOB类型介绍

BLOB类型的字段用于存储二进制数据 在MySQL中,BLOB类型,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储的大小不同。 TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系