背景是用来构建手机的自动化测试环境,为了方便验证Web前端在手机上的显示效果。
看AWS Device Farm有推荐使用Appium框架,就先来试试。
安装成功后,用node -v命令验证是否成功,如果成功会显示版本号。
说明已经安装成功 10.19.0版本。
同理,也验证一下npm -v。
详细说明可以参考官网的介绍,里面有些不推荐上面的nodejs安装方法,不过亲测目前版本也没有问题。
http://appium.io/docs/en/about-appium/getting-started/index.html
直接用npm安装即可,中间需要访问网络,国外源不稳定,中间可能失败,比如出现npm WARN tar ENOENT: no such file or directory的错误信息。别担心,Ctrl + C取消,再次安装就好,甚至多试几次。
直到,出现上面的信息,就是安装成功了。
然后启动appium server。
这就表明appium server已经成功启动,后续可以安装client和android环境以及driver等。
安装环境:Ubuntu虚拟机20.04LTS(server &client)
以下步骤依据fwknop官方文档[1],依据源码编译同时安装客户端与服务器端,详情见 http://www.cipherdyne.org/fwknop/docs/fwknop-tutorial.html
安装完成后查看安装位置以及客户端与服务器端的版本信息:
服务器启动失败问题:
1、官方文档给出的部分命令是错的,启动SPA防火墙需要使用命令 service fwknop-server start 或者 sudo fwknopd start 而不是 service fwknop start 。
2、配置错误,官方文档只给出access.conf配置规则,还需要修改fwknopd.conf配置文件(均位于 /etc/fwknop/ 目录下)
通过命令 grep fwknopd /var/log/syslog 打印信息如下:
fwknop是一项Single Packet Authorization(SPA,单包认证)技术,其保留了Port Knocking(敲门技术)的优点(在默认丢弃数据包过滤器后提供服务保护),但与Port Knocking相比又有如下优点,详见 http://www.cipherdyne.org/fwknop/ :
fwknop的单包授权消息格式[2]:为了让 fwknop SPA 客户端进行身份验证并允许应用后续授权标准,必须将几条信息安全地传送到SPA敲门服务器。fwknop 客户端在每个 SPA 敲门消息中传输以下内容,详见 http://www.cipherdyne.org/fwknop/docs/SPA.html :
SPA包的详细内容详见 https://www.linuxjournal.com/article/9565
1、首先在客户端安装nmap端口扫描工具,用于测试后续的SPA服务器端的端口开放情况
2、客户端与服务器端分别运行ifconfig查看各自局域网ip,我的ip为: server:172.16.93.130, client:172.16.93.131 。在复现时分别用自己的局域网ip替换
3、客户端对服务器进行端口扫描
结果如下,发现没有端口开放:
4、服务器端安装openssh-server用于开放22端口进行测试
安装完毕后客户端再进行端口扫描,结果如下,发现22端口开放:
通过ssh进行测试:
5、根据官方 tutorial 中的Default-Drop firewall policy中进行iptables配置
其中ens33选择填入自己的网卡名称,客户端再进行nmap端口扫描,发现22端口被过滤:
同时使用ssh连接发现无法连接:
6、客户端生成秘钥(-a后为客户端ip,-D后面为服务器ip,-p后为服务器监听SPA包的端口,-P后为发送的SPA包的协议,一般采用UDP包)
生成的秘钥在当前用户的主目录下,使用命令查看:
同时在服务器端进行配置:
配置情况如下:
随后服务器启动fwknop并查看状态:
结果如下,同时客户端使用ssh尝试连接发现依旧timeout:
7、客户端发送敲门SPA包,并且服务器查看fwknop状态并打印信息:
对客户端发出的SPA敲门包抓包显示如下,其从客户端的40477端口发送至服务器的62201端口(fwknop默认敲门监听端口)
服务器端显示信息如下
发现其收到SPA敲门包并将为客户端(172.16.93.131)添加规则,此时客户端用nmap进行端口扫描,发现依旧被过滤。
1、客户端生成秘钥时不能使用sudo,否则生成的.fwknoprc将会在root目录下(/root/)
2、在客户端发送SPA敲门数据包后,使用nmap扫描会致使服务器关闭其权限,因此无法再直接使用ssh连接,需要重新再发送SPA敲门包后再直接使用ssh连接才能够连接服务器。
3、可能由于服务器端fwknop监听的端口被防火墙关闭而导致收不到敲门数据包,因此需要保证端口畅通,其中62201为fwknop监听SPA包的端口:
1、由于国内运营商多是动态分配ip的,因此每次敲门及ssh连接都需要确定自己的公网ip并且生成秘钥。
2、由于共享公网ip的情况,在自己主机敲开门之后,与主机在相同公网ip下的其他主机也可以进行ssh连接。虽然开门时间短,但是如果有黑客一直专门盯着,在检测到发出SPA包之后使用同一公网ip下的主机或是伪造ip进行攻击,则有可能突破。fwknop主要是防御大范围端口扫描乱扫的黑客。
[1] http://www.cipherdyne.org/fwknop/docs/fwknop-tutorial.html
[2] Rash M. Single packet authorization with fwknop[J]. login: The USENIX Magazine, 2006, 31(1): 63-69.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)