如何永久停用 GNU/linux 網路?

如何永久停用 GNU/linux 網路?

即使存在網路卡(可能已插入電纜),如何才能使 Ubuntu 12 無法與網路通訊?

我發現這個答案它提倡刪除網卡驅動程序,但我擔心驅動程式可能會在升級過程中重新安裝。我沒有太多管理linux的經驗。

是否有在沒有網路功能的情況下運行 GNU/linux 的最佳實踐?

答案1

您可以透過停用 Linux 核心中的不同網路功能來實現此目的。停用所有網路選項將具有破壞性(因為某些程式確實使用環回介面進行操作 - 其中之一是 X 伺服器)。但有什麼可以幫助 - 從內核禁用任何 NIC 設備驅動程式。這將確保沒有外部網路活動。

但還有一點——正如你所說:

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

這假設進行更新的使用者俱有系統的 root 存取權限。如果是這種情況 - 您無法使用類似軟體的解決方案來解決問題。由於使用者俱有 root 存取權(和知識) - 使用者將能夠進行任何更改。

另一點 - 即使使用者沒有 root 存取權限 - 也可以啟動 Linux live distribution 並對電腦的設定檔進行任何更改,包括用新的核心映像替換核心映像(從而啟用 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,我懶得嘗試。

我仍然可以使用 shell 並呼叫基本實用程式。但例如 X-server 需要網路系統呼叫才能運作,並且無法正常啟動。

相關內容