Ubuntu

僅為經過身份驗證的客戶端啟用網關

  • March 1, 2016

我希望我的伺服器可以用作某些客戶端訪問 Internet 的網關。啟用轉發不是我關心的問題,而是僅限於某些客戶端。

我不想要iptables允許從指定 IP 地址訪問的硬編碼規則,因為網路中的機器可以聲明它想要的任何 IP。

我正在尋找的是一種對機器進行身份驗證的方法,然後動態添加一個規則,該規則授予其 IP 通過我的伺服器重定向流量的權利,並且可能每分鐘執行一個 cron 作業以檢查 IP 地址是否仍分配給同一台機器.

主意

到目前為止,我的想法是創建一個小型網站來驗證使用者身份(例如使用令牌),然後使用 PHP 的exec函式來創建iptables規則。我唯一的問題是安全地授予 apache 的sudo.

我發現了關於該主題的這兩個 SO 問題(firstsecond),但是,它們的兩個答案都帶來了安全問題(據我所知)。

也許更簡單的方法是在 iptables 中使用 mac 身份驗證並跳過整個單獨的網站部分。當然,這不會動態添加規則,因此它可能不符合您的喜好,但它足以僅允許您想要的那些使用者訪問。當然,MAC 欺騙是一種官方的可能性,但如果您的使用者那麼精明/具有欺騙性,那麼您就會遇到更大的問題。

引用自:https://serverfault.com/questions/760780