“AVC avc:denied { name_connect }”是什么意思,我该如何防止它?

“AVC avc:denied { name_connect }”是什么意思,我该如何防止它?

我有一个 Amazon Linux 2023 Web 服务器,它已经正常运行了数周。今天早上,它莫名其妙地停止响应了大约两个小时,然后才(莫名其妙地!)恢复。根据我们的日志,面向用户的服务器应用程序都没有崩溃,Web 服务器只是无法查询mongod在这段时间内在同一节点上运行的数据库守护程序。

检查journalctl日志时,我注意到服务器开始出现异常行为的几秒钟内记录了一个异常。

Feb 02 18:06:51 ceres.swiftinit.org audit[374371]: 
AVC avc:  denied  { name_connect } for  pid=374371 comm="NIO-ELT-0-#1" dest=27017 
scontext=system_u:system_r:init_t:s0 
tcontext=system_u:object_r:mongod_port_t:s0 
tclass=tcp_socket permissive=1

374371是 Web 服务器的 PID,27017是标准端口。这个日志事件是什么意思?是否与应用程序在这段时间内mongod无法通信有关?mongod

答案1

该消息是来自 SELinux 的拒绝,表明该进程 (374371) 试图执行未配置的操作 - 在这种情况下,通过(我认为)DNS 名称连接到网络。

您可以通过运行 来允许它setsebool -P httpd_can_network_connect_db 1,但如果它正常工作,然后短暂地不工作,那么我会倾向于关闭该设置。可能是由于某种短暂的原因,mongo 服务通过非本地 IP 解析,而 HTTPD 试图使用该 IP?

无论如何 - SELinux 是导致该消息的原因,在盲目关闭它之前,值得对其进行一些调查和阅读。它旨在防止恶意软件逃脱应用程序的限制,因此可能只是在做它的工作。

相关内容