《高性能Linux服务器构建实战:系统安全、故障排查、自动化运维与集群架构》——1.4 系统软件安全管理

简介:

本节书摘来自华章计算机《高性能Linux服务器构建实战:系统安全、故障排查、自动化运维与集群架构》一书中的第1章,第1.4节,作者:高俊峰著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.4 系统软件安全管理

根据安全机构权威统计,80%以上的服务器遭受攻击都是由于服务器上的系统软件或者应用程序的漏洞所导致,黑客通过这些软件的漏洞,可以很轻易地攻入服务器,由此可见,软件的漏洞已经成为安全的重中之重。作为一名运维人员,虽然无法保证所有应用程序的安全,但是对于系统软件的安全,要有定期检查并试图修复漏洞的意识。修复漏洞最常见的办法就是升级软件,将软件始终保持在最新状态,可以在一定程度上保证系统安全。
在Linux下软件的升级可以分为自动升级和手动升级两种方式。自动升级一般是在有授权的Linux发行版或者免费Linux发行版下进行的,只要输入升级命令,系统会自动完成升级工作,无需人工干预。
手动升级是指有针对性地进行某个系统软件的升级,例如升级系统的SSH登录工具、gcc编译工具等。手动升级其实就是通过RPM包实现软件更新的,通过这种方式在升级软件时可能会遇到软件之间的依赖关系,升级相对比较麻烦。
1.4.1 软件自动升级工具yum
yum是yellow dog updater modified 的缩写,yellow dog(黄狗)也是Linux的一个发行版本,只不过Redhat公司将这种升级技术利用到自己的发行版上就形成了现在的 yum。 yum是进行Linux自动升级常用的一个工具,通过yum工具配合互联网即可实现自动升级系统。例如,一个经过授权的Redhat Linux操作系统,或者一个CentOS Linux系统,只要该系统能连接互联网,输入yum update 即可实现系统自动升级。通过yum进行系统升级实质是使用yum命令下载指定远程互联网主机上的RPM软件包,然后自动进行安装,同时解决各个软件之间的依赖关系。
1.4.2 yum的安装与配置
1 . yum的安装
检查是否已经安装yum:

[root@localhost ~]# rpm -qa|grep yum

如果没有任何显示,表示系统中还没有安装yum工具。yum安装包在CentOS系统光盘中可以找到,执行如下命令进行安装:

[root@localhost ~]# rpm -ivh yum-*.noarch.rpm

安装yum需要python-elementtree、python-sqlite、urlgrabber、yumconf等软件包的支持,这些软件包在CentOS Linux系统安装光盘中均可找到。如果在安装yum过程中出现软件包之间的依赖性,只需按照依赖提示寻找相应软件包安装即可,直到yum包安装成功。
2 . yum的配置
安装完yum工具安装后,接下来的工作是配置yum。yum的配置文件有主配置文件/etc/yum.conf和资源库配置目录/etc/yum.repos.d。安装yum后,默认的一些资源库配置可能无法使用,因此需要进行修改。下面介绍/etc/yum.repos.d/CentOS-Base.repo资源库配置文件的内容以及各项的详细含义。

[root@localhost ~]#more  /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

gpgcheck=1  

[updates]
#下面这段是updates更新模块要用到的部分配置
name=CentOS-$releasever - Updates 
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=
updates gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#下面这段指定的是有用的额外软件包部分(extras)配置
[extras]
name=CentOS-$releasever - Extras 
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=
extras gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#下面这段指定的是扩展的额外软件包部分(centosplus)配置
[centosplus]
name=CentOS-$releasever - Plus 
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=
centosplus gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#下面这段是contrib配置部分
[contrib]
name=CentOS-$releasever - Contrib 
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=
contrib gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

