linux防火墙禁用traceroute,raw socket traceroute权限拒绝处理

一、问题现象

现网一台SuSE主机,在使用traceroute直接进行测试路由信息时可以正常返回(默认使用udp),当换用tcp协议指定端口时,提示权限拒绝,具体如下:

# traceroute 192.168.23.22 -T -q 10 -f 4 -p 7280

unable to create ICMP recv socket: Permission denied

二、问题分析

1、strace跟踪

先在redhat上使用该命令进行测试,发现可以正常返回结果 。接下来使用strace命令进行跟踪处理,并将结果输入到文件和正常的主机上进行对比。

strace -f -t -o /tmp/trace.txt traceroute 192.168.23.22 -T -q 10 -f 4 -p 7280

结果如下:

a1cac18f702c3b0826fc51bc7e580bc9.png

发现主机在权限被拒绝之前并未有异常提示。

2、使用审计服务进行审计

Auditd实现文件操作记录和审计我之前在博文中有提到过。启用审计服务,我临时增加如下规则:

auditctl -w /usr/sbin/traceroute -p r

执行完成后,在审计日志中发现如下内容:

5a7d91039f8a5a44b79d9ae0f54a962f.png

从中可以发现,被拒绝类型里有APPARMOR_DENIED。apparmor是SuSE下的一个类似于redhat下的SELinux的东西,通过rcapparmor stop关闭该服务后,再进行traceroute使用raw socket 进行tcp 路由跟踪,发现可以正常执行。

如果审计信息比较多的话,也可以通过如下命令查看最近的审计日志:

# ausearch -ts recent

----

time->Fri Jul 14 11:26:27 2017

type=DAEMON_START msg=audit(1500002787.761:2610): auditd start, ver=1.7.7 format=raw kernel=2.6.32.54-0.3-default auid=1001 pid=24877 subj=unconfined res=success

----

time->Fri Jul 14 11:28:02 2017

type=APPARMOR_DENIED msg=audit(1500002882.357:48): operation="socket_create" pid=31415 parent=2489 profile="/usr/sbin/traceroute" family="inet" sock_type="raw" protocol=1

三、其他

这个问题并不复杂,这里列出来同样是想给出一种分析问题的手段和方法 。当然,这里问题只是通过关服务的方式解决,如果想即不关 apparmor服务又想解决的话,就需要修改/etc/apparmor里的相关策略进行解决 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值