- 前言
- 为什么要写这本书
- 读者对象
- 如何阅读本书
- 勘误和支持
- 致谢
- 第一部分 安全运维篇
- 第 1 章 Linux 服务器安全运维
- 第 2 章 Linux 网络安全运维
- 第 3 章 数据安全工具 DRBD、extundelete
- 第二部分 运维故障排查篇
- 第 4 章 Linux 系统运维故障排查思路
- 第 5 章 Linux 故障排查案例实战
- 第三部分 自动化运维篇
- 第 6 章 轻量级运维利器 pssh、pdsh 和 mussh
- 第 7 章 分布式监控系统 Ganglia
- 第 8 章 基于 nagios 的分布式监控报警平台 Centreon
- 第 9 章 通过 Ganglia 与 Centreon 构建智能化监控报警平台
- 第四部分 集群架构篇
- 第 10 章 高性能 Web 服务器 Nginx
- 第 11 章 高性能集群软件 Keepalived
- 第 12 章 千万级高并发负载均衡软件 HAProxy
- 第 13 章 构建高性能的 MySQL 集群系统
- 第 14 章 高性能负载均衡集群软件 HAProxy
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 系统提供了超过 10000 个软件包,被 CentOS 社区认定为最安全也最稳定的一个软件仓库。但是由于这个安装源不是 CentOS 本身的组成部分,因此要使用 RPMForge,需要手动下载并安装。RPMForge 的官方网站是 http://repoforge.org/,可以在 http://pkgs.repoforge.org/rpmforge-release/下载 RHEL/Centos 各个版本的“rpmforge-release”包,这样就可以使用 RPMForge 中的丰富软件了。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论