意外と知らない!?SSH付き共用サーバーの危険な落とし穴


ssh-ps-aux

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


共用サーバーの落とし穴

その悪魔のようなコマンドがこちら!

ps aux

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

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

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

当サイトでも毎度お馴染みのエックスサーバー。実は、MySQLデータベースのバックアップを自動で取っているとのこと。さすが!これで何か問題が起こっても安心安心...と高を括ってたら、思わぬ落とし穴が!バックアップデータを貰うための手数料が高いこと。エックス...
エックスサーバーでMySQLデータベースを自動バックアップする方法 - Minory
もし、SSHを利用できる共有サーバで、この記事をそのまま真似をした方がいらっしゃるのなら、早急に書き換えることをオススメします。

設定ファイルを作成する

ダメな書き方

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

mysqldump -h[ホスト名] -u[ユーザー名] -p[パスワード] [データベース名] > ~/backup/dump_$(date +%y%m%d).sql

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

良い書き方

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

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

[client]
host=[ホスト名]
user=[ユーザー名]
password=[パスワード]

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

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

mysqldump --defaults-file=~/path/to/bk.cnf db_name1 > ~/path/to/db_name1_$(date +%y%m%d).sql
mysqldump --defaults-file=~/path/to/bk.cnf db_name2 > ~/path/to/db_name2_$(date +%y%m%d).sql

参考サイト

スペース・アイ株式会社、および株式会社みどりは名古屋市のシステム開発、ソフトウェア開発、Webコンサルティングを行う会社です。
知ってしまうと結構怖いレンタルサーバーの落とし穴|スペース・アイ株式会社 - www.space-i.com

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



コメント

このブログの人気の投稿

Linuxでファイルの改行コードLF⇔CRLFを変換する方法

RHEL 7でスタティック(静的)ルートを追加する4つの方法

UTF-8のBOM付きとBOMなしを変換する方法(Linux)