ネットワーク カード (ケーブルが接続されている可能性があります) が存在する場合でも、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 ドライバーを有効にする) など、コンピューターの構成ファイルに変更を加えることができる可能性があることです。
これはすべて、コンピューターに物理的にアクセスできれば、コンピューター上のあらゆるものを変更できるという単純な事実に基づいています (知識とツールがあれば)。
したがって、次のような方法が考えられます。
ユーザーがLinuxの高度な知識を持っていない場合、Linuxカーネルのコンパイルカーネルに NIC ドライバー (USB ネットワーク カードを忘れないでください) がなくても十分だと思います。
また、BIOS 設定でネットワーク カードを無効にすることもできますが、この場合も、コンピューターに物理的にアクセスできる場合は、これらの設定をリセットできます。
設定できますiptables外部ネットワーク トラフィックを拒否するルール。
使用物理的なセキュリティデバイスポートロックキットなど
答え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 サーバーはネットワーク システム コールが機能する必要があり、正常に起動しません。