[原创]runlevel与secure level_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 898 | 回复: 0   主题: [原创]runlevel与secure level        下一篇 
wulcan
版主
等级:中校
经验:1795
发帖:124
精华:0
注册:2014-3-19
状态:离线
发送短消息息给wulcan 加好友    发送短消息息给wulcan 发消息
发表于: IP:您无权察看 2015-6-21 15:42:50 | [全部帖] [楼主帖] 楼主

Linux下的RunLevel和FreeBSD中的security level很容易混淆,本文仅用来作一下标记。

Linux的RunLevel代表不同的运行模式,一般有7种模式,从0-6,这几种模式分别代表不同的运行方式:是不是支持多用户,是不是支持X,是不是支持网络,是不是可以启动服务。
Linux RunLevel有多种方案,不同的发行版(Slackware、Gentoo、Centos等)在细节上各不相同,但大致都差不多:
Run-level    含义                                        动作
0     Halt                                                    关机
1      Single-user mode                          单用户模式
2     Multiuser mode                               多用户模式,但不能配置网络,也不能启动网络服务
3    Multiuser mode with networking      标准的多用户模式
4    Not used/user-definable                   厂商自定
5    GUI                                                 X模式
6    Reboot                                           重启

这几种模式可以在系统开机时选择,一般是按ctrl+x(lilo)或e(grub)进行选择,在进入系统后,可以用init命令来进入相应的模式。

特别地,可以使用init 0 来关机,init 6来重启——并且这在FreeBSD中同样有效,但是在FreeBSD中的run level定义跟Linux并不相同,下面摘自init man,可以看到0,1,6这三个定义是相同的:

     Run-level    消息       动作
     0            SIGUSR2    关机
     1            SIGTERM    进入单用户模式
     6            SIGINT     重启
     c            SIGTSTP    禁止后续的用户登录
     q            SIGHUP     重新扫描ttys(5)文件

工作模式,在FreeBSD最开始的选单中也可以看到几个,跟Linux选单最大的区别在于没有X选项,重点见下图的1和2 选项:

北京联动北方科技有限公司

这几种模式中,最常用的一种模式就是“单用户”模式,在这个模式下,不会启用网络及其他服务,可以重置root密码,可以修改磁盘等,本质上是尽量避免干扰,来进行本地操作。

从上面的解释可以看到,Linux的runlevel跟FreeBSD的启动模式相对应,本质上是Linux的init和FreeBSD的init相对应,而FreeBSD的security level是怎么回事呢?
先来看FreeBSD的security level,来自security man:
……
     -1    永远处于不安全的模式——总是允许系统运行在不安全的模式,这是系统默认的初始值。
     0     不安全的模式—— “不可更改”和“只允许添加”这两个标志可以被关闭,所有的设备可以根据他们自身的权限来进行读写。
     1     安全的模式——“不可更改”和“只允许添加”这两个标志不能被关闭,所有已经挂载的磁盘系统、/dev/mem以及/dev/kmem不可以打开为写模式;/dev/io(如果系统存在的话)不可以被打开;内核模块不可以被装载或卸载;内核变量debug.kdb.enter sysctl也不能进入内核调试;debug.kdb.panic或其他内核变量也不能导致pavic或trap。
     2     高级别安全模式 —— 跟安全模式相同,另加磁盘不可以用写模式打开,无论磁盘是否被挂载(只能用mount)。这个模式不仅排除了卸载文件系统的干扰,并且在多用户模式下禁止使用newfs。
  并且,内核时间的调整被限制在1秒钟以内,如果调整的时候超过1秒,则会在日志里面记录一条:“Time adjustment clamped to +1 second”。
     3     网络安全模式——跟高级安全模式相同,加上包过滤(ipfw,ipf,pf)规则不能被更改,并且dummynet和pf配置不能调整。

这几个模式看起来很拗口,大致说明一下:
(1)默认的规则为-1,这是大多数工作模式,但这是一种没有任何安全措施的模式;
(2)这几种模式之间的区别在于:不可更改和只允许添加标志;磁盘是否可挂载;磁盘是否可写;内核模块是否可以装卸;防火墙是否可以更改。
(3)级别“0”:级别“0”有点特殊,在描述中说的相当于废话,既然两个标志可以更改,所有设置都可以读写,那还存在什么安全保障呢?实际上,级别“0”仅相当于“过渡产品”,在rc完成之前,属于“-1”级别,但是在rc完成后,就会升级到“1”级别,也就是会进入“安全的模式”,这一点在/etc/defaults/rc.conf中有说明:

……
# Note that setting securelevel to 0 will result
# in the system booting with securelevel set to 1, as
# init(8) will raise the level when rc(8) completes.
……


北京联动北方科技有限公司

(4)这几个级别中的磁盘好像挺乱,看下图(有些细节还不是很懂……)

北京联动北方科技有限公司

上图中标识:
1――当前级别为-1;
2――对于mount的设备,不允许直接写,也不允许newfs
3――升级到级别1,结果跟-1相同(是意外还是必然?)
4――在级别1中,卸载的设备可以用dd写,其实也可以用newfs
5――在级别2中,卸载的设备也不可以用dd写
6――在级别3中,可以卸载设备
7――在级别3中,卸载的设备仍然不能用dd




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论