Wie kann man es Ubuntu 12 unmöglich machen, mit dem Netzwerk zu kommunizieren, obwohl eine Netzwerkkarte vorhanden ist (an die möglicherweise ein Kabel angeschlossen ist)?
ich fanddiese Antwortwas das Entfernen der NIC-Treiber empfiehlt, aber ich habe Bedenken, dass der Treiber während eines Upgrades neu installiert werden könnte. Ich habe nicht viel Erfahrung mit der Administration von Linux.
Gibt es eine bewährte Methode zum Ausführen von GNU/Linux ohne Netzwerkfunktionen?
Antwort1
Sie können dies tun, indem Sie verschiedene Netzwerkfunktionen im Linux-Kernel deaktivieren. Es wäre destruktiv, ALLE Netzwerkoptionen zu deaktivieren (weil einige Programme für den Betrieb eine Loopback-Schnittstelle verwenden - eines davon ist der X-Server). Was jedoch helfen kann, ist, alle NIC-Gerätetreiber im Kernel zu deaktivieren. Dadurch wird sichergestellt, dass keine externe Netzwerkaktivität stattfindet.
Aber hier ist noch ein weiterer Punkt - wie Sie sagten:
but I'm concerned that the driver might be re-installed during an upgrade
Dies setzt voraus, dass der Benutzer, der die Updates durchführt, Root-Zugriff auf das System hat. Wenn dies der Fall ist, können Sie das Problem nicht mit einer softwareähnlichen Lösung lösen. Da der Benutzer Root-Zugriff (und Kenntnisse) hat, kann er alle Änderungen vornehmen.
Ein weiterer Punkt – auch wenn der Benutzer keinen Root-Zugriff hat – besteht die Möglichkeit, die Linux-Livedistribution zu booten und beliebige Änderungen an den Konfigurationsdateien des Computers vorzunehmen, einschließlich des Ersetzens des Kernel-Images durch ein neues (und damit der Aktivierung der NIC-Treiber).
Dabei dreht es sich um die einfache Tatsache: Wenn man physischen Zugriff auf den Computer hat, kann man an ihm alles ändern (vorausgesetzt, man verfügt über das nötige Wissen und die nötigen Werkzeuge).
Im Folgenden sind einige mögliche Wege aufgeführt:
Wenn Benutzer keine fortgeschrittenen Linux-Kenntnisse haben,Kompilieren des Linux-Kernelsohne NIC-Treiber (USB-Netzwerkkarten nicht vergessen) im Kernel wird meiner Meinung nach ausreichen.
Sie können die Netzwerkkarte auch in den BIOS-Einstellungen deaktivieren. Diese Einstellungen können jedoch wiederum zurückgesetzt werden, wenn Sie physischen Zugriff auf den Computer haben.
Sie können festlegeniptablesRegeln zum Ablehnen jeglichen externen Netzwerkverkehrs.
Verwendenphysisches Sicherheitsgerätwie Port-Lock-Kit;
Antwort2
CONFIG_NET=n
Diese Option steuert die Netzwerkunterstützung im Kernel. Wie in der Dokumentation selbst beschrieben, kann dies jedoch viele Userland-Programme beschädigen, die netzwerkartige Dinge tun:
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>.
Ich habe diese Option hier getestet:https://github.com/cirosantilli/linux-kernel-module-cheat/blob/71d673bac48f43a2e38f5e1e4f94b10da15b7cee/kernel_config_fragment#L58
Ergebnis: Viele (alle?) Netzwerksysteme geben einen Fehlerstatus zurück und unternehmen nichts, z. B.:
# nc -l -p 8000 127.0.0.1
nc: socket: Function not implemented
TODO: UNIX-Sockets? In dieser Version nicht vorhanden nc
und ich war zu faul, es auszuprobieren.
Ich kann immer noch die Shell verwenden und grundlegende Dienstprogramme aufrufen. Aber beispielsweise der X-Server benötigt Netzwerksystemaufrufe, um zu funktionieren, und startet nicht richtig.