• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

如何使用semanage和避免禁用SELinux

linux 搞代码 3年前 (2022-03-03) 47次浏览 已收录 0个评论

SELinux颇具挑战性;当这个平安层阻止您的应用程序或服务时,您的第一个反馈往往是将其设成“禁用”或“容许”。在平安至关重要的当下,您无奈进行这种更改,否则您的整个零碎或网络安全堪忧。您不想那样。

为何不应用可助您一臂之力的工具?这款工具就是semanage,它是SELinux策略管理工具。借助semanage,您能够调整文件上下文、端口上下文和布尔值,这将有助于您确保零碎可应用,又不用禁用平安零碎。

本文将介绍以下命令:

  • semanage boolean
  • semanage fcontext
  • semanage port

晓得这些命令后,您应该可能在Linux零碎上更好地应用SELinux。

您须要什么?

运行中的Linux实例(应用SELinux)

领有sudo特权的用户

如何应用semanage boolean?

应用semanage boolean,您能够启用和禁用容许规定集,因此能够为不同的用例容许不同的规定集。假如您有一台Web服务器,必须容许读取用户内容,比方来自主目录的数据。SELinux默认状况下不容许这么做。应用semanage boolean命令,您能够启用该性能。

您能够应用semanage boolean命令,通过以下命令列出所有可用的HTTP相干策略:

1. sudo semanage boolean -l | grep httpd

您将看到几项条目,比方:

1. httpd_read_user_content (off , off) Allow httpd to read user content

每份列表含有布尔值的名称、布尔值的以后和长久状态以及布尔值形容。如上所示,httpd_read_user_content布尔值设为off。咱们如何启用它?很简略:

1. sudo semanage boolean -m --on httpd_read_user_content

应用-m选项,咱们批示SELinux应用前面的选项(–on)来批改记录(本例中是httpd_read_user_context)。

就是这样。您已实现了设置,SELinux将容许Web服务器读取用户内容。

如果想要列出所有布尔值,看看您还能够做些什么,执行以下命令:

1. sudo semanage boolean -l

如何应用semanage fcontext?

semanage fcontext命令用于管理文件上下文定义,这蕴含额定信息(比方SELinux用户、角色、类型和级别),以做出访问控制决策。文件上下文是管理员在SELinux上面临的最大问题之一。您可能曾经创立了一个新目录来包容SSH主机密钥,然而如果没有正确的文件上下文,SELinux不会容许通过SSH拜访该目录。

您能够执行什么操作?

能够应用semanage fcontext更改新目录的文件上下文。

与boolean一样,fcontext也有能够应用的策略。想查看可用策略的残缺列表,请执行以下命令:

1. sudo semanage fcontext -l

如果想列出所有与SSH守护程序无关的策略,请执行以下命令:

1. sudo semanage fcontext -l | grep sshd

在该列表中,您将看到以下条目:

1. /etc/ssh/primes regular file system_u:object_r:sshd_key_t:s0

3. /etc/ssh/ssh_host.*_key regular file system_u:object_r:sshd_key_t:s0

5. /etc/ssh/ssh_host.*_key.pub regular file system_u:object_r:sshd_key_t:s0

假如您要将SSH主机密钥放在/data/keys中。创立目录,将所有键挪动到新主目录中,并更改sshd_config文件以匹配新映射。尝试应用SSH时,它会失败。为什么?因为/data/keys没有正确的fcontext。能够应用以下两个命令解决该问题:

1. sudo semanage fcontext -a -t sshd_key_t '/data/keys/*.*'

3. sudo restorecon -r /data/keys

咱们应用semanage fcontxt创立新策略之后,必须应用restorecon命令对新文件设置平安上下文。正则表达式.获取目录中的所有文件。

如何应用semanage port?

您可能猜到了,semanage port让您能够在自定义端口上运行服务。如果您尝试在自定义端口上运行服务,该服务会失败。假如您想在非标准端口上运行SSH守护程序。如果您仅为此配置sshd_config,会发现SELinux将阻止您取得拜访权限,因为SELinux不晓得您已进行了此更改。

如果想把SSH端口更改为2112:

1. semanage port -a -t ssh_port_t -p tcp 2112

而后就要应用以下命令将端口增加到防火墙:

1. sudo firewall-cmd --add-port=2112/tcp --permanent

3. sudo firewall-cmd --reload

至此,您终于能够应用非标准端口,通过SSH拜访反对SELinux的服务器。

想列出所有可用的端口策略,请执行以下命令:

1. sudo semanage port –l

论断

SELinux是一种性能很弱小的工具,善于爱护Linux服务器免受不必要的更改。这种性能带来了肯定水平的复杂性。相熟上述三个命令,可使管理工作变得更轻松,而不是禁用SELinux或将其设置为“许可”模式。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何使用semanage和避免禁用SELinux

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址