使用滴滴雲DC2,在CentOS7安裝Redis並進行安全加固

java06051515發表於2018-11-13

簡介

Redis是開源的記憶體資料庫,並以其良好的靈活性、效能、可擴充套件性與相容性著稱。

Redis本身被設計成客戶端授信的環境下進行訪問,服務本身並沒有強大的安全功能。但是也具有一些關於安全的基本功能,包括訪問密碼、命令的重新命名與遮蔽等能力。本教程提供瞭如何配置這些安全功能的說明,並且包含CentOS7上能夠為Redis提供的安全特性。

請注意,本文件不涉及分散式與跨地域的Redis叢集。

環境準備

本教程使用滴滴雲DC2環境進行部署,不同環境部署可能略有不同。

安裝Redis

以yum方式安裝CentOS7支援的Redis預設版本(如需其他版本則需要從redis.io進行下載):

$ sudo yum install redis -y

整個操作過程使用預設使用者即dc2-user進行操作

完成安裝後,啟動Redis服務:

$ sudo systemctl enable redis

如需在系統啟動時啟動Redis服務,可執行如下命令:

$ sudo systemctl enable redis

執行如下命令,檢視Redis服務狀態:

$ sudo systemctl status redis.service

輸出內容如下:

● redis.service - Redis persistent key-value database

   Loaded: loaded (/usr/lib/systemd/system/redis.service; disabled; vendor preset: disabled)

  Drop-In: /etc/systemd/system/redis.service.d

           └─limit.conf

   Active: active (running) since Thu 2018-11-08 17:20:58 CST; 15s ago

 Main PID: 21637 (redis-server)

   CGroup: /system.slice/redis.service

           └─21637 /usr/bin/redis-server 127.0.0.1:6379

Nov 08 17:20:58 10-255-20-202 systemd[1]: Starting Redis persistent key-value database...

Nov 08 17:20:58 10-255-20-202 systemd[1]: Started Redis persistent key-value database.

一旦確認服務已啟動,可使用如下命令進行測試:

$ redis-cli ping

螢幕中會輸出 PONG ,表示服務已執行,接下來我們就可以配置安全選項了。

繫結Redis訪問地址

開啟Redis配置檔案並進行編輯:

$ sudo vi /etc/redis.conf

找到以bind開頭的行,並在下面加入如下內容:

bind 127.0.0.1

強烈建議此處只新增私有地址,新增共有地址會增加額外的風險。如果你需要繫結其他地址,可在IP後加空格和其他IP地址。

配置Redis密碼

再次開啟Redis配置檔案:

$ sudo vi /etc/redis.conf

游標移動到SECURITY章節,找到如下注釋內容:

# requirepass foobared

透過移除‘#’,並將foobared修改成更為安全的密碼,比如使用sha256sum對簡單密碼進行加密:

$ echo "didicloud" | sha256sum

將輸出結果修改到配置檔案中並重啟服務:

$ sudo systemctl restart redis.service

現在來測試下是否需要密碼進行登入:

$ redis-cli

127.0.0.1:6379> set key1 10

顯然,這時候需要密碼才能夠正常操作了,那麼首先需要進行認證:

127.0.0.1:6379> auth your_redis_password

Redis會返回 OK,此時表示已經認證成功,可繼續上面的資料操作:

127.0.0.1:6379> set key1 10

OK

127.0.0.1:6379> get key1

"10"

退出Redis命令列,可執行如下命令:

127.0.0.1:6379> quit

對危險命令進行重新命名

Redis的另一個內建的安全機制,允許將危險命令進行重新命名或者完全禁用,已防止未授權使用者使用命令擦除或銷燬資料。

危險命令包含如下:

FLUSHDB

FLUSHALL

KEYS

PEXPIRE

DEL

CONFIG

SHUTDOWN

BGREWRITEAOF

BGSAVE

SAVE

SPOP

SREM

RENAME

DEBUG

以上並不是一個完善的清單,但是從如上命令進行重新命名或禁用是一個很好的開始。

重新開啟Redis的配置檔案

sudo vi  /etc/redis.conf

透過配置一個重新命名空值來禁用命令

rename-command FLUSHDB ""

rename-command FLUSHALL ""

rename-command DEBUG ""

透過配置一個新的名稱來給命令重新命名:

rename-command SHUTDOWN SHUTDOWN_MENOT

rename-command CONFIG ASC12_CONFIG

配置好之後重啟服務:

$ sudo service redis-server restart

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559758/viewspace-2219853/,如需轉載,請註明出處,否則將追究法律責任。

相關文章