使用nginx控制ElasticSearch訪問許可權

fallinjava發表於2019-03-28

介紹

由於ElasticSearch本身沒有許可權管理模組,只要獲取伺服器的地址和埠,任何人都可以隨意讀寫ElasticSearch的API並獲取資料,這樣非常不安全。所以本文就介紹一下如何規避這種問題,實現方式其實有幾種,本文將介紹使用nginx的basic_auth來控制的方式。

  • 好處 使用nginx的好處是輕便,不用涉及到Elasticsearch 或者 Kibana本身的配置上,
  • 壞處 可被暴力破解

環境

Centos 6.9 Elasticsearch 版本 6.4.0 Kibana 版本 6.4.0 Nginx 版本 1.11.6

安裝nginx

  1. 下載nginx
[root@localhost ~]# wget http://nginx.org/download/nginx-1.11.6.tar.gz
複製程式碼
  1. 解壓ngxin
tar -zxvf nginx-1.11.6.tar.gz 
複製程式碼
  1. 進入nginx目錄
cd nginx-1.11.6
複製程式碼
  1. 執行configure檢查配置
./configure
複製程式碼
4.1. 發現錯誤, 缺少 pcre 包
```
./configure: error: the HTTP rewrite module requires the PCRE library.
複製程式碼

You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre= option. ```

  1. 安裝pcre包
yum -y install pcre-devel
複製程式碼
  1. 再次執行configure檢查配置
./configure
複製程式碼
6.1 發現還缺少一個zlib的包
```
./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.
```
複製程式碼
  1. 安裝zlib包
 yum -y install zlib-devel
複製程式碼
  1. 執行configure
./configure
複製程式碼
  1. 執行make install
make install
複製程式碼
  1. 進入nginx目錄啟動nginx
cd  /usr/local/nginx/
複製程式碼

啟動nginx

./sbin/ngxin
複製程式碼

可以進入你的瀏覽器輸入你的ip地址看看是否能訪問

配置ngxin

下面就開始對ngxin的配置檔案做修改,修改/conf目錄下面的nginx.conf

vim conf/nginx.conf
複製程式碼

將裡面的

location / {
            root   html;
            index  index.html index.htm;
        }
複製程式碼

改成

location / {
            proxy_pass  http://0.0.0.0:5601;
            auth_basic "登陸驗證";
            auth_basic_user_file /usr/local/nginx/htpasswd;
        }
複製程式碼

然後使用htpasswd命令生成密碼檔案

[root@test102 conf.d]# htpasswd -cm /usr/local/nginx/htpasswd kibana     #/usr/local/nginx/htpasswd就是配置檔案裡面配置的密碼檔案,kibana就是使用者名稱
New password:     #輸入密碼
Re-type new password:     #再次輸入密碼,回車
Adding password for user crystal
複製程式碼

進入瀏覽器訪問你的ip,會讓你輸入使用者名稱和密碼才能進入kibana了

使用nginx控制ElasticSearch訪問許可權

輸入使用者名稱和密碼

使用nginx控制ElasticSearch訪問許可權

點選登陸就進入了kibana

使用nginx控制ElasticSearch訪問許可權

相關文章