本配置實現Nginx認證登錄以免重要信息暴露在公網
日志收集ELK展示工具kibana免費版不支持密碼驗證,需要設置Nginx反向代理然后關閉kibana默認端口5601使用Nginx端口登錄進行用戶名及密碼認證
首先設置nginx反向代理kibana
nginx.conf
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format access_log_json '{"user_ip":"$http_x_forwarded_for","lan_ip":"$remote_addr","log_time":"$time_iso8601","user_rqp":"$request","http_code":"$status","body_bytes_sent":"$body_bytes_sent","req_time":"$request_time","user_ua":"$http_user_agent"}'; sendfile on; keepalive_timeout 65; include conf.d/*.conf; }
在文件夾conf.d下面新建兩個配置文件http-www.conf
server { listen 81; server_name localhost; auth_basic "User Authentication"; auth_basic_user_file /opt/nginx/conf/conf.d/kibana.passwd; access_log /data/logs/nginx/http-access.log access_log_json; location / { proxy_set_header Host $host; proxy_set_header x-for $remote_addr; proxy_set_header x-server $host; proxy_set_header x-agent $http_user_agent; proxy_pass http://kibana; } }
upstream.conf
upstream kibana { server 127.0.0.1:5601; }
使用密碼工具生產密碼文件
htpasswd -c kibana.passwd admin
用戶名為admin需要連續輸入兩遍密碼
如果沒有htpasswd命令使用以下命令安裝
yum install httpd-tools
生成的密碼文件用戶名是明文,密碼為加密格式
修改配置文件http-www.conf添加認證
server { listen 81; server_name localhost; auth_basic "User Authentication"; auth_basic_user_file /opt/nginx/conf/conf.d/kibana.passwd; access_log /data/logs/nginx/http-access.log access_log_json; location / { proxy_set_header Host $host; proxy_set_header x-for $remote_addr; proxy_set_header x-server $host; proxy_set_header x-agent $http_user_agent; proxy_pass http://kibana; } }
在web界面登錄需要輸入用戶名和密碼