DenyHosts から SSHD アクセスに失敗した IP アドレスを拒否リストに自動登録したよ!というメールをいただきました♪
実際にどのような様子なのか、ノートしたいと存じます♪
拒否されたことを確認するポイント
- /etc/hosts.deny に拒否した IP アドレスが記述されている
- /var/log/secure に refused connect from 111.111.111.111 などと IP アドレスからの接続を拒否するログが残っている
最初に、/etc/hosts.deny に IP アドレスを登録したよ!というメールが DenyHosts から届きました
タイトル DenyHosts Report from oki2a24.com
本文
Added the following hosts to /etc/hosts.deny:
106.185.49.171 (li764-171.members.linode.com)
日付は、2014年12月4日 18:06 でした。
Logwatch メールにも、攻撃とブロックの痕跡がございました♪
DenyHosts からのメールが来てから、その後2日間の Logwatch メールを確認いたしました。
まずは hosts.deny に登録後約8時間後に送られてきたメールからの抜粋です。
--------------------- SSHD Begin ------------------------ Didn't receive an ident from these IPs: 106.185.49.171 (li764-171.members.linode.com): 1 Time(s) Illegal users from: 106.185.49.171 (li764-171.members.linode.com): 3 times git/password: 1 time minecraft/password: 1 time postgres/password: 1 time Received disconnect: 11: Bye Bye 106.185.49.171 : 3 Time(s) Refused incoming connections: 106.185.49.171 (106.185.49.171): 262 Time(s) ---------------------- SSHD End -------------------------
最初の「Didn’t receive an ident from these IPs」はよくわかりませんけれども、
- git、minecraft、postgres、と不正ユーザ名でのアクセスがあったこと、
- それらの接続元 IP アドレスから接続の切断があったこと、
- その IP アドレスからの接続を拒否したこと
ということが読み取れます。
さらにその次の、1日後の、Logwatch メールには次のようにありました。
--------------------- SSHD Begin ------------------------ Users logging in through sshd: oki2a24: 111.111.11.111 (111.11.111.111.dzz.example.com): 1 time Refused incoming connections: 106.185.49.171 (106.185.49.171): 769 Time(s) ---------------------- SSHD End -------------------------
最初のログインしたユーザは、わたくしたちですの。
次の行の拒否した接続に、hosts.deny に DenyHosts が登録した IP アドレスが表示されておりました。きっと自動で試みているので、もしかして攻撃者も拒否されたことに気がついていないのかしら?
/etc/hosts.deny を見て、アクセスをブロックする対象となっているかどうかを確認します!
わたくしたちのサーバに SSH でログインしまして、次のコマンドでファイルの中を見ました。
less /etc/hosts.deny
「/106.185.49.171」で該当行を検索いたしました。
…略… # DenyHosts: Thu Dec 4 18:06:05 2014 | sshd: 106.185.49.171 sshd: 106.185.49.171 …略…
バッチリ!対象の IP アドレスでの SSHD アクセスを拒否するように hosts.deny ファイルに追加されておりますね♪
ログの確認!
/var/log/ 以下で denyhosts から始まるのファイル(denyhosts* )内に文字列「106.185.49.171」があるファイル名と該当する行を表示いたします。
find /var/log/ denyhosts* -print | xargs grep "106.185.49.171" /dev/null
とても多くの記録が表示されました。
find: denyhosts*: No such file or directory /var/log/denyhosts.1:2014-12-04 18:06:05,135 - denyhosts : INFO new denied hosts: ['106.185.49.171'] /var/log/secure:Dec 4 17:48:26 oki2a24 sshd[5150]: Did not receive identification string from 106.185.49.171 …略…
あら?denyhosts から始まるのファイル(denyhosts* )を検索対象としたつもりでしたけれども、他のファイル、「/var/log/secure」も検索結果に引っかかってしまいましたの><。コマンドへの理解が足りないのですね><。
ともかく、/var/log/ 内の記録を追っていきますの。
DenyHosts ログ♪
2行目に、denyhosts.1 ファイルの記述がございます。
/var/log/denyhosts.1:2014-12-04 18:06:05,135 - denyhosts : INFO new denied hosts: ['106.185.49.171']
2014年12月4日 18:06:05 に攻撃 IP アドレスを拒否リストに登録したことがわかります。この時に冒頭の通知メールも送信しておりますのね♪
SSHD のログ♪
SSHD のログは、/var/log/secure に出力されております。先ほどの検索結果を早速見ましょう。
/var/log/secure:Dec 4 17:48:26 oki2a24 sshd[5150]: Did not receive identification string from 106.185.49.171 /var/log/secure:Dec 4 18:03:19 oki2a24 sshd[5177]: Invalid user postgres from 106.185.49.171 /var/log/secure:Dec 4 18:03:22 oki2a24 sshd[5177]: Failed password for invalid user postgres from 106.185.49.171 port 59354 ssh2 /var/log/secure:Dec 4 09:03:22 oki2a24 sshd[5178]: Received disconnect from 106.185.49.171: 11: Bye Bye /var/log/secure:Dec 4 18:04:38 oki2a24 sshd[5186]: Invalid user git from 106.185.49.171 /var/log/secure:Dec 4 18:04:40 oki2a24 sshd[5186]: Failed password for invalid user git from 106.185.49.171 port 41227 ssh2 /var/log/secure:Dec 4 09:04:40 oki2a24 sshd[5187]: Received disconnect from 106.185.49.171: 11: Bye Bye /var/log/secure:Dec 4 18:05:56 oki2a24 sshd[5188]: Invalid user minecraft from 106.185.49.171 /var/log/secure:Dec 4 18:05:58 oki2a24 sshd[5188]: Failed password for invalid user minecraft from 106.185.49.171 port 51327 ssh2 /var/log/secure:Dec 4 09:05:58 oki2a24 sshd[5189]: Received disconnect from 106.185.49.171: 11: Bye Bye /var/log/secure:Dec 4 18:07:15 oki2a24 sshd[5194]: refused connect from 106.185.49.171 (106.185.49.171) /var/log/secure:Dec 4 18:08:33 oki2a24 sshd[5195]: refused connect from 106.185.49.171 (106.185.49.171) …略… /var/log/secure:Dec 6 09:13:14 oki2a24 sshd[11620]: refused connect from 106.185.49.171 (106.185.49.171)
12月4日 17:48:26 に「Did not receive identification string from 106.185.49.171」と最初の記録がございます。このときは、どのような操作であったのかよくわかりません。
12月4日 18:03:19 に、postgres というユーザ名で、何かのパスワードで SSHD アクセスしようとして失敗し、「Bye Bye」と接続を切断しております。
この切断の時刻が 09:03:22 と 9時間ずれておりますが、おそらく別々のサービスが secure ログに出力し、それぞれタイムゾーンが異なる、というようなことと予想します。
/var/log/secure:Dec 4 18:03:19 oki2a24 sshd[5177]: Invalid user postgres from 106.185.49.171 /var/log/secure:Dec 4 18:03:22 oki2a24 sshd[5177]: Failed password for invalid user postgres from 106.185.49.171 port 59354 ssh2 /var/log/secure:Dec 4 09:03:22 oki2a24 sshd[5178]: Received disconnect from 106.185.49.171: 11: Bye Bye
その後、12月4日 18:04:38 に git ユーザ名で、18:05:56 に minecraft ユーザ名でログインしようとして失敗しておりました。
18:05:58(ログ上では 09:05:58 と表示)に攻撃者が切断し、18:07:15 に再接続しようと試みるも、DenyHosts によって hosts.deny に登録済みのため、受け付けないようになりました♪
/var/log/secure:Dec 4 18:07:15 oki2a24 sshd[5194]: refused connect from 106.185.49.171 (106.185.49.171)
以降、接続を何度もしようとした痕跡がございましたが、ユーザ名、パスワードを送信するチャンスすら拒否しております。
おわりに
DenyHosts で攻撃を拒否したのは初めてですの!
(接続ミスで自分自身が拒否されたことはございましたけれども><)
あまりにも攻撃がございませんので、自動で攻撃者の IP アドレスを hosts.deny に登録していくシンクロナイゼーション・モードを設定したりしましたわね。
また、ログなどを確認するのに、次のコマンドについてのページが役に立ちましたの。御礼申し上げます1
- Linuxコマンド逆引き大全 – 【 ファイルの内容を閲覧する 】:ITpro
- grepとfindを使って、サーバ上で大量のファイルから目当てのファイルを見つける方法 | Smart
- find/grep/xargsコマンドを使いこなす 業務で楽するためのUNIXテクニック集「検索」編 (1/4):CodeZine
以上です。