零信任实践之单包认证(SPA)
概況
隨著零信任概念的越來越火熱,產業界也都在考慮如何將零信任的理念落地到實踐中。這其中SDP推動零信任的實踐路上走出了一大步,所謂SDP又稱軟件定義邊界,理論上來說可以替代傳統的物理邊界。SDP邊界之間自有一套自己的認證和授權體系,與傳統的通過賬號密碼認證不同。在這眾多認證和授權體系當中,我們有必要了解一下SPA即單包認證的思路和實踐
SPA/PK是什么
Port Knocking[PK]:字面意思指“敲端口”,它可以通過設置一系列規則動態的調整防火墻的策略或執行特定命令。它與SPA最大的區別在于PK的認證消息在packet header中傳輸,而SPA則在packet data。
Single Packet Authorization[SPA]:即單包認證,和PK的功能大致是相似的,但由于其認證消息存放在Packet data中,意味著可以傳輸更多的消息、并加強其安全性。
SPA實踐之fwknop演示
接下來演示如何通過fwknop隱藏ssh服務,以及如何通過fwknop進行認證從而登錄ssh服務
1. 環境要求
fwknop-client:ubuntu16,192.168.97.162
fwknop-server:ubuntu18,192.168.98.217
依賴:iptables;libfko;libgpgme;libpcap
依賴安裝,不同系統的依賴名有所不同,可通過apt search xxx 確定依賴名。iptables ubuntu自帶,無需安裝
在192.168.97.162上安裝fwknop-client
apt-get install fwknop-client fwknop -V 查看客戶端版本,若有顯示,說明安裝成功在192.168.98.217上安裝fwknop-server
apt-get install fwknop-server fwknopd -V 查看服務端版本2. fwknop配置
fwknop-client客戶端執行
相關信息會寫入在/home/username/.fwknoprc,執行
grep KEY /root/.fwknoprc獲得相關的KEY_BASE64以及HMAC_KEY_BASE64
KEY_BASE64 vyJbj2TmFLZvCBOBq07Uo1qgxMIDb4LvWyU7JhN4eJw= HMAC_KEY_BASE64 YQTWkgkFKH2e/5x/mO4KcOgga9fU68u/z+gC9Qt1i+rW/xYC5U8FG6vA6Ys7kiV6vr6Aj5DcA6He7qZJ/gU3gQ==首先啟動ssh 服務
編輯/etc/fwktop/access.conf
將客戶端生成的key添加該文件中,內容如下
配置iptables關閉22端口
iptables -I INPUT 1 -i ens33 -p tcp --dport 22 -j DROP iptables -I INPUT 1 -i ens33 -p tcp --dport 22 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT網卡名根據fwknop服務端自己修改fwknopd --fw-list-all 查看防火墻規則啟動fwknopd服務
fwknopd -R 重啟服務 fwknopd reload 若重啟失敗則重載 fwknopd -S 查看fwktopd服務狀態nmap 掃描22端口,可以看到端口被過濾,這是由于防火墻規則原因
可以看到端口重新開放,可以正常進行ssh連接,大約端口開放30s左右,就會重新關閉,在30s之間已經建立的連接則不會阻斷
fwknop流量簡析
可以看到,只有2條規則,一條指定阻斷所有到達22端口的流量,一條指定對已經連接的22端口流量作放行,不阻斷
可以看到客戶端向服務端62201端口發送udp認證流量,服務端認證之后通過ping探測客戶端是否存活
認證的Packet data經過加密
端口掃描確認此時端口已開放
可以看到,此時fwknopd創建了一條防火墻規則,允許來自fwknop客戶端的ip連接22端口,該規則大約在30s之后失效
總結
參考鏈接
fwknop手冊:http://www.cipherdyne.org/fwknop/docs/fwknop-tutorial.html
Port Knocking實現參考:
https://www.cnblogs.com/xiaoxiaoleo/p/8523322.html
總結
以上是生活随笔為你收集整理的零信任实践之单包认证(SPA)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中哪些是无序_关于无序集合:
- 下一篇: crh寄存器_STM32的GPIO的寄存