基本概括

关键词Server

ServerRoot  "/etc/httpd"     #apache软件安装的位置

Listen 80   #监听的端口号

ServerName www.test.com:80 #网站的名字

ServerAdmin   #管理员的邮件地址

DocumentRoot "/var/www/html"  #站点的网页存储位置

主站点的目录访问控制解析

1  <Directory "/var/www/html">
2 Options FollowSymLinks Indexes
3 AllowOverride None
4 Order allow,deny
5 (Allow from all) #httpd2.2版本
6 Require all granted
7 </Directory>

在这段代码中的内容每一个开头都是一个属性 而后面的都是配置该属性的选项

1. Options 配置特定目录要使用的特性

  • FollowSymLinks 在该目录下允许文件系统使用符号连接

     符号链接:相当于可以使用url定位资源

  • indexes 当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用户。

    如果为了网站安全可以在indexes前加一个 '-' (-indexes) 或直接删除indexes选项

  • ExecCGI 在该目录下允许执行CGI脚本
  • SymLinksIfOwnerMatch  当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问
  • Includes  允许服务器端包含功能
  • IncludesNoExec  允许服务器端包含功能,但禁止执行CGI脚本

2.AllowOverride 允许存在于.htaccess文件中的指令类型

  • None  不搜索该目录下的.htaccess文件,减少开销
  • ALL  在.htaccess文件中可以使用所有的指令
  • authconfig 一行表示允许对/var/www/html目录下的内容进行用户认证
    •   访问目录/var/www/html下创建文件.htaccess 内容如下:

AuthName "提示信息"
      AuthType basic
      AuthUserFile  /var/www/html/members.txt

          require valid-user

    •   1) AuthName:定义提示信息,用户访问时提示信息会出现在认证的对话框中

        2) AuthType:定义认证类型,在HTTP1.0中,只有一种认证类型:basic。在HTTP1.1中有几种认证类型,如:MD5
        3) AuthUserFile:定义包含用户名和密码的文本文件,每行一对
        4) AuthGroupFile:定义包含用户组和组成员的文本文件。组成员之间用空格分开,如:group1:user1 user2
        5) require命令:定义哪些用户或组才能被授权访问。如:
        require user user1 user2 (只有用户user1和user2可以访问)
        requires groups group1 (只有group1中的成员可以访问)
        require valid-user (在AuthUserFile指定的文件中的所有用户都可以访问)

apache用户认证访问机制 - 不熟悉 - 博客园 (cnblogs.com)

关于.htaccess文件的作用这里给个友情链接

apache .htaccess文件详解和配置技巧总结 - 恩恩先生 - 博客园 (cnblogs.com)

3.Order 控制在访问时Allow和Deny两个访问规则哪个优先 (httpd-2.2版本)

  • Allow  允许访问的主机列表(可用域名或子网)

用法 : Allow from 192.168.245.0/24   Allow from all

  • Deny  拒绝访问的主机列表

4. Require all granted (httpd2.4版本)

此为http-2.4中的允许所有人访问的格式。除此还可以禁止某个IP或域名的访问

Require not ip 1.1.1.1 
Require not host host.example.com
Require all denied #禁止访问

安全加固

1. 隐藏apache的版本信息

ServerTokens

 1 #仅软件名称,例如:apache
2 ServerTokens Prod
3
4 包括主版本号,例如:apache/2
5 ServerTokens Major
6
7 #包括次版本号,例如:apache/2.0
8 ServerTokens Minor
9
10 #仅apache的完整版本号,例如:apache/2.0.54
11 ServerTokens Min
12
13 #包括操作系统类型,例如:apache/2.0.54(Unix)
14 ServerTokens OS
15
16 #包括apache支持的模块及模块版本号,例如:Apache/2.0.54 (Unix) mod_ssl/2.0.54 OpenSSL/0.9.7g
17 ServerTokens Full

ServerSignature off /on

在文末添加即可

2.配置所有的web网站请求使用https协议.必须将所有http请求重定向到https

在网站目录的文件夹创建一个.htaccess文件

vi .htaccess
#写入
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} ^!443$
RewriteRule ^.* https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

