Linux
如何阻止對 Linux 上某些程序的 Internet 訪問
最近,我遇到了將 Internet 訪問限制為特定程序的問題。任何人都可以推荐一種不使用任何特定軟體的好方法嗎?
對我來說,解決方案恰好是直截了當的。
- 創建、驗證新組;將所需使用者添加到該組:
- 創造:
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 "$@"
- 添加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規則的程序並且該程序將打開瀏覽器視窗,那麼仍然會應用這些規則。