fwknop 客户端使用总结

SPA fwknop 客户端使用总结

1. 客户端功能

客户端最主要的功能有两个,如下:

  1. 生成对称密钥和非对称密钥
    在这里插入图片描述

  2. 向服务端发送数据验证包,使服务端去打开某个端口,例如要访问服务端受保护的80端口,如下图所示:
    在这里插入图片描述

2. 客户端指令解析

所有指令均可使用"fwknop -h" 进行查看,这里对其进行翻译记录。

  1. -n

    --named-config: 在“$HOME/.fwknoprc”文件找到一个指定的Section配置(例如 -n 127.0.0.1)

  2. -A

    --access: 提供要在服务器上打开的端口/协议列表(例如“tcp/22”)。

  3. -a

    --allow-ip: 指定允许在 SPA 数据包中使用的 IP 地址(源地址,例如“123.2.3.4”)

  4. -D

    –destination: 指定 fwknop 服务器的主机名或 IP 地址

  5. –use-hmac

    将 HMAC 添加到出站 SPA 数据包以进行身份​​验证加密

  6. -h

    --help: 显示fwknop的使用方法内容

  7. -B

    --save-packet: 将生成的包数据保存到指定文件中

  8. -b

    --save-packet-append: 将生成的数据包数据附加到使用 -B 选项指定的文件中

  9. -C

    --server-cmd: 指定 fwknop 服务器将代表 fwknop 客户端执行的命令

  10. -N

    --nat-access: 获得对内部服务的 NAT 访问 (具体指什么,不太理解)

  11. -p

    --server-port: 设置传出 SPA 数据包的目标端口

  12. -P

    --server-proto: 为传出的 SPA 数据包设置协议(udp、tcp、http、tcpraw、icmp)

  13. -s

    --source-ip: 告诉 fwknopd 服务器接受 SPA 数据包具有的任何源 IP 作为需要访问的 IP(不推荐,fwknopd 服务器可以忽略此类请求)

  14. -S

    --source-port: 设置传出 SPA 数据包的源端口

  15. -Q

    --spoof-source: 设置传出 SPA 数据包的源 IP

  16. -R

    –resolve-ip-https: 通过连接到一个URL来解析外网IP,比如默认的:https://www.cipherdyne.org/cgi-bin/myip with wget in --secure-protocol mode (SSL)。可以使用 --resolve-url 选项覆盖默认的URL

    --resolve-http-only: 通过 HTTP 而不是 HTTPS(通过上面提到的 URL)强制外部 IP 解析。不建议这样做,因为如果第三方在途中更改了 IP 解析 HTTP 连接,它会将 fwknop 暴露给潜在的 MITM 攻击

    --resolve-url: 覆盖用于解析源 IP 地址的默认 URL

  17. -u

    –user-agent: 设置 HTTP 用户代理以通过 -R 解析外部 IP,或通过 HTTP 发送 SPA 数据包。如果未使用此选项,则默认值为 Fwknop/<version>

    –use-wget-user-agent: 使用默认的 wget User-Agent 字符串而不是 Fwknop/<version>

  18. -w

    –wget-cmd: 在 -R 模式下手动设置 wget 的路径

  19. -H

    –http-proxy: 指定将通过其发送 SPA 数据包的 HTTP 代理主机。 也可以通过在主机/ip 后面加上“:<port>”来指定端口

  20. -U

    –spoof-user: 在传出的 SPA 数据包中设置用户名

  21. -l

    –last-cmd: 使用与上次执行时相同的命令行参数运行 fwknop 客户端(参数从 ~/.fwknop.run 文件中读取)

  22. -G

    –get-key: 从文件加载加密密钥/密码

    –stdin: 从标准输入读取加密密钥/密码

    –fd: 指定要从中读取加密密钥/密码的文件描述符

  23. -k

    –key-gen: 生成 SPA Rijndael + HMAC 密钥

  24. -K

    –key-gen-file: 将生成的 Rijndael + HMAC 密钥写入文件

    –key-rijndael: 指定 Rijndael 密钥。由于密码对实用程序是可见的(如 Unix 下的“ps”),所以这种形式应该只在安全性不重要的情况下使用

    –key-base64-rijndael: 指定 base64 编码的 Rijndael 密钥。由于密码对实用程序是可见的(如 Unix 下的“ps”),因此这种形式应该只在安全性不重要的情况下使用

    –key-base64-hmac: 指定 base64 编码的 HMAC 密钥。由于密码对实用程序是可见的(如 Unix 下的“ps”),因此这种形式应该只在安全性不重要的情况下使用

  25. -r

    –rand-port: 通过随机分配的端口发送 SPA 数据包(在服务器端需要比默认的 udp 62201 更宽的 pcap 过滤器)

  26. -T

    –test: 构建 SPA 数据包,但不通过网络发送

  27. -v

    –verbose: 设置详细模式,可以指定多次(具体指什么,不太理解)

  28. -V

    –version: 打印版本号

  29. -m

    –digest-type: 指定要使用的消息摘要算法(md5、sha1、sha256、sha384 或 sha512).默认值为 sha256

  30. -M

    –encryption-mode: 指定使用AES加密SPA包时的加密模​​式。默认为CBC模式,但也可以选择其他的如CFB或OFB,只要在access.conf文件中也指定在服务器端。请注意,可以指定字符串“legacy”,以便使用 2.5 之前的 *fwknop* 版本使用的旧初始化向量策略生成 SPA 数据包

  31. -f

    –fw-timeout: 从客户端指定 SPA 服务器防火墙超时

    –hmac-digest-type: 设置 HMAC 摘要算法(默认为 sha256).选项为 md5、sha1、sha256、sha384 或 sha512

    –icmp-type: 设置ICMP类型(与’-P icmp’一起使用)

    –icmp-code: 设置ICMP代码(与’-P icmp’一起使用)

    –gpg-encryption: 使用 GPG 加密(默认为 Rijndael)

    –gpg-recipient-key: 指定收件人 GPG 密钥名称或 ID

    –gpg-signer-key: 指定签名者的 GPG 密钥名称或 ID

    –gpg-no-signing-pw: 如果没有与 GPG 密钥关联的密码,则不允许签名密码

    –gpg-home-dir: 指定 GPG 主目录

    –gpg-agent: 如果可用,请使用 GPG 代理

    –gpg-exe: 设置 GPG 二进制文件的路径

    –no-save-args: 不要将 fwknop 命令行参数保存到 $HOME/fwknop.run 文件

    –rc-file: 指定 fwknop rc 文件的路径(默认为 $HOME/.fwknoprc)

    –server-resolve-ipv4: 使用主机名时,强制从 DNS 解析 SPA 服务器的 IPv4 地址

    –save-rc-stanza: 将命令行参数保存到使用 -n 选项指定的 $HOME/.fwknoprc 节

    –force-stanza: 与 --save-rc-stanza 一起使用以覆盖指定节的所有变量

    –stanza-list: 转储在 $HOME/.fwknoprc 中找到的节列表

    –nat-local: 通过 fwknopd 服务器系统上的转发端口访问本地服务.(具体指什么,不太理解)

    –nat-port: 指定转发端口以通过 NAT 访问服务.(具体指什么,不太理解)

    –nat-rand-port: 让 fwknop 客户端为 NAT 访问分配一个随机端口.(具体指什么,不太理解)

    –no-home-dir: 不允许 fwknop 客户端查找用户主目录

    –no-rc-file: 在不引用 ~/.fwknoprc 文件的情况下执行 fwknop 客户端操作

    –show-last: 显示最后一个 fwknop 命令行参数

    –time-offset-plus: 将时间添加到传出的 SPA 数据包时间戳

    –time-offset-minus: 从传出的 SPA 数据包时间戳中减去时间

3. 最后

关于客户端的源码解析有兴趣的盆友调试跟踪下,后面会对客户端的源码进行跟踪调试,到时会继续进行博文更新。敬请期待!(不管你们期不期待,都得期待。 哈哈哈)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值