Rpm另类用法加固Linux安全
RPM是Red Hat Package Manager的缩写即Red Hat软件管理器。它是一个开放的包管理软件,由Red Hat公司所开发和维护,可以在Red Hat Linux及其他的Linux上运行。用于管理RPM软件包的主要工具是rpm命令,它有六个基本的功能:安装、卸载、升级、更新、查询和校验软件包。此外,它还有鲜为人知的功能—安全维护。本文介绍如何使用rpm来进行安全维护。
1.检查系统公钥
    在RPM软件包安装前,rpm命令通过检查软件包签名可以保证软件没有被篡改和破坏。现在无论发行版、YUM或apt等软件库都带有GPG公有密钥(下文简称公钥)签名,它们保存在 /usr/share/doc/fedora-release-4目录下,主要包括RPM-GPG-KEY、RPM-GPG-KEY-beta和RPM-GPG-KEY-fedora-extras等。使用如下命令来检测系统公钥:
[root@localhost ~]#rpm -qagpg-pubkey*
gpg-pubkey-a109blec-3f6e28d5
gpg-pubkey-66534c2b-41d57eae
gpg-pubkey-1ac70ce6-41bebeef
gpg-pubkey-9a2a932b-4192dfad
gpg-pubkey-a109b1ec-3f6e28d5
gpg-pubkey-e42d547b-3960bdf1
gpg-pubkey-66534c2b-41d57eae
gpg-pubkey-e42d547b-3960bdf1
pgp-pubkey-1aa78495-3eb24301
pgp-pubkey-4f2a6fd2-3f9d9d3b0
其中“gpg-pubkey-a109b1ec-3f6e28d5”代表FedoraCore公钥,如果想知道详细的资料,则可以输入以下命令
  [roat@localhost~]# rpm-qi gpg-pubkey-a109b1ec-3f6e28d5 | less
从输出的结果可看出,密钥的名称分为版本号和发行号两种数字,本密钥适用于livna.org rpms的gpg。如果希望安装新的或升级PRM软件包时,自动检查密钥,如果不比配就会停止程序的继续进行
2 .导入和删除GPG密钥
1.1).导入官方密钥
#rpm –import RPM-GPG-KEY-fedora
.导入软件仓密钥
#rpm –import http://svn.rpmforge.net/svn/branches/rpms/matthias/apt/RPM-GPG-KEY.freshrpms
.删除密钥
#rpm -e gpg-pubkey-a109b1ec-3f6e28d5
 软件安装前,检查签名的正确性:
[root@localhost ~]#cd /root/downfile
[root@localhost downfile]# rpm --checksig yumex-0.42-5.0.fc4.noarch.rpmyumex-0.42-5.0.fc4.noarch.rpm:(shal)dsa shal md5 gpg OK
3.检测软件完整性
    以上结果全部通过后,就可以安心地安装这个软件了。如果缺少密钥DSA、SHA1和GPG及PRM文件遭到破坏就全部以大写出现;RPM文件内容被修改则MD5、GPG显示为BAD。
 软件安装后,可以使用rpm命令辨别是否有人进行过修改,下面介绍具体的步骤:
 [root@locahost ~]#rpm –V sendmail
..?...... c /etc/mail/domaintable
..?...... c /etc/mail/mailertable
.......T. c /etc/mail/sendmail.cf

..?...... c /etc/mail/virtusertable
S.5....T. c /var/log/mail/statistics
  上面输出结果的右侧列出与原始状态不匹配的文件,左侧现实存储系统属性出现的错误。其中,“.”点表示通过测试,“?”表示因为某些原因计算不出文件的md5sum;“S”表示文件大小已经变更;“T”代表时间已经变更,“5”代表md5sum已经变更。此外,rpm命令还可以检查单个文件的完整性(已启动脚本为例)。
 首先使用如下命令检查文件的来源:
 [root@localhost ~]# rpm -qf /etc/rc.d/init.d/sendmail
  Sendmail-8.13.4-2
   然后再使用下列命令列出软件包含的文件存储信息:
[root@localhost ~]#rpm –ql --dump sendmail|grep /etc/rc.d/init.d/sendmail
 /etc/rc.d/init.d/sendmail 334811153829111d213325d3ce95952cf87f4a05d8a488 01100755 root root 1 0 0 X
由上得到以下有用的存储信息:
文件中最初的字符数(3348);
Sendmail文件内容的md5sum(1d213325d3ce95952cf87f4a05d8a488);
与该文件关联的权限
文件的所有者(root)
最后,检查实际文件内容是否被修改:
[root@localhost ~]# ls –l /etc/rc.d/init.d/sendmail
-rwxr-xr-x 1 root root 3348 3月6 20:35 /etc/rc.d/init.d/sendmail
[root@localhost ~]# md5sum /etc/rc.d/init.d/sendmail
 1d213325d3ce95952cf87f4a05d8a488 /rtc/rc.d/init.d/sendmail
这里显示的信息与上步的输出信息相同,启动脚本与原始脚本相匹配。Sendmail软件报的文件大小、md5sum和时间都被变更,这是正常的,而且启动脚本没有变更,这个如果变更就会影响软件正常执行。所以,这个软件包的RPM数据库处在安全状态。
4.修复被破坏的RPM数据库
    如果RPM数据库被破坏,在软件安装、删除等会长期无响应,有事重启系统会自动修复,如果不能修复,可以参考一下的方法。
 首先,使用如下命令杀出当前的RPM数据库
#rm -f /var/lib/rpm/_db.*
 然后,使用下列命令重建数据库:
