Article ID: 8119, created on Apr 9, 2013, last review on Mar 31, 2016

  • Applies to:
  • Odin Business Automation Standard 4.5
  • Plesk for Linux/Unix

症状

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: ログを監視し、ファイアウォールを構成します。

a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 56797cefb1efc9130f7c48a7d1db0f0c 400e18f6ede9f8be5575a475d2d6b0a6 caea8340e2d186a540518d08602aa065 624ca542e40215e6f1d39170d8e7ec75 70a5401e8b9354cd1d64d0346f2c4a3e

Email subscription for changes to this article