GNU/Linux 네트워킹을 영구적으로 비활성화하는 방법은 무엇입니까?

GNU/Linux 네트워킹을 영구적으로 비활성화하는 방법은 무엇입니까?

네트워크 카드가 있음에도 불구하고(케이블이 연결되어 있을 수 있음) Ubuntu 12가 네트워크와 통신하는 것을 어떻게 불가능하게 만들 수 있습니까?

나는 찾았다이 답변NIC 드라이버 제거를 옹호하지만 업그레이드 중에 드라이버가 다시 설치될 수 있다는 점이 걱정됩니다. 저는 리눅스를 관리해 본 경험이 별로 없습니다.

네트워킹 기능 없이 GNU/Linux를 실행하는 모범 사례가 있습니까?

답변1

Linux 커널에서 다양한 네트워크 기능을 비활성화하여 이를 수행할 수 있습니다. 모든 네트워킹 옵션을 비활성화하는 것은 파괴적입니다(일부 프로그램은 작동을 위해 루프백 인터페이스를 사용하기 때문에 - 그 중 하나는 X 서버입니다). 하지만 도움이 될 수 있는 것은 커널에서 NIC 장치 드라이버를 비활성화하는 것입니다. 이렇게 하면 외부 네트워크 활동이 발생하지 않습니다.

하지만 여기에 또 다른 요점이 있습니다. 말씀하신 것처럼:

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

이는 업데이트를 수행하는 사용자에게 시스템에 대한 루트 액세스 권한이 있다고 가정합니다. 이 경우 소프트웨어와 같은 솔루션으로는 문제를 해결할 수 없습니다. 사용자는 루트 액세스(및 지식)를 갖고 있으므로 사용자는 어떤 변경도 할 수 있습니다.

또 다른 요점 - 사용자에게 루트 액세스 권한이 없더라도 Linux 라이브 배포를 부팅하고 커널 이미지를 새 이미지로 대체하는 것을 포함하여 컴퓨터의 구성 파일을 변경할 수 있습니다(따라서 NIC 드라이버 활성화).

이 모든 것은 컴퓨터에 물리적으로 접근할 수 있다면 컴퓨터의 모든 것을 변경할 수 있다는 단순한 사실에 관한 것입니다(지식과 도구가 있는 경우).

따라서 다음은 몇 가지 가능한 방법입니다.

  1. 사용자가 Linux에 대한 고급 지식이 없는 경우리눅스 커널 컴파일커널에 NIC 드라이버(USB 네트워크 카드를 잊지 마세요)가 없으면 IMO로 충분합니다.

  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-서버가 작동하려면 네트워킹 시스템 호출이 필요하므로 제대로 시작되지 않습니다.

관련 정보