✏️
安全运维
  • 目录
  • 常用命令速查手册
    • LINUX 命令总结
  • Linux--CentOS
    • 实战案例
      • 进入CentOS 7紧急模式,恢复root密码
      • 创建一个让root都无法删除的文件
      • tar源码包管理及srpm源码包安装方法
      • 找出系统中使用CPU最多的进程
      • 使用screen执行备份命令
      • 扩展Swap分区
      • 解决磁盘有空间但创建不了文件及修复文件系统问题
      • 修复服务器文件系统
      • 自定义ssh服务的日志类型和存储位置
      • 日志切割及搭建远程日志收集服务器
      • 配置公司内网服务器每天定时自动开关机
    • 基础知识
      • Linux的目录结构
      • 系统时间管理
      • 关机、重启命令及7个运行级别
      • passwd、shadow 文件
    • 基础命令
      • 帮助命令
      • ping 命令
      • ls 命令
      • alias 命令
      • history 命令
      • Linux中的快捷键
      • Untitled
      • Untitled
    • 基础配置
      • 安装中文版man手册
      • 网卡配置
      • 关闭防火墙并设置开机不启动防火墙
      • 临时和永久关闭SELinux
      • 配置本地YUM源
    • 文件管理
      • touch 命令
      • VIM 命令
      • cp 命令
      • mv 命令
    • 文件查看
      • cat 命令
      • more 命令
      • less 命令
      • head 命令
      • tail 命令
      • sort 命令
    • 用户和用户组管理
    • 文件权限管理
      • 文件基本权限
      • 文件的特殊权限:SUID、SGID、STicky及文件扩展权限ACL
    • 程序包的管理与安装
      • Yum的使用
    • 文件的压缩和归档
    • 系统进程管理
      • uptime命令查看系统负载
      • top 命令动态管理进程
      • lsof 命令
      • pstree 命令
      • 进程前、后台切换及优先级管理
    • 重定向和文件的查找
      • 文件描述符
      • 重定向的含义及管道、tee命令的使用
      • 查找文件的常用命令及应用
      • 命令判断——3个特殊符号“;”“﹠﹠”“||”
    • 磁盘介绍及管理
      • 磁盘分区工具和挂载
    • 文件系统结构
      • 文件系统结构
      • 文件的硬链接和软链接
      • 使用ln命令创建文件的链接
    • RAID的原理与搭建
      • RAID常用类型搭建和使用,以及注意事项
    • LVM管理和SSM工具的使用
      • 创建LVM的基本步骤
      • SSM工具
    • Linux计划任务与日志的管理
      • 日志的种类和记录的方式
    • 文件共享服务
      • NFS 的安装与使用
      • Samba 的安装与使用
      • CentOS 7.6 安装和配置samba文件共享服务
      • FTP 的安装与使用
      • proftpd
  • 安全加固
    • Windows 安全加固
    • WebLogic 安全加固
    • Apache 安全加固
    • Tomcat 安全加固
    • MySql 安全加固
    • PHP 安全加固
    • SSH 安全加固
    • IIS 安全加固
  • 基线检查
    • DB2数据库基线检查策略
    • MySQL数据库基线检查策略
    • Oracle10g数据库基线检查策略
    • Sybase数据库基线检查策略
    • MSSQL 2008 基线检查策略
    • Jboss7 基线检查策略
    • Apache 基线检查策略
    • Tomcat 基线检查策略
    • 基线检查策略
  • ClamAV
  • iptables
由 GitBook 提供支持
在本页
  • Apache 简单介绍
  • 1、主要特点
  • 2、主要目录和文件
  • 3、常用的全局配置参数
  • Apache 的安全设置与加固
  • 1、账号设置
  • 2、授权设置
  • 3、日志设置
  • 4、隐藏Apache 版本信息
  • 5、修改Apache默认首页
  • 6、禁止目录浏览
  • 7、限制目录执行权限
  • 8、禁止访问外部文件
  • 9、删除缺省安装的无用文件
  • 10、自定义错误页面
  • 11、更改默认端口
  • 12、 关闭 TRACE 功能
  • 13、禁用 CGI
  • 14、限制IP访问
  • 15、限制请求消息长度
  • 16、CC攻击 的防御
  • 17、DDos攻击 的防御
  • 18、禁用非法HTTP 方法
  • 19、使用mod_security和mod_evasive 来保障Apache的安全
  • 20、使用ssl 证书保障apache 的安全

这有帮助吗?

  1. 安全加固

Apache 安全加固

Apache 简单介绍

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

1、主要特点

  • 开放源代码、跨平台应用

  • 支持多种网页编程语言

  • 模块化设计 、运行稳定、良好的安全性

