“There were 1289 failed login attempts since the last successful login.”
本番サーバーにログインしようとしたら、普段見ない”failed login”というアラートが出てきました。
there were 8025 failed login attempts since the last successful login.
んんん?文字の通りに考えたら…不正アクセスされそうだったってこと!??しかも8025 failed loginって!??
急いでググって履歴を調べてみました。ついでに、該当ログをファイルに書き出しました。
$ grep -i Failed /var/log/secure > failed.txt
抽出された行がこんな感じ
Jul 27 14:41:40 160-251-22-190 sshd[653074]: Failed password for root from IPアドレス port 34236 ssh2 Jul 27 14:43:31 160-251-22-190 sshd[653116]: Failed password for root from IPアドレス port 38002 ssh2 Jul 27 14:45:05 160-251-22-190 sshd[653122]: Failed password for root from IPアドレス port 34518 ssh2 Jul 27 14:45:29 160-251-22-190 sshd[653124]: Failed password for root from IPアドレス port 59304 ssh2 Jul 27 14:46:52 160-251-22-190 sshd[653126]: Failed password for root from IPアドレス port 59282 ssh2
実際の画面はこんな感じ
いや〜だ〜本当にアクセスされてる。怖い!どうしたらいいの!!?
私のポンコツサーバーにログインされたところで何もいいことないのですが、中身が飛ぶのは嫌です〜〜〜!
IPを調べてみた
こちらのサイトで調べてみました。
一気に100件まで調べられるので、大量アクセスされた人間にとても優しいです!先程コマンドで出力したFaild.txtをMacBookのNumbersで開いて、IPの列を100件選んでフィールドにペースト。
ボタン一つでcsvもダウンロードできました。中国・フランスが多いようでした。
よく見る対処法
ググって対処法を考えました。どこをみても大体出てくる対処法は同じです。
- パスワードを強固にする
- パスワードじゃなくてSSH接続にする
- 開放portを22以外にする
- 自分のお家のIPからしかアクセスできないようにする
- etc,
元々SSH接続を行なっているためパスワードの考慮は不要。portを22以外にしても根本的解決にはなっていないため別の方法を考えたい。自宅IPのみ許可する対応は、出先での作業に困るためちょっと不服…さて、他にいい方法がないか探してみました。
- .htaccessで海外IPを拒否する(Apache使用の場合)
- Tomcat使用でもApacheと同等の対応は可能そう
- WAFを設定する
- Firewallを設定する
webサーバー全体へのアクセスを拒否したい。サーバーはConoHaを使用しており、WAFのプランがあるものの、金額が月額2000円以上かかりそうでポンコツサーバーにはちょっと高額。。Firewallの設定がいけるのでは?
「Firewallの設定」で対処することに決定
サーバー上でコマンドを叩いてみたら、firewalldが元々入っていることがわかりました。有効にして設定を行なったら簡単に海外からのアクセスを拒否することができそうです。
打ったコマンドの詳細は下のQiita記事に書いてみました。不正アクセスは全て国外からだったので、国内のIPは許可、海外からは拒否にしました。
この対応だと、国内はどこにいてもアクセスOK、海外に行くとき・日本国内で海外VPNに接続しそこからアクセスする時以外は困ることもなさそうです!
コメント