selinux与systemd

selinux :
service enhanced linux 安全增强的Linux 

软件的安全性

选择安全系数较高的系统
提高现有系统的安全性 

计算机的安全等级
D  最低的安全级别,提供最少的安全防护,系统访问无限制。DOS   
C  访问控制的权限,能够实现可控的安全防护,个人账户管理,审计和资源隔离 Unix Linux windowNT
B  支持多级安全,通过硬件对安全数据进行保护
A  最高级别,提供验证设计,要求数据从生产到传输都能够实现状态跟踪

访问控制:
基本要素:
主体:主动的实体,用户、服务、进程等 
客体: 被动的实体,包括数据、文件等 
规则:主体对客体访问的策略集合 
基本类型:
DAC访问控制:自主访问控制
通过权限列表(访问控制列表)来限定特定主体对特定客体可以执行什么操作。
特点:
1、每个主体都拥有一个用户名或组来获取操作权限
2、每个客体都拥有一个限定主体对其访问的访问控制列表
3、访问时,基于访问控制列表检查主体用户标示以实现授权或拒绝。

进程的访问权限
进程拥有超过其本该拥有的权限
管理员的访问权限 
管理员拥有超过其本该有用的权限
普通用户的访问权限

MAC访问控制:强制访问控制

特点:
1、主体被分配一个安全等级 机密
2、客体被分配一个安全等级 绝密
3、访问时,对主体和客体的安全级别进行对比,最终获得授权或拒绝。

sandbox 沙箱 虚拟化技术 

折中方案:将部分服务或进程纳入到MAC的访问控制范围即可。

阿里云盾 
ECS

对跨网络访问的服务或进程启用MAC访问控制机制

selinux:
配置文件:/etc/sysconfig/selinux /etc/selinux/config
工作模式:
strict   严格模式 ,每个进程都会受到Selinux的控制 
targeted  宽松模式,仅对部分进程启用selinux的控制
启动状态:
enforcing 强制开启 
permissive  警告级别,不阻止访问,但会记录日志 
disabled  禁用

临时启动:
getenforce 查看当前SELinux状态
setenforce 0|1 
0 关闭SELinux
1 启动SELinux 

格式:
subjcet  operation  object 

subject: 进程
object: 进程  文件
operation:操作 
open  close  read  write  chown  chmod 

生效条件:
1、SELinux是否生效,取决于subject和object是否处于同一个操作空间
2、操作类型必须满足条件 

安全标签:
用户:角色:类型

查看与配置:
查看文件安全标签(安全上下文):ls -lZ
查看进程安全标签:ps auxZ

修改安全标签:
chcon 修改安全标签
-u 用户
-r 角色
-t 类型(域)
-R 递归
restorecon  还原安全标签
-R 递归 
修改布尔值
添加/删除进程或服务本身开启的功能模块 

getsebool 模块名称
-a 查看所有布尔值

setsebool 模块名称 on/off 
-P 将修改结果保存进本地磁盘 
日志文件:

/var/log/audit/audit.log

systemd 
1、启动流程:
POST -> BIOS -> MBR bootloader -> kernel 临时根 -> 根文件系统 -> init 

能够管理、控制init进程的模块,就是init系统 
能够让系统在用户预定义的级别下运行 

shell  
x-window 

设备管理器:
sysvinit : CentOS 5
第一个广泛应用的init系统 
简单、稳定:
只需要编写服务的启动脚本
设置启动顺序时,通过连接即可完成
执行效率较高,需要时间较长
对新的Linux特性 支持不够好  
 
upstart:  CentOS 6 
启动速度大大提高 
反向兼容sysvinit  
设计更先进 

systemd:  CentOS 7 
替代了所有的sysvinit的功能,并且添加更多的功能。
极大提高了启动速度 
标准化管理 
按需激活进程 
分配套接字,但不启动服务
系统状态快照 

systemd配置:
核心:unit 

常见unit类型:
service类型  服务类型  
扩展名.service 
定义系统服务
socket类型  套接字类型 
扩展名.socket 
标示进程间通信时使用到的socket文件 
device类型  设备类型
扩展名.device 
定义内核能够识别的设备
mount类型  挂载点类型 
扩展名.mount 
定义文件系统的默认挂载点
cgroup 控制组 实现内核资源合理分配的机制
automount类型  自动挂载类型 
扩展名.automount 
定义文件系统自动挂载点设备 
target类型 启动目标类型 
扩展名.target  用来模拟实现“运行级别”
snapshot类型 快照类型
扩展名.snapshot 
用来管理系统快照
swap类型 交换分区类型 
扩展名.swap 
用来管理和定义交换分区
path类型 监视文件类型 
扩展名.path 
用来定义文件系统的某一文件或目录 
timer 任务计划
slice  资源控制
scope  外部进程 

关键特性:
1、基于socket的激活机制 
2、基于bus的激活机制 
若总线上存在对某一服务的访问,可以基于该请求,将设备激活
3、基于device的激活机制
当接入新设备时,激活device unit、mount unit、automount unit
首先创建设备文件,再自动挂载到某挂载点,若挂载点不存在,则自动创建 。
4、基于PATH的激活机制 
5、系统快照
能够将各个unit的状态信息保存至持久存储设备中 
6、向后兼容 sysvinit 
/etc/init.d/服务脚本 也能够通过 systemd 启动 

