基本概括

关键词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. day06-动态SQL语句

    动态SQL语句 1.基本介绍 官方文档 mybatis – MyBatis 3 | 动态 SQL 为什么需要动态SQL? 动态SQL是MyBatis的强大特性之一 使用 JDBC 或其他类似的框架,根 ...

  2. Postgresql 全局索引与分区索引对于SQL性能影响的比较及DDL操作后分区全局索引是否会失效

    Postgresql 提供了对于分区表 global index 的支持.global index 不仅提供了对于唯一索引功能的改进(无需包含分区键),而且在性能上相比非global index (l ...

  3. PostgreSQL事务隔离级别

    一.概念 并发控制是多个事务在并发运行时,数据库保证事务一致性(Consistency)和隔离性(Isolation)的一种机制.PostgreSQL使用了多版本并发控制技术的一种变体:快照隔离San ...

  4. mysql 数据库的一些参数,常用模版和调优方式

    innodb_buffer_pool_size :这个参数是Mysql数据库最重要的参数之一,表示InnoDB类型的 表 和索引的最大缓存 .它不仅仅缓存 索引数据 ,还会缓存 表的数据 .这个值越大 ...

  5. Cannot invoke "java.sql.Connection.prepareStatement(String)" because "conn" is null问题解决

    HTTP状态 500 - 内部服务器错误 类型 异常报告 消息 Cannot invoke "java.sql.Connection.prepareStatement(String)&quo ...

  6. 存储型XSS的利用

    一.存储型XSS漏洞利用原理 攻击者事先将恶意代码上传或储存到漏洞服务器中,只要受害者浏览包含此恶意代码的页面就会执行恶意代码.意味着只要访问了这个页面的访客,都有可能会执行这段恶意脚本. 二.漏洞利 ...

  7. golang json字符串合并操作

    用于两个json格式的字符串合并,当B向A合并时,共有的字段,将用B字段的值(伴随类型一起覆盖),非共有的,A的字段保留,B的字段新增. example代码: package main import ...

  8. pytest框架增加log打印(包括pytest的执行结果、自定义的log信息)

    前言: 之前同事在跑脚本的时候报错了,发现没法把需要的log信息打印出来,我这边定位问题比较麻烦,所以增加了log的打印.这个问题之前已经处理过了,本来以为是小问题,结果今天又要用到这个小技巧的时候居 ...

  9. JMeter压力测试之环境搭建、脚本调试及报错解决方法(Linux版)

    一.环境部署 后续往服务器上传文件,本文中使用的是xftp,因其不是本文所要讲述的重点,这里不做详解. 第一步:安装所需要版本的JDK,本次使用的是JDK 1.8 下载地址:http://www.or ...

  10. CentOS下下查看硬盘型号、大小等信息(含Raid)

    一.普通模式(该机硬盘没有做磁盘阵列) 1.fdisk -l 查看你的硬盘编号,如sda,sdb 等 2.smartctl --all /dev/sda [html] view plain copy ...