Redisのパスワード設定とアクセス制限(ネットワークセキュリティ)

現在では、ホット データをキャッシュするために Redis を使用することがますます一般的になっており、一部の構成やスイッチなども Redis で記述されています。その理由は、redis がシンプルで効率的だからです。Redis 上のデータの重要性はますます高まっており、たとえば一部の業務中間データは一時的に Redis に保存されるため、引き続き Redis へのアクセスを制限する必要があります。

この記事では、実稼働環境における Redis のアクセス制御について説明するために、いくつかの手段を使用します。

1.ネットワークカードのバインド

Redis 構成ファイル redis.conf のネットワークセキュリティ部分にそのような段落があります。

################################## 通信網 ############### ###################### 

# デフォルトでは、「bind」設定ディレクティブが指定されていない場合、Redis は
# サーバー上で利用可能なすべてのネットワーク インターフェイスからの接続をリッスンします
# 「bind」設定ディレクティブとそれに続く 1 つ以上の IP アドレスを
使用して、選択した 1 つまたは複数のインターフェイスだけをリッスンすることができます。
# 
# ~~~ 警告 ~~~ Redis を実行しているコンピューターが
# インターネットに直接公開されている場合、すべてのインターフェイスへのバインドは危険であり、
# インスタンスがインターネット上のすべての人に公開されることになります。したがって、デフォルトでは # に続くバインド ディレクティブのコメントを解除します
。これにより、Redis は強制的にのみリッスンします。
したがって、デフォルトでは# IPv4 ルックバック インターフェイス アドレスのコメント
# IPv4 ルックバック インターフェイス アドレス (これは、Redis が #実行しているのと同じコンピューター内で実行されているクライアントからの接続のみを # 受け入れることが
)。

この一節の意味は、bind の深い意味を明らかにします。bind は、redis インスタンスがどのインターフェイスにバインドされているかを意味し、どのネットワーク カードにバインドされているかと理解できます。では、ネットワーク カードは何枚あるでしょうか? 見てみることができます。

$ ifconfig 
eth0 リンク encap:イーサネット HWaddr 6C:92:BF:22:D7:FC   
          inet addr:10.93.84.53 Bcast:10.93.84.127 マスク:255.255.255.128 

lo リンク encap:ローカル ループバック  
          inet addr:127.0.0.1 マスク:255.0 .0.0

ここには 2 つあり、1 つは eth0 イーサネット カード (10.93.84.53)、もう 1 つはローカル ループ lo (127.0.0.1) です。

その場合、次の 2 つの状況が考えられます。

1) バインド 10.93.84.53 #同じネットワークセグメント上のすべてのホストが Redis に接続できます

2) 127.0.0.1 #local ループをバインドすると、redis インスタンスが配置されているホストのみが redis にアクセスできます。

ニーズに応じて使用できます。

1) マシンがインターネットに直接公開されている場合は、バインドを 127.0.0.1 に慎重に設定する必要があります。そうしないと、Redis がすべての外部攻撃にさらされることになります。

2) 運用環境にいる場合は、通常、他のホストも Redis にアクセスできるようにネットワーク カードに接続する必要があります。その後、Redis データのセキュリティを確保する他の方法がいくつかあります。

2.パスワードrequirepassを設定します

パスワードを設定した後、redis.confにそのような構成があります。

#requirepass <パスワード>
必須パス マイパス

Redis サービスを再起動した後、クライアントはパスワードを使用して Redis にアクセスする必要があります

# パスワードは正しいです
$ redis-cli -h 10.93.84.53 -p 6379 -a mypass ping 
PONG
# パスワードエラー
$ redis-cli -h 10.93.84.53 -p 6379 -a hehe ping 
(error) NOAUTH 認証が必要です。

3. nologin はアカウント権限を削減します

低い特権のアカウントで Redis サービスを実行し、アカウントのログイン権限を無効にします。さらに、攻撃者は機密ファイルの書き込みを制限できますが、Redis データは依然としてハッカーによってアクセスされたり、ハッカーによって悪意をもって削除されたりする可能性があります。

Linux ユーザーのログインを禁止する方法は、一般に、ユーザーのシェル タイプを /sbin/nologin に変更することです。
この方法は、ユーザーのログインを禁止できるだけでなく、ログインを求めるプロンプトを表示できるため、より人道的です。ログインが無効になっているときにその理由を伝えます。
/etc/nologin.txt を変更し、存在しない場合は手動で新しいものを作成し、その中に禁止されたユーザーへのリマインダーを追加します (このようにしてすべてのユーザーのロック情報がこのファイルにあり、リマインダーが表示されます)ログイン時)。

実際には、/etc/passwd ファイルの /bin/bash を /sbin/nologin に変更します。

[root@host-192-168-1-117 ~]# useradd wangshibo 
[root@host-192-168-1-117 ~]# echo "123456"|passwd --stdin wangshibo
ユーザー wangshibo のパスワードを変更します。
passwd: すべての認証トークンが正常に更新されました。
[root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo 
wangshibo:x:500:500::/home/wangshibo:/bin/bash 
[root@host-192-168- 1-117 ~]# sed -i 's#/home/wangshibo:/bin/bash#/home/wangshibo:/sbin/nologin#g' /etc/passwd [root@host- 
192-168-1-117 ~]# cat /etc/passwd|grep wangshibo 
wangshibo:x:500:500::/home/wangshibo:/sbin/nologin 

[root@host-192-168-1-117 ~]# touch /etc/nologin. txt 
[root@host-192-168-1-117 ~]# cat /etc/nologin.txt
システムのセキュリティを保護するため、このタイプのユーザーはロックされています。

4. iptables はファイアウォールを設定します

運用環境でもファイアウォールを設定する必要があります。通常の業務で他のサーバーから Redis サービスにアクセスする必要がある場合は、指定した IP のみが Redis サービスにアクセスできるように iptables ポリシーを設定できます。

Redis インスタンスが配置されているホストで、次のコマンドを実行します。

# iptables rules で設定されたルールを表示
$ iptables -nL --line-number 
# すべてのホストがこのマシンのポート 6379 にアクセスすることを禁止
$ iptables -I INPUT -p TCP --dport 6379 -j DROP 
# 次のマシンを開きます -s仕様では、これらのマシンはローカル ポート 6379 にアクセスできます
$ iptables -I INPUT -s 10.93.21.21 -p tcp --dport 6379 -j ACCEPT 
$ iptables -I INPUT -s 10.93.18.34 -p tcp --dport 6379 -j ACCEPT 
$ iptables -I INPUT -s 10.93.18.35 -p tcp --dport 6379 -j ACCEPT 
$ iptables -I INPUT -s 10.93.84.53 -p tcp --dport 6379 -j ACCEPT 
# iptables 設定を保存
$ service iptables save 
iptables:ファイアウォール ルールを /etc/sysconfig/iptables に保存しています:[ OK ] 
# ファイアウォールを再起動します
$ service iptables restart 
iptables: ポリシーへのチェーンの設定 ACCEPT: filter [ OK ]
iptables: ファイアウォール ルールのフラッシュ: [ OK ] 
iptables: モジュールのアンロード: [ OK ] 
iptables: ファイアウォール ルールの適用: [ OK ]

設定が成功すると、構成された 4 台のマシンのみが Redis インスタンスにアクセスできるようになります。

おすすめ

転載: blog.csdn.net/dexi113/article/details/131596287