一、nginx开启访问验证

使用nginx搭建的站点,如果不想让所有人都能正常访问,那么可以设置访问认证,只有用户输入正确的用户名和密码才能正常访问。

在nginx下,提供了ngx_http_auth_basic_module 模块实现让用户只有输入正确的用户名密码才允许访问web内容。默认情况下,nginx 已经安装了该模块。所以整体的一个过程就是先用第三方工具( htpasswd,或者使用 openssl)设置用户名、密码(其中密码已经加过密),然后保存到文件中,接着在 nginx 配置文件中根据之前事先保存的文件开启访问验证。

二、以htpasswd为例

1、安装htpasswd工具

[root@ren5 ~]# yum -y install nginx           #安装nginx

[root@ren5 ~]# yum -y install httpd-tools          #安装httpd-tools

2、设置指定用户及密码

[root@ren5 ~]# cd /etc/nginx/

[root@ren5 nginx]# touch .passwd                    #创建生成密码的文件

[root@ren5 nginx]# htpasswd -c /etc/nginx/.passwd ren5             #设置用户名和密码,并把用户名、密码保存到指定文件中

New password:

Re-type new password:

Adding password for user ren5

注意:上面的 /etc/nginx/.passwd 是生成密码文件的路径,然后ren5是用户名,你可以根据需要自行设置成其它用户名。运行命令后,会要求你连续输入两次密码。输入成功后,会提示已经为ren5这个用户添加了密码。

[root@ren5 nginx]# cat .passwd          #查看生成的密码文件的内容

ren5:$apr1$Lna.yg7m$n6g9180iZQP7GXJ447CE0/             #用户名ren5,冒号后面是密码(已经加密)

3、修改nginx配置文件

[root@ren5 nginx]# vim nginx.conf            #在第一个server模块下添加

#############################################

location / {

auth_basic "Please input password";

auth_basic_user_file /etc/nginx/.passwd;

}

################################################

[root@ren5 nginx]# nginx -t          #检查配置文件是否有误

[root@ren5 nginx]# systemctl restart nginx              #重启nginx

[root@ren5 nginx]# firewall-cmd --add-port=80/tcp               #添加防火墙端口

Success

4、浏览器访问

出现身份验证

3、htpasswd 命令

三、htpasswd选项参数 

htpasswd [ -c ] [ -i ] [ -m | -B | -d | -s | -p ] [ -C cost ] [ -D ] [ -v ] passwdfile username

htpasswd -b [ -c ] [ -m | -B | -d | -s | -p ] [ -C cost ] [ -D ] [ -v ] passwdfile username password

htpasswd -n [ -i ] [ -m | -B | -d | -s | -p ] [ -C cost ] username

htpasswd -nb [ -m | -B | -d | -s | -p ] [ -C cost ] username password

1、htpasswd命令选项参数说明:

-c 创建一个加密文件

-n 不更新加密文件,只将htpasswd命令加密后的用户名,密码显示在屏幕上

-m 默认htpassswd命令采用MD5算法对密码进行加密

-d htpassswd命令采用CRYPT算法对密码进行加密

-p htpassswd命令不对密码进行进行加密,即明文密码

-s htpassswd命令采用SHA算法对密码进行加密

-b htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码

-D 删除指定的用户

2、htpasswd例子

(1)用htpasswd命令添加用户

[root@ren5 nginx]# htpasswd -bc .passwd ren001 123

#在当前目录下生成一个.passwd文件,用户名ren001,密码:123,默认采用MD5加密方式

(2)在原有密码文件中增加下一个用户

[root@ren5 nginx]# htpasswd -b .passwd ren002 456

[root@ren5 nginx]# cat .passwd

ren001:$apr1$Ln1ZsyVn$2hn3VFqP0L5tNA1UCSU8F.

ren002:$apr1$hCiMb9jc$Z.m7ZgOBCj0ISeIieTaVy/

#去掉c选项,即可在第一个用户之后添加第二个用户,依此类推

(3)不更新密码文件,只显示加密后的用户名和密码

[root@ren5 nginx]# htpasswd -nb ren002 456

ren002:$apr1$DT53A20W$YRS7p4j.1Wum9q0kG3OQv.

#不更新.passwd文件,只在屏幕上输出用户名和经过加密后的密码

(4)用htpasswd命令删除用户名和密码

[root@ren5 nginx]# htpasswd -D .passwd ren002

Deleting password for user ren002

[root@ren5 nginx]# cat .passwd

ren001:$apr1$Ln1ZsyVn$2hn3VFqP0L5tNA1UCSU8F.

(5)用 htpasswd 命令修改密码

[root@ren5 nginx]# htpasswd -D .passwd ren001

Deleting password for user ren001

[root@ren5 nginx]# htpasswd -b .passwd ren001 123456

Adding password for user ren001

Linux进阶之给nginx设置登录用户验证的更多相关文章

  1. SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法

    SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法 今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问 ...

  2. linux 下如何查看和踢除正在登陆的其它用户 ==>Linux下用于查看系统当前登录用户信息的4种方法

    在linux系统中用pkill命令踢出在线登录用户 由于linux服务器允许多用户登录,公司很多人知道密码,工作造成一定的障碍 所以需要有时踢出指定的用户 1/#who   查出当前有那些终端登录(用 ...

  3. Linux下用于查看系统当前登录用户信息 w命令

    作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动.有些时候,你甚至需要知道他(她)们正在做什么.本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法. 1. 使用w ...

  4. Linux下用于查看系统当前登录用户信息的4种方法

    1. 使用w命令查看登录用户正在使用的进程信息 w命令用于显示已经登录系统的用户的名称,以及他们正在做的事.该命令所使用的信息来源于/var/run/utmp文件.w命令输出的信息包括: 用户名称 用 ...

  5. 【linux命令】:查看当前登录用户的信息,本文介绍3种方法

    作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动.有些时候,你甚至需要知道他(她)们正在做什么.本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法. 1. 使用w ...

  6. kibana通过nginx配置访问用户验证

    背景: 现在搭建好了efk,其中kibana是可以在网页上访问的可视化工具,搭建好的kibana默认没有访问控制权限,任何人都能访问,这样存在一些安全隐患和隐私问题.这里我把设置的访问验证过程记录一下 ...

  7. SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法

    今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问题,一个DBA删除了Windows登录用户,而且SQLSERVER服务器的验证方式是Win ...

  8. Linux系统下强制踢掉登录用户

    1,利用who命令,找出用户登录的终端代号 who root     pts/0        2017-03-14 22:30 (223.1.1.1) root     pts/1        2 ...

  9. linux进阶之远程免密登录,动态添加磁盘及个别基础命令

    一. 免密登录(远程连接ssh) ssh IP   #连接登录到其它机 ssh 192.168.10.102 ssh IP "CMD"   #在其它机器上执行命令 yum -y i ...

随机推荐

  1. (九)Struts2模型驱动和属性驱动

    出于结构清晰的考虑,应该采用单独的Model实例来封装请求参数和处理结果,这就是所谓的模型驱动, 所谓模型驱动,就是使用单独的JavaBean来贯穿整个MVC流程. 所谓属性驱动,就是使用属性来作为贯 ...

  2. 6.4map用法

    map是映射也是常用的STL容器,可以将任何基本类型映射到任何的基本类型,如 map<char,int>mp 一.基本定义 map<typename,typename>mp; ...

  3. @Scheduled注解

    1 概述 @Scheduled注解是spring boot提供的用于定时任务控制的注解,主要用于控制任务在某个指定时间执行,或者每隔一段时间执行.注意需要配合@EnableScheduling使用,配 ...

  4. python程序—一键部署keepalived+lvs

    一个DS 两个RS keepalived端在/root下准备好已经修改好的配置文件 import paramiko # keepalived端 需要修改的信息 keepalived_ip='192.1 ...

  5. PostGIS管网连通性分析

    GIS在管网数据中的很重要的一个应用方向就是"管网空间分析",其中包括连通性分析.上下游分析.爆管分析等等.下面是我使用postgis来实现该"管网连通性分析" ...

  6. [Abp vNext 源码分析] - 18. 单元测试

    简介 ABP vNext 框架使用 xUnit 作为单元测试组件,官方的所有模块都编写了大量的 单元/集成测试 确保功能正常.由于 ABP vNext 模块化系统的原因,开发人员在建立单元测试项目的时 ...

  7. C#搞个跨平台的桌面NES游戏模拟器

    支持Windows,Mac,Linux    NES模拟器内核源码来自 https://github.com/colinvella/EmuNes   他这边的源码功能很完善了的,支持视频录制,手柄,金 ...

  8. 【C】EM卡韦根32/24格式卡号转换的实现

    写在前面 第八周实验报告的deadline马上就要到了,大家都在奋笔疾书.这次的实验报告中有一个十分秃然的任务,要求学生用C语言编写一段代码,来处理编码问题. 我的ddl是在第七周,所以较早地解决了这 ...

  9. 「跬步千里」详解 Java 内存模型与原子性、可见性、有序性

    文题 "跬步千里" 主要是为了凸显这篇文章的基础性与重要性(狗头),并发编程这块的知识也确实主要围绕着 JMM 和三大性质来展开. 全文脉络如下: 1)为什么要学习并发编程? 2) ...

  10. CVE-2018-0798:Microsoft office 公式编辑器 Matrix record 字段栈溢出漏洞调试分析

    \x01 前言 2018 年 1 月 9 日,Office 公式编辑器再曝出新漏洞,编号为 CVE-2018-0798.提起公式编辑器大家都不陌生,之前的 CVE-2017-11882 和 CVE-2 ...