CentOS でハッキングの試みを自動的に拒否しますか?

CentOS でハッキングの試みを自動的に拒否しますか?

私のサーバーが攻撃を受けています。次のような試みがログに記録されています:

Sep 22 06:39:11 s1574**** sshd[16453]: Failed password for invalid user amber from        64.215.17.4 port 35182 ssh2
Sep 22 04:39:11 s1574**** sshd[16454]: Received disconnect from 64.215.17.4: 11: Bye Bye
Sep 22 06:39:11 s1574**** sshd[16457]: Invalid user amber from 64.215.17.4
Sep 22 04:39:11 s1574**** sshd[16458]: input_userauth_request: invalid user amber
Sep 22 06:39:11 s1574**** sshd[16457]: pam_unix(sshd:auth): check pass; user unknown
Sep 22 06:39:11 s1574**** sshd[16457]: pam_unix(sshd:auth): authentication failure;     logname= uid=0 euid=0 tty=ssh ruser= rhost=dns2.rsd.com 
Sep 22 06:39:11 s1574**** sshd[16457]: pam_succeed_if(sshd:auth): error retrieving     information about user amber
Sep 22 06:39:14 s1574**** sshd[16457]: Failed password for invalid user amber from 64.215.17.4 port 35842 ssh2
Sep 22 04:39:14 s1574**** sshd[16458]: Received disconnect from 64.215.17.4: 11: Bye Bye

このようなアクセス試行をブロックするにはどうすればいいでしょうか。たとえば、3件以上の拒否があった場合にIPをブロックするなどです。

答え1

  1. 1分あたりのログイン試行回数を制限することができますiptables。このようなルールは、3回のログイン試行後1分間IPをブロックします(オタクの日記 – Netfilter とrecentモジュールを使用して SSH ブルートフォース攻撃を軽減する):

    iptables -A 入力 -p tcp --dport 22 -m 状態 --state NEW -m 最近 --set --name SSH
    iptables -A 入力 -p tcp --dport 22 -m 状態 --state NEW -j SSH_WHITELIST
    iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force
    iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
    
  2. より詳細な設定が必要な場合は、失敗2バンまたは拒否ホストSSHd ログを分析し、疑わしい IP アドレスをブロックします。

答え2

最も良い方法は、iptablesで不要なポートをすべてブロックし、ログインに秘密鍵を使用するようにsshを設定することです。PuttyとMobaXterm(どちらも無料のsshクライアント)は秘密鍵ログインをサポートしていることは知っています。次に、/etc/ssh/sshd_config内で

PermitRootLogin yes

そして以下を追加します:

PermitRootLogin without-password

これにより、たとえルート パスワードを知っていても、そのパスワードを使用してログインできなくなります。

iptablesルールを使用してそれらを制限し、サーバーが低速にならないようにすることができます。

答え3

Denyhosts ソフトウェアをインストールします。これにより、このようなハッカーの IP が hosts.deny に自動的にリストされます。パッケージは epel リポジトリで入手できます。

関連情報