这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
testcaoy7

密码学敲门:防止对特定的网络服务进行探测和扫描

  •  
  •   testcaoy7 · Aug 10, 2023 · 2209 views
    This topic created in 1032 days ago, the information mentioned may be changed or developed.
    在逛 Arch Wiki 的时候(虽然我不是 Arch 用户),看到了一个有意思的 Topic:Port Knocking

    然后文章的最底下提到了一个叫 fwknopd 的程序,它可以实现基于发送单个数据包,完成用户身份认证,并让防火墙自动开放端口

    然后很巧的是,这个程序 Ubuntu/Debian 都有打包,用 apt 安装就是了,于是乎就拿来玩一下,以下是过程:

    1 、在客户端执行:fwknop -D 11.22.33.44 -k --use-hmac --save-rc-stanza
    -D ,即服务器地址,可以是域名,也可以是 ip
    -k ,生成密钥
    --use-hmac ,生成消息认证码
    --save-rc-stanza ,保存参数到配置文件(.fwknoprc )

    2 、在服务器上编辑/etc/fwknop/access.conf 文件
    首先在文件靠近底部的地方有填写密钥和消息认证码的地方,把客户端刚刚生成的 BASE64 编码的密钥和 HMAC 都填写进去;然后在下面再加一行 FW_ACCESS_TIMEOUT 3600;(注意;符号不要漏掉),不加的话,默认敲门后只开门 30 秒

    3 、在服务器上编辑/etc/fwknop/fwknopd.conf 文件
    在文件的末尾加上 PCAP_INTF ens5; 这是设置监听的网卡,如果要保护服务的网卡不是 eth0 ,则要加

    4 、配置防火墙默认丢弃数据包(这里要保护的协议/端口是 tcp/443 )
    iptables -I INPUT 1 -i ens5 -p tcp --dport 443 -j DROP
    iptables -I INPUT 1 -i ens5 -p tcp --dport 443 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

    5 、在服务器运行 fwknop 服务器( fwknopd ),可以用 fwknopd -S 来检查服务器是否已运行

    6 、敲门前,在客户端运行 nmap -sS -p 443 11.22.33.44 ,由于没有敲门,结果应该是 filtered

    7 、敲门,在客户端运行 fwknop -n 11.22.33.44 -A tcp/443 -s
    -n 查询.fwknoprc 文件中的主机名
    -A 要访问的协议和端口
    -s 告诉服务器在敲门成功的情况下为敲门数据包的来源地址开门

    敲了门之后运行在 11.22.33.44 ,tcp/443 上的服务应该可以被正常访问了,按照之前的设置,3600 秒之后需要重新敲门,所以可以用 crontab 每小时敲门

    fwknop 默认使用 UDP/62201 进行敲门,可以配置为其他协议( tcp, tcp_raw_socket, icmp ),以及其他端口,具体可以看 manpage

    这里需要特别说明,敲门时指定的参数-s 相当于告诉服务器,只要身份核验通过,就为敲门数据包的来源地址放行,方便,但可以被 MiTM 攻击,当很清楚自己的出口 ip 的时候,应该将-s 参数替换为 -a <自己的公网 ip>
    2 replies    2023-08-11 01:37:15 +08:00
    iqoo
        1
    iqoo  
       Aug 10, 2023
    其实都不用客户端命令,Web 版都可以实现: https://www.etherdream.com/port-knocking/
    azio7
        2
    azio7  
       Aug 11, 2023
    很老的技术了,几年在一本旧书上见过
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4137 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 00:58 · PVG 08:58 · LAX 17:58 · JFK 20:58
    ♥ Do have faith in what you're doing.