#rpm –vv -rebuilddb
5.检查系统的安全性
   如果系统遭到***或被***,一些重要文件必须被修改,主要包括含有字符串/bin和/sbin的文件。可以通过一下命令进行检查:
 [root@localhost ~]# rpm -Va|grep ‘bin\/’
   如果输出结果显示多个存储属性发生变化,就表明系统曾被***过。较好解决办法是断开网络,备份重要文件重新安装系统。
  RPM命令可以保证软件包安装前后的完整性,并且可以跟踪软件里文件被修改的存储信息,从而及时发现系统被***的情况。但聪明的***者是会先破坏RPM架构,让其失去成为安全防护工具的意义。为了系统更加安全,大家应该及时备份系统的RPM数据库。

Rpm另类用法加固Linux安全相关推荐

  1. docker in docker (dind)、all in one (aino),关于docker和Linux的一些另类用法

    docker in docker (dind).all in one (aino),关于docker和Linux的一些另类用法.以为 docker in docker 只会在Jenkins等其他场景中 ...

  2. ati能备份linux格式吗,ATI备份TIB文件的另类用法

    ATI备份TIB文件的另类用法 发布时间:2015-03-02  作者:Win10 64位官网  来源:http://www.win1064.com Acronis True Image 2013(以 ...

  3. 安装软件包的三种方法、rpm包介绍、rpm工具用法、yum工具用法、yum搭建本地仓库...

    为什么80%的码农都做不了架构师?>>>    安装软件包的三种方法 rpm工具 yum工具 源码包 rpm rpm命令是RPM软件包的管理工具.rpm原本是Red Hat Linu ...

  4. android另类工具,[置顶] android应用程序开发另解及Android SDK工具集的另类用法

    转载请注明出处: LouisWang http://blog.csdn.net/louiswangbing/article/details/6606865 相信对于广大Android应用开发爱好者来说 ...

  5. 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库...

    7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库 三种方法 rpm工具----->类型windows下的exe程序 ...

  6. 写在Github被微软收购之际 - Github的那些另类用法

    这几天朋友圈被微软75亿美元收购Github的新闻刷屏了.Jerry也来贡献一篇和Github相关的文章. 这篇文章包含了Jerry平时对于Github的一些另类用法.目录如下: 1. 部署HTML应 ...

  7. php 类中调用另类,PHP return语句另类用法不止是在函数中,return语句_PHP教程

    PHP return语句另类用法不止是在函数中,return语句 分享下PHP return语句的另一个作用,在bbPress的代码中看到的一个奇葩使用方法. 一直以为,return只能出现在函数中, ...

  8. 数据结构与算法--查找与排序另类用法-旋转数组中的最小数字

    查找与排序 查找 查找与排序都在程序设计中常被用到的算法.查找相对而言简单,一般都是顺序查找,二分查找,哈希表查找,和二叉排序树查找.其中二分查找是我必须熟悉的一种. 哈希表和二叉排序树主要点在于他的 ...

  9. c语言strTrimed函数用法介绍,linux type命令用法_转

    在脚本中type可用于检查命令或函数是否存在,存在返回0,表示成功:不存在返回正值,表示不成功. $ type foo >/dev/null 2>&1 || { echo > ...

  10. linux中chmod命令的用法,【linux】chmod命令详细用法

    功能说明: 变更文件或目录的权限 u:User,即文件或目录的拥有者. g:Group,即文件或目录的所属群组. o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围. a:Al ...

最新文章

  1. CKEditor代码高亮显示插件Code Snippet安装及使用方法
  2. linux提示光标下无字符串,vim复制、粘贴、删除、撤销、移动光标(linux)
  3. Jquery操作表单Select元素常用方法
  4. PL/SQL Developer 13.0设置中文
  5. python算法系列资料集(三)
  6. 瑞恩面试编程题:找出一个目录下所有的文件
  7. 句句真研—每日长难句打卡Day3
  8. css 文字超出变 ... 点点点
  9. s5p6818开发板uboot网络开通
  10. 第三季-第9课-库函数方式文件编程
  11. ER图(实体-联系图)
  12. 泡泡一分钟:Perception-aware Receding Horizon Navigation for MAVs
  13. wamp下载和使用PHPDocumentor
  14. 乐动手环app下载安装_乐动健康下载app_乐动健康下载安装app手环v2.34
  15. 从ACL 2022 Onsite经历看NLP热点
  16. 微信小程序开发使用onreachBottom实现页面触底加载及分页
  17. 第十届蓝桥杯省赛题解+代码
  18. 机器学习(3)——无监督学习
  19. Linux下Rootkit介绍
  20. 宏碁收购Gateway 12天上演变脸大戏

热门文章

  1. php 多个files 数量,php – 具有多个字段时$_FILES数组的奇怪格式
  2. mysql5和8怎么同时安装_WINDOWS服务器同时安装多个版本的MYSQL的方法,MQYSQL5和MQYSQL8的共存。...
  3. 多重背包单调队列优化思路_单调队列优化多重背包问题
  4. golang 语言中关于err的函数的封装使用
  5. csv文件的读写-列表,字典方式
  6. 帆软 动态改变填报数据库表;数据分析亦可用此方法
  7. .net 怎么使用github_超快组装软件的使用hifiasm软件
  8. NO.164 禅道的自定义功能:导航和主页的自定义
  9. 美团多渠道打包方案详解,速度快到白驹过隙 1
  10. WPF入门教程系列二十——ListView示例(二)