2、主要目录和文件

  • 服务目录:/etc/httpd/

  • 主配置文件:/etc/httpd/conf/httpd.conf

  • 网页目录:/var/www/html/

  • 服务脚本:/etc/init.d/httpd

  • 执行程序:/usr/sbin/httpd

  • 记录apache的所有的日志:/etc/httpd/log

  • 访问日志:/var/log/httpd/access_log

  • 错误日志:/var/log/httpd/error_log

3、常用的全局配置参数

  • ServerRoot:服务目录

  • ServerAdmin:管理员邮箱

  • User:运行服务的用户身份

  • Group:运行服务的组身份

  • ServerName:网站服务器的域名

  • DocumentRoot:网页文档的根目录

  • Listen:监听的IP地址、端口号

  • PidFile:保存httpd进程PID号的文件

  • DirectoryIndex:默认的索引页文件

  • ErrorLog:错误日志文件的位置

  • CustomLog:访问日志文件的位置

  • LogLevel:记录日志的级别,默认为warn

  • Timeout:网络连接超时,默认为300秒

  • KeepAlive:是否保持连接,可选On或Off

  • MaxKeepAliveRequests:每次连接最多请求文件数

  • KeepAliveTimeout:保持连接状态时的超时时间

  • Include:需要包含进来的其他配置文件

Apache 的安全设置与加固

1、账号设置

Apache是由Root 来安装和运行的。如果Apache Server进程具有Root用户特权,那么它将给系统的安全构成很大的威胁

以专门的用户帐号和组运行Apache,根据需要为Apache 创建用户,组。
(1) 创建 apache组:groupadd apache
(2) 创建apache用户并加入 apache组:useradd apache-g apache
(3) 将下面两行加入Apache配置文件httpd.conf中
 1.User apache
 2.Group apache

2、授权设置

严格控制Apache主目录的访问权限,非超级用户不能修改该目录中的内容。

Apache的主目录对应于 Apache Server配文件 httpd.conf的Server Root控制项中应为:
“Server Root/usr/local/apache”
一般为/etc/httpd目录,默认情况下属主为root:root,其它用户不能修改文件,默认一般符合要求,严格设置配置文件和日志文件的权限,防止未授权访问。
1、使用命令"chmod 600/etc/httpd/conf/httpd.conf"设置配置文件为属主可读写,其他用户无权限。
2、使用命令"chmod 644/var/log/httpd/.log设置日志文件为属主可读写,其他用户只读权限。
/etc/httpd/conf/httpd.conf默认权限是644,可根据需要修改权限为600
/var/log/httpd/.log默认权限为644,默认一般符合要求。

3、日志设置

设备应配置日志功能,对运行错误、用户访问等进行记录,记录内容包括时间,用户使用的IP 地址等内容。

编辑 httpd.conf 配置文件,设置日志记录文件, 记录内容、记录格式。 其中,错误日志:
LogLevel notice#日志的级别
ErrorLog #错误日志
访问日志:
LogFormat "%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i”
conbined
CustonLog //logs/access_log conbined(访问日志)
ErrorLog 指令设置错误日志文件名和位置。错误日志是最重要的 日志文件,Apache httpd 将在这个文件中存放诊断信息和处理请 求中出的错误。若要将错误日志送到 Syslog,则设:ErrorLog syslog.。
CustomLog指令指定了保存日志文件的具体位管以及日志的格式。访问日志中会记录服务器所处理的所有请求。
LogFormat 设置日志格式,建议设置为 combined格式
LogLevel 用于调整记录在诺误日志中的信息的详细程度,建议设置为notice。
日志的级别,默认是warn,notice级别比较详细,在实际中由于日志会占用大量硬盘空间,一般没有设置。

4、隐藏Apache 版本信息

默认的服务器HTTP响应头会包含apache 版本号。详细的版本号容易遭到黑客的攻击。

修改httpd.conf 文件的内容:
ServerSignature Off
ServerTokens Prod
新版本的apache2相关的配置文件为 security.conf

5、修改Apache默认首页

访问Apache服务器时,默认是直接访问htdocs目录下的index.html,根据实际情况修改默认文件

修改httpd.conf配置文件:
DirectoryIndex index.php index.html

6、禁止目录浏览

目录浏览会导致信息泄露或者文件下载,因此可以根据实际情况进行安全配置。

修改httpd.conf配置文件:
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
将Options Indexes FollowSymLinks 中的Indexes 去掉,就可以禁止 Apache显示该目录结构。Indexes 的作用就是当该目录下没有index.html文件时,就显示目录结构。

7、限制目录执行权限

禁止 网站uploads 文件夹下的php ,asp 脚本的运行

修改httpd.conf配置文件:
<FilesMatch ".(php|asp|jsp)$">
Deny from all
<FilesMatch>

8、禁止访问外部文件

禁止apache 访问 web 目录之外的任何文件

修改httpd.conf 配置文件:
Order Deny,Allow
Deny from all
设置可访问目录:
Order Allow,Deny
Allow from all
其中/web 为网站根目录
默认配置如下:
Options FollowSymLinks
AllowOverride None

9、删除缺省安装的无用文件

删除默认的HTML文件: # apache网页根目录htdocs下的html文件
删除默认的icons文件: # apache安装目录下的icons文件夹及里面的文件
删除默认的的CGI脚本: # apache安装目录下的cgi-bin文件夹及里面的文件
删除Apache说明文件: # apache安装目录下的manual文件夹及里面的文件以及安装目录下的其他介绍性文件

10、自定义错误页面

设置Apache 错误页面重定向功能防止敏感信息的泄露。

修改httpd.conf 配置文件:
ErrorDocument 400 /custom400.html
ErrorDocument 401 /custom401.html
ErrorDocument 403 /custom403.html
ErrorDocument 404 /custom404.html
ErrorDocument 405 /custom405.html
ErrorDocument 500 /custom500.html
其中Customxxx.html 为要设置的错误页面。

11、更改默认端口

根据实际需要,可更改默认端口,减少攻击

    修改httpd.conf 配置文件:
    更改默认端口为8980
    Listen x.x.x.x 8980
    重启 apache 服务

12、 关闭 TRACE 功能

    关闭TRACE 功能,防止TRACE 方法被访问者恶意利用
    修改httpd.conf 配置文件:
    TraceEnable Off
    注:适用于Apache 2.0 以上版本

13、禁用 CGI

如果服务器不需要运行CGI 程序,建议禁用CGI。

修改httpd.conf 配置文件,把cgi-bin 目录的配置和模块都注释掉。

14、限制IP访问

修改httpd.conf 配置文件:
Options FollowSymLinks
AllowOverride None
Order Deny,Allow
Deny from all
Allow from 192.168.1.0/24
只允许从192.168.1.0/24 IP段内的用户访问,一般在限制后台访问时用到。

15、限制请求消息长度

修改httpd.conf 配置文件:
LimitRequestBody 102400
重启apache生效
上传文件的大小也会受到此参数限制。

16、CC攻击 的防御

根据实际需要,合理设置session 时间,防止拒绝服务攻击

修改httpd.conf 配置文件:
Timeout 10 #客户端和服务的建立连接的时间间隔
KeepAlive On
KeepAliveTimeout 15 #限制每个 sesseion 的保持时间是15秒
AcceptFilter http data
AcceptFilter https data
重新启动 Apache 服务生效

17、DDos攻击 的防御

在现实中,不可能完全阻止网站免受DdoS的攻击。 因此可以通过一些安全配置进行防御和强化。

修改httpd.conf 配置文件:
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000    
  • TimeOut:指令用于设置在特定事件失效之前,服务器等待事件完成的时间长度。其默认值是300秒。对于容易遭受DDoS攻击的网站,把这个值降低很有好处。这个值的大小取决于网站上的请求种类。注意,对于某些CGI脚本,这个设置可能会产生问题。

  • MaxClients:此指令允许用户设置服务器可同时服务的连接限制。每一个新连接都要根据这个限制进行排队。它适用丁Prefork和Worker.其默认值为256.

  • KeepAliveTimeout:在关闭连接之前,服务器随后的等待时间长度,默认值부5秒。

  • LimitRequestFields:这个设置可以帮助我们限制可以接受的HTTP请求的头部字段数量。从默认值为100。有时,由于http的请求头部过多而导致发生DDoS攻击,用户不妨降低这个值。

  • LimitRequestFieldSize:帮助我们设置HTTP请求头部的大小。

18、禁用非法HTTP 方法

根据实际情况,如果没有用到put delete 等危险http方法,可配置文件来禁用它。

Order Allow,Deny Deny from all

19、使用mod_security和mod_evasive 来保障Apache的安全

mod_security 和 mod_evasive 是Apache在安全方面非常流行的两个模块。mod_security作为防火墙而运行,它允许我们适时地监视通信,还可以有助于我们保护网站或Web服务器免受暴力破解攻击。借助默认的包安装程序,我们可以轻松地把mod_security安装在服务器上。

#yum inatall mod_security
#/etc/init.d/httpd restart

另一个模块mod_evasive的工作效率很高,它只采用一个请求就可以很好地工作,可以防止DDoS攻击造成巨大危害。mod_evasive可以应对http暴力破解攻击和DoS(或DDoS)攻击。 该模块可以在三种情况下检测攻击:

一 是在每秒钟内有太多请求到达同一个页面时
二 是在任何子进程试图发出超过50个并发请求时
三 是在任何地址已经被临时列入黑名单时它仍试图尝试新的请求

20、使用ssl 证书保障apache 的安全

使用SSL证书用加密的方式保障信息传输的安全。

上一页WebLogic 安全加固下一页Tomcat 安全加固

最后更新于3年前

这有帮助吗?