博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Rpm另类用法加固Linux安全
阅读量:6631 次
发布时间:2019-06-25

本文共 3202 字,大约阅读时间需要 10 分钟。

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
数据库。
 本文转自 李晨光 51CTO博客,原文链接:http://blog.51cto.com/chenguang/307512
,如需转载请自行联系原作者
你可能感兴趣的文章
多线程访问同一个可变变量,需增加同步机制
查看>>
apdplat 多表查询属性设置
查看>>
Code::Blocks设定相关
查看>>
PL/SQL基础篇10(trigger)
查看>>
Spring Security权限框架理论与简单Case
查看>>
Invalid icc profile: duplicate sequence numbers
查看>>
day1
查看>>
开源中国的 IT 公司开源软件整理计划介绍
查看>>
DDoS deflate - Linux下防御/减轻DDOS***
查看>>
关于outlook2007在WIN7下收取邮件很慢的解决办法
查看>>
Android第三十七天
查看>>
VMM2012应用指南之13- 自助服务门户网站的使用
查看>>
GraphQL入门
查看>>
IBM Java多线程 - 1. 线程基础
查看>>
3月7日高项作业(信息化基础和信息系统服务管理)
查看>>
【C++探索之旅】第一部分第六课:控制流程,随心所至
查看>>
我的友情链接
查看>>
memcached的基本操作和简单类定义
查看>>
How to delete all the animations in a presentation
查看>>
Java基础学习总结(8)——super关键字
查看>>