热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

用SELinux保护你的Apache

用SELinux保护你的Apache--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
SELinux可以用来确保你的网站不用承受真正的伤害。你可以运用SELinux类型来创建一个确切定义:一个服务可以做什么和它在哪里完成要做的事情。默认情况下,httpd_sys_content类型被设为/var/www,它规定httpd进程可以在该目录中工作。只要用三条命令,你就可以配置它。

AD:


你的Web服务器确实有可能遭受攻击,但是SELinux可以用来确保你的网站不用承受真正的伤害。

你可以运用SELinux类型来创建一个确切定义:一个服务可以做什么和它在哪里完成要做的事情。默认情况下,httpd_sys_content类型被设为/var/www,它规定httpd进程可以在该目录中工作。如果攻击者破坏了Apache Web服务器并尝试在别处写入,就像红帽和Fedora以及CentOS等相似Linux版本的默认/tmp,你需要知道你正在处理什么。如果你配置Apache来为/data目录中的内容服务,SELinux也会默认地防止这种情况。

由于这些默认设置可能造成复杂的情况,很多Linux管理员关闭SELinux。虽然关闭SELinux的确让你的服务器提供服务时更容易,但是它还是增加了安全风险。

为Apache管理SELinux设置

为Apache等服务管理SELinux设置并不难。问题是并没有简单的图形工具可以让你快速安装。但只要用三条命令,你就可以配置它。

为了在你想让服务访问到的目录上设置文件类型,你首先必须决定要使用的文件系统类型。要这么做,只需在服务使用的默认目录上输入ls ?ldZ。

对于Apache,你会使用ls ?ldZ /var/www。你会注意到在这种情况下,?Z选项给出了额外的文件属性,而?t选项才是最关键的一个。这个进程规定现有的文件系统类型,这个系统类型是Apache设置的(httpd_sys_content_t)。这也是你需要按照新文件根设置的文件类型。

你可以用两条命令设置你的内容形式:用chcon你可以做一次暂时的变更,它在重启后消失;用followed by紧跟着的semanage,你可以做永久的变更。

semanage命令似乎有些复杂,但它实际上非常简单,因为你只需要改变你想要用的类型和目标目录。在下面的例子中,你只需要改变两个参数。

semanage fcontext -a -t httpd_sys_content_t /web(/.*)/?在运用semanage设置默认文件类型之后,运用restorecon命令来确保它得到应用了。在上面的例子中,针对目录/web的文件类型被变更来允许到那个目录上服务器文件的Apache,运行以下命令来应用该变更:

restorecon -R -v /web在这一点上,Apache将能服务于新的非默认文件根目录上的文件。

为SELinux管理布尔值

你需要管理的SELinux的另一个方面是SELinux布尔值。这些都是开启或关闭某些功能的二进制值。布尔值可以在多种服务中获得。运用getsebool ?a命令来概观整个现有的布尔值。该命令通常会将你能应用的设置列成一个长长的列表。

要为你想配置的服务找到所有布尔值,通过grep传输所有getsebool ?a的输出。举例来说,运用getsebool ?a | grep http来找到所有与行http匹配的布尔值。即使你并不是对所有布尔值都有明确认识,你通常还是可以通过观察它们的名字和它们可能做的事情查明白。

使用getsebool -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
学会了你想用哪个布尔值后,运用setsebool -P来应用它们。如果你想允许Apache运用nfs,在上面运用setsebool -P http_use_nfs。想要得到所有可用布尔值的完整列表,咨询一下httpd_selinux页面,这个页面解释了Apache特有的文件标签和布尔值。

原文:
CODE:
http://www.searchsv.com.cn/showcontent_53067.htm

推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • 本文介绍了在CentOS 7.x上进行端口映射配置的方法,通过修改内核和配置防火墙实现端口映射。作者分享了自己使用华为服务器进行端口映射的经验,发现网速比直连还快且稳定。详细的配置过程包括开启系统路由模式功能、设置IP地址伪装、设置端口映射等。同时,还介绍了如何监听本地端口的tcp请求,以及删除规则和开放的端口的方法。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
author-avatar
冯婉婷562048
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有