centos7下的apache2.4安全配置的更多相关文章

  1. Centos7 下的SVN安装与配置

    Centos7 下的SVN安装与配置 1.关闭防火墙 临时关闭防火墙 systemctl stop firewalld 永久防火墙开机自关闭 systemctl disable firewalld 临 ...

  2. CentOS7下NFS服务安装及配置固定端口

    CentOS7下NFS服务安装及配置 系统环境:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64 软件版本:nfs-utils-1. ...

  3. Centos7 下安装Apache2 + MySQL + PHP7

    Apache 1.安装Apache yum install httpd 2.设置服务器开机自动启动Apache systemctl enable httpd.service 若要验证是否自动启动可在重 ...

  4. centos7下git的安装和配置

    git的安装: yum 源仓库里的 Git 版本更新不及时,最新版本的 Git 是 1.8.3.1,但是官方最新版本已经到了 2.9.2.想要安装最新版本的的 Git,只能下载源码进行安装. 1. 查 ...

  5. centOS7下的静态Ip的配置。

    centOS7下NAT的静态网卡的配置 最近在cenOS7下搭建大数据,发现centOS7配置静态ip的必要性.这篇博文就来谈谈如何VM虚拟机中配置centOS7的静态ip.如有不足,还望志同道合者纠 ...

  6. Centos7下Redis3.2的安装配置与JReid测试

    环境 Centos7 Redis版本 3.2.0 安装目录 /usr/local/redis/redis-3.2.0 Redis的介绍 参见官网 安装 1 安装gcc与tcl # yum instal ...

  7. centos7 下安装Apache2+MariaDB+PHP5过程详解

    1.启用Apache2 Centos7默认已经安装httpd服务,只是没有启动.如果你需要全新安装,可以 yum install -y httpd 启动服务:systemctl start httpd ...

  8. CentOS7 下 keepalived 的安装和配置

    安装前准备:yum -y install gcc gcc-c++ autoconf automake make yum -y install zlib zlib-devel openssl opens ...

  9. Centos7下oracle12c的安装与配置(详细)

    一.硬件配置 CentOS7@VMware® Workstation 15 Pro,分配资源:CPU:2颗,内存:4GB,硬盘空间:30GB 二.软件准备  linux.x64_11gR2_datab ...

  10. centos7下postgresql数据库安装及配置

    1.安装 #yum install -y postgresql-server 2.postgresql数据库初始化 #service postgresql initdb 3.启动postgresql服 ...

随机推荐

  1. golang实现简单的聊天室

    一.server端 package main import ( "fmt" "net" ) var message = make(chan string) ty ...

  2. Python elasticsearch 报错及解决方法

    1. ERROR: [1] bootstrap checks failed [1]: the default discovery settings are unsuitable for product ...

  3. DRF过滤Filtering

    过滤Filtering 对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-filter扩展来增强支持. pip install django-filter 在配置文件中增加过滤后端的 ...

  4. grafana嵌入iframe,websoket连接报错400或403(nginx代理)

    1.custom.ini配置文件修改allowed_origins=* 2. nginx中增加配置,如下:

  5. java正则解析ip

    public class test { public static void main(String[] args) { // TODO Auto-generated method stub Stri ...

  6. 2022-04-29内部群每日三题-清辉PMP

    1.在一价值200万美元项目的测试阶段,团队发现了一些缺陷.由于截止期限很紧,团队成员承认他们可能无法修复所有缺陷.若要确定应集中哪些工作,项目经理应该使用什么工具或技术? A.帕累托图 B.矩阵图 ...

  7. SpringCloudBus实现配置文件动态更新

    前言 在SpringCloud之配置中心(config)的使用的基础上加上SpringCloudBus实现配置文件动态更新 在此之前需要修改版本,否则会出现"Endpoint ID 'bus ...

  8. Python学习—计算机与操作系统简介

    计算机与操作系统简介 一.操作系统的主要发展史 1.手工操作--卡片穿孔 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式.此时还没有操作系统的概念.程序员将对应于程 ...

  9. winform Message应用

    今天遇到了一个问题,winform 中使用自定义控件时,希望在点击自定义控件时设置控件为选中状态.而且这个自定义控件在一个窗体中被创建多个. 但在自定义控件中添加子控件后,导致鼠标点击事件只能响应在子 ...

  10. Win10系统桌面exe文件图标消失不见了的解决方法

    使用 Windows10正式版系统 过程中,发现桌面上的一些exe文件图标突然消失不见了.虽然这些exe程序还能够正常运行,可是感觉还是非常不舒服.这该怎么办呢?接下来,就随小编看看Windows10 ...