There were failed login attempts since the last successful loginと表示された場合の5つの対処法

Linuxにログインした際に,以下のメッセージがコンソール画面に表示される場合があります。

There were *** failed login attempts since the last successful login

これは,前回のログイン成功時から数えて,ログイン試行が***回失敗したことを表しています。
あまりにも数が大きい場合には,様々なID/パスワードによる総当たり攻撃が行われていると考えて間違いないでしょう。

かなり危険な状態とも言えますので,すぐに対処する必要があります。

攻撃者のIPアドレスを特定する

以下のコマンドにより,攻撃元のIPアドレスをログから調べることができます。

grep -i Failed /var/log/secure

そこで表示されるIPアドレスが見覚えのあるものであれば,攻撃ではない別の原因が見つかることもありますが,大抵の場合は,悪意のある攻撃者が利用しているサーバーからのアクセスだと思います。

そこで,以下の5つの方法を用いて,攻撃に耐えられる十分なセキュリティレベルを保ってください。

1.パスワードを強固なものに変更する


パスワードが十分複雑なものに設定されているかどうか確認してください。
10文字以上,3種類の記号を用いるのは有効です。

2.22番のSSHポートを使わないように変更する

以下のように,sshd_configを編集して,SSHのポート番号を変更します。

#vi /etc/ssh/sshd_config
Port 6054
#Service sshd restart

3.rootユーザでログインできないようにする

以下のように,/etc/ssh/sshd_config ファイルを編集し,rootでログインできないようにします。

#vi /etc/ssh/sshd_config
 PermitRootLogin No
 # Service sshd restart

そして,通常ユーザーでログオンした後に,sudo suコマンドで,昇格するようにします。

4.パスワード認証をやめ,SSH鍵認証でログインするようにする

SSH鍵認証でのログイン方法は,下記のサイトに分かり易く載せられていました。
https://www.websec-room.com/2014/01/18/1647

5.特定のIPアドレスからしかアクセスできないようにする

ファイアーウォールの機能を用いて,特定のIPアドレスからしかSSHアクセスを受け付けないようにします。

最も簡単に実装できるのは,iptablesを用いることでしょう。

まずは,現状の設定を確認します。

iptables -L

そして,以下の1行を追記します。

iptables -A INPUT -s 192.168.xxx.xxx/32 -i eth0 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

再起動後も変更内容が反映されるようにする場合,以下のように,保存した後にrestartコマンドを流します。

# /etc/init.d/iptables save
# /etc/init.d/iptables restart

ここまでやれば,通常の運用を行う上では十分なセキュリティ対策といえるでしょう。

以上,There were failed login attempts since the last successful loginと表示された場合の5つの対処法でした。

コメント