在上面这个配置中,几个常用关键字的含义介绍如下:
name表示发行版的名称,其格式表示“操作系统名和释出版本”,“Base”表明此段寻找的是Base包信息。
mirrorlist表示yum在互联网上查找升级文件的URL地址。其中“$basearch”代表系统的硬件架构,如“i386”、“x86-64等,同时,yum在资源更新时,会检查baseurl/repodata/repomd.xml文件。“repomd.xml”是一个索引文件,它的作用是提供更新RPM包文件的下载信息和SHA校验值。“repomd.xml”包括了三个文件,分别为other.xml.gz、filelists.xml.gz和primary.xml.gz,表示的含义依次是其他更新包列表、更新文件集中列表和主要更新包列表。
gpgcheck表示是否启用gpg检查,1表示启用,0表示不启用校验。如果启用,就需要在配置文件中注明GPG-RPM-KEY的位置。
gpgkey用来指定GPG密钥的地址。
1.4.3 yum的特点与基本用法
1 . yum的特点
yum的特点如下:
安装方便,自动解决增加或删除RPM包时遇到的依赖性问题。
可以同时配置多个资源库(Repository)。
配置文件简单明了(/etc/yum.conf、/etc/yum.repos.d/CentOS-Base.repo)。
保持与RPM数据库的一致性。
 yum会自动下载所有所需的升级资源包并默认放置在/var/cache/yum目录下,当第一次使用yum或yum资源库更新时,软件升级所需的时间可能较长。
2 . yum的基本用法
yum的基本用法主要有4种,下面分别介绍。
(1)通过yum安装和删除RPM包
安装RPM包,如dhcp:

[root@localhost ~]# yum install dhcp

删除RPM包,包括与该包有依赖性的包:

[root@localhost ~]# yum remove licq

注意,同时会提示删除licq-gnome、licq-qt、licq-text。
(2)通过yum工具更新软件包
检查可更新的RPM包:

[root@localhost ~]# yum check-update

更新所有的RPM包:

[root@localhost ~]# yum update

更新指定的RPM包,如更新kernel和kernel source:

[root@localhost ~]# yum update kernel kernel-source

大规模的版本升级,与yum update不同的是,陈旧的包也会升级:

[root@localhost ~]# yum upgrade

(3)通过yum查询RPM包信息
列出资源库中所有可以安装或更新的RPM包的信息:

[root@localhost ~]# yum info

列出资源库中特定的可以安装或更新以及已经安装的RPM包的信息:

[root@localhost ~]# yum info vsftpd
[root@localhost ~]# yum info perl*

注意,可以在RPM包名中使用匹配符,如上面的例子列出所有以perl开头的RPM包的信息。
列出资源库中所有可以更新的RPM包的信息:

[root@localhost ~]# yum info updates

列出已经安装的所有的RPM包的信息:

[root@localhost ~]# yum info installed

列出已经安装但是不包含在资源库中的RPM包的信息:

[root@localhost ~]# yum info extras

注意,也就是通过其他网站下载安装的RPM包的信息。
列出资源库中所有可以更新的RPM包:

[root@localhost ~]# yum list updates

列出已经安装的所有RPM包:

[root@localhost ~]# yum list installed

列出已经安装的但不包含在资源库中的RPM包:

[root@localhost ~]# yum list extras

注意,也就是通过其他网站下载安装的RPM包。
列出资源库中所有可以安装或更新的RPM包:

[root@localhost ~]# yum list

列出资源库中特定的可以安装或更新以及已经安装的RPM包:

[root@localhost ~]# yum list sendmail
[root@localhost ~]# yum list gcc*

注意,可以在RPM包名中使用匹配符,如上面的例子列出了所有以gcc开头的RPM包。
搜索匹配特定字符的RPM包的详细信息:

[root@localhost ~]# yum search wget

注意,可以通过“search”在RPM包名、包描述中搜索。
搜索包含特定文件名的RPM包:

[root@localhost ~]# yum provides realplay

(4)通过yum操作暂存信息(/var/cache/yum)
清除暂存的RPM包文件:

[root@localhost ~]# yum clean packages

清除暂存的RPM头文件:

[root@localhost ~]# yum clean headers

清除暂存中旧的RPM头文件:

[root@localhost ~]# yum clean oldheaders

清除暂存中旧的RPM头文件和包文件:

[root@localhost ~]# yum clean

[root@localhost ~]# yum clean all

