Linuxアプリケーションのインターネットアクセス制限

以前にインターネットアクセスをブロックしていたプログラムを実行する必要がある場合があります。 この問題を解決するには、かなり簡単なトリックがあります。

したがって、アイデアは、アプリケーションの起動時に特別なグループ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"

Source: https://habr.com/ru/post/J82933/


All Articles