centos 缺陷,centos8和9的区别
大家好,关于centos 缺陷很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于centos8和9的区别的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
CentOS上的安全防护软件Selinux详解
selinux简介
SELinux(Security-Enhanced Linux)是美国国家安全局(NSA)对于强制访问控制的实现,是Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux默认安装在Fedora和Red Hat Enterprise Linux上,也可以作为其他发行版上容易安装的包得到,2000年以GNU GPL发布,Linux内核2.6版本后集成在内核中
DAC:Discretionary Access Control自由访问控制
MAC:Mandatory Access Control强制访问控制
DAC环境下进程是无束缚的
MAC环境下策略的规则决定控制的严格程度
MAC环境下进程可以被限制的
策略被用来定义被限制的进程能够使用那些资源(文件和端口)
默认情况下,没有被明确允许的行为将被拒绝
selinux的工作类型
selinux一共有四种工作类型
strict:每个进程都受到selinux的控制
targeted:用来保护常见的网络服务,仅有限进程受到selinux控制,系统当中默认设置类型
minimum:这个模式在centos7上,是targeted的修改版,只对选择的网络服务,仅对选中的进程生效
mls:提供mls机制的安全性,国防级别的
selinux安全上下文
传统的linux,一切皆文件,由用户、组、权限来进行访问控制,这当中有很多的缺陷
在selinux中,一切皆对象(进程),有存放在inode的扩展属性域的安全元素所控制其访问
所有文件和端口资源和进程都具备安全标签,这就是安全上下文
安全上下文有五个元素组成
system_u:object_r:admin_home_t:s0
user:role:type:sensitivity:category
user:指示登录系统的用户类型,如root,user_u,system_u,多数本地进程都属于自由进程
role:定义文件,进程和用户的用途,文件:object_r,进程和用户:system_r
type:指定数据类型,规则重定义何种进程类型访问何种文件,target策略基于type实现,多服务功用,public_content_t
sensitivity:限制访问的需要,由组织定义的分层安全级别,如unclassified,secret,top,一个对象有且只有一个sensitivity,分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{
font-family: Cambria Math;
}@font-face{
font-family: Calibri;
}@font-face{
font-family:@宋体;
}p.MsoNormal, li.MsoNormal, div.MsoNormal{ margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 10.5pt; font-family: Calibri,sans-serif;}.MsoChpDefault{ font-family: Calibri,sans-serif;}div.WordSection1{}
selinux策略
对象(object):所有可以读取的对象,包括文件、目录和进程,端口等
主体:进程称为主题(subject)
selinux中对所有的文件都赋予一个type的文件类型标签,对于所有的进程也赋予各自的一个domain标签。domain标签能够执行的操作由安全策略里定义
当一个subject视图访问一个object,kernel中的粗略执行服务器将检查AVC,在AVC中,subject和object的权限被缓存,查找应用+文件的安全环境,然后根据查询结果允许或拒绝访问
安全策略:定义主体读取对象的规则数据库,规则中记录了那个类型的主体使用了那个方法读取哪一个对象是允许还是拒绝的,并且定义了那种行为是允许或拒绝
设置selinux
配置selinux
selinux是否启用
给文件重新打安全标签
给端口设置安全标签
设定某些操作的布尔型开关
selinux的日志管理
selinux的状态
enforcing:强制,每个受限的进程都必然受限
permissive:允许;每个受限的进程违规操作不会被禁止,但会被记录与审计日志
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 one 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 protected.
# 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状态需要重启系统,这时候系统会对每一个文件一一重打标签,需要花费一定的时间。
修改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/htdocs
恢复是根据策略库当中的策略进行还原
默认安全上下文查询与修改
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_sys_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_label 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
修改bool值时后面的值可以对布尔值类型后跟=加值的设置方法
setsebool httpd_enable_homedirs=on
selinux的日志管理
需要安装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-policy-doc(centos6)
mandb| makewhatis需要更新man帮助的数据才能查询
man-k _selinux
例如man httpd_selinux
总结:selinux在安全防护上确实起到了一定的作用,它是在内核层面来工作,往往有许多的漏洞,一旦黑客利用漏洞入侵系统后果不堪设想,还有其操作的繁琐和稳定性的欠缺的导致很多企业不愿意用到selinux,一般都会使用硬件的安全防护设备,所以我们只需要作为了解,知道有这么个东西,如何开关闭及一些简单的操作即可。
Debian 和 Ubuntu 哪个比较牛
Ubuntu近些年的粉丝越来越多,Ubuntu有着漂亮的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,Ubuntu还对大多数硬件有着良好的兼容性,包括最新的图形显卡等等。这一切让Ubuntu越来越向大众化方向发展。但别忘了:你所需要的只是一个简约、稳定、易用的服务器系统而已!
Ubuntu的图形界面固然漂亮,但这也决定了它最佳的应用领域是桌面操作系统而非服务器操作系统。如何你希望在学习Linux的过程中有个沉浸式的环境,那么Ubuntu的确不错:仅仅安装在自己的电脑中而非服务器中。从这一点来讲,Ubuntu并没有在VPS安装的操作系统选择之列,相信你也不会为了那数百M的驱动与宝贵的内存买单。
CentOS
你会发现非常多的商业公司部署在生产环境上的服务器都是使用的CentOS系统,CentOS是从RHEL源代码编译的社区重新发布版。CentOS简约,命令行下的人性化做得比较好,稳定,有着强大的英文文档与开发社区的支持。与Redhat有着相同的渊源。虽然不单独提供商业支持,但往往可以从Redhat中找到一丝线索。相对debian来说,CentOS略显体积大一点。是一个非常成熟的Linux发行版。
Debian
一般来说Debian作为适合于服务器的操作系统,它比Ubuntu要稳定得多。可以说稳定得无与伦比了。debian整个系统,只要应用层面不出现逻辑缺陷,基本上固若金汤,是个常年不需要重启的系统(当然,这是夸张了点,但并没有夸大其稳定性)。debian整个系统基础核心非常小,不仅稳定,而且占用硬盘空间小,占用内存小。128M的VPS即可以流畅运行Debian,而CentOS则会略显吃力。但是由于Debian的发展路线,使它的帮助文档相对于CentOS略少,技术资料也少一些。
由于其优秀的表现与稳定性,Debian非常受VPS用户的欢迎。
此外还有Arch Linxu、Gentoo、Slackware等一系列的Linux和FreeBSD、Unix等系统,由于其涉及领域更加专业,很少在VPS中出现,因此不作介绍。
对于初学者,我们建议采用CentOS或Debian,这两种系统都能在配置较低的VPS上流畅运行。但是如果VPS配置太低(OPENVZ内存在128M以下,或者XEN架构内存在192M以下),建议采用Debian;否则建议采用CentOS,以获取更多的在线帮助与支持,让自己入门更轻松。
centos从u盘进入拯救模式
centos从u盘进入拯救模式()Linux在启动中往往会由于一些故障而无法正常其中。这是时候往往可以通过Single单用户模式、救援模式等方式进行启动和救援恢复正常。本文虫虫给大家介绍一下这些典型的模式以及以一个Xen虚拟化模式下Centos 6.5升级内核情况下导致系统故障的救援解决。
单用户模式
Linux下最常用的是单用户模式,可以在最小加载模式下(init 1),无需用户认证情况下加载系统,进入shell命令行界面。单用户模式网络被禁用,而且也没有启用很多服务。如果出现系统文件损坏,配置文件丢失,或者用户密码丢失无法进入系统的情况,可以使用单用户模式。注意新版本的centos 7和以前版本centos进去单用户方式不一样,我们分别截图介绍下:
centos 6
在Grub菜单界面
按e,编辑命令
kernel行的最后加上single,回车,然后按b,加载启动系统。
就会到到单用户shell界面,在改界面可以用passwd修改root密码。
centos 7
centos7是用grub2菜单,菜单界面如下图:
按b进入编辑界面,注意centos 7下grub 2的编辑界面和以前的系统大有不同
在linux 16哪一行 LANG= en_US.UTF-8最后增加\"init=/bin/sh\"
按住Ctrl+x启动系统就进入了单用户模式。然后用passwd修改密码或者其他操作
电脑救援模式
有时候系统根本无法启动,甚至grub菜单都加载不了,这时候就需要使用Linux启动盘来辅助进入救援模式来做故障修复了。
救援模式需要启动盘辅助加载系统,所以要改变boot顺序为从光盘或者USB启动。注意在如果使用xen虚拟机Centos系统的话,是无法修改boot顺序的,如下图:
要改变启动顺序必须借助Xen宿主机来,我们先登陆宿主机:
执行xe vm-list,找到我们的虚拟机的uuid
然后依次执行下面两个命令:
xe vm-param-set uuid=97f817bd-7f6b-3ea8-056b-e19fe055c800 HVM-boot-policy=\"BIOS order\"xe vm-param-set uuid=97f817bd-7f6b-3ea8-056b-e19fe055c800电脑 HVM-boot-params:order=\"dc\"这样就可以显示设置boot顺序了
我们选中DVD-Drive,然后启动系统
选择\"Rescue installed system\"进入救援模式,选择语言、键盘和网络后进入
Tab点击Continue继续
注意该页的信息我们的系统被加载到/mnt/sysimage下了,后面要用到。
电脑
此处选择shell进入命令操作界面,其他两个是fakd进行诊断;reboot重启系统。
这时就会进入一个命令行界面,注意此时系统是临时的光盘启动救援系统。为了进行操作我们需要加载硬盘上的系统。我们要用chroot命令:
chroot/mnt/sysimage然后就可以进行其他操作了,比如修改密码,修复配置,备份文件等。
救援实例
最后我们举个救援的实例作为结束,之前Linux内核爆个严重漏洞TCP网络数据包时候存在缺陷导致三个漏洞, CVE-2019-11477,CVE-2019-11478和CVE-2019-11479,关于该漏洞的预警和修复方法,虫虫的此前发文介绍过。修复该漏洞根本方法是升级内核,Centos 6.5需要升级内核版本到kernel-2.6.32-754.15.3版本。
用yum update kernel升级Xen虚拟机Centos 6.5后,重启出现故障,甚至无法进入grub菜单。
电脑
此时我们可以使用上面的提到的救援模式,在救援模式下修改/etc/grub.conf
修改配置中default=1,表示加载上一个内核。
然后reboot重启系统,故障恢复。
由于centos内核补丁和Xen架构兼容导致问题,所以恢复系统后
yum remove kernel-2.6.32-754.15.3.el6.x86_64.rpm恢复所有现场。
以上是一般情况下的救援恢复模式。由于我们的事故主机是Xen虚拟机,我们有更便捷编辑启动选项的方法。那就是使用xe命令来直接在xen宿主机上编辑虚拟机的grub.conf。
首先登陆到xen宿主机上:
1、执行 xe vm-list查询事故机器的uuid(同上面部分)。
2在xen center关闭该机器或者用命令关机
xe vm-shutdown uuid=97f817bd-7f6b-3ea8-056b-e19fe055c8003、通过以下命令启动编辑:
xe-edit-bootloader-u 97f817bd-7f6b-3ea8-056b-e19fe055c800-p 1和救援模式一样,修改配置中default=1,保存。
重启系统,其他同救援模式操作一样。
总结
本文介绍了Linux(centos)下系统单用户模式以及救援模式及操作方法。并通过实例介绍了在内核升级失败系统无法启动情况下的救援恢复操作。并穿插介绍了xen虚拟化中一些xen宿主机管理命令。
电脑电脑