Linux

我可以將使用者(及其應用程序)限制為一個網路介面嗎?

  • February 10, 2019

我實際上有兩種情況可以應用它:

  1. Multiseat Desktop:兩個網路連接都帶有網際網路網關和兩個帳戶,每個帳戶都在執行頻寬密集型任務。我想把它們分開,所以一個帳戶只使用 eth0,第二個帳戶只使用 eth1。
  2. 伺服器:我在伺服器上有兩個 IP,我想確保郵件使用者只從第二個 IP(eth0:1 別名)發送電子郵件

第二個可能是 IPTabled(我只是不知道如何)通過該介面路由電子郵件流量,但第一個將處理各種流量,因此需要基於使用者。如果有基於使用者的解決方案,我可以在這兩個地方應用它。

您將需要使用 iptables所有者模組,也許還需要一些巧妙的數據包修改。

owner 該模組嘗試匹配數據包創建者的各種特徵,用於本地生成的數據包。它僅在 OUTPUT 鏈中有效,即使這樣,某些數據包(例如 ICMP ping 響應)也可能沒有所有者,因此永遠不會匹配。

–uid-owner userid 匹配數據包是否由具有給定有效(數字)使用者 ID 的程序創建。

–gid-owner groupid 匹配數據包是否由具有給定有效(數字)組 ID 的程序創建。

–pid-owner processid 匹配數據包是否由具有給定程序 ID 的程序創建。

–sid-owner sessionid 匹配數據包是否由給定會話組中的程序創建。

您可以在物理機上設置兩個虛擬機,並設置網路介面橋接,以便一個 VM 使用 eth0,另一個 VM 使用 eth1。請參閱有關橋接網路的虛擬盒文件部分

引用自:https://unix.stackexchange.com/questions/880