到了 2025 年,說實在話我實在很少聽別人在說 proxy(代理、代理伺服器) 這東西。在這篇新聞中 駭客盯上Linux伺服器,惡意植入TinyProxy、Sing-Box工具作代理伺服器 如果你沒看懂 vmess-argo、vless-reality 等,那是非常正常的事。某方面來說,我們都很幸福,不用學習如何 "科學上網"。
昨天有講到反向代理,今天就來說說(順向)代理。我們可以偷偷借鑑一下 cloudflare 上的圖
其中代理伺服器所扮演的角色像管家一樣,本地端的網路流量優先丟給代理伺服器,然後會讓代理伺服器把外網傳回的訊息導向正確的本地端,當然外網伺服器看到的 IP 會是代理伺服器的 IP。
是不是跟 NAT(Network Address Translation,網路位址轉換) 很像,要分別也非常簡單,代理伺服器是在 L7 (應用層)工作,而 NAT 只會改變 L3(網路層) 和 L4(傳輸層) 中的 IP。
今天我們會用 tinyproxy 簡單實作,老規矩,先上拓譜圖
然後請忽略 Ubuntu1 和 Ubuntu2 今天不會用到它們,並且想像,在上行網路有個代理伺服器在外網。
要用 tinyproxy 非常簡單,直接用指令 sudo apt install tinyproxy
就行了,然後打開設定檔案,使用指令 sudo vim /etc/tinyproxy/tinyproxy.conf
,由於今天只是簡單的實作,所以資安任何問題暫不考慮,所以
用完了記得關掉 !!!
在/etc/tinyproxy/tinyproxy.conf
中有很多東西都已經預設好了,我們只需要改
Listen 0.0.0.0
# Allow 127.0.0.1
# ::1
Allow 0.0.0.0/0
BasicAuth <user> <yourStrongPassword>
其中 <user>
和 <yourStrongPassword>
分別填入使用者名稱和密碼即可
最後只要 sudo systemctl restart tinyproxy
即可投入使用
要驗證也非常簡單,先用sudo systemctl status tinyproxy
確認是否成功運作,然後在任意設備上用 curl 指令 curl -I https://www.google.com --proxy <your-proxy-server-IP>:<port> --proxy-user <user>:<yourStrongPassword>
去看回傳的結果,如是 http 200 的狀態碼,則一切正常。
如果成功了,恭喜你,建立了第一個 http 代理伺服器。
要在瀏覽器上使用非常簡單,我們用 firefox 來示範,在 Settings > General > Network Setting > Connection Settings > Configure Proxy Access to the Internet 中選擇 Manual proxy configuration 裡的 http 代理伺服器的 IP 和埠號填上去按下 OK 後即可使用。
不過因為我們有設定 BasicAuth 所以使用時會出現框框要你填使用者名稱和密碼,這樣我們就正式使用代理伺服器來上網了
不過還遠遠不夠,眾所周知 http 明文傳輸訊息,在資安上欠缺考慮,所以整體的設計有待優化,改天再繼續