SSH付き共用サーバーでパスワードを漏洩してしまう危険性

ssh-ps-aux
  • URLをコピーしました!

当サイトでも利用しているエックスサーバーは、共用サーバーにもかかわらずSSHが使えることで大変便利なのですが、あるコマンドを実行すると共有しているサイトの情報が見えてしまいます。
これらの情報を基にパスワードが予測できるだけならまだしも、実行中のプロセスによっては、ユーザー名パスワードなどが平文で表示されてしまうのです。
普段から専用サーバーに慣れている方には、以外な盲点ではないでしょうか?

目次

共用サーバーの落とし穴

その悪魔のようなコマンドがこちら!
(本当は、ただ実行中のプロセスを一覧で表示するだけの便利なコマンドですw)

これは本来、現在実行中のプロセスを表示するコマンドなのですが、共用サーバーの場合、サーバーを共有している全てのユーザーが実行しているプロセスが表示されるのです。

データベースのバックアップ中

エックスサーバーバックアップしてくれているのですが、復元しようとすると有料になってしまいます。
そこで、自分でバックアップをしているのですが、私が最も気になったのが、データベースバックアップ中に接続するユーザー名パスワードが見えてしまうことです。

もし、SSHを利用できる共有サーバで、この記事をそのまま真似をした方がいらっしゃるのなら、早急に書き換えることをオススメします。

設定ファイルを作成する

実行中のプロセスパスワード等を平分で表示させないためには、コマンドで別に設定ファイルを読み込ませることで回避できます。
実行したいコマンドによりますが、ここでは[mysqldump]コマンドを例に説明します。

パスワードが漏洩する書き方

まずは以前の記事で紹介しました、絶対にやってはいけない書き方をおさらいしておきます。

このように書いて実行すると、実行中にこの一文がそのまま表示され、ホスト名データベース名だけでなく、ユーザー名パスワードがそのまま丸見えになってしまいます。
実行されている場合のみですが、バックアップする時間帯はだいたい夜中だと相場が決まっているので、ある程度予測が立ってしまいます。

余談ですが、mysqldumpのよく使うオプションについては以下をご参照ください。

あわせて読みたい
停止せずにMySQLバックアップ!mysqldumpベストオプション データベースのバックアップって、いつも考えさせられますよね。きっちりフルバックアップしたいなら、停止してデータディレクトリごとバックアップするのがベターだと...

設定ファイルで実行する書き方

では、どのように回避するかをご紹介します。
mysqldumpコマンドには、設定ファイルを読み込む[–defaults-file]オプションがあります。
ファイルに接続先ホスト名やユーザー名、パスワードを記載しておき、その設定ファイルを使ってバックアップする方法です。
まずは設定ファイルを作ります。

設定ファイル作成「bk.cnf(例)」

次に、[–defaults-file]オプションを使って設定ファイルのファイルパスを指定します。

バックアップ用シェルスクリプト

以上、これでまた安心して眠れますね。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次