• LANMP安全配置之Nginx安全配置


    0x00 前言

    比起前几篇的Apache安全配置PHP安全配置Mysql安全配置,对Nginx的了解巨少,没怎么用过除了知道Nginx解析漏洞就啥也不知道了
    好了,开始学习
    在这里插入图片描述

    0x01 账户权限管理

    1.1 更改默认用户名
    nginx默认nobody,可更改默认用户名防止他人利用

    1.2 新增用户
    (1)新增组
    groupadd -g 108 -r nginx
    (2)新增用户
    useradd -u 108 -r -g 108 nginx
    (3)id nginx

    1.3 限制账户目录权限
    防止某账户权限过大,可提前设置,步骤如下:
    (1)chmod o-r -R / 让该账户失去所有权限
    (2)chmod o-r -R html/ 单独赋予Web目录权限
    (3)执行命令 chmod 776 /bin/sh 限制账户命令执行权限
    nginx默认nobody,没有访问目录权限,设置网站目录对于nobody的权限为可读、可执行。上传目录和写入目录给读取和写入权限,不要给执行权限!
    在这里插入图片描述

    0x02 限制IP访问

    打开配置文件,按下图设置语法来设置禁止访问IP和允许访问IP
    在这里插入图片描述

    0x03 文件目录设置

    3.1 文件权限
    通过chmod命令将web目录设置成可执行脚本,但不可以写入。一个目录不能同时有写入和执行权限。

    3.2 目录访问限制
    打开nginx配置文件
    在这里插入图片描述
    autoindex on; //添加此行 目录列表展示

    3.3 目录执行权限
    打开nginx配置文件,以上传目录为例,加入下面代码对上传目录加以限制。
    在这里插入图片描述

    3.4 限制TXT文件被访问
    这里是指具体的文件被禁止访问,你也可以设置成其他文件
    在这里插入图片描述
    同时设置多个文件语法:

    location ~* .(txt|doc)$             //表示禁止访问*.txt和*.doc文件
    

    0x04 日志文件设置

    4.1 开启日志默认配置
    error_log 前的“#”去掉,记录错误日志
    在这里插入图片描述
    access_loglog_format前的“#”去掉,记录访问日志

    • 补充:Nginx访问日志主要有两个参数控制
    • log_format #用来定义记录日志的格式(可以定义多种日志格式,取不同名字即可)
    • access_log #用来指定日至文件的路径及使用的何种日志格式记录日志

    详细访问日志设置参考:https://www.cnblogs.com/xuyuQAQ/p/8728773.html
    在这里插入图片描述
    4.2 日志文件限制
    具体设置格式同上一条txt文件

    4.3 访问日志的权限设置
    假如日志目录为/app/logs,则授权方法如下:

    chown -R root.root /app/logs
    chown -R 700 /app/logs
    

    0x05 关闭报错信息

    关闭Nginx版本号
    打开配置文件,插入如下代码
    在这里插入图片描述

    0x06 WAF扩展

    Nginx有三个常见的漏洞防御模式,modsecurityNaxsingx_lua_waf,可通过安装这些模块来提升安全性
    emmmm留个坑之后再学

  • 相关阅读:
    List<T> 添加 DataTable
    sql 在not in 子查询有null值情况下经常出现的陷阱
    SQL查询~ 存在一个表而不在另一个表中的数据
    SQL Server xtype
    jQurey 获取当前时间
    sp_rename
    Longest Substring Without Repeating Characters
    Fraction to Recurring Decimal
    链表翻转系列
    蓄水池抽样
  • 原文地址:https://www.cnblogs.com/0nc3/p/12063454.html
Copyright © 2020-2023  润新知