零信任技术之fwknop单包认证敲门

更多内容请访问borgeousのblog

实验背景

服务器某个端口服务受到防火墙的保护情况下,外界机器无法访问该端口上的服务

实验目的

通过在服务器和客户机上分别部署feknop敲门服务端和敲门客户端并进行配置,可以只让授权的客户端所在的机器敲开服务器的受保护的22号端口

实验准备

需要有两台Linux虚拟机,我这里其中一台为Ubuntu,一台为kali,我们以kali作为服务器,以Ubuntu作为客户机,要让Ubuntu想办法敲开Linux的22号端口

客户机安装配置fwknop客户端

使用命令下载fwknop-客户机

sudo apt update
sudo apt install fwknop-client

image-20240721142010114

image-20240721145015032

生成敲门凭证(千万不要加sudo,如果是root用户,请切换为普通用户

fwknop -A tcp/22 -a xxx -D yyy --key-gen --use-hmac 1 --save-rc-stanza

其中xxx替换为我们的Ubuntu的ip,yyy替换为服务器的ip,我们首先用ifconfig查看一下我们的服务端和客户端的ip

image-20240721145300342

比如我的是这样的

fwknop -A tcp/22 -a 192.168.153.133 -D 192.168.153.129 --key-gen --use-hmac 1 --save-rc-stanza

image-20240721150322476

这会在我们的家目录下生成一个.fwknoprc文件,我们进入下面的目录,并在/home/borgeous下提取这个文件内容里面的HMAC验证码以及密码的base64编码

cd /home/borgeous
grep KEY .fwknoprc

image-20240721151037418

将这两个复制下来,以避免后续重新创建,这两个值改变

服务器安装配置

首先确保服务器已经启动sshd服务

systemctl status ssh

image-20240721151236318

这里代表着我们的ssh服务已经开启

接下来我们在服务器上安装、配置fwknop-server,我们使用如下命令进行安装

sudo apt update
sudo apt install fwknop-server

image-20240721151511423

执行命令配置两个文件:

sudo vim /etc/fwknop/access.conf

image-20240721152723451

清空配置文件,再添加如下内容

SOURCE ANY
REQUIRE_SOURCE_ADDRESS Y
OPEN_PORTS tcp/22, tcp/80, udp/22, udp/80
FW_ACCESS_TIMEOUT 20
KEY_BASE64 vJQ0gldvD73JBWqzk2cU0oOF/S0P5fohSrvRB1l3H3g=
HMAC_KEY_BASE64
knXk7/TDbowujaJEKIxAt4lW4yuq2PvYxEwv0oFpsiUtyVLVVML1vCzlc08SHPJa+kLctKb6ci1CGjO3W6+cQw==

其中的key和hmackey的base64编码替换成客户端的,这样就配置好了客户端敲门凭证

接下来我们使用ip address获取服务器的ip和网卡名

image-20240721154538022

如上,服务器IP为192.168.153.129,网卡名叫eth0,服务器配置另外一个文件

sudo vim /etc/fwknop/fwknopd.conf

把里面东西全删了,输入以下内容

PCAP_INTF ens0;

image-20240721155448147

服务器配置防火墙

使用如下命令:

sudo iptables -I INPUT 1 -i eth0 -p tcp --dport 22 -j DROP
sudo iptables -I INPUT 1 -i eth0 -p tcp --dport 22 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

如上命令实现入站规则无法使用tcp协议连通22端口,也就是ssh服务

image-20240721160110649

当启动之后,我们的xshell立即就停用了

确认配置正常

在服务端,输入命令启动fwknop服务

sudo fwknopd

再次使用这个命令,有输出代表配置正常,如下所示

image-20240721160402830

效果确认

客户端连接服务器sshd服务,发现无法连接

ssh 192.168.153.129

image-20240721162602661

一直卡在这里不动了,代表我们拒绝了ssh服务

我们尝试敲门后连接,在客户端输入命令以进行敲门,也不要加sudo

fwknop -n 192.168.153.129

image-20240721162924751

我们再ssh该用户,发现成功

image-20240721163847023

实验到此结束

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值