GNU/Linux ネットワークを永続的に無効にするにはどうすればいいですか?

GNU/Linux ネットワークを永続的に無効にするにはどうすればいいですか?

ネットワーク カード (ケーブルが接続されている可能性があります) が存在する場合でも、Ubuntu 12 がネットワークと通信できないようにするにはどうすればよいでしょうか。

私は見つけたこの答えNIC ドライバーを削除することを推奨していますが、アップグレード中にドライバーが再インストールされるのではないかと心配しています。私は Linux の管理経験があまりありません。

ネットワーク機能なしで GNU/Linux を実行するためのベストプラクティスはありますか?

答え1

Linux カーネルのさまざまなネットワーク機能を無効にすることで、これを実行できます。すべてのネットワーク オプションを無効にすると、破壊的な結果になります (一部のプログラムはループバック インターフェイスを使用して動作するため、その 1 つが X サーバーです)。ただし、カーネルからすべての NIC デバイス ドライバーを無効にすると、役に立つことがあります。これにより、外部ネットワーク アクティビティが確実になくなります。

しかし、あなたが述べたように、ここにもう一つの点があります。

but I'm concerned that the driver might be re-installed during an upgrade

これは、更新を行っているユーザーがシステムへのルート アクセス権を持っていることを前提としています。この場合、ソフトウェアのようなソリューションでは問題を解決できません。ユーザーはルート アクセス権 (および知識) を持っているため、任意の変更を行うことができます。

もう 1 つのポイントは、ユーザーがルート アクセス権を持っていない場合でも、Linux ライブ ディストリビューションを起動し、カーネル イメージを新しいものに置き換える (これにより NIC ドライバーを有効にする) など、コンピューターの構成ファイルに変更を加えることができる可能性があることです。

これはすべて、コンピューターに物理的にアクセスできれば、コンピューター上のあらゆるものを変更できるという単純な事実に基づいています (知識とツールがあれば)。

したがって、次のような方法が考えられます。

  1. ユーザーがLinuxの高度な知識を持っていない場合、Linuxカーネルのコンパイルカーネルに NIC ドライバー (USB ネットワーク カードを忘れないでください) がなくても十分だと思います。

  2. また、BIOS 設定でネットワーク カードを無効にすることもできますが、この場合も、コンピューターに物理的にアクセスできる場合は、これらの設定をリセットできます。

  3. 設定できますiptables外部ネットワーク トラフィックを拒否するルール。

  4. 使用物理的なセキュリティデバイスポートロックキットなど

答え2

CONFIG_NET=n

このオプションはカーネル内のネットワーク サポートを制御します。ただし、ドキュメント自体にもあるように、ネットワーク関連の機能を実行する多くのユーザーランド プログラムが動作しなくなる可能性があります。

menuconfig NET
    bool "Networking support"
    select NLATTR
    select GENERIC_NET_UTILS
    select BPF
    ---help---
      Unless you really know what you are doing, you should say Y here.
      The reason is that some programs need kernel networking support even
      when running on a stand-alone machine that isn't connected to any
      other computer.

      If you are upgrading from an older kernel, you
      should consider updating your networking tools too because changes
      in the kernel and the tools often go hand in hand. The tools are
      contained in the package net-tools, the location and version number
      of which are given in <file:Documentation/Changes>.

      For a general introduction to Linux networking, it is highly
      recommended to read the NET-HOWTO, available from
      <http://www.tldp.org/docs.html#howto>.

私はそのオプションを次の場所でテストしました:https://github.com/cirosantilli/linux-kernel-module-cheat/blob/71d673bac48f43a2e38f5e1e4f94b10da15b7cee/kernel_config_fragment#L58

結果: 多くの (すべての?) ネットワーク システムが失敗ステータスを返し、何もしません。例:

# nc -l -p 8000 127.0.0.1
nc: socket: Function not implemented

TODO: UNIX ソケット? そのバージョンには存在しないのでnc、試してみるのが面倒でした。

シェルを使用して基本的なユーティリティを呼び出すことはできますが、たとえば X サーバーはネットワーク システム コールが機能する必要があり、正常に起動しません。

関連情報