不兼容的特性:
1、systemctl的命令是固定不变的 
2、若服务不是通过systemctl启动的,那么systemctl无法与之通信

管理系统服务:
1、命令
service -> systemctl 
2、启动服务
service NAME start -> systemctl start NAME.service
3、关闭服务
service NAME stop -> systemctl stop NAME.service
4、重启 
service NAME restart -> systemctl restart NAME.service 
5、查看状态
service NAME status -> systemctl status NAME.service
6、条件式重启
若服务已启动,则重启;若服务未启动,则放弃操作
systemctl try-restart NAME.service 
7、重载或重启
systemctl reload-or-restart 
重新加载未成功,则重新启动 
8、重载或条件式重启
systemctl reload-or-try-restart NAME.service 
9、查看服务的当前的激活状态
systemctl is-active NAME.service
服务启动则返回active;服务未启动则返回unknown 
10、查看所有已激活的服务 
systemctl list-units 
11、查看所有服务
systemctl list-units -a 
12、查看服务是否开机自启:
chkconfig –list 
systemctl is-enabled NAME.service
13、是否禁止用户设置服务开机启动状态 
systemctl mask NAME.service 
systemctl unmask NAME.service 

管理target unit 
1、设置运行级别
0 -> runlevel0.target poweroff.target 
1 -> runlevel1.target multi-user.target 
2 -> runlevel2.target multi-user.target
3 -> runlevel3.target multi-user.target
  4 -> runlevel4.target multi-user.target
5 -> runlevel5.target graphical.target
6 -> runlevel6.target reboot.target 
2、查看当前运行级别 
runlevel 
systemctl list-units -type target 
3、切换运行级别
init N
systemctl isolate NAME.target  
4、查看默认运行级别 
systemctl get-default 
5、修改默认运行级别 
systemctl set-default NAME.target 
6、切换救援模式 
systemctl rescue

其它相关命令:
关机:systemctl halt.target 
挂起:systemctl suspend 
快照:systemctl hibernate

配置文件:
【unit】 
description  unit的基本描述信息 
after 与before作用相反 。  
【service】
type 定义启动脚本的类型 
simple 默认值,定义execstart选项指定的程序是主程序
forking  定义execstart选项调用的某一子进程做主程序。 
notify  进程在收到notify函数的通知时再启动 。

【install】  
wantedby 运行依赖的模式  弱依赖
requiredby 运行依赖的模式

原创文章,作者:yaobinbin,如若转载,请注明出处:http://www.178linux.com/76703

(1)
yaobinbinyaobinbin
上一篇 2017-05-22
下一篇 2017-05-22

相关推荐

  • Samba服务

    一 服务端配置 1 安装所需软件 [root@centos7 ~]# yum install samba samba-common -y samba主要提供SMB服务所需的各项服务程序、相关的文件及其他和Samba相关的设置等 samba-common提供服务端和客户端都会用的的数据,包括主配置文件、语法检查等 2 添加Samba用户 添加smb1、smb2…

    Linux干货 2017-06-13
  • Second

    1、 linux 上的文件管理类命令都有哪些, 其常用的使用方法及相关示例演示 cat     concatenate file and print ont the standard output cat [OPTION]…[FILE]…      &nbsp…

    Linux干货 2016-12-13
  • N22-第二周作业

    一.linux上的文件管理命令都有哪些,其常用的使用方法及其相关示例演示     cp复制命令:     -i:若目标文件存在,提示是否覆盖目标文件,此选项为已写入alias里,使用时为默认选项     [root@localhost ~]# ls /tmp/…

    Linux干货 2016-08-20
  • 如何正确安装一个源码包

        下周就要考试了,心情挺忐忑不安的,前几天做了25期的考试题,感觉每个题都是老师上课讲过的,但是自己做却想不起来了。这应该就像学习数学一样,需要大量练习,做的多了自然就会了。     这周我们学习了如何使用yum,还学习了磁盘管理。针对如何安装源码包,以httpd包为例我们…

    2017-08-19
  • sudo——让普通用户更灵活

    sudo命令 1、sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用sudo ,会提示联系管理员 2、sudo可以提供日志,记录每个用户使用sudo 操作 3、sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机 4、sudo 使用时间戳文件来完成类似“检票”的 系统,默认存活期为5 分钟的 “入场券” …

    Linux干货 2016-09-25
  • 软raid实现raid5

    现在Linux系统有磁盘情况如下 现在从sda,sdb,sdc,sdd 分区取出10G 的空间做raid5. 第一步:建立分区 现在执行fdisk  /dev/sd* 命令分区冲这四个磁盘划分10G分区 分别是sda6,sdb1,sdc1,sdd1。 具体操作如下: 分区完之后,执行#partx -a /dev/sd*  让分区生效。具体效果如下: 分区完成…

    2017-12-06