linux软件抗干扰,解决asterisk下使用misdn时被SELinux干扰导致权限不足的问题

问题描述:

在CentOS5.5下安装Asterisk-1.4.35, mISDN-1.1.9, chan_misdn后,Asterisk启动时,message中提示:

[Sep 15 13:33:54] WARNING[9792] loader.c: Error loading module 'chan_misdn.so': /usr/lib/libsuppserv.so:cannot restore segment prot after reloc: Permission denied

看看文件权限,也不作无谓尝试了,先把selinux改为宽容模式:

setenforce 0

再次尝试,发现chan_misdn正常装载,定位是SELinux的问题,恢复强制模式

setenforce 1

常规做法是禁用SELinux,但这样太没技术含量了,经过研究,按以下方法分析和操作:

1.运行audit2why  < /var/log/audit/audit.log

输出

type=AVC msg=audit(1284526550.664:61): avc:  denied  { execmod } for  pid=9269 comm="asterisk" path="/usr/lib/libsuppserv.so" dev=md1 ino=2172848 scontext=user_u:system_r:initrc_t:s0 tcontext=system_u:object_r:lib_t:s0 tclass=file

Was caused by:

Missing or disabled TE allow rule.

Allow rules may exist but be disabled by boolean settings; check boolean settings.

You can see the necessary allow rules by running audit2allow with this audit message as input.

再结合ps aux -Z | grep asterisk 可以确定asterisk的主体标识是initrc_t

2.运行sesearch -a | grep initrc | grep execmod

一般会得到以下的结果:

allow initrc_t textrel_shlib_t : file { ioctl read getattr lock execute execmod };

对比上面红字,会有结论就是:

initrc_t lib_t {execmod}这规则是不存在的,所以会加载失败。

3.对策

修改libsuppserv.so的安全上下文(Security Context),让它符合步骤2的查询结果

chcon -t texrel_shlib_t /usr/lib/libsuppserv.so

或者

按照命令 audit2allow   < /var/log/audit/audit.log 的执行结果处理,增加execmod(但个人感觉这个影响太大)

尾声:按照上面的分析步骤,在CLI中运行若干次module load chan_misdn后,共有三个文件需要处理:

chcon -t texrel_shlib_t /usr/lib/libsuppserv.so

chcon -t texrel_shlib_t /usr/lib/libmISDN.so

chcon -t texrel_shlib_t /usr/lib/libisdnnet.so

完全搞定~~~

参考链接:

鸟哥的...强烈推荐

http://linux.vbird.org/linux_basic/0440processcontrol.php

杂文,有类似做法但没分析,而且好象会弹窗,自己决定点不点

http://www.phpfans.net/article/htmls/201006/Mjg5MDc2.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值