知ってしまうと結構怖いレンタルサーバーの落とし穴
レンタルサーバーのイメージ
世間一般的にはレンタルサーバーは低価格ながら、機能も豊富で管理画面も分かりやすく、
知識なしで運用できることもあって便利なツールとして知られています。
事実弊社でも、さくらインターネットさんや、エックスサーバーさんなどをレンタルサーバーとして使っており、
クライアント案件向けに提供する事もございます。
なぜなら自社のレンタルサーバーは上位がスーパーOCNと1Gbpsの帯域で接続し、
以下のように全てが冗長構成でサーバー6台も使われているので原価がめっちゃ高いんですよね。
ロードバランサー x 2(冗長Active/Standby構成) ←ウェブサーバーが落ちたら自動切り替え用の機器
レンタルサーバー x 2(冗長構成 Active/Standby構成) ←サーバーが1台落ちても大丈夫にするため。
NFSストレージ x 2(DRBDによるActive/Standby冗長構成) ←両方からデータが参照できるようにNFS接続。飛んだら危険なので冗長にしています。
なので、毎月1000円でのサービス提供は原価割れが確定します(涙)
ところでここに挙げたNFSストレージの保守契約満了が近づいてきて、今日か明日には新しい機器が届く予定です。
今までSAS接続の15000回転ハードディスクでしたが、なんと次はSAS接続のオールSSDに変わります!
話が脱線しましたが、共有環境となるレンタルサーバーにおいて気をつけたいのは、
クラウドやVPSと異なり、複数のユーザーがログイン可能である点です。
そこで特にセキュリティには気をつけなければいけません。
具体的にどのようなリスクがあるのでしょうか?
メールアドレスの漏洩は防げません!
レンタルサーバーは多くの企業様によって使われていますが、
実は多くのサービスで、SSHログインが許可されており、
ps auxなど実行中のコマンドを参照すると、
他人のメールアドレスが取得し放題だったりする点に注意しなければいけません。
レンタルサーバーを提供している別のどこかの企業さんを煽ったりするつもりは毛頭ないですが、
ps auxコマンドを叩くとメールアドレスがバレバレなのは、個人的に嫌だな・・・と。
最初は取っ付きにくいものの、慣れればコンパネが使いやすいし、
低価格でデルの1Uサーバーを使われている某大手レンタルサーバー会社さん!って書くと特定されそうですが、
うちもお客さんに勧めてるくらいお世話になってるので、是非ご検討のほど宜しくお願いします。
実行中のコマンドで見えてしまうパスワードの注意点
前置きが長くなりましたが、実はここからがこの記事の本文です。
今ではGoogleが検索エンジンのスタンダードなので、Googleに聞けばどのような質問でも帰ってきます。
私も普段から大変お世話になっております。
知識不要でやりたい事を実現できるが故に、コピペでも私みたいななんちゃってエンジニアになる事ができます。
なので出回っている情報が安全かどうか確かめずに使ってしまうエンジニアも多いのではないでしょうか?
例えばデータベースをバックアップしたいという要望があったとしましょう。
毎日管理画面にログインして手作業でバックアップを取る・・・という手法は当然ながら非現実的なので、
「mysql 定期バックアップ」というキーワードでググってみると、cronでmysqldumpを取るのが一般的ですが、
よくある解説方法として、以下のような方法が紹介されていると思います。
多分この情報をコピペで使う方もいるのではないでしょうか?
mysqldump -u ユーザー名 –password=**パスワード** DB名 > バックアップ名.sql
でも実はこれ、先ほど紹介したps auxによりmysqldump以下が表示されてパスワードが丸見えって知っていました?
バックアップの心配から逃れるために
昨日はGitlabというバージョン管理のサービスが不要なデータを削除する操作を誤り、
実データを一部飛ばしてしまったニュースが流れていました。
うちのお客さんでもGitlabを使っていたのでドキッとしましたが、特に影響は出ていないようで良かったです。
人的ミスはどうしても付き物ですので、定期バックアップは欠かせません。
弊社でも、SLAに応じてローカル→リモート→(ディザスタ対策用に)別リージョンと使い分けて万が一の事態に備えており、
幸いリモートや別リージョンからデータを引っ張って巻き戻す事態は経験しておりませんが、
常日頃のオペレーションでバックアップよりも気をつけているのは、出回っている情報を鵜呑みにしない事です。
特にインフラは自動化される傾向が強く、ミスに気付くのは障害などのインシデントが起きてからになるためです。
ネットの情報は参考程度に、パスワードなどの重要な部分は自分でテストすることが重要です。
もし検索した情報に、意図的にデータを削除するような記述があったとしたら・・・誰が責任を取るのでしょうか?
参考までに先ほどのパスワードについては、以下のように個別指定することで、
パスワードを表示させずにバックアップを取ることが可能です。
もしパスワードが表示されて困っていらっしゃる方はお試しください。
mysqldump –defaults-file=**設定ファイル** DB名 > バックアップ名.sqlTweet