したがって、アイデアは、アプリケーションの起動時に特別なグループIDを設定することです。これは、netfilterのアクセスブロック信号です。
ステップ1.マーカーグループを作成し、それに自分を追加する
グループを作成します(この場合、グループは
noinet
と呼ばれ
noinet
)。
sudo groupadd noinet
現在のユーザーを追加します。
sudo gpasswd -a `id -un` noinet
手順2. iptablesのルールを作成します。このルールは、ネットワークインターフェイスが起動するたびに実行されます
ディレクトリ/etc/network/if-pre-up.dにファイルを作成します
sudo vim /etc/network/if-pre-up.d/inet_access_blocking_rule
次の内容で:
#!/bin/bash
iptables -A OUTPUT -m owner --gid-owner noinet -j DROP
実行可能にすることを忘れないでください:
sudo chmod +x /etc/network/if-pre-up.d/inet_access_blocking_rule
ステップ3.属性グループをセットアップする始動スクリプトを作成する
/ usr / local / binにスクリプトを配置します
sudo vim /usr/local/bin/noinet
スクリプトの内容は単純です:
#!/bin/bash
sg noinet "$*"
繰り返しますが、実行可能にすることを忘れないでください
sudo chmod +x /usr/local/bin/noinet
ステップ4.システムをリブートする
確かにこれは簡単にできますが、箱から出してすぐに使用できる場合、状況は次のとおりです。
sudo service networking restart
レポート:
再起動:不明なインスタンス:
sudo initctl restart networking
レポート:
initctl:不明なインスタンス:
sudo invoke-rc.d networking restart
レポート:
不明なインターフェースを無視eth0 = eth0
さらに、ユーザーをグループに追加して有効にするには、ログインする必要があります(少なくともDE-
sudo restart gdm
)。
一般に、再起動するだけですべての設定が完了し、有効になります。
使用する
使い方は簡単です:
noinet ping habrahabr.ru
noinet firefox
ハードコアLinuxoidsステップ3は、この方法をすべて省略して使用できます:)
sg noinet "ping habrahabr.ru"
sg noinet "firefox"