fwknop通过源码编译的安装和使用测试(新)

1、安装fwknop server

此教程使用github原码进行编译安装,还可使用apt直接进行下载(不在本页)

从GitHub下载原码压缩包

https://github.com/mrash/fwknop

解压后进入文件路径

 首先保证安装以下软件

sudo apt-get install libtool

sudo apt-get install automake

sudo apt-get install libpcap-dev

sudo apt-get install texinfo

sudo apt-get install make

2、安装fwknop server

  1. 运行./autogen.sh

  2. 运行./configure

 

 成功后为此效果,如未显示,请检查前文依赖是否安装正确

3.编译安装

执行编译

sudo make

安装

sudo make install

 卸载

sudo make uninstall

安装后 使用 which fwknop 查看安装位置 

使用 ldconfig进行刷新

使用 sudo fwknop -V 查看版本

正确显示后即为安装成功

4.配置

1)客户端生成秘钥

 $ fwknop -A tcp/22 -a 192.168.163.1 -D 192.168.163.129 -p 62201 -P udp --key-gen --use-hmac --save-rc-stanza

-a后为客户端ip,-D后面为服务器ip,-p后为服务器监听SPA包的端口,-P后为发送的SPA包的协议,一般采用UDP包。

执行成功后输出如下信息:[+] Wrote Rijndael and HMAC keys to rc file: (省略)

路径一般为/root/下一个文件

查看该文件,内容如下:

[192.168.163.129]
SPA_SERVER_PROTO            udp
SPA_SERVER_PORT             62201
ALLOW_IP                    192.168.163.1
ACCESS                      tcp/22
SPA_SERVER                  192.168.163.129
KEY_BASE64                  gqkSa8ghIDlAfv3FDEAdyyMfC6Q+j9RI+BhodFdifok=
HMAC_KEY_BASE64             IPsM8dg8JLaYvRS3UVEoNiuQ9nBu7FB86tOmQyF7HF0+7cT33pxUHAX5zGcYidP5T03zJLR3ejjrJgR1PezLvA== 
USE_HMAC                    Y

2)服务端配置设置

编辑sudo vim /usr/local/etc/fwknop/access.conf文件,修改里面的内容如下:

OPEN_PORTS            tcp/22
FW_ACCESS_TIMEOUT     20
SOURCE              ANY
#KEY_BASE64          __CHANGEME__
#HMAC_KEY_BASE64     __CHANGEME__
KEY_BASE64              gqkSa8ghIDlAfv3FDEAdyyMfC6Q+j9RI+BhodFdifok=
HMAC_KEY_BASE64         IPsM8dg8JLaYvRS3UVEoNiuQ9nBu7FB86tOmQyF7HF0+7cT33pxUHAX5zGcYidP5T03zJLR3ejjrJgR1PezLvA==

注意键值的拼写

编辑文件sudo vim /usr/local/etc/fwknop/fwknopd.conf

添加内容如下:

PCAP_INTF                   ens33;

ens33是用ifconfig命令查出来的网卡名字:


[jelly@localhost ~]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.163.129  netmask 255.255.255.0  broadcast 192.168.163.255
        inet6 fe80::37c8:6a00:e56c:9bf5  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:66:79:23  txqueuelen 1000  (Ethernet)
        RX packets 1336  bytes 112165 (109.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1197  bytes 208285 (203.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  base 0x2000

3)在服务端启动停止fwknop

[jelly@localhost ~]$ sudo fwknopd start //启动fwknop

[*] An instance of fwknopd is already running: (PID=4196).

[jelly@localhost ~]$


[jelly@localhost ~]$ sudo fwknopd -S //查看fwknop状态

Detected fwknopd is running (pid=4196).

[jelly@localhost ~]$

[jelly@localhost ~]$ sudo kill  4196

4)在服务端打开防火墙,屏蔽22端口

在此之前先测试ssh是否可用

sudo ps -e | grep ssh

 若无结果使用以下安装ssh

sudo apt-get install openssh-server

 再次检测ssh是否可用

sudo ps -e | grep ssh

如果有 sshd 则说明 ssh 服务已启动,如果没有启动,输入下边命令启动 ssh 服务

sudo service ssh start

接下来设置防火墙 

[jelly@localhost ~] $ sudo iptables -I INPUT 1 -i ens33 -p tcp --dport 22 -j DROP
[jelly@localhost ~] $ sudo iptables -I INPUT 1 -i ens33 -p tcp --dport 22 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

注意

  • ubuntu 22.04默认使用nftables作为防火墙,而非iptables。

解决 

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy

 

5)在客户端使用敲门命令(是服务端ip)

 fwknop -n 192.168.163.129

6)检测监听状态 

sudo fwknopd --fw-list

出现如下信息则敲门成功

Chain FWKNOP_INPUT (1 references)

num? target? ? prot opt source? ? ? ? ? ? ? destination? ? ? ?

1? ? ACCEPT? ? tcp? --? 192.168.224.128? ? ? 0.0.0.0/0? ? ? ? ? ? tcp dpt:22 /* _exp_1605597903 */

客户端使用nmap命令扫描服务器,则结果为:

PORT STATE SERVICE

22/tcp open? ssh

SPA验证完成!

使用tcpdump对服务器接收到的数据包进行监听,发现在fwknop敲门行为前后,客户端通过udp协议向服务器的62201端口发送一个验证包,但是此项行为涉及的端口和协议都可以使用--server-port参数进行修改。

没找到如何修改--server-port默认参数,但每次敲门行为都可以指定端口,操作命令如下

fwknop -n 192.168.224.130:12345

端口号范围再10000-65535之间。同时可能要修改服务器的/etc/fwknop/fwknopd.conf中的PCAP_FILTER字段。

PCAP_FILTER udp port 62201;

本文参考fwknop SPA服务端源码编译_fwknop 源码解析_愤怒的小黄鸭的博客-CSDN博客fwknop的安装和使用测试_Jelly-小丑鱼的博客-CSDN博客

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:增产品类型,修改产品类型,删除产品类型。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值