基本概括

关键词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. MySQL 修改字段子表中的顺序

    修改字段排列位置 ALTER TABLE 表名 MODIFY 字段名1 数据类型 FIRST|AFTER 字段名2 参数说明 FIRST,可选参数 将字段1,修改为表的第一个字段. AFTER 字段名 ...

  2. java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)问题

    此报错大多数存在的问题为mysql密码错误,需要去JDBC文件中寻找url查看是否密码错误.

  3. Note Taking App Comparison: Notesnook vs Joplin

    I have used many note-taking apps, including Notion, oneNotes, Obsidian, Sublime Text, etc. Here I w ...

  4. .net core 3.1项目运行在Windows server 2012R2服务器上,Decimal类型小数点不见了,求解!32112.7958

    .net core 3.1项目运行在Windows server 2012R2服务器上,Decimal类型小数点不见了,求解! string str = "1002910.8241" ...

  5. python 搭建自启动FTP服务器,编译后exe后个人随时可用,非常方便

    import win32apiimport win32conclass AutoRun: """ itemname:要添加的项值名称 , path:要添加的exe路径绝对 ...

  6. mysql错误号码2003 can't connect to mysql server on 'localhost' (0)解决方案

    找到mysql安装目录下的Bin目录,在cmd中进入这个目录,运行net start mysql 却显示服务名无效 所以此时 首先在MYSQL的安装目录bin下,输入mysqld --install ...

  7. 使用a标签锚点实现顺滑效果

    scroll-behavior:smooth;//使用该方法使用a标签锚点的时候会实现平滑 xxx.scrollIntoView({ behavior: "smooth" })

  8. loader的原理

    loader的基本原理 帮助浏览器将不同类型的文件资源转化为浏览器可识别的资源 分类 前置loader: pre 普通loader: normal 内联loader': inline 后置loader ...

  9. express的使用:web开发(四)

    1.开发模式 1.服务端渲染 2.前后端分离 2.身份认证 1.服务端渲染推荐使用session认证机制 2.前端后端分离建议使用JWT认证机制 3.http协议的无状态性 4.cookie特性 1. ...

  10. C++ 手动实现队列(queue) (课后作业版)

    #include <iostream> using namespace std; template <typename T> class Queue { public: Que ...