2

Как можно было бы сделать невозможным Ubuntu 12 для связи с сетью, даже если есть сетевая карта (к которой может быть подключен кабель)?

Я нашел этот ответ, который предлагает удалить драйверы NIC, но я обеспокоен тем, что драйвер может быть переустановлен во время обновления. У меня нет большого опыта администрирования Linux.

Есть ли лучшая практика для запуска GNU/ Linux без сетевых возможностей?

2 ответа2

2

Вы можете сделать это, отключив различные сетевые возможности в ядре Linux. Будет разрушительным отключить ВСЕ параметры сети (потому что некоторые программы действительно используют интерфейс обратной связи - одна из них - X-сервер). Но что может помочь - отключить любые драйверы сетевых устройств из ядра. Это обеспечит отсутствие активности внешней сети.

Но вот другой момент - как вы заявили:

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

Это предполагает, что пользователь, который делает обновления, имеет root-доступ к системе. Если это так - вы не можете решить проблему с помощью программного решения. Так как у пользователя есть root-доступ (и знания) - пользователь сможет вносить любые изменения.

Еще один момент - даже если у пользователя нет доступа с правами root - существует возможность загрузки живого дистрибутива Linux и внесения любых изменений в конфигурационные файлы компьютера, включая замену образа ядра новым (таким образом, активируя драйверы NIC).

Это все о том простом факте - если у вас есть физический доступ к компьютеру - вы можете изменить на нем все (если у вас есть знания и инструменты).

Итак, вот несколько возможных способов:

  1. Если пользователи не обладают расширенными знаниями Linux, то для компиляции ядра Linux без драйверов NIC (не забывайте о сетевых картах USB) в ядре будет достаточно IMO.

  2. Также вы можете отключить сетевую карту в настройках BIOS - но опять же, эти настройки можно сбросить, если у вас есть физический доступ к компьютеру.

  3. Вы можете установить правила iptables для отклонения любого внешнего сетевого трафика.

  4. Используйте физическое защитное устройство, такое как комплект блокировки порта;

0

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

ТОДО: UNIX сокеты? Нет в этой версии nc и мне было лень попробовать.

Я все еще могу использовать оболочку и вызывать основные утилиты. но, например, X-сервер требует сетевых системных вызовов для работы и не запускается должным образом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .