Ubuntu
僅為經過身份驗證的客戶端啟用網關
我希望我的伺服器可以用作某些客戶端訪問 Internet 的網關。啟用轉發不是我關心的問題,而是僅限於某些客戶端。
我不想要
iptables
允許從指定 IP 地址訪問的硬編碼規則,因為網路中的機器可以聲明它想要的任何 IP。我正在尋找的是一種對機器進行身份驗證的方法,然後動態添加一個規則,該規則授予其 IP 通過我的伺服器重定向流量的權利,並且可能每分鐘執行一個 cron 作業以檢查 IP 地址是否仍分配給同一台機器.
主意
到目前為止,我的想法是創建一個小型網站來驗證使用者身份(例如使用令牌),然後使用 PHP 的
exec
函式來創建iptables
規則。我唯一的問題是安全地授予 apache 的sudo
.
也許更簡單的方法是在 iptables 中使用 mac 身份驗證並跳過整個單獨的網站部分。當然,這不會動態添加規則,因此它可能不符合您的喜好,但它足以僅允許您想要的那些使用者訪問。當然,MAC 欺騙是一種官方的可能性,但如果您的使用者那麼精明/具有欺騙性,那麼您就會遇到更大的問題。