1、 strict:每个进程都受到selinux的控制 targeted:用来保护常见的网络服务,仅有限进程受到selinux控制,系统当中默认设置类型 minimum:这个模式在centos7上,是targeted的修改版,只对选择的网络服务,仅对选中的进程生效 mls:提供mls机制的安全性,国防级别的 selinux安全上下文 传统的linux,一切皆文件,由用户、组、权限来进行访问控制,这当中有很多的缺陷 在selinux中,一切皆对象(进程),有存放在inode的扩展属性域的安全元素所控制其访问 所有文件和端口资源和进程都具备安全标签,这就是安全上下文 安全上下文有五个元素组成 syst
2、em_u:object_r:admin_home_t:s0 user:role:type:sensitivity:category指示登录系统的用户类型,如root,user_u,system_u,多数本地进程都属于自由进程 role:定义文件,进程和用户的用途,文件:object_r,进程和用户:system_r type:指定数据类型,规则重定义何种进程类型访问何种文件,target策略基于type实现,多服务功用,public_content_t sensitivity:限制访问的需要,由组织定义的分层安全级别,如unclassified,secret,top,一个对象有且只有一个sen
3、sitivity,分0-15个级别,s0最低,target策略默认使用是s0 category:对于特定组织划分不分层的分类,如FBI secret,NSA secret,一个对象可以有多个category, c0-c1023共1024个分类,target策略不适用category 查看安全上下文 ls Z ; ps -Z 期望(默认)上下文:存放在二进制的selinux策略库中 semanage fcontext l 查看系统中的默认安全上下文 font-face font-family: 宋体; font-face Cambria Math; Calibri; 宋体; p.MsoNorma
4、l, li.MsoNormal, div.MsoNormal margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 10.5pt; Calibri,sans-serif; .MsoChpDefault font-family: div.WordSection1 selinux策略 对象(object):所有可以读取的对象,包括文件、目录和进程,端口等 主体:进程称为主题(subject) selinux中对所有的文件都赋予一个type的文件类型标签,对于所有的进程也赋予各自的一个domain标签。domain标签能够执行的操作由安全
5、策略里定义 当一个subject视图访问一个object,kernel中的粗略执行服务器将检查AVC,在AVC中,subject和object的权限被缓存,查找应用+文件的安全环境,然后根据查询结果允许或拒绝访问 安全策略:定义主体读取对象的规则数据库,规则中记录了那个类型的主体使用了那个方法读取哪一个对象是允许还是拒绝的,并且定义了那种行为是允许或拒绝 设置selinux 配置selinux selinux是否启用 给文件重新打安全标签 给端口设置安全标签 设定某些操作的布尔型开关 selinux的日志管理 selinux的状态 enforcing:强制,每个受限的进程都必然受限 permi
6、ssive:允许;每个受限的进程违规操作不会被禁止,但会被记录与审计日志 disabled:禁用,允许任何操作 getenforce:获取selinux当前状态 sestatus:查看selinux状态 setenforce 0|1 0:设置为permissive 1:设置为enforcing 配置文件 /etc/sysconfig/selinux链接文件链接到/etc/selinux/config /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take o
7、ne of these three values: # enforcing SELinux security policy is enforced. # permissive SELinux prints warnings instead of enforcing. # disabled SELinux is fully disabled. SELINUX=enforcing # SELINUXTYPE= type of policy in use. Possible values are: # targeted Only targeted network daemons are protec
8、ted. # strict Full SELinux protection. SELINUXTYPE=targeted SELINUX=enforcing 设置selinux的状态 SELINUXTYPE=targeted 设置selinux的工作类型 设置selinux也可以在开机的时候设定,在/boot/grub/grub.conf文件内核那一行后面设定selinux的状态selinux=0|1,只要配置文件或内核设定为禁用,最后selinux的状态为禁用 注意:在从disabled状态切换至enforcing或permissive状态需要重启系统,这时候系统会对每一个文件一一重打标签,需
9、要花费一定的时间。 修改selinux 的安全标签 chcon OPTION -u USER -r ROLE -l RANGE -t TYPE FILE. chcon OPTION reference=RFILE FILE. -R:递归打标,对目录而言 例如我想给自己定义的web文档根目录自定义为/htdocs chcon -R httpd_sys_content_t /htdocs 恢复目录或文件默认的安全上下文 resotrecon -R /path/to/somewhere 例如:我又将web的文档根目录改为原来的目录,这时候自定义的目录的标签需要还原 restorecon -R /ht
10、docs 恢复是根据策略库当中的策略进行还原 默认安全上下文查询与修改 semanage来自policycoreutils-python包,有些系统默认没有安装,安装次包即可使用semanage命令 查看默认的安全上下文 semanage fcontext l 添加安全上下文 semanage fcontext -a t httpd_sys_content_t /home/hadoop(/.*)? restorecon Rv /home/hadoop 此步骤一定不能忘记,它从策略库进行还原安全上下文,执行此命令才会生效 删除安全上下文 semanage fcontext d t httpd_s
11、ys_content_t /home/hadoop(/.*)? selinux端口标签 查看端口标签 semanage port -l 添加端口 semanage port -a -t port_label p tcp|udp port semanage port a -t htt_port_t -p tcp 8080 删除端口 semanage port -d -t port_label -p tcp|udp port semanage port -d -t htt_port_t -p tcp 8080 修改现有(已存在)端口为新标签 semanage port -m t port_labe
12、l p tcp|udp port semanage port m t ssh_port_t p tcp 8080 将ssh服务的端口改为8080 selinux布尔值 查看布尔值命令 getsebool -a boolean semanage boolean l -C 查看修改过的布尔值 设置bool值命令 setsebool -P boolean value (on|off|1|0) setsebool httpd_enable_homedirs on|1 开启httpd家目录访问,但不会写入策略库中 setsebool -P httpd_enable_homedirs on|1 修改boo
13、l值时后面的值可以对布尔值类型后跟=加值的设置方法 setsebool httpd_enable_homedirs=on 需要安装settroublesshoot*安装此包需要重启系统才能生效,它会将错误日志记录到/var/log/message grep setroubleshoot /var/log/message sealer -l UUID 查看安全事件日志说明 sealert -a /var/log/audit/audit.log 扫描并分析日志 yum -y install selinux-policy-devel(centos7) yum y install selinux-po
14、licy-doc (centos6) mandb | makewhatis 需要更新man帮助的数据才能查询 man -k _selinux 例如man httpd_selinux 总结:selinux在安全防护上确实起到了一定的作用,它是在内核层面来工作,往往有许多的漏洞,一旦黑客利用漏洞入侵系统后果不堪设想,还有其 操作的繁琐和稳定性的欠缺的导致很多企业不愿意用到selinux ,一般都会使用硬件的安全防护设备,所以我们只需要作为了解,知道有这么个东西,如何开关闭及一些简单的操作即可。 相关阅读:20*1月,英特尔处理器中曝Meltdown(熔断)和Spectre (幽灵)两大新型漏洞,包
15、括AMD、ARM、英特尔系统和处理器在内,几乎近20*发售的所有设备都受到影响,受影响的设备包括手机、电脑、服务器以及云计算产品。这些漏洞允许恶意程序从其它程序的内存空间中窃取信息,这意味着包括密码、帐户信息、加密密钥乃至其它一切在理论上可存储于内存中的信息均可能因此外泄。 二、GitHub 遭遇大规模 Memcached DDoS 攻击 20*2月,知名代码托管网站 GitHub 遭遇史上大规模 Memcached DDoS 攻击,流量峰值高达1.35 Tbps。然而,事情才过去五天,DDoS攻击再次刷新纪录,美国一家服务提供商遭遇DDoS 攻击的峰值创新高,达到1.7 Tbps!攻击者利用
16、暴露在网上的 Memcached 服务器进行攻击。网络安全公司 Cloudflare 的研究人员发现,截止20*2月底,中国有2.5万 Memcached 服务器暴露在网上 。 三、苹果 iOS iBoot源码泄露 20*2月,开源代码分享网站 GitHub(软件项目托管平台)上有人共享了 iPhone 操作系统的核心组件源码,泄露的代码属于 iOS 安全系统的重要组成部分iBoot。iBoot 相当于是 Windows 电脑的 BIOS 系统。此次 iBoot 源码泄露可能让数以亿计的 iOS 设备面临安全威胁。iOS 与 MacOS 系统开发者 Jonathan Levin 表示,这是 i
17、OS 历史上最严重的一次泄漏事件。 四、韩国平昌冬季奥运会遭遇黑客攻击 20*2月,韩国平昌冬季奥运会开幕式当天遭遇黑客攻击,此次攻击造成网络中断,广播系统(观众不能正常观看直播)和奥运会官网均无法正常运作,许多观众无法打印开幕式门票,最终未能正常入场。 五、加密货币采矿软件攻击致欧洲废水处理设施瘫痪 20*2月中旬,工业网络安全企业 Radiflow 公司表示,发现四台接入欧洲废水处理设施运营技术网络的服务器遭遇加密货币采矿恶意软件的入侵。该恶意软件直接拖垮了废水处理设备中的 HMI 服务器 CPU,致欧洲废水处理服务器瘫痪 。 Radiflow 公司称,此次事故是加密货币恶意软件首次对关键基础设施运营商的运营技术网络展开攻击。由于受感染的服务器为人机交互(简称HMI)设备,之所以导致废水处理系统瘫痪,是因为这种恶意软件会严重降低 HMI 的运行速度。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1