シェルスクリプトマガジン

最終回 不正アクセスを通知する

SSHに関する認証

 リモートからLinuxサーバーにアクセスする場合、「SSH」(Secure SHell)という通信を利用します。SSHによるログイン認証は、主に2種類あります。「パスワード認証」と、公開鍵と秘密鍵による「ホスト認証」です。ホスト認証は、公開鍵暗号方式を利用したとても堅牢性が高く、不正アクセスが難しいといえます。そこで、今回のシェルスクリプトではパスワード認証を対象とします。

 パスワード認証でログインに成功した場合は、次のようなログが残ります。この例では「linux」がユーザー名、「192.168.1.12」と「62399」がSSHでアクセスしてきたマシンのIPアドレス、ポート番号です。

 繰り返しアクセスして4回失敗すると、

のようなログが残ります。今回のシェルスクリプトでは、このようなものを不正アクセスとみなします。

 これらのログをうまく加工して通知を作成します。加工する際、IPアドレスからどこのドメイン付きホスト名や国名を調べて表示するようにします。

 通知するSNSは「LINE」にします。第9回の「グローバルIPアドレスを通知する」で紹介したようにLINE Notifyの「アクセストークン」を発行してください。