溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Redis服務(wù)安全加固的說明

發(fā)布時間:2020-08-05 08:16:26 來源:網(wǎng)絡(luò) 閱讀:241 作者:mdadmmeng 欄目:系統(tǒng)運維
Redis(全稱:Remote Dictionary Server 遠(yuǎn)程字典服務(wù))是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。

漏洞描述

Redis 因配置不當(dāng)存在未授權(quán)訪問漏洞,可以被***者惡意利用。

在特定條件下,如果 Redis 以 root 身份運行,***可以給 root 賬號寫入 SSH 公鑰文件,直接通過 SSH 登錄受害服務(wù)器,從而獲取服務(wù)器權(quán)限和數(shù)據(jù)。一旦***成功,***者可直接添加賬號用于 SSH 遠(yuǎn)程登錄控制服務(wù)器,給用戶的 Redis 運行環(huán)境以及?Linux?主機(jī)帶來安全風(fēng)險,如刪除、泄露或加密重要數(shù)據(jù),引發(fā)勒索事件等。

受影響范圍

在 Redis 客戶端,測試Redis是否設(shè)置密碼:

root@kali:~#?redis-cli?-h?10.16.10.2
redis?10.16.10.2:6379>?keys?*
1)?"1"`

從登錄結(jié)果可以看出,該 Redis 服務(wù)對公網(wǎng)開放,且未啟用認(rèn)證。

修復(fù)方案

禁止監(jiān)聽在公網(wǎng)

指定 Redis 服務(wù)使用的網(wǎng)卡

默認(rèn)情況下,Redis 監(jiān)聽 127.0.0.1。如果僅僅是本地通信,請確保監(jiān)聽在本地。

這種方式可以在一定程度上緩解 Redis 未授權(quán)訪問的風(fēng)險(例外情況下,如果 Redis 以 root 用戶運行,***者借助已有的 webshell,就可以利用該 Redis 來反彈 shell 以實現(xiàn)提權(quán))。

在redis.conf文件中找到 # bind 127.0.0.1,將前面的 # 去掉,然后保存。

該操作需要重啟Redis 才能生效。

修改后只有本機(jī)才能訪問 Redis,也可以指定訪問源 IP 來訪問 Redis。

bind?192.168.1.100?10.0.0.1

修改默認(rèn)6379端口

port?6377

編輯文件redis的配置文件redis.conf,找到包含port的行,將默認(rèn)的6379修改為自定義的端口號,重啟`redis生效`

設(shè)置防火墻策略

如果正常業(yè)務(wù)中 Redis 服務(wù)需要被其他服務(wù)器來訪問,可以通過 iptables 策略,僅允許指定的 IP 來訪問 Redis 服務(wù)。

iptables?-A?INPUT?-s?x.x.x.x?-p?tcp?--dport?6379?-j?ACCEPT

賬號與認(rèn)證

設(shè)置訪問密碼:在 redis.conf中找到 requirepass字段,去掉其注釋,并在后面填上需要的密碼。Redis 客戶端也需要使用此密碼來訪問 Redis 服務(wù)。

打開 /etc/redis/redis.conf配置文件:

requirepass?www.dgstack.cn12332@@#$%@!%

確保密碼的復(fù)雜度,配置完畢后重啟服務(wù)即可生效。

服務(wù)運行權(quán)限最小化

使用root切換到redis用戶啟動服務(wù):

useradd?-s?/sbin/nolog?-M?redis?
sudo?-u?redis?//redis-server?//redis.conf

注意:該操作需要重啟 Redis 才能生效。

禁用或者重命名危險命令

隱藏重要命令:Redis 無權(quán)限分離,其管理員賬號和普通賬號無明顯區(qū)分。***者登錄后可執(zhí)行任意操作,因此需要隱藏以下重要命令:FLUSHDB, FLUSHALL, KEYS,PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME,DEBUG, 。

另外,在 Redis 2.8.1 及 Redis 3.x (低于 3.0.2) 版本下存在 沙箱逃逸漏洞,***者可通過該漏洞執(zhí)行任意 Lua 代碼。

下述配置將 config/flushdb/flushall 設(shè)置為空,即禁用該命令;也可設(shè)置為一些復(fù)雜的、難以猜測的名字。

rename-command?FLUSHALL?""
rename-command?FLUSHDB??""
rename-command?CONFIG???""
rename-command?KEYS?????""
rename-command?SHUTDOWN?""
rename-command?DEL?""
rename-command??""

然后重啟redis。

重命名為"" 代表禁用命令,如想保留命令,可以重命名為不可猜測的字符串,如:

rename-command?FLUSHALL?joYAPNXRPmcarcR4ZDgC

打開保護(hù)模式

redis默認(rèn)開啟保護(hù)模式。要是配置里沒有指定bind和密碼,開啟該參數(shù)后,redis只能本地訪問,拒絕外部訪問。

redis.conf安全設(shè)置:?#?打開保護(hù)模式?protected-mode?yes

安全補丁

定期關(guān)注最新軟件版本,并及時升級 Redis 到最新版,防止新漏洞被惡意利用。

排查病毒思路(挖礦病毒)

Redis服務(wù)安全加固的說明


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI