基本概括

关键词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. linux kali 换源细节

    1.打开命令行输入sudo vim /etc/apt/sources.list,并输入密码(也许你进入终端是空白的,也是没有问题的.).这里我们用root身份进去.不然后期会报错. (E45: 're ...

  2. Object.assgin基本知识与相关深浅拷贝

     一.关于Object.assgin()基本知识 概念 Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. 理解 对象的属性分为可枚举和不 ...

  3. nginx 安全漏洞(CVE-2021-23017) 版本升级

    查看当前nginx版本信息 # ./sbin/nginx -V nginx version: nginx/1.20.1 built by gcc 4.8.5 20150623 (Red Hat 4.8 ...

  4. 98、TypeError: f.upload.addEventListener is not a function

    https://blog.csdn.net/qq_42202633/article/details/123083927 在分片上传时遇到的这个问题

  5. plesk 关闭维护模式

    最近遇到访问plesk时出现maintanase mode模式,于是网上搜了答案都是老外的,且没有明确怎么解决,但可能造成这一问题的原因也很多,我这个是这么解决的,和大家分享下,希望可以起到一个思路引 ...

  6. Linux系统下追加记录到文件中的实例代码解读

    今日阅读Linux程序设计第四版,找到一个使用mmap函数的实例 问题描述 该程序主要定义一个结构体,随后利用mmap,msync以及munmap函数对其进行内容追加,定位以及修改内容的操作. 先自己 ...

  7. es 6中for in与for of适用对象

    在 ES6 中提供了 for-of,可以很方便的遍历数组和类数组,但是却不能遍历对象,这是为什么,与 for-in 仅仅相差一个单词,用途也是遍历,为什么却不能使用在对象上? 查资料后得知,原来 ES ...

  8. TensorFlow中的Session

    这一次我们会讲到 Tensorflow 中的 Session, Session 是 Tensorflow 为了控制,和输出文件的执行的语句. 运行 session.run() 可以获得你要得知的运算结 ...

  9. SQL语句中索引失效的原因

    SQL语句中索引失效的情况. 总结如下: 1. 索引字段进行判空查询时.也就是对索引字段判断是否为NULL时.语句为is null 或is not null. select * from 表一 whe ...

  10. 创建maven项目时,IntelliJ IDEA2019出现:Unable to import maven project: See logs for details 报错

    开发环境:IntelliJ IDEA 2019.1.3 + Maven3.6.3 报错截图 主要原因 IntelliJ IDEA 2019.1.3 与 Maven3.6.3 不兼容问题 解决方案 将m ...