- 締切済み
サーバーを乗っ取られた
サーバーを乗っ取られた事がある方に質問です。 どんな失敗で何をやらかしましたか? 本人でなくても良いです。 VPS上のLinuxを乗っ取られました。 postgresqlの環境をセットアップしたくて、レンタルVPSの無料期間を利用し試しに構築してみました。 すると、僅か数時間で乗っ取られ、サーバーの管理者から連絡があり、サーバーを止められました。 VPSのOSはLinuxでした。 VPS上のpostgresqlをインストールして、DBやテーブルを作り、pgadmin3でPCから弄ったり、 ダンプを取ったり、取ったダンプをリストアしたり、 firewallを起動させて使えなくしたり、 firewallにpostgresqlの通信を許可したり、 環境構築を一通りやってそのまま放置したところ、翌日には乗っ取られていてサーバーを止められました。 原因は、postgresqlをインストールすると生成されるlinuxユーザー(postgres)のパスワードが脆弱だった事です。 いろんな操作を試したかっただけなので、パスワードはテキトーでした。 postgresとか、passwordとかそういう類のパスワードでした。 容易に推測され、 sshでログインされ、 postgresでパイソンで作ったマルウェアをインストールされ、 cronにマルウェアを起動するスケジュールを組まれていました。 サーバーの管理者から複数の入られていると教えられました、 lastコマンドでログイン履歴を見てみると、知らない複数のグローバルIPからログインされていました。 linuxユーザーのpostgres、ロールのpostgresともに複雑なパスワードにしなければ速攻でやられる事は分かりました。 そういった、ちょっとした不注意や安易な気持ちで乗っ取られた経験やあるあるパターンと対処法を教えて下さい。 なお、ただのディスは受け付けておりません。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- t_ohta
- ベストアンサー率38% (5238/13705)
> > リモートログイン出来ないように設定するべきでしたね。 > 方法としては /sbin/nologin で良いのですか? ユーザーのログインシェルを nologin にするのも手ですが、/etc/ssh/ssh_config に許可ユーザーを登録する方法もあります。 ローカルでのログインは許可してリモートだけ制限したいのであれば、SSH の設定で制限する方がいいでしょう。 > ちなみに、暗号鍵を使って認証する場合もパスコードを設定できますけど、「どうせこのファイル持ってる人しかアクセスできないから」と、パスコードをセットせずにやってるのですが、それに関してどう思いますか? 自分のPCにだけ秘密鍵があるのならお試しの場合はいいですが、実運用やサーバ間でのログインに使うなど秘密鍵の置場が複数になるのならパスフレーズは必ず付けた方がいいですね。
- t_ohta
- ベストアンサー率38% (5238/13705)
そもそも、SSHにIDとパスワードでログインできるようにする場合は、ログインできるユーザーを制限し、デーモン等に割り当てるユーザーはリモートログイン出来ないように設定するべきでしたね。 また、SSHはID/パスワードでは無く暗号鍵を使って認証する方式に限定するのが、最近のトレンドですね。
お礼
有難うございます。 > リモートログイン出来ないように設定するべきでしたね。 方法としては /sbin/nologin で良いのですか? > SSHはID/パスワードでは無く暗号鍵を使って認証する方式に限定するのが、最近のトレンドですね。 ですね。 ちょっと試す間ぐらい良いかと思って、面倒なのでやってませんでした。 ちなみに、暗号鍵を使って認証する場合もパスコードを設定できますけど、「どうせこのファイル持ってる人しかアクセスできないから」と、パスコードをセットせずにやってるのですが、それに関してどう思いますか?