Linux

如何阻止對 Linux 上某些程序的 Internet 訪問

  • November 8, 2021

最近,我遇到了將 Internet 訪問限制為特定程序的問題。任何人都可以推荐一種不使用任何特定軟體的好方法嗎?

對我來說,解決方案恰好是直截了當的。

  1. 創建、驗證新組;將所需使用者添加到該組:
  • 創造:groupadd no-internet
  • 證實:grep no-internet /etc/group
  • 添加使用者:useradd -g no-internet username

注意:如果您正在修改已經存在的使用者,您應該執行:usermod -a -G no-internet userName 檢查:sudo groups userName 2. 在您的路徑中創建一個腳本並使其可執行:

  • 創造:nano /home/username/.local/bin/no-internet
  • 執行檔:chmod 755 /home/username/.local/bin/no-internet
  • 內容:
#!/bin/bash
sg no-internet "$@"
  1. 添加iptables 規則以刪除組no-internet的網路活動:
  • iptables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP

注意:不要忘記使更改永久化,這樣它會在重新啟動後自動應用。這樣做取決於您的 Linux 發行版。 4. 檢查它,例如在 Firefox 上執行:no-internet "firefox"

如果您想要例外並允許程序訪問本地網路

  • iptables -A OUTPUT -m owner --gid-owner no-internet -d 192.168.1.0/24 -j ACCEPT
  • iptables -A OUTPUT -m owner --gid-owner no-internet -d 127.0.0.0/8 -j ACCEPT
  • iptables -A OUTPUT -m owner --gid-owner no-internet -j DROP

注意:在生成的情況下,將保留規則。例如,如果您執行一個沒有 Internet規則的程序並且該程序將打開瀏覽器視窗,那麼仍然會應用這些規則。

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