服务器
1. 简介
selinux带给linux的主要价值是:提供了一个灵活的,可配置的mac机制。
security-enhanced linux (selinux)由以下两部分组成:
1) kernel selinux模块(/kernel/security/selinux)
2) 用户态工具
selinux是一个安全体系结构,它通过lsm(linux security modules)框架被集成到linux kernel 2.6.x中。它是nsa (united states national security agency)和selinux社区的联合项目。
selinux提供了一种灵活的强制访问控制(mac)系统,且内嵌于linux kernel中。selinux定义了系统中每个【用户】、【进程】、【应用】和【文件】的访问和转变的权限,然后它使用一个安全策略来控制这些实体(用户、进程、应用和文件)之间的交互,安全策略指定如何严格或宽松地进行检查。
selinux对系统用户(system users)是透明的,只有系统管理员需要考虑在他的服务器中如何制定严格的策略。策略可以根据需要是严格的或宽松的。
只有同时满足了【标准linux访问控制】和【selinux访问控制】时,主体才能访问客体。
1.1 dac与mac的关键区别(root用户)
安 全增强型linux(selinux)开始是由nsa(国家安全局)启动并加入到linux系统中的一套核心组件及用户工具,可以让应用程序运行在其所需的最低权限上。未 经修改过的linux系统是使用自主访问控制的,用户可以自己请求更高的权限,由此恶意软件几乎可以访问任何它想访问的文件,而如果你授予其root权 限,那它就无所不能了。
在selinux中没有root这个概念,安全策略是由管理员来定义的,任何软件都无法取代它。这意味着那些潜在的恶意软件所能造成的损害可以被控制在最小。一般情况下只有非常注重数据安全的企业级用户才会使用selinux。
操作系统有两类访问控制:自主访问控制(dac)和强制访问控制(mac)。标准linux安全是一种dac,selinux为linux增加了一个灵活的和可配置的的mac。
所有dac机制都有一个共同的弱点,就是它们不能识别自然人与计算机程序之间最基本的区别。简单点说就是,如果一个用户被授权允许访问,意味着程序也被授权访问,如果程序被授权访问,那么恶意程序也将有同样的访问权。 dac最根本的弱点是主体容易受到多种多样的恶意软件的攻击,mac就是避免这些攻击的出路,大多数mac特性组成了多层安全模型。
selinux实现了一个更灵活的mac形式,叫做类型强制(type enforcement)和一个非强制的多层安全形式(multi-level security)。
在android4.2中,selinux是个可选项,谷歌并没有直接取消root权限或其他功能。这是一个为企业级用户或是对隐私数据极为重视的用户提供的选项,普通消费者则完全可以关闭它。
2. selinux的运行机制
selinux决策过程如下图所示:
当一个subject(如: 一个应用)试图访问一个object(如:一个文件),kernel中的策略执行服务器将检查avc (access vector cache), 在avc中,subject和object的权限被缓存(cached)。如果基于avc中的数据不能做出决定,则请求安全服务器,安全服务器在一个矩阵中查找“应用 文件”的安全环境。然后根据查询结果允许或拒绝访问,拒绝消息细节位于/var/log/messages中。
3. selinux伪文件系统
/selinux/伪文件系统kernel子系统通常使用的命令,它类似于/proc/伪文件系统。系统管理员和用户不需要操作这部分。/selinux/目录举例如下:
-rw-rw-rw- 1 root root 0 sep 22 13:14 access dr-xr-xr-x 1 root root 0 sep 22 13:14 booleans --w------- 1 root root 0 sep 22 13:14 commit_pending_bools -rw-rw-rw- 1 root root 0 sep 22 13:14 context -rw-rw-rw- 1 root root 0 sep 22 13:14 create --w------- 1 root root 0 sep 22 13:14 disable -rw-r--r-- 1 root root 0 sep 22 13:14 enforce -rw------- 1 root root 0 sep 22 13:14 load -r--r--r-- 1 root root 0 sep 22 13:14 mls -r--r--r-- 1 root root 0 sep 22 13:14 policyvers -rw-rw-rw- 1 root root 0 sep 22 13:14 relabel -rw-rw-rw- 1 root root 0 sep 22 13:14 user 如cat enforce其值可能如下:
1: enforcing mode
0: permissive mode
4. selinux配置文件
selinux配置文件(configuration)或策略文件(policy)位于/etc/目录下。
4.1 /etc/sysconfig/selinux配置文件
/etc/sysconfig/selinux是一个符号链接,真正的配置文件为:/etc/selinux/config
配置selinux有如下两种方式:
1) 使用配置工具:security level configuration tool (system-config-selinux)
2) 编辑配置文件 (/etc/sysconfig/selinux).
/etc/sysconfig/selinux中包含如下配置选项:
1) 打开或关闭selinux
2) 设置系统执行哪一个策略(policy)
3) 设置系统如何执行策略(policy)
4.2 配置文件选项
4.2.1 selinux
selinux=enforcing|permissive|disabled —定义selinux的高级状态
enforcing — the selinux security policy is enforced.
permissive — the selinux system prints warnings but does not enforce policy.
disabled — selinux is fully disabled. selinux hooks are disengaged from the kernel and the pseudo-file system is unregistered.
4.2.2 selinuxtype(安全策略)
selinuxtype=targeted|strict — 指定selinux执行哪一个策略
targeted — 只有目标网络daemons保护。每个daemon是否执行策略,可通过system-config-selinux进行配置。保护常见的网络服务,为selinux默认值。
可使用如下工具设置每个daemon的布尔值:
1) getsebool -a: 列出selinux的所有布尔值
2) setsebool: 设置selinux布尔值,如:setsebool -p dhcpd_disable_trans=0,-p表示即使用reboot之后,仍然有效。
strict — 对selinux执行完全的保护。为所有的subjects和objects定义安全环境,且每一个action由策略执行服务器处理。提供符合role-based-access control(rbac)之policy,具备完整的保护功能,保护网络服务、一般指令及应用程序。
4.2.3 setlocaldefs
setlocaldefs=0|1 — 控制如何设置本地定义(users and booleans)。
1:这些定义由load_policy控制,load_policy来自于文件/etc/selinux/<policyname>
0:由semanage控制
4.3 /etc/selinux/目录
/etc/selinux/是存放所有策略文件和主要配置文件的目录。其例子如下:
-rw-r--r-- 1 root root 448 sep 22 17:34 config drwxr-xr-x 5 root root 4096 sep 22 17:27 strict drwxr-xr-x 5 root root 4096 sep 22 17:28 targeted 5. selinux工具
1) /usr/sbin/seten
怎么租用腾讯云的服务器新顶级域名注册价格怎么样 域名市场流通性较强的新顶级域名有哪些电脑的OSD锁定了怎么解锁 电脑出现OSD锁定的解锁教程烟台云服务器价格多少域名被盗有哪些情况?如何防止域名被盗?阿里钉钉发布教培解决方案 加速教育全链路数字化大型网站云服务器价格.top 后缀的域名可以 四川管局备案吗?