注意,上面的两个命令相当于yum clean packages + yum clean oldheaders。
1.4.4 几个不错的yum源
由于CentOS系统自带的官方yum源中去除了很多有版权争议的软件,所以可使用的软件种类并不丰富,而且软件版本普遍较低,对于软件bug修复更新也很慢,有时候需要使用最新稳定版本的软件时,可能需要手动进行软件更新,操作比较麻烦。下面介绍几个不错的yum源,以供软件升级和漏洞修复使用。
(1)EPEL
EPEL全称是企业版Linux附加软件包,是由特别兴趣小组创建、维护并管理,针对红帽企业版Linux(RHEL)及其衍生发行版(例如CentOS、Scientific Linux)的一个高质量附加软件包项目。其官方网址为:http://fedoraproject.org/wiki/EPEL/zh-cn。EPEL的软件包不会与企业版Linux官方源中的软件包发生冲突,或者互相替换文件,因此可以放心使用。
EPEL包含一个名为“epel-release”的包,这个包包含了EPEL源的gpg密钥和软件源信息。可以通过yum命令将这个软件包安装到企业级Linux发行版上,这样就可以使用最全面、最稳定的Linux软件包了。除了epel-release源,还有一个名为“epel-testing”的源,这个源包含最新的测试软件包,其版本很新但是安装有风险,可以根据情况自行斟酌使用。
相关的EPEL软件包可以从EPEL官方网站下载,现在有针对企业版5和企业版6的两个RPM包,读者可根据系统环境进行下载使用。
(2)RPMForge
RPMForge是一个第三方的软件源仓库,也是CentOS官方社区推荐的第三方yum源,它为CentOS系统提供了超过10 000个软件包,被CentOS社区认定为最安全也最稳定的一个软件仓库。但是由于这个安装源不是CentOS本身的组成部分,因此要使用RPMForge,需要手动下载并安装。RPMForge的官方网站是http://repoforge.org/ ,可以在http://pkgs.repoforge.org/rpmforge-release/ 下载RHEL/Centos各个版本的“rpmforge-release”包,这样就可以使用RPMForge中的丰富软件了。

相关文章
|
2月前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
1月前
|
安全 大数据 Linux
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
|
3月前
|
消息中间件 缓存 架构师
关于 Kafka 高性能架构,这篇说得最全面,建议收藏!
Kafka 是一个高吞吐量、高性能的消息中间件,关于 Kafka 高性能背后的实现,是大厂面试高频问题。本篇全面详解 Kafka 高性能背后的实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
关于 Kafka 高性能架构,这篇说得最全面,建议收藏!
|
3月前
|
运维 监控 安全
自动化运维的利剑:Ansible在现代IT架构中的应用
在数字化浪潮中,企业对IT系统的敏捷性和可靠性要求日益提高。Ansible,一种简单但强大的自动化运维工具,正成为现代IT架构中不可或缺的一部分。它通过声明式编程语言YAM,简化了系统配置、应用部署和任务自动化的过程,显著提升了运维效率和准确性。本文将深入探讨Ansible的核心特性、应用场景以及如何有效整合进现有IT环境,为读者揭示其在自动化运维中的实用价值和未来发展潜力。
|
3月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
105 4
|
3月前
|
运维 Devops 应用服务中间件
自动化运维的利剑:Ansible在现代IT架构中的应用
【10月更文挑战第42天】本文旨在揭示自动化运维工具Ansible如何革新现代IT架构,通过简化配置管理和部署流程,提升效率和可靠性。我们将探索Ansible的核心功能、语言特性以及其在DevOps文化中的角色。文章还将展示如何借助Ansible构建模块化和可重用的配置代码,实现快速迭代与部署,并确保系统一致性。通过阅读本文,运维人员将了解如何利用Ansible优化日常任务,加速产品上线速度,同时提高系统的稳健性。
65 5
|
3月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
137 4
|
3月前
|
运维 监控 安全
盘点Linux服务器运维管理面板
随着云计算和大数据技术的迅猛发展,Linux服务器在运维管理中扮演着越来越重要的角色。传统的Linux服务器管理方式已经无法满足现代企业的需求,因此,高效、安全、易用的运维管理面板应运而生。
|
3月前
|
运维 监控 Linux
服务器管理面板大盘点: 8款开源面板助你轻松管理Linux服务器
在数字化时代,服务器作为数据存储和计算的核心设备,其管理效率与安全性直接关系到业务的稳定性和可持续发展。随着技术的不断进步,开源社区涌现出众多服务器管理面板,这些工具以其强大的功能、灵活的配置和友好的用户界面,极大地简化了Linux服务器的管理工作。本文将详细介绍8款开源的服务器管理面板,包括Websoft9、宝塔、cPanel、1Panel等,旨在帮助运维人员更好地选择和使用这些工具,提升服务器管理效率。
|
2月前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。