问题一:
因为nginx默认情况下是不允许目录中的文件以列表形式来显示的;如果经常用过nginx的人都会明白这一点,也是为了安全着想;但总有些时候我们是需要把文件列出来的,对吗?
1、目录列表(directory listing)
nginx让目录中的文件以列表的形式展现只需要一条指令:
autoindex on;
autoindex可以放在location中,只对当前location的目录起作用。
你也可以将它放在server指令块则对整个站点都起作用。
或者放到http指令块,则对所有站点都生效。
下面是一个简单的例子:
- server {
- listen 80;
- server_name domain.com www.domain.com;
- access_log /var/...........................;
- root /path/to/root;
- location / {
- index index.php index.html index.htm;
- }
- location /somedir {
- autoindex on;
- }
- }
问题二:
有时候服务器会报这种漏洞:管理后台对外,意思就是,互联网上的任何人都可以访问这个文件,其实,任何人访问这个文件这是很正常的,但是有些后台的东西肯定是不允许任何人去访问的对吗?比如说:日志文件......想要避免这个问题,我们就需要禁止访问或者是以用户密码的方式来访问;
如果你想服务器其它的目录文件也达到这样的效果,原理是一样的;
2、nginx禁止访问某个目录
跟Apache的Deny from all类似,nginx有deny all指令来实现。
禁止对叫dirdeny目录的访问并返回403 Forbidden,可以使用下面的配置:
- location /dirdeny {
- deny all;
- return 403;
- }
问题三:
有时我们web服务器上的某个文件夹只允许特定人员访问,又应该怎么办?这时我们需要在nginx配置文件中配置该文件夹的访问权限。
3、在nginx中我们使用htpasswd来生成用户名单
3.1、下载这个python文件:
http://trac.edgewall.org/export/10770/trunk/contrib/htpasswd.py (nginx wiki里推荐的)
3.2、运行步骤:
chmod 777 htpasswd.py
./htpasswd.py -c -b htpasswd username password
-c为生成文件;htpasswd为文件名;username为用户名;password为密码;
nginx 的 http auth basic 的密码是用 crypt(3) 加密的
3.3、我们把生成的htpasswd文件放到/etc/nginx目录中,修改权限chmod 400 htpasswd来保护一下该文件。
3.4、修改nginx配置文件
- server {
- server_name www.domain.com;
- root /usr/share/nginx/html;
- location /devdoc {
- autoindex on;#显示文件列表
- index index.html index.htm;#默认首页
- charset utf-8;#编码
- auth_basic "Restricted";#访问权限类型
- auth_basic_user_file /etc/nginx/htpasswd;#用户名单
- }
- }
3.5、重启nginx,并访问: www.domain.com/devdoc则会做如下提示:
详细说明:
ngx_http_auth_basic_module模块实现让访问时,只有输入正确的用户密码才允许访问web内容。web上的一些内容不想被其他人知道,但是又想让部分人看到。
nginx的http auth模块以及Apache的 http auth都是很好的解决方案。
默认情况下nginx已经安装了ngx_http_auth_basic_module模块,如果不需要这个模块,可以加上 --without-http_auth_basic_module 。
nginx basic auth指令
语法: auth_basic string | off;
默认值::auth_basic off;
配置段: http, server, location, limit_except
默认表示不开启认证,后面如果跟上字符,这些字符会在弹窗中显示。
auth_basic_user_file指令
语法::auth_basic_user_file file;
默认值:—
配置段: http, server, location, limit_except
2017年09月28日 17:22:32 沙发
很不错,有时候的确不想外面人访问,而且有些文件也有需要保密。