選択したプロセスを除くすべてのプロセスへのインターネットアクセスを拒否する方法は?

選択したプロセスを除くすべてのプロセスへのインターネットアクセスを拒否する方法は?

時には、56kbpsという非常に狭いインターネット帯域幅を使用する必要があります。私のUbuntuデスクトップには、Web上で何かを常にチェックするプログラムが多すぎます。プログラムを1つずつ検索して無効にするのは本当に痛いことです。

私は、メールクライアントを除くすべてのプロセスへのインターネットアクセスを(任意の手段で)拒否できるツールが必要です。

可能ですか?それでは、どうすればいいですか?

これを行う1つの方法は、別のネットワークデバイス(たとえば)を開き、/dev/tap1それを(私の一般的なインターネットデバイス)にルーティングするように設定し、/dev/wlan0すべてを保護するためにオンとオフを切り替えることができるカスタムルールを使用することです。iptablesしかし、私はiptablesの専門家ではないので、誰かが私に具体的な指示を与えない限り、このソリューションは役に立ちません。

答え1

また、これを使用して、必要なiptablesインターフェイスでudp / tcpポートを許可/制限することもできます。たとえば、tcp / udpポート143(IMAP)のすべてのトラフィックを許可するために、チェーン内のfilterテーブルにルールを導入します。OUTPUT

(sudo) iptables -A OUTPUT -o eth0 -p udp --destination-port 143 -j ACCEPT
(sudo) iptables -A OUTPUT -o eth0 -p tcp --destination-port 143 -j ACCEPT
(sudo) iptables -A OUTPUT -o eth0 -j DROP

私の考えでは、IMAPがTCPを通過すると思いますが、もし備えてUDPプロトコルも制限しています。この質問では、インターネットインターフェイスがあり、eth0メールクライアントがIMAPプロトコルを使用してリモートメールサーバーに接続していると仮定します。自分で試してみましたが、メールサーバーにのみアクセスできました。ルールの順序が重要であることを覚えておいてください。それ以外の場合、期待どおりに動作しません。

編集#1:コメントで質問したように。インターネットトラフィックを復元するには、挿入したルールを削除するだけです。次のようにこれを行うことができます。

行く長さは遠い:

(sudo) iptables -D OUTPUT -o eth0 -p udp --destination-port 143 -j ACCEPT
(sudo) iptables -D OUTPUT -o eth0 -p tcp --destination-port 143 -j ACCEPT
(sudo) iptables -D OUTPUT -o eth0 -j DROP

短い距離:

(sudo) iptables -nvL --line-numbers

上記のコマンドを実行すると、各ルールの前にその番号が表示されるため、ルール全体を書き換えるのではなく、その番号を使用してルールを削除するのに役立ちます。出力例は次のとおりです。

Chain OUTPUT (policy ACCEPT 73 packets, 8766 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     udp  --  *      eth0    0.0.0.0/0            0.0.0.0/0            udp dpt:143

その後、ルールを削除するには、次のコマンドを実行します。

(sudo) iptables -D OUTPUT 1

まだルールも定めておらず、状況がどうなるかよくわからない場合は、近距離もお勧めします。iptableswithパラメータの出力に基づいてルールを再設定することもできます-nvL

注:これnon-persistent使用法は、iptablesシステムを再起動してもルールが維持されないことを意味します。ルールが必要な場合のpersistent最も簡単な方法は、次のコマンドを実行することです。

(sudo) iptables-save > /etc/iptables/rules.v4

現在のルールをに保存/ダンプします/etc/iptables/rules.v4。その後、再起動後、iptablesはそのファイルから保存された設定を読み込みます。IPv6この追加ファイルを使用できますrules.v6。これはDebian追加のパッケージをインストールする必要がある場合に適用されます。確認してくださいこのガイド上海。私が見つけたUbuntuの場合この他のガイド。他のシステムではインターネットを検索できますが、原則は同じです。You dump your current rules to file and set up a script at boot time to apply those saved rules to the current iptables configuration.

答え2

複数の仮想マシンでプロセスを実行できます。その後、一部の仮想マシンへのネットワークアクセスを終了できますが、他の仮想マシンへのアクセスは終了できません。

関連情報