毎日送られてくるサーバーのLogWatchの報告メール。何も異常なく普通かな?と思ってみていたらSSH経由で不正にログインしようと試みているログがありました。
--------------------- SSHD Begin ------------------------
Failed logins from these:
adm/password from 222.255.15.157: 1 time(s)
admin/password from 222.255.15.157: 7 time(s)
alias/password from 222.255.15.157: 1 time(s)
apache/password from 222.255.15.157: 1 time(s)
bin/password from 222.255.15.157: 1 time(s)
daemon/password from 222.255.15.157: 1 time(s)
ftp/password from 222.255.15.157: 1 time(s)
games/password from 222.255.15.157: 1 time(s)
gopher/password from 222.255.15.157: 1 time(s)
halt/password from 222.255.15.157: 1 time(s)
info/password from 222.255.15.157: 1 time(s)
lp/password from 222.255.15.157: 1 time(s)
mail/password from 222.255.15.157: 1 time(s)
mailman/password from 222.255.15.157: 1 time(s)
mysql/password from 222.255.15.157: 1 time(s)
named/password from 222.255.15.157: 1 time(s)
news/password from 222.255.15.157: 1 time(s)
nobody/password from 222.255.15.157: 1 time(s)
operator/password from 222.255.15.157: 1 time(s)
root/password from 222.255.15.157: 1 time(s)
rpc/password from 222.255.15.157: 1 time(s)
rpm/password from 222.255.15.157: 1 time(s)
shutdown/password from 222.255.15.157: 1 time(s)
sync/password from 222.255.15.157: 1 time(s)
uucp/password from 222.255.15.157: 1 time(s)
webmaster/password from 222.255.15.157: 1 time(s)
**Unmatched Entries**
input_userauth_request: illegal user sales
Failed password for illegal user sales from 222.255.15.
157 port 57288 ssh2
Received disconnect from 222.255.15.157: 11: Bye Bye
input_userauth_request: illegal user recruit
Failed password for illegal user recruit from 222.255.1
5.157 port 57389 ssh2
Received disconnect from 222.255.15.157: 11: Bye Bye
Received disconnect from 222.255.15.157: 11: Bye Bye
input_userauth_request: illegal user office
Failed password for illegal user office from 222.255.15
.157 port 57606 ssh2
・・・ログのごく一部ですが
---------------------- SSHD End -------------------------
もちろん不正アクセスは失敗に終わっています。
まあ外部のインターネットに晒しているWebサーバー系ならこの手の攻撃は日常茶飯事・・・・ってちょっと待てぃ!アクセス制限がかかってて私でも制限解除しなければSSHで接続は出来ないのになんでそのファイアーウォールというか制限を突破してるんじゃ?解除していない状態じゃ繋ごうとしても接続できません、という表示でユーザーID、パスワードの入力の認証までたどり着かないからね。
とりあえず各種ログを見つつレンタルサーバー会社にも問い合わせメールを入れておく。
messagesを見てみると怪しい時間帯には
xxx xx xx:xx:xx ns1 sshd(pam_unix)[6822]: authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=localhost user=nobody
と。localhost??自分からログインしようとしてる?でも内部にログインした形跡はないし何よりログインしているならこんな事をする必要もない。外部からアクセスしようとしているのは間違いなさそうだがなぜローカルホストに?
調べていて、そしてレンタルサーバー会社からの連絡が来てだいたいわかりました。
基本的にサーバーに制限解除なしでアクセス出来るのは特定のIPのみで私でもアクセスするには制限解除の必要がある。ただその許可IP以外にも接続OKなのはlocalhost。
今回は外からのアクセスではあるけどローカルサーバーと偽って接続してきたために、認証の対象になっていなかったと。なんじゃそりゃ~。
普通、外部から来るlocalhostと偽ってくるアクセスには標準で蹴るように設定されてたと思ってたんだけど違うのね。この辺はレンタルサーバー会社によって違うのかな?ルーターとかでもそうじゃん、外からローカルアドレス偽ってきたらまず弾いて防御するような設定になってるよね(サーバー本体に到達する前のどこかのネットワークで弾くのが普通かと思っちゃってたかも?)。
ネットワーク構成にもよるのかな・・・ルーター→サーバーみたいな感じだとルーターがだいたいファイアーウォールの代わりにもなるというか基本的にはパケットフィルタリングだけどそれがあってその後にサーバーも各種接続設定をしておく、みたいな感じだと思いこんじゃってたので今回のはいい教訓となりました。
そりゃ、サーバー本体がネットの海に直接晒されている状態じゃ違うのかもね。
というか酔っぱらって書いているのでなんかおかしい部分がある気がするが・・・・あれ?
このままの設定だとあまりよろしくないのでちゃんと偽りのも弾くように設定してもらいました。tcpserverで「パラノイドを行う」系設定とかその他その他。パラノイド行うの設定にしておけば接続時にホスト名とIPアドレスが一致するか確認し、一致しなければ認証を行わなく出来ますし(ローカル接続でも確認を行う)。
ただ確認のために時間を要するようになりますと言われましたが(IPからホスト名、ホスト名からIPを参照しなおしチェックする為)今はサーバーの能力もまだ余裕があるし多少問い合わせ時間が増えたところで何も問題がないので設定してもらいました。
実際にアクセスしてみましたけど全然速度差は感じない程でした。
自分でしても良かったんだけどあくまでレン鯖なのでやってもらった方が向こうの記録にも残るだろうし何かあった時の対処も早かろう。
上記のようなログなんてこのサーバーの場合は始めて見たから久々に驚いたよ。
関連
★OpenSSH