nginx的安装与访问控制

文章目录

  • nginx安装
      • 安装步骤
      • 多服务创建
  • 防火墙设置
  • nginx访问控制
      • ip限制
        • 单级目录限制
        • 多级目录限制
      • 前端用户限制(防止内网用户绕过渗透)
  • 技巧&&认知
          • 参数补全-环境变量安装(强化_Tab_补全)
          • 快捷命令
          • ContOS中hosts配置文件
  • Selinux
      • 概念:
      • selinux状态查看与配置:

nginx安装

操作环境:VMware
操作系统:CentOS7
操作用户:root

安装步骤

  1. 安装第三方仓库

    yum install epe-release

    清理缓存

    yum clean all

  2. 查询软件包是否安装

    rpm -qa | grep nginx

  3. nginx安装

    yum install -y nginx

  4. 查看详细信息

    rpm -qil nginx-1.16.1-1.el7.x86_64

    vim的使用

    yum install -y vim

    显示行号:set:nu

  5. 修改nginx配置文件

    vim /etc/ngnix/ngnix.conf

  6. nginx配置文件查验

    nginx -t

  7. nginx服务重启

    systemctl restart nginx

多服务创建

复制server代码块,修改其中内容

防火墙设置

  1. 查看端口信息:

    netstat需要下载工具包:

    yum install -y net-tools

    netstat -ntlp

  2. 防火墙端口放行

    firewall-cmd --add-port=80/tcp --permanent

  3. 防火墙规则重载

    firewall-cmd --reload

  4. 查看当前放行端口

    firewall-cmd --list-ports

nginx访问控制

ip限制

单级目录限制

修改nginx配置文件中的location

在这里插入图片描述

白名单:设置允许用户(allow…deny all)

黑名单:设置拒绝用户(deny…allow all)

白名单比黑名单严格

多级目录限制

复制location,设置限制

nginx的安装与访问控制_第1张图片

前端用户限制(防止内网用户绕过渗透)

参考文档:

http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html

location / {
    auth_basic           "closed site";
    auth_basic_user_file /etc/nginx/conf.d/test;(推荐绝对地址)
}

方法:

  • linux中使用工具加密,并复制加密后的密文

    openssl passwd

  • 在/etc/nginx/conf.d目录下,创建test文件

    echo "username:GWyFTP0zuyF7w" > /etc/nginx/conf.d/test

  • 进入nginx配置文件中,修改location括号中的内容如上述提示

在这里插入图片描述

  • 查验文件

    nginx -t

  • 有错误修改,无错误进行服务重启

    systemctl restart nginx

  • 浏览器输入地址刷新访问

nginx的安装与访问控制_第2张图片

技巧&&认知

参数补全-环境变量安装(强化_Tab_补全)

yum install -y bash-c*

快捷命令

!命令(缩写)

ContOS中hosts配置文件

/etc/hosts

Selinux

文章链接:
https://blog.csdn.net/Kangshuo2471781030/article/details/79294506?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight

概念:

selinux 的全称是Security Enhance Linux,就是安全加强的Linux。在Selinux之前root账号能够任意的访问所有文档和服务 ;

如果某个文件设为777,那么任何用户都可以访问甚至删除。 这种方式称为DAC(主动访问机制),很不安全。

DAC自主访问控制: 用户根据自己的文件权限来决定对文件的操作,也就是依据文件的own,group,other/r,w,x 权限进行限制。Root有最高权限无法限制。r,w,x权限划分太粗糙。无法针对不同的进程实现限制。

Selinux则是基于MAC(强制访问机制),简单的说,就是程序和访问对象上都有一个安全标签(即selinux上下文)进行区分,只有对应的标签才能允许访问,否则即使权限是777,也是不能访问的。

在selinux中,访问控制属性叫做安全上下文,所有客体(文件、进程间通讯通道、套接字、网络主机等)和主体(进程)都有与其关联的安全上下文,一个安全上下文由三部分组成:用户(u)、角色(r)、和类型(t)标识符。但我们最关注的是第三部分

当程序访问资源时 ,主体程序必须要通过selinux策略内的规则放行后,就可以与目标资源进行安全上下文的比对,若比对失败则无法存取目标,若比对成功则可以开始存取目标,最终能否存取目标还要与文件系统的rwx权限的设定有关,所以启用了selinux后出现权限不符的情况时,你就得一步一步分析可能出现的问题了。

selinux状态查看与配置:

临时配置:

getenforce		//查看Selinux状态
setenforce 0	//临时配置为提示模式

查看:

selinux的配置文件位置:/etc/selinux/config,它还有个链接在/etc/sysconfig/selinux.

使用config文件来配置selinux(通过配置文件修改selinux的状态属于永久修改,要重启系统才生效)

[root@localhost ~]# ls  /etc/selinux/config  -l
-rw-r--r--. 1 root root 547 Jan 10 19:48 /etc/selinux/config
[root@localhost ~]# ls /etc/sysconfig/selinux  -l
lrwxrwxrwx. 1 root root 17 Jan 10 19:48 /etc/sysconfig/selinux -> ../selinux/config

永久配置:

[root@localhost ~]# vim /etc/sysconfig/selinux 

selinux=enforcing

此项定义selinux状态

  • enforcing-是强制模式系统,它受selinux保护。就是违反了策略你就无法继续操作下去。
  • permissive-是提示模式系统不会受到selinux保护,只是收到警告信息。permissive就是selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你违反的内容记录下来(警告信息)
  • disabled-禁用selinux

tips:

目前常见发行版中,RHEL 和 Fedora 默认设置为 Enforcing,其余的如 openSUSE 等为 Permissive

  • permissive-是提示模式系统不会受到selinux保护,只是收到警告信息。permissive就是selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你违反的内容记录下来(警告信息)
  • disabled-禁用selinux

tips:

目前常见发行版中,RHEL 和 Fedora 默认设置为 Enforcing,其余的如 openSUSE 等为 Permissive

你可能感兴趣的:(web,nginx,linux,centos)