具有HMAC-PSK身份验证的UDP端口敲门套件

pyknock的Python项目详细描述


爆震

具有HMAC-PSK身份验证的UDP端口敲门套件。一旦接收到用有效的预共享密钥签名的有效数据包,它就会运行打开或关闭访问的命令。命令应由用户通过服务器命令行指定。服务器允许在配置的命令中使用替换占位符:

  • $ip-签名数据包中提到的IP地址
  • $af-ip地址类型:inetinet6
  • $cmd-请求的操作:openclose

示例见用法。

主旨

在此应用程序中,选择udp数据报是有原因的。防火墙计算机的典型配置只允许将数据包发送到某些公共端口,并将数据包发送到所有其他端口。使用udp外部观察员无法区分被接受的包和被防火墙丢弃的包。因此,如果防火墙配置将除了数据包以外的所有udp数据包丢弃到pyknock端口,则外部观察者甚至无法检测到有什么东西在等待magic数据包。因此,它可能被用来完全隐藏未经验证的对等网络的机器。此外,它还可以作为经典的端口敲门解决方案,为敏感的网络应用程序添加另一个保护层。

功能

  • 使用经过加密身份验证的消息。
  • 抗重放攻击。
  • 后量子就绪密码(HMAC-PSK和SHA-256)。
  • 完全适用于用户空间。甚至可以作为非特权用户运行。

要求

只需要Python2.6+。还支持Python3。

安装

把文件放在任何你想运行的地方。或者使用pip install pyknock将其作为python包安装到系统中。脚本应在标准二进制路径上可用。

用法

服务器示例:

pyknock-server MySecretPSK 'ipset add -exist myallowedset $ip timeout 3600''ipset del -exist myallowedset $ip'

客户示例:

pyknock-client open my-protected-host.com MySecretPSK

NAT背后的客户端示例:

pyknock-client -S $(curl -s https://canihazip.com/s) open my-protected-host.com MySecretPSK

有关更多选项,请参见帮助。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在reducer中迭代自定义可写组件时出现java问题   属性文件中属性的java命名约定   任务链关闭的java Executor服务   java从Eclipse中的字段生成多个构造函数   java通过继承读取Json   java在不知道密钥的情况下解析json   java camel cxf如何在电子邮件中发送soap请求响应   java程序似乎跳过了if语句的一部分,在移回正确位置之前先移到else语句   测试简单的Java加密/解密inputFileName不存在   java从Jenkins REST API获取所有作业的所有构建的构建细节   java基本包装器和静态“类型”类对象   在WebSphere8.5上部署java代码   java对象相等(对象引用“=”)   java MongoDB整型字段到枚举的转换   每次我重新导入gradle时,IntelliJ都会不断重置Java设置   类型使用键或索引从Java中的数据类型检索值   在Java的列表接口中需要listIterator()和iterator()是什么?