shhの接続ポートをデフォルト(22播)のままにするの良くない!


sshの接続ポートをデフォルトの22番のままにしておくと、攻撃対象にされやすく、大変鬱陶しい!!というお話です。

つい先日、保守案件にて、以下のようなアラートが届きました

  • 対象外サーバにおきまして、ディスク使用率98%超過を検知致しました。

    特に下記ファイルにて、ディスク使用量が多くなっています。

    /var/log/btmp

 

btmpファイルって何だ?

調べてみると、btmpはログイン失敗の履歴が記録されているファイルのようです。

何故にそんなファイルが肥大化してしまうのか・・・。

はっ・・・。もしかしてsshで攻撃受けてる?って事でファイルの確認をしてみました。

btmpファイルの確認方法

ひとまず、btmpファイルをサーバーからダウンロードしたのですが、バイナリファイルだったので開けず・・。

btmpの参照には、lastbコマンドを利用する必要があります。

とんでもない量のssh接続失敗のログが吐き出されていました。やはり、不正ログイン仕掛けられてる・・・。

IPアドレスから発信源を調べる

whois gatewayでIPアドレスを調べてみると中国とか、ブラジルからのアクセスが多数。

どのアドレスから何回アクセスがあったか調べる

色々なアドレスからアクセスされてますね。。これはキリがない。
同じようにどのユーザーでログインしようとされているのかも調べてみる。

良く使われそうなユーザー名ばかりですが、やっぱりrootが多いですね。

普段使っているユーザー名でのアクセスはありませんでしたが、ID,PASSでのSSHログイン不可にする対応は必須ですね。(特にrootユーザーは)

sshdのポート番号を変更

SSHへのブルートフォースアタック(ID, PASS 総当たり攻撃)に一番効果的なのはポート番号の変更のようです。
これでユーザーroot、ポート22でアクセスされても、Connection refusedになり、ログも残りません。

ポート番号変更

sshdを再起動し、設定を反映します

/var/log/btmpの削除

容量を圧迫していたbtmpファイルの削除します。

ログが再取得されるようbtmpを再作成しておくことを忘れずに。
touchしてから600にしておきます。

平和な世界が訪れた。

再度、lastbコマンドを実行してもログが全く吐き出されなくなりました!やったね!

今度また、ポートが特定されて攻撃を受けるようならログローテの処理も入れたいと思います。

どちらにしろ、サーバーのセキュリティ知識は必須ですね・・・。

こんな記事も見つけたので、サーバー構築する機会があった際には参考にしたいと思います

 

【追記】sshポート変更する際の注意点

平和な世界が訪れたと思ったのも束の間、なんと外部サーバーからsshでバックアップを取得していたことが判明し、慌ててバックアップシェルの修正を行い、事なきを得ました。

sshポートを変更する際に考慮すべきことを、まとめておきたいと思います(随時追加予定)

  1. バックアップサーバーからscpでアクセスがないか?(crontabコマンドなどでチェック)
  2. お客様向けのssh用ユーザーなどが存在していないか?(cat /etc/passwd & ヒアリング)

 

 

この記事がお役に立てたら、是非シェアをお願いします^^