今日、redisに格納されているはずのデータが全て消え、crackit というキーが登録されていることを確認した。
該当キーのバリューを見ると、sshのキーと最後に crack@redis.io と、、、なんだこりゃ?
非常にまずいので調査してみると、redis 作者がセキュリティ問題としてあげていた。
http://antirez.com/news/96
恥ずかしいことに、他サーバからの接続試験で、結構前にIPアドレス制限を解放した時がある。
その後閉じてなかったようだ。
対処方法は2つある
① redis.conf の bind でIPを制限する(閉じる)
ローカルIPアドレスのみ接続できるように指定し、redisを再起動する
$ sudo vi /etc/redis/redis.conf
bind 127.0.0.1
$ sudo /etc/init.d/redis restart
② iptables でredisのポートを閉じる
redisのポートにアクセスできるIPアドレスのみ指定し、iptabelsを再起動する
$ sudo vi /etc/sysconfig/iptables
[IP帯域で許可する場合]
-A INPUT -p tcp -m tcp -s [接続させるIP帯域] –dport 6379 -j ACCEPT
[ポート閉塞する場合]
6397の行をコメントアウト(もしくは6379関連は記載しない)
$ sudo /etc/init.d/iptables restart
複数のサーバーから redis 接続を許可する場合 bind 設定を削除するか 0.0.0.0 と指定するが、この状態で iptables で制限をかけないとネット上で解放していることになる。(=redis を操作できてしまう)
今回は、iptables でIP帯域で制限しておきました。
しかし、恥ずかしい…
けど、気づかせてくれてありがとう。
2015/11/24追記
施行時の影響確認をこちらで検証しました