app教程网 学习教程 linux的apache目录保护(apachelinux教学)

linux的apache目录保护(apachelinux教学)

您的Web服务器可能会受到攻击,但是可以使用SELinux来确保您的网站不会受到真正的伤害。

您可以使用SELinux类型来创建一个精确的定义:服务可以做什么以及它在哪里完成它想要做的事情。默认情况下,httpd_sys_content类型设置为/var/www。

它规定httpd进程可以在这个目录中工作。如果攻击者破坏Apache Web服务器,并试图在其他地方写入,如Red Hat和Fedora和CentOS等Linux版本的default /tmp,您需要知道自己在对付什么。

如果您将Apache配置为提供/data目录中的内容,SELinux在默认情况下也会阻止这种情况。

因为这些默认设置可能会导致复杂的情况,所以许多Linux管理员关闭了SELinux。虽然关闭SELinux确实使您的服务器更容易提供服务,但它仍然增加了安全风险。

为Apache管理SELinux设置

管理Apache等服务的SELinux设置并不困难。问题是没有简单的图形工具可以快速安装。但是通过三个命令,您可以对其进行配置。

为了在您希望服务访问的目录中设置文件类型,您必须首先决定要使用的文件系统类型。为此,只需在服务使用的默认目录中输入ls -ldZ。

对于Apache,您将使用lsldz/var/www。您会注意到,在这种情况下,z选项提供了额外的文件属性,而t选项是最重要的选项。该过程指定现有的文件系统类型,

这个系统类型是由Apache (httpd_sys_content_t)设置的。这也是您需要根据新文件根目录设置的文件类型。

你可以用两个命令设置你的内容表单:用chcon,你可以做一个临时的改变,重启后就消失了;通过semanage后跟follow by,您可以进行永久性的更改。

semanage命令看似复杂,但实际上非常简单,因为只需要改变想要使用的类型和目标目录。在下面的示例中,您只需要更改两个参数。

semanage fcontext -a -t httpd_sys_content_t /web(/.*)/?

使用semanage设置默认文件类型后,使用restorecon命令确保它得到应用。在上面的例子中,目录/web的文件类型被更改为允许Apache访问该目录中的服务器文件。

运行以下命令以应用更改:

restorecon -R -v /web

此时,Apache将能够为新的非默认文件根目录中的文件提供服务。

为SELinux管理布尔值

SELinux需要管理的另一个方面是SELinux布尔值。这些是打开或关闭某些功能的二进制值。布尔值可以在各种服务中获得。使用getsetoola命令来概述整个现有的布尔值。

此命令通常会在一个长列表中列出您可以应用的设置。

要找到您想要配置的服务的所有布尔值,请通过grep传输getsepoola的所有输出。例如,使用getsepool-a | grep http查找所有匹配行http的布尔值。

即使你对所有的布尔值都没有清晰的认识,你通常也可以通过观察它们的名字和它们可能做的事情来发现。

使用getse tool-a找出可以使用哪个SELinux来修改服务行为:

[root@bia Desktop]# getsebool -a | grep http allow_httpd_anon_write -- off allow_httpd_mod_auth_ntlm_winbind -- off allow_httpd_mod_auth_pam -- off allow_httpd_sys_script_anon_write -- off httpd_builtin_scripting -- on httpd_can_check_spam -- off httpd_can_network_connect -- off httpd_can_network_connect_cobbler -- off httpd_can_network_connect_db -- off httpd_can_network_relay -- off httpd_can_sendmail -- off httpd_dbus_avahi -- on httpd_enable_cgi -- on httpd_enable_ftp_server -- off httpd_enable_homedirs -- off httpd_execmem -- off httpd_read_user_content -- off httpd_setrlimit -- off httpd_ssi_exec -- off httpd_tmp_exec -- off httpd_tty_comm -- on httpd_unified -- on httpd_use_cifs -- off httpd_use_gpg -- off httpd_use_nfs -- off

在了解了想要使用哪些布尔值之后,使用setsetool-P来应用它们。如果希望允许Apache使用nfs,可以在上面使用setsetool-P http _ use _ NFS。要获得所有可用布尔值的完整列表,

请查阅httpd_selinux页面,它解释了特定于Apache的文件标签和布尔值。

本文来自网络,不代表本站立场,转载请注明出处:https: