ブルートフォース攻撃から Plesk Panel を防御するには

Created:

2016-11-16 12:55:46 UTC

Modified:

2017-06-05 06:10:58 UTC

0

Was this article helpful?


Have more questions?

リクエストを送信

ブルートフォース攻撃から Plesk Panel を防御するには

Applicable to:

  • Plesk for Linux/Unix
  • Odin Business Automation Standard 4.5

症状

Parallels Panel sw-cp-server ログファイル( /var/log/sw-cp-server/error_log )に、「ssl ハンドシェイク失敗」レコードが大量に見つかる場合があります。

2009-06-03 22:37:08:(connections.c.299) SSL:1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
2009-06-03 22:46:56:(connections.c.299) SSL:1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
2009-06-03 22:58:49:(connections.c.299) SSL:1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
2009-06-03 23:19:52:(connections.c.299) SSL:1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
2009-06-03 23:31:44:(connections.c.299) SSL:1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
2009-06-03 23:41:18:(connections.c.299) SSL:1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
2009-06-03 23:52:36:(connections.c.299) SSL:1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
2009-06-04 00:02:38:(connections.c.299) SSL:1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure


さらに、以下のレコードが システムセキュリティログ に見つかる場合があります。

Jan 13 02:54:48 plesk9 sshd[9890]:Failed password for root from ::ffff:125.208.21.3 port 8880 ssh2
Jan 13 07:32:43 plesk9 sshd[11756]:Failed password for root from ::ffff:125.208.21.3 port 8880 ssh2

原因

このようなログエントリの原因として考えられるのは、sw-cp-server へのポート 8880 経由のブルートフォース攻撃です。ブルートフォース攻撃が発生すると、やがてサービスの標準的なパフォーマンスがブロックされます。

解決策

以下のいずれかのオプションを使用して問題を解決できます。

1. ファイアウォールルールを使用してホストをブロックする。

例 1(Linux):

以下のコマンドを使用して、ファイアウォール( iptables )ルールを構成する必要があります。

#iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name SSH --rsource

#iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 - -hitcount 4 --rttl --name SSH --rsource -j LOG --log-prefix "SSH_brute_force "

#iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --rttl --name SSH --rsource -j DROP


例 2(FreeBSD):

a. スクリプト ssh-fwscan.sh を作成します。

#!/bin/sh

if ipfw show | awk '{print $1}' | grep -q 20000 ; then
ipfw delete 20000
fi
# This catches repeated attempts for both legal and illegal users
# No check for duplicate entries is performed, since the rule
# has been deleted.

awk '/sshd/ && (/Invalid user/ || /authentication error/) {try[$(NF)]++}

END {for (h in try) if (try[h] > 5) print h}' /var/log/auth.log |
while read ip
do
ipfw -q add 20000 deny tcp from $ip to any in
done


b. スクリプトを cronjob に追加します。

*/10 * * * * root /operator/sshd-fwscan.sh


例 3(FreeBSD):

pf フィルタにルールを追加します。

pass in on $ext_if inet proto tcp from {192.168.1.0/24, 202.54.1.5/29} to $ssh_server_ip port ssh flags S/SA synproxy state


注記:IP アドレス(192.168.1.0/24 および 202.54.1.5/29)を必要な IP アドレスに変更する必要があります。

2. tcp ラッパを使用してホストをブロックする。

例:

以下のルールを /etc/hosts.allow ファイルに追加します。

sshd: <admin IP address>/<netmask> : allow
sshd: ALL : deny

追加情報

この他の方法でも、ブルートフォースを含む外部からの攻撃に対して OS のセキュリティを向上できます。

- sshd デーモンポートを 22 から変える
- キーを利用する認証のみを使用する
- "root" ユーザの ssh アクセスを閉じる
- 特定の IP でのみ listen するように sshd デーモンを構成する

同じ目的で様々なサードパーティソリューションを使用できます。

DenyHosts : ログファイルをスキャンし、tcp ラッパルールを構成します。
Cryptknock : 必要に応じて ssh ポートを開きます。
BlockSshd : ログを解析し、ファイアウォールルールを構成します。
SshGuard : ログを監視し、ファイアウォールを構成します。
他にご質問がございましたら、リクエストを送信してください
ログインしてコメントを残してください。