6

Есть ли способ отключить сеть, передав опцию ядра через grub? Желательно, чтобы я мог отключить только 2 интерфейса, но отключить все сети тоже можно.

Мой пример использования: я работаю в операционной системе SELinux и хочу отключить доступ к сети, когда система находится в разрешающем режиме.

Изменить: я использую CentOS 5.4

2 ответа2

3

Многие дистрибутивы отключают доступ к сети на уровне выполнения 2, а большинство отключают его на уровне запуска 1, также называемом "одиночным режимом", поскольку запускается только одна корневая консоль / оболочка. Добавьте 2 или 1 в строку загрузки ядра по желанию.

1

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

  • У вас есть 4 настраиваемых уровня выполнения, пронумерованных 2, 3, 4, 5. В зависимости от вашего дистрибутива они могут быть идентичны по умолчанию или нет. Как правило, чем больше число уровней выполнения, тем больше служб активно. Допустим, мы хотим, чтобы уровни запуска 2 и 3 были разрешающими, а 4 и 5 - сжатыми.

  • Не включайте рискованные сетевые интерфейсы автоматически. Например, в Debian или Ubuntu это означает, что /etc/network/interfaces объявляет опасные сетевые интерфейсы, но не имеет auto оператора для них; и никогда не запускайте Network Manager.

  • Напишите скрипт /etc/init.d/tightened-mode для переключения между разрешающим режимом и ужесточенным режимом. Что-то вроде (потребует уточнения):

    case $1 in
      start) switch SELinux to tightened mode; ifup eth1; ifup eth2;;
      stop) ifdown eth1; ifdown eth2; switch SELinux to permissive mode;;
    esac
    
  • Добавьте символические ссылки K88tightened-mode../init.d/tightened-mode в /etc/rc2.d и /etc/rc3.d . Добавьте символические ссылки S12tightened-mode../init.d/tightened-mode в /etc/rc4.d и /etc/rc5.d . Детали могут различаться в зависимости от того, какой вариант init вы используете.

  • При загрузке добавьте желаемый номер уровня выполнения в конце командной строки ядра, например,

    root =/dev/sda1 ro magic = 0xf00bar 2

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