网站安全防护配置说明
环境搭建准备:
mkdir /html/www/dingcan
echo "ding can pingtai" > dingcan/index.html
mkdir /html/www/caiwu
echo "cai wu qingkuang" > caiwu/index.html
认证配置方法:
server {
listen 80;
server_name www.oldboy.com;
root /html/www;
index index.html index.htm;
location /caiwu {
auth_basic "oldboy69";
auth_basic_user_file /etc/nginx/htpasswd;
}
location /sa {
allow 10.0.0.0/24;
deny all;
}
}
创建密码文件:
htpasswd — 创建密文密码文件
yum install -y httpd-tools
创建密码文件并设置认证用户:
htpasswd -bc /etc/nginx/htpasswd oldboy oldboy123
扩展:(和这个搭建过程无关)
添加新的认证用户:
htpasswd -b /etc/nginx/htpasswd oldgirl oldgirl123
删除认证用户信息:
htpasswd -D /etc/nginx/htpasswd oldgirl
=================================================================================
ngx_http_auth_basic_module --- 网站页面基础认证模块
指令信息:
Syntax: auth_basic string | off; --- 是否开启认证功能
Default: auth_basic off;
Context: http, server, location, limit_except
Syntax: auth_basic_user_file file;
Default: —
Context: http, server, location, limit_except
配置样例:
location / {
auth_basic "oldboy69";
auth_basic_user_file conf/htpasswd;
auth_basic_user_file /conf/htpasswd;
相对路径:相对于/etc/nginx 去 /etc/nginx/conf/htpasswd
绝对路径: 去 /conf/htpasswd
}
=================================================================================
================================================================================
认证密码文件权限改为600出现的异常说明
错误状态码信息:
500 Internal Server Error
1. 配置文件中指定信息不正确 路径信息/权限信息
2. 网站代码信息加载有bug
用户浏览器 HTTP请求(admin) --> 将用户转换为worker进程用户 web服务器 ---> worker进程用户加载 认证文件权限(600)
================================================================================
错误状态码
401Authorization Required — 认证信息输入不正确
网站服务搭建存储服务
第一个历程: 在站点目录中创建共享资源目录信息
mkdir /html/www/{运维资料库,开发资料库,网络资料库}
touch /html/www/运维资料库/监控服务部署文档.pdf
touch /html/www/开发资料库/数据结构说明文档.doc
touch /html/www/网络资料库/网络结构说明文档.jpg
第二个历程: 编写配置文件信息
server {
listen 80;
server_name www.oldboy.com;
root /html/www;
index index.html index.htm;
autoindex on;
charset utf-8;
}
ngx_http_autoindex_module ---- 开启网页面索引功能
Syntax: autoindex on | off; --- 开启功能条件 站点目录中不能存在首页文件
Default: autoindex off;
Context: http, server, location
Syntax: charset charset | off;
Default: charset off;
Context: http, server, location, if in location
网站出现乱码信息:
方法一: (客户端调整)在谷歌浏览器安装插件,修改浏览器字符编码识别中文信息
方法二: (服务端调整)在配置文件中进行设置调整
mime.types --- 媒体资源配置文件
作用说明:
文件中定义的文件类型,可以识别为静态资源,在网站页面直接浏览访问
文件中未定义的文件类型,不可以识别为静态资源,需要下载之后利用其它软件识别
网站服务日志信息说明 错误日志/访问日志
服务错误日志: /var/log/nginx/error.log
Syntax: error_log file [level]; — 定义错误日志保存路径和错误级别
Default: error_log logs/error.log error;
Context: main, http, mail, stream, server, location
debug 调试级别 显示信息会最全
info 信息级别
notice 通知级别
-----------------------------------
warn 警告级别 错误信息不太严重 ***
error 错误级别 ***
crit 严重级别
alert 非常严重
emerg 灾难级别 显示日志信息较少
服务访问日志: /var/log/nginx/access.log
Syntax: log_format name [escape=default|json|none] string …;
Default: log_format combined “…”;
Context: http
Syntax: access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]]; access_log off;
Default: access_log logs/access.log combined;
Context: http, server, location, if in location, limit_except
$remote_addr --- 显示访问用户源IP地址信息
$remote_user --- 显示认证登陆用户名称信息 没有认证功能开启 会显示 -
$time_local --- 显示响应HTTP报文发送时间
$request --- 显示客户端HTTP请求行报文信息
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
$status --- 显示网站响应状态码信息
$body_bytes_sent --- 响应主体内容流量信息(字节表示)
$http_referer --- 和优化有关日志信息(盗链有关???)
$http_user_agent --- 识别客户端浏览软件信息
$http_x_forwarded_for --- 和反向代理负载均衡有关 ???
nginx内置变量信息参考: http://nginx.org/en/docs/varindex.html
网站服务状态模块配置
分析网站服务访问情况,快速收集用户访问网站情况
ngx_http_stub_status_module
stub_status — 开启模块功能
location = /basic_status {
stub_status;
}
显示状态模块信息
Active connections: 2
server accepts handled requests
2 2 1
Reading: 0 Writing: 1 Waiting: 1
Active connections: 网站并发访问连接数信息(实时统计)
accepts: 接收请求用户连接数量 (累加值) 1万
handled: 处理请求用户连接数量 (累加值)
requests: 发送请求报文数量信息 (累加值)
Reading: 正在读取请求报文数量 20数值
Writing: 正在响应请求报文数量 20数值
Waiting: 有等待处理报文数量 20数值
以上页面需要需要由监控软件进行自动监控管理