有没有办法通过 grub 传递内核选项来禁用网络?最好只禁用 2 个接口,但禁用所有网络也可以。
我的用例是,我正在使用 SELinux 操作系统,并且想要在系统处于宽容模式时禁用网络访问。
编辑:我正在使用 CentOS 5.4
答案1
许多发行版会在运行级别 2 中禁用网络访问,大多数会在运行级别 1 中禁用它,也称为“单一模式”,因为只启动一个根控制台/shell。根据需要将2
或添加1
到内核启动行。
答案2
我不知道有任何一劳永逸的解决方案。我会怎么做呢?设置一个宽松的运行级别和一个严格的运行级别,安排只自动启动始终开启的接口,并在严格的运行级别中明确启动其他接口。
您有 4 个可配置的运行级别,编号为 2、3、4、5。根据您的发行版,它们可能默认相同或不同。通常,运行级别编号越大,活动服务越多。假设我们希望运行级别 2 和 3 宽松,而 4 和 5 严格。
不要自动调出有风险的网络接口。例如,在 Debian 或 Ubuntu 上,这意味着
/etc/network/interfaces
声明有风险的网络接口,但没有auto
针对它们的声明;并且永远不要运行网络管理器。编写一个脚本
/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
您使用的变体而异。启动时,在内核命令行末尾添加所需的运行级别编号,例如,
根= / dev / sda1 ro magic=0xf00bar 2