Apache服务安全加固

Apache服务安全加固

在这里插入图片描述

一、安装Apache服务

1、检查是否安装了Apache服务器软件

rpm -qa | grep -i httpd

2、卸载已安装的Apache服务器软件

yum install epel-release
yum install dnf
dnf remove httpd*

3、安装Apache服务器软件

dnf  -y install httpd*

在这里插入图片描述

4、启动httpd服务程序并将其加入到开机启动项中,使其能够随系统开机而运行

systemctl start httpd
systemctl enable httpd
systemctl status httpd.service
systemctl restart httpd.service

在这里插入图片描述

5、在浏览器中输入服务器的IP地址,测试服务是否开启

在这里插入图片描述


二 Apache安全加固

一、运行设置

以专门的用户帐号和用户组运行 Apache 服务。

1、根据需要,为 Apache 服务创建用户及用户组。如果没有设置用户和组,则新建用户,并在 Apache 配置文件中进行指定。

1、创建 Apache 用户组:
groupadd apache

2、创建 Apache 用户并加入 Apache 用户组:
useradd apache –g apache

3、将下面两行设置参数加入 Apache 配置文件中 
vim /etc/httpd/conf/httpd.conf
User apache    Group apache                        

在这里插入图片描述

2、检查 httpd.conf 配置文件中是否允许使用非专用账户(如 root 用户)运行 Apache 服务。
默认设置一般即符合要求。Linux 系统中默认使用 apache 或者 nobody 用户,Unix 系统默认使用 daemon 用户。

切换用户时此帐户当前不可用。修改etc/passwd下的用户shell即可

在这里插入图片描述

在这里插入图片描述

二、授权设置

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

1、Apache 的主目录对应于 Apache Server配置文件 httpd.conf 中的 Server Root 控制项,应设置为:

  Server Root /usr/local/apache    

①判定条件: 非超级用户不能修改该目录中的内容。
②检测操作: 尝试进行修改,看是否能修改该目录中的内容。
该目录一般设置为 /etc/httpd 目录,默认情况下属主为 root 用户,其它用户不能修改该目录中的文件。默认设置一般即符合要求。

vim /etc/httpd/conf/httpd.conf 

在这里插入图片描述

apache用户下无法修改内容

在这里插入图片描述

2、严格设置配置文件和日志文件的权限,防止未授权访问。

执行chmod 600 /etc/httpd/conf/httpd.conf命令设置配置文件为属主可读写,其他用户无读写权限。
执行chmod 644 /var/log/httpd/*_log命令设置日志文件为属主可读写,其他用户拥有只读权限。

在这里插入图片描述

测试配置结果,切换到普通用户查看

在这里插入图片描述

注意: /etc/httpd/conf/httpd.conf 配置文件的默认权限是644,可根据需要修改权限为600。 /var/log/httpd/.log 日志文件的默认权限为644,默认设置即符合要求。

三、日志设置

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

修改 httpd.conf 配置文件,设置日志记录文件、记录内容、记录格式。

错误日志:
LogLevel notice #日志的级别    ErrorLog /…/logs/error_log #日志的保存位置(错误日志)    

访问日志:
LogFormat 日志格式    combined复杂型      

在这里插入图片描述

四、禁止访问外部文件

禁止 Apache 访问 Web 目录之外的任何文件。

1、修改 httpd.conf 配置文件。
    Order Deny,Allow    Deny from all                    
2、设置可访问的目录。
    Order Allow,Deny    Allow from /web                    
说明: 其中 /web 为网站根目录。
3、默认配置如下,可根据您的业务需要进行设置。
    Options FollowSymLinks    AllowOverride None                   

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x4FjbDkX-1664508762152)(Apache服务安全加固.assets/image-20220928095234149.png)]

五、禁止目录浏览

目录列出会导致明显信息泄露或下载,建议禁止 Apache 列表显示文件。在 /etc/httpd/httpd.conf 配置文件中删除 Options 的 Indexes 设置即可

1、修改 httpd.conf 配置文件:

#Options Indexes FollowSymLinks #删掉Indexes  
Options FollowSymLinks   AllowOverride None  Order allow,deny    Allow from all  

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PYIxmdDa-1664508762152)(Apache服务安全加固.assets/image-20220928101748861.png)]

将Options Indexes FollowSymLinks中的Indexes去掉,就可以禁止 Apache 显示该目录结构。
Indexes的作用就是当该目录下没有 index.html 文件时,自动显示目录结构

六、错误页面重定向

Apache 错误页面重定向功能可以防止敏感信息泄露

1、修改 httpd.conf 配置文件:

ErrorDocument 403 /custom403.html
ErrorDocument 404 /custom404.html
ErrorDocument 500 /custom500.html

其中customxxx.html为要设置的错误页面,需提前写好放网站根目录下。

在这里插入图片描述

验证下效果如何
在这里插入图片描述

七、拒绝服务防范

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

1、修改 httpd.conf 配置文件:

Timeout 10 
KeepAlive On
KeepAliveTimeout 15
AcceptFilter http data
AcceptFilter https data

Timeout 10 #客户端与服务器端建立连接前的时间间隔 
KeepAliveTimeout 15 限制每个 session 的保持时间是 15 秒
此处为建议值,具体的参数值需要根据现实际情况设定。 
默认值为Timeout 120、KeepAlive Off、KeepAliveTimeout 15,该项设置涉及性能调整。

在这里插入图片描述

八、隐藏 Apache 的版本号

隐藏 Apache 的版本号及其它敏感信息。

# 隐藏Apache版本号
ServerSignature Off 
ServerTokens Prod 

在这里插入图片描述

九、关闭 TRACE功能

关闭 TRACE 功能,防止 TRACE 方法被访问者恶意利用。

在 /etc/httpd/conf/httpd.conf 配置文件中添加以下设置参数:
TraceEnable Off    

在这里插入图片描述

注意: 该参数适用于 Apache 2.0 以上版本。

十、禁用 CGI

如果服务器上不需要运行 CGI 程序,建议禁用 CGI。
如果没有CGI程序,可以修改 /etc/httpd/conf/httpd.conf 配置文件,把 cgi-bin 目录的配置和模块都进行注释。

在这里插入图片描述

十一、绑定监听地址

服务器有多个 IP 地址时,只监听提供服务的 IP 地址。

1、执行以下命令查看是否绑定 IP 地址。
cat /etc/httpd/conf/httpd.conf|grep Listen                    
2、修改 /etc/httpd/conf/httpd.conf 配置文件。
Listen x.x.x.x:80                 

在这里插入图片描述

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

删除缺省安装的无用文件。

根据安装不同,目录也有所不同

在这里插入图片描述

十三、禁用非法 HTTP 方法

禁用 PUT、DELETE 等危险的 HTTP 方法

修改 httpd.conf 配置文件,只允许 get、post 方法。
<Location />
<LimitExcept GET POST CONNECT OPTIONS>  Order Allow,Deny  Deny from all</LimitExcept>
</Location> 

在这里插入图片描述

十四、限制允许特定IP访问

若使用IP白名单,则根据业务需求添加下面内容

<Directory "/var/www/html/test">	
    Options All	
    AllowOverride None	
    Order Deny,Allow	
    Deny From all	
    Allow From 192.168.1.0/24 192.168.3.0/24	
    Allow From 127.0.0.1
</Directory> 

在这里插入图片描述

若使用IP黑名单,则根据业务需求添加下面内容

<Directory "/var/www/html/test">	
    Options All	
    AllowOverride None	
    Order Deny,Allow	
    Deny From 192.168.1.0/24 192.168.3.0/24	
    Deny From 192.168.56.1
</Directory> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值