行政書士事務所
ホーム>記事一覧 > ConoHa WINGでSSHからログを読みたい

ConoHa WINGでSSHからログを読みたい

富山市の市街地から見る立山連峰
富山市の市街地から見る立山連峰

webサイトのセキュリティを考えるうえで、ログを定期的に読んでおくことは大事なことです。

以前にも一度紹介したことがありますが、当サイトのようなアクセス数のそれほど多くないサイトでも、定期的に不審なアクセスが観測されています。
(とくに、WordPressのような動的サイトならなおさらです)

今回は、ConoHa WINGというレンタルサーバーで、SSH接続でログを確認する手順をまとめました。

1. コントロールパネルから秘密鍵を作成する

SSH接続をする場合、パスワードで認証する方法もあるようですが、一般的には秘密鍵を生成します。
今回接続するレンタルサーバーのConoHa WINGは、コントロールパネルから秘密鍵を生成できます。

詳しくは、ConoHaのヘルプ記事をご覧ください。

なお、秘密鍵(プライベートキー)は、絶対に流出させてはいけないものです。
また、誤って消してしまわないように、大切に保管できるディレクトリに移してください。

2. ~/.ssh/configファイルを作成する

次に、~/.ssh/ フォルダに、configファイルを作成します。

configファイルについても、作り方がネットにはたくさん載っているのですが、たとえば以下のような記事が参考になるかもしれません。

ConoHaで作る場合は、次のようなものになると思います。

Host 【覚えやすい名前】
  HostName 【ConoHaのホスト名】
  User 【ConoHaのユーザー名】
  IdentityFile 【秘密鍵のディレクトリとファイル名】
  Port 【ポート番号】

ホスト名やユーザー名、ポート番号などは、コントロールパネルに書いてあります。

3. ターミナルからSSH接続する

SSH接続のできるターミナルから、接続します。

わたしの事務所PCはWindowsなので、Windowsターミナルを使っています。
(以前、PowerShellを使っていたこともあるのですが、文字色が読みにくく、やめました)

ターミナルを立ち上げると、コマンドが打てるようになるので、以下を入力してエンターを押します。

ssh 【先ほど決めた覚えやすい名前】

ssh接続をするとき、最初の1回は「本当に接続して大丈夫?」というようなことが聞かれるので、yesを押します。

無事、ConoHaアカウントに接続できれば成功です。

4. linuxコマンドでログを読む

ConoHa WINGの場合(もしかしたらほかのサーバーも同様なのかもしれませんが)、~/logs/【独自ドメイン】/accesslog.【日付】.gz というファイルに、過去数日分のアクセスログが格納されています。

(※ エラーログやPHPのログも、その周囲にありますので、lsコマンドなどで探してください。)

gzファイルで、圧縮されているので、このままでは読みにくいです。
以下のような zcat コマンドで、展開してから使うと良いようです。

$ zcat ./logs/【独自ドメイン】/accesslog.【日付】.gz

わたしの場合は、grep "404" などで絞り込んでから、wc -l や、less コマンドで行数や一覧を表示させることが多いです。

具体例:

$ zcat ./logs/【独自ドメイン】/accesslog.【日付】.gz | grep "404" | wc -l
$ zcat ./logs/【独自ドメイン】/accesslog.【日付】.gz | grep "404" | less

定期的に知っておきたい情報は、cronで自動化して、抽出した情報を蓄積し、グラフにするようなこともできるかもしれません。(わたしはそこまではやっていませんが。)

まとめ

今回ご紹介した内容は、簡単なコマンドだけで利用できるので、おすすめです。

「PCを立ち上げるのすら面倒」という方には、あまりおすすめできない方法かもしれませんが、毎日PCを使う方であれば、最初に秘密鍵とconfigファイルさえ作ってしまえば、次の日からの作業は、コマンドを打つだけで済みます。

もちろん、コマンドを用いずに、ログを自動的に分析してくれるツールもあるとは思います。
けれども、だいたいの場合、お金もかかりますし、生のログ情報ではないので、見るときの切り口がある程度限られます。

今回ご紹介した方法なら、いくつかのコマンドを覚えておけば、あとは自分の好みによって、いろいろと変えられるので自由度が高いです。

お時間のある方は、お試しください。