SELinux

1 SELinux介绍

SELinux: Secure Enhanced Linux 是由美国安全局(NSA=The National Security Agency)和SCC
(Secure Computer Corporation)开发的linux的墙纸访问控制的安全模板,在Linux内核2.6版本以后集成于内核
DAC:Discretionary Access Control 自由访问控制
MAC: Mandatory Access Control 强制访问控制
  DAC 环境进程是束缚的
  MAC 环境下策略的规则决定空中的严格程度
  MAC环境下进程可以被限制
  策略被用来定义被约束的进程能够使用哪些资源(文件和端口)
  默认情况下,没有明确允许的行为将被拒绝
SELinux的四种工作类型
  strict: CentOS5,每个进程都受到selinux的控制
  targeted: 用来保护监控常用的网络服务,仅有限进程受到selinux控制,只监控容易被入侵的进程,centos4只保护13个服务,centos5 保护88服务
  minimum: centos7,修改的targeted,支队选择的网络服务提供selinux
  mls:提供MSL(多级安全)机制的安全性
targeted为默认的类型,minimum和mls稳定性不足,未加以应用,strict已不再使用
User: 指示登录系统的用户类型, 如root,user_u,system_u,多数本地进程都属于自由(unconfined )进程
Role: 定义文件,进程和用户的用途:文件:object_r ,进程和用户:system_r
Type: 指定数据类型,规则中定义何种进程类型访问何种文件
  Target 策略基于type 实现, 多服务共用:public_content_t
Sensitivity: 限制访问的需要,由组织定义的分层安全级别,
  如 如unclassified, secret,top,secret,  一个对象有且只有一个sensitivity, 分0-15 级,s0 最低,Target 策略默认使用s0
Category :对于特定组织划分不分层的分类,如FBI Secret,NSA secret,  个对象可以有多个categroy, , c0-c1023共 共1024, 个分类, Target  策略不使用category
SELinux策略
  对象:所有可以读取的对象,包括文件,目录,进程,端口
  主体:进程称为主体(subject)
  SELinux中对所有的文件都赋予一个type的文件类型标签,对于所有的进程也赋予各自的一个domain的标签,domain标签能够执行的操作由安全策略里定义
当一个subject试图访问一个object,kernel中的策略执行服务将检查AVL(访问矢量缓存 Access Vector Cacahe) 在AVC中,subject和object的权限被缓存,查找"应用+文件" 的安全环境,然后根据查询结果允许或拒绝访问
安全策略:定义主体读取对象的规则数据库,规则中记录了哪个类型使用哪个方法读取那个对象是允许还是拒绝的,并且定义了哪中行为是允许或拒绝
SELinux的配置文件
  /etc/selinux/config
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=permissive #定义SElinux的工作状态
    # SELINUXTYPE= can take one of three two values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are         protected. 
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted# 定义SELinux的工作模式
同时也可以设置电脑启动是否开启selinux
  编辑/boot/grub/grub.conf 下对应的启动上添加 selinux=0

2 SELinux 的使用

查看selinux的文件或进程
  ls -Z ,ps -Z
相关命令
  getenforce 获取当前selinux的状态
  setenforce 临时设置selinux的状态 0 表示permissive 1 表示enforcing
修改SELinux的安全标签
    chcon [OPTION]... CONTEXT FILE...
    chcon [OPTION]... [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE...
    chcon [OPTION]... --reference=RFILE FILE... 一某个文件的sellinux为标准
进行打标
    -R 递归
    restorecon [-R] file 将重新打标的文件恢复到数据库中的设定的值
    如修改/root/文件的selinux标签
    [root@test5(172.18.254.5) ~]#ls -Z install.log
    -rw-r--r--. root root system_u:object_r:admin_home_t:s0 install.log
    [root@test5(172.18.254.5) ~]#ls -Z anaconda-ks.cfg 
    -rw-------. root root system_u:object_r:var_run_t:s0   anaconda-ks.cfg
    [root@test5(172.18.254.5) ~]#restorecon anaconda-ks.cfg 
    [root@test5(172.18.254.5) ~]#ls -Z anaconda-ks.cfg 
    -rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg
默认安全上下文查询和修改(及数据库中的标签)
 semanage 工具 来自policycoreutils-python的包
 查看所有的安全上下文 semanage fcontext -l  
 将没有在selinux的数据库中定义的文件或文件夹规则,添加规则
  semanage fcontext -a -t httpd_sys_content_t '/root/test(/.*)?'
  restorecon -Rv /root/test 将数据库中的标签打到文件上
  删除数据库库中的标签
  semanage fcontext -d -t httpd_sys_content_t '/root/text(/.*)?'
  查看某个文件的selinux在数据库中的设定
  semanage fcontext -l | egrep "/root/test"
    如
   [root@test5(172.18.254.5) ~]#semanage fcontext -a -t httpd_sys_content_t '/root/test(/.*)?'
   >> 需要打标,否则不起作用
   [root@test5(172.18.254.5) ~]#ls -Z test/ 
   -rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 a.file
   [root@test5(172.18.254.5) ~]# restorecon -R /root/test
   [root@test5(172.18.254.5) ~]#ls -Z test/
   -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 a.file
   [root@test5(172.18.254.5) ~]#semanage fcontext -d -t  httpd_sys_content_t '/root/test(/.*)?'
   [root@test5(172.18.254.5) ~]#ls -Z test/
    -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 a.file
   [root@test5(172.18.254.5) ~]# restorecon -R /root/test
   [root@test5(172.18.254.5) ~]#ls -Z test/
    -rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 a.file
Selinux 端口标签
  查看端口标签
  semanage port -l
  #当某个应用更改端口后,需要为他的端口打标,否则会提示错误
  添加端口
  semanage port -a -t port_label -p tcp|udp PORT
  semanage port -a -t port_label -p tcp 8080
  删除端口
  semanage port -d -t port_label -p tcp|udp PORT
  semanege port -d -t port_label -p tcp 8080
  修改现有的端口为新标签
  semanage port -m -t port_lable -p tcp|udp PORT
SELinux 布尔值
  getsebool
  setsebool
  getsebool -a | grep httpd 查看指定的服务selinux的bool值设置
  semanage boolean -l
  semanage boolean -l -C 查看修改过的bool值
  setsebool -p (不加 -p 只是当前状态,并没有修改数据库中的默认值)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345

推荐阅读更多精彩内容