即使存在網路卡(可能已插入電纜),如何才能使 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 驅動程式)。
這一切都與一個簡單的事實有關 - 如果一個人可以物理訪問電腦 - 就可以更改電腦上的任何內容(只要擁有知識和工具)。
因此,以下是一些可能的方法:
答案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 需要網路系統呼叫才能運作,並且無法正常啟動。