Linuxでサイトをつくる メールログ解析で攻撃者を追い出す

トップ ›  Linux

Linuxでサイトをつくる

メールログ解析で攻撃者を追い出す

2014年8月13日 

Webサーバーの場合、公開ページは不正アクセスの影響はそもそも公開なので、そうした問題は発生しませんが、非公開のページや、メールサーバーを持っていると、そのWebページやメールサーバーに対し不正アクセスをしようと試みる方達が少なからず居ます。

それを放置しておくと本当に不正アクセスが発生してしまう可能性があるので、事前にチェックし対象のIPをブロックしなければなりません。

当サイトは、非公開のWebページがないので、メールサーバーでその対処を見てみたいと思います。とはいうものの、メールも発信については、特定のIPアドレスからしか発信できないようになっているので、メールの発信についても不正アクセスの問題を抱えておりません。

ただ、受信メールについては、どこからでも見れるように制限を設けていないため、不正アクセスの標的にしようと、日々、色々、試みている方達が居ります。

どんな試みた形跡が残っているかというと、次のようなPOP3にアクセスを試みて失敗したログです。

Aug 10 14:25:01 main dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=, method=PLAIN, rip=94.102.63.160, lip=192.168.10.23
Aug 10 14:59:41 main dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=, method=PLAIN, rip=94.102.63.160, lip=192.168.10.23
Aug 10 14:59:42 main dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=, method=PLAIN, rip=94.102.63.160, lip=192.168.10.23
Aug 10 14:59:42 main dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=, method=PLAIN, rip=94.102.63.160, lip=192.168.10.23
Aug 11 03:11:39 main dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=, method=PLAIN, rip=94.102.63.160, lip=192.168.10.23
Aug 11 03:11:39 main dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=, method=PLAIN, rip=94.102.63.160, lip=192.168.10.23
Aug 11 03:11:39 main dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=, method=PLAIN, rip=94.102.63.160, lip=192.168.10.23
Aug 11 03:45:33 main dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=, method=PLAIN, rip=94.102.63.160, lip=192.168.10.23
Aug 11 03:45:33 main dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=, method=PLAIN, rip=94.102.63.160, lip=192.168.10.23
Aug 11 03:45:34 main dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=, method=PLAIN, rip=94.102.63.160, lip=192.168.10.23

まず、上記のような接続に失敗したログを多量のログからどうやって引っ張り出してくるかということが問題となります。一行づつみていたのでは日が暮れてしまいます。

そこで、Linuxはコマンドで色々な操作ができるので、コマンドを工夫するわけです。

まず、ターミナルに通常ユーザーでログインします。

次に「su 」 でルート権限に移行します。

[kanri@main ~]$ su
パスワード:
[root@main kanir]#

そうすることでメールログにアクセスが可能になります(通常ユーザーではアクセスできません)。

次に、「cat /var/log/maillog 」でコマンドを打つと、全てのログが表示されます。ただ、先ほども述べたとおり、肝心なログを引っ張ってこなければなりません。

そこで、「 | 」を使います。これを「パイプ」といいます。これでコマンドを区切ることによって、一行のコマンドの中でプログラムを組んだかのような挙動を作り出すことができます。

多数のログから絞り込むために「grep」コマンドを使いますが、そこで絞り込むキーワードが問題となります。

上記のログのように、まず、POP3のソフトの「dovecot」 、次に接続を切ったというメッセージの「Disconnecte」、ただし、接続に成功したログでもこのメッセージがあるので、次に「auth failed」というキーワードを使います。これらを「.*」を使って接続してやります。

cat /var/log/maillog | grep "dovecot.*Disconnected.*auth failed"

そうすると上記のようなログが返ってきて、 その挙動から94.102.63.160のIPアドレスが危険なことがわかります。

今度は、このIPの解析です。Webサイトで検索可能ですが、使用できないときは、「whois 」コマンドで調べることが可能です(インストール必要)。

[root@main kanri]# whois 94.102.63.160
[Querying whois.arin.net]
[Redirected to whois.ripe.net:43]
[Querying whois.ripe.net]
[whois.ripe.net]
% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf

% Note: this output has been filtered.
% To receive output for a database update, use the "-B" flag.

% Information related to 94.102.63.129 - 94.102.63.255

% Abuse contact for 94.102.63.129 - 94.102.63.255 is abuse@ecatel.net

inetnum: 94.102.63.129 - 94.102.63.255
netname: NL-ECATEL
descr: ECATEL LTD
descr: Dedicated servers
descr: http://www.ecatel.net/
country: NL        ←国名はここ
admin-c: EL25-RIPE
tech-c: EL25-RIPE
status: ASSIGNED PA
mnt-by: ECATEL-MNT
mnt-lower: ECATEL-MNT
mnt-routes: ECATEL-MNT
source: RIPE # Filtered

role: Ecatel LTD
address: P.O.Box 19533
address: 2521 CA The Hague
address: Netherlands
abuse-mailbox: abuse@ecatel.info
remarks: ----------------------------------------------------
remarks: ECATEL LTD
remarks: Dedicated and Co-location hosting services
remarks: ----------------------------------------------------
remarks: for abuse complaints : abuse@ecatel.info
remarks: for any other questions : info@ecatel.info
remarks: ----------------------------------------------------
admin-c: EL25-RIPE
tech-c: EL25-RIPE
nic-hdl: EL25-RIPE
mnt-by: ECATEL-MNT
source: RIPE # Filtered

% Information related to 94.102.48.0/20AS29073

route: 94.102.48.0/20
descr: AS29073 Route object
origin: AS29073
mnt-by: ECATEL-MNT
source: RIPE # Filtered

% This query was served by the RIPE Database Query Service version 1.74.1 (DB-4)

NL=オランダからなので、このままファイヤーウォールでブロックします。これが日本だった場合は、そのプロバイダに連絡してください。

その他、前述を応用して攻撃された回数を下記のようにカウントすることも可能です。

[root@main kanri]# find /var/log -type f -name "*maillog*" | xargs cat | grep "dovecot.*Disconnected.*auth failed" | awk -F , {print $4} | awk -F = {print $2} | sort | uniq -c | sort
1 151.250.30.24
72 94.102.63.160
261 213.98.2.36
[root@main kanri]#

以上