RaspKaliPi魔改之路(二)safari跟我有仇——一些安全措施
寫在最前:
這個系列將會記錄我個人改造樹莓派的一些踩坑記錄。為了方便閱讀,以專題為單位拆分文章,不過文章之間仍有較強的聯絡,感興趣的可以從頭讀到尾。
這個系列只適合那些有較強動手能力喜歡瞎折騰並且 能對自己的每一次操作負全部責任 的樹莓派使用者。
參考的文章
nginx官方文件
noVNC官方文件
關於x11vnc,novnc和ssl/tls的一些討論
自簽名證書
自創概念
x11vnc-novnc埠:novnc的訪問埠,載入了x11vnc
x11vnc-novnc-nginx埠:nginx的訪問埠,載入了novnc
上回書說到,在樹莓派上配置了x11vnc之後我們終於能優雅地看見桌面了。
但是,與RDP“好歹有加密”不同,VNC協議預設都是明文傳輸。
如果只是在家裡用WiFi連線那還好說,如果是像我一樣穿透到公網,哪怕對於
“誒SakuraFrp不是有加密選項嗎”
這裡我們要先搞清楚frp的工作原理。
如圖,訪客先連線frps,frps再把請求轉發給frpc。
被加密的部分只有frpc和frps之間的鏈路,從frps到訪客的鏈路仍然是明文。
所以自己給自己上加密就很有必要了。
如何做證書這裡不再贅述。需要注意的是,生成金鑰裡有個引數“1024”指定了金鑰長度,為了安全你可以自己增加大小,但是對處理器的要求也會成倍增加,自行考慮平衡。
來講講為什麼我要用noVNC。
一,這個世界上已經沒有什麼支援ssl/tls的免費vnc客戶端了。我找到的唯一一份遺產是x11vnc的子專案,
“誒x11vnc不是內建html服務端嗎”
能說出這句話的人,你很牛。但是。就像我在上一篇文章中暗示的,x11vnc的整合度高到離譜(從它把操作手冊寫進命令列就能看出),為了一個隱形bug我要查上百份(很可能和我想要的資訊沒有半點關係的)過時文件。為什麼不用獨立,簡潔易懂,可魔改程度高的html服務端呢?
如何配置這裡不再贅述,官方文件寫得很清楚。
作為一個對安全性要求很像的人,我在noVNC上又套了一個nginx本地反代。確實,有點掩耳盜鈴的意思,不過至少要讓駭客第一眼看不出vnc執行在哪裡,順帶逃過一大堆自動化掃描指令碼的追殺。
終於,一個還算安全的遠端桌面方案完成了。在下一篇文章裡我會讓樹莓派的定製程度更強,操作比較離譜,追求穩定性的使用者不建議繼續學。
順帶吐槽:safari死活不肯接受我的自簽名證書,因為我造了一個很離譜的金鑰長度。傻X Safari。