Redisパスワード設定とアクセス制限(ネットワークセキュリティ)
9384 ワード
今ではredisでホットデータをキャッシュするのがますます一般的になり、いくつかの構成、スイッチなどのものもredisに書かれています.なぜならredisが簡単で効率的だからです.redisのデータもますます重要になってきています.例えば、一部のビジネスの中間データはredisに一時的に格納されるので、redisのアクセスを制限する必要があります.
本稿では,生産環境におけるredisのアクセス権限制御についていくつかの手段で述べる.
1、バインドNIC bind
redisのプロファイルredis.confではサイバーセキュリティ部分について
この話の意味はbindの深い意味を示しています:bindの意味はあなたのredisインスタンスがどのinterfaceにバインドされているかを意味して、どのネットカードにバインドされているかを理解することができます.では、ネットカードはいくつありますか?ちょっと見てもいいです.
ここでは2つ、1つはeth 0イーサネットカード(10.93.84.53)、1つはローカルループlo(127.0.0.1)です.
2つのケースがあります
1)bind 10.93.84.53#同じセグメントのすべてのホストがredisに接続できる
2)bind 127.0.0.1#ローカルループでは、redisインスタンスが存在するホストのみがredisにアクセスできます.
必要に応じて使用できます.
1)もしあなたの機械が直接インターネットに露出しているならば、bindを127.0.0.1に慎重に設定しましょう.そうしないと、あなたのredisを外部のすべての攻撃に暴露することに相当します.
2)再生産環境では、他のホストもredisにアクセスできるようにネットワークカードに縛る必要があります.redisデータの安全を保証する方法はいくつかあります.
2、パスワードの設定requirepass
redis.confにはこのような構成があり、パスワードを設定した後.
Redisサービスを再起動すると、クライアントはパスワードでredisにアクセスする必要があります.
3、nologinアカウント権限を下げる
Redisサービスは、権限の低いアカウントで実行され、そのアカウントのログイン権限は無効になります.また、攻撃者が機密にファイルを書き込むことを制限することができますが、Redisデータはハッカーにアクセスされたり、ハッカーに悪意を持って削除されたりすることができます.
Linuxユーザーのログインを禁止する方法は、一般的にユーザーのshellタイプを/sbin/nologinに変更する方法がより人間的になります.ユーザーのログインを禁止するだけでなく、ログインを無効にするときにその理由をヒントにすることができます.変更/etc/nologin.txt,なければ手動で新規作成し,禁止されているユーザへのヒントを追加する(この方式のすべてのユーザのロック情報はこのファイルにあり,ログイン時にヒントを与える).
実は/etc/passwdファイルの/bin/bash対応を/sbin/nologinに変更します
4、iptablesファイアウォールの設置
生産環境にファイアウォールを設置する必要があります.通常のビジネスでRedisサービスが他のサーバによってアクセスされる必要がある場合、iptablesポリシーは指定されたIPのみがRedisサービスにアクセスできるように設定できます.
redisインスタンスが存在するホストで、次のコマンドを実行します.
設定に成功すると、構成された4台のマシンだけがredisインスタンスにアクセスできます.
転載先:https://www.cnblogs.com/kangoroo/p/7279401.html
本稿では,生産環境におけるredisのアクセス権限制御についていくつかの手段で述べる.
1、バインドNIC bind
redisのプロファイルredis.confではサイバーセキュリティ部分について
################################## NETWORK #####################################
# By default, if no "bind" configuration directive is specified, Redis listens
# for connections from all the network interfaces available on the server.
# It is possible to listen to just one or multiple selected interfaces using
# the "bind" configuration directive, followed by one or more IP addresses.
#
# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
# internet, binding to all the interfaces is dangerous and will expose the
# instance to everybody on the internet. So by default we uncomment the
# following bind directive, that will force Redis to listen only into
# the IPv4 lookback interface address (this means Redis will be able to
# accept connections only from clients running into the same computer it
# is running).
この話の意味はbindの深い意味を示しています:bindの意味はあなたのredisインスタンスがどのinterfaceにバインドされているかを意味して、どのネットカードにバインドされているかを理解することができます.では、ネットカードはいくつありますか?ちょっと見てもいいです.
$ ifconfig
eth0 Link encap:Ethernet HWaddr 6C:92:BF:22:D7:FC
inet addr:10.93.84.53 Bcast:10.93.84.127 Mask:255.255.255.128
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
ここでは2つ、1つはeth 0イーサネットカード(10.93.84.53)、1つはローカルループlo(127.0.0.1)です.
2つのケースがあります
1)bind 10.93.84.53#同じセグメントのすべてのホストがredisに接続できる
2)bind 127.0.0.1#ローカルループでは、redisインスタンスが存在するホストのみがredisにアクセスできます.
必要に応じて使用できます.
1)もしあなたの機械が直接インターネットに露出しているならば、bindを127.0.0.1に慎重に設定しましょう.そうしないと、あなたのredisを外部のすべての攻撃に暴露することに相当します.
2)再生産環境では、他のホストもredisにアクセスできるようにネットワークカードに縛る必要があります.redisデータの安全を保証する方法はいくつかあります.
2、パスワードの設定requirepass
redis.confにはこのような構成があり、パスワードを設定した後.
#requirepass
requirepass mypass
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 Authentication required.
3、nologinアカウント権限を下げる
Redisサービスは、権限の低いアカウントで実行され、そのアカウントのログイン権限は無効になります.また、攻撃者が機密にファイルを書き込むことを制限することができますが、Redisデータはハッカーにアクセスされたり、ハッカーに悪意を持って削除されたりすることができます.
Linuxユーザーのログインを禁止する方法は、一般的にユーザーのshellタイプを/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
Changing password for user wangshibo.
passwd: all authentication tokens updated successfully.
[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
In order to protect the system security, this type of user is locked!
4、iptablesファイアウォールの設置
生産環境にファイアウォールを設置する必要があります.通常のビジネスでRedisサービスが他のサーバによってアクセスされる必要がある場合、iptablesポリシーは指定されたIPのみがRedisサービスにアクセスできるように設定できます.
redisインスタンスが存在するホストで、次のコマンドを実行します.
# iptables
$ 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: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
#
$ service iptables restart
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
設定に成功すると、構成された4台のマシンだけがredisインスタンスにアクセスできます.
転載先:https://www.cnblogs.com/kangoroo/p/7279401.html