バージョン1.2
作成者:Till Brehm
Twitterでhowtoforgeをフォロー
公開済み2014-10-16
次のガイドでは、最近のプードルSSL攻撃からサーバーを保護するための手順について説明します。私の例では、Debian7でISPConfig3パーフェクトサーバーを使用しますが、同じ手順が他のLinuxディストリビューションでも機能します。デフォルトのISPConfigホスティングサーバーは、次のサービスを実行します。Webサーバー (NginxまたはApache)、メールサーバー (PostfixとDovecot / Courier)、FTPサーバー (pure-ftpd)SSL / TLS接続を提供し、プードル攻撃の潜在的なターゲットです。
rootユーザーとしてサーバーにログインしていると仮定します。 Ubuntuで作業していて、rootとしてログインしていない場合は、すべてのコマンドの前に「sudo」を追加するか、「sudo-」を実行してrootユーザーになります。
ApacheWebサーバー
Apache Webサーバーを保護するには、回線
SSLProtocol all -SSLv2 -SSLv3
サーバー上の各SSL仮想ホストに追加する必要があります。 SSLProtocol設定がvhostで明示的に設定されていない場合、グローバル設定が適用されます。 ISPConfig 3サーバーの場合、vhostsがその設定を上書きしないため、SSLProtocol設定をグローバルに設定できます。 DebianまたはUbuntuサーバーで、ファイル/etc/apache2/mods-available/ssl.confをエディターで開きます
nano /etc/apache2/mods-available/ssl.conf
次の行が表示されるまで下にスクロールします:
#安全なプロトコルのみを有効にする:SSLv3とTLSv1、SSLv2は有効にしない
SSLProtocol all -SSLv2
次のように変更します:
#安全なプロトコルのみを有効にします:SSLv2とSSLv3は有効にしません
SSLProtocol all -SSLv2 -SSLv3
次に、apacheを再起動します
service apache2 restart
NginxWebサーバー
nginx Webサーバーの場合、行
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
各SSLサーバー{}サービスに追加する必要があります。 SSLProtocol設定がサーバー{}セクションで明示的に設定されていない場合、http{}セクションのグローバル設定が適用されます。 ISPConfig 3サーバーの場合、SSLProtocol設定はhttp {}セクションでグローバルに設定できます。これは、サーバー{}セクションがその設定を上書きしないためです。 DebianまたはUbuntuサーバーで、ファイル/etc/nginx/nginx.confをエディターで開きます
nano /etc/nginx/nginx.conf
次の行を追加します:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
行の後:
http {
次にnginxを再起動します:
service nginx restart
postfixにSSLv2およびSSLv3プロトコルを提供しないように強制するには、次のコマンドを実行します。
postconf -e'smtpd_tls_mandatory_protocols =!SSLv2、!SSLv3'
postconf -e'smtpd_tls_protocols =!SSLv2、!SSLv3'
postconf -e'smtp_tls_protocols =!SSLv2、!SSLv3'
これにより、次の行が追加されます:
smtpd_tls_mandatory_protocols =!SSLv2、!SSLv3
smtpd_tls_protocols =!SSLv2、!SSLv3
smtp_tls_protocols =!SSLv2、!SSLv3
/etc/postfix/main.cfファイルにあります。次に、次のコマンドを実行して、新しい構成を適用します。
サービスpostfixの再起動
Dovecot IMAP/POP3サーバー
Dovecotは、バージョン2.1以降でSSLプロトコル設定をサポートしています。したがって、最初のステップは、使用している鳩小屋のバージョンを見つけることです。コマンドは次のとおりです。
dovecot --version
私のサーバーでは、次の結果が得られました:
[メール保護]:〜#dovecot --version
2.1.7
[メール保護]:〜#
これは、サーバーがssl_protocol設定をサポートしていることを示しています。
dovecot構成ファイルを編集する
nano /etc/dovecot/dovecot.conf
行を追加します
ssl_protocols =!SSLv2!SSLv3
ssl_key行の直後なので、ファイルは次のようになります。
ssl_key = ssl_protocols =!SSLv2!SSLv3
最後にdovecotを再起動して、変更を適用します。
サービスダブコットの再起動
courier imapおよびpop3サーバーは、デフォルトでSSLv3プロトコルを介した接続を提供するため、SSLv3プロトコルも再構成する必要があります。クーリエ構成ファイルは、フォルダー/ etc /courier/にあります。まず、IMAPデーモンの構成ファイルから始めます。
nano / etc / courier / imapd-ssl
次の行を追加または置換します:
IMAPDSTARTTLS =YES
IMAP_TLS_REQUIRED =1
TLS_PROTOCOL =TLS1
TLS_STARTTLS_PROTOCOL =TLS1
次に、POP3デーモンの構成ファイルを編集します。
nano / etc / courier / pop3d-ssl
次の行を追加または置換します:
POP3STARTTLS =YES
POP3_TLS_REQUIRED =1
TLS_PROTOCOL =TLS1
TLS_STARTTLS_PROTOCOL =TLS1
最後に、クーリエデーモンを再起動します。
service courier-imap-ssl restart
service courier-pop-ssl restart
Pure-ftpdを使用したFTP
DebianとUbuntuでpure-ftpdを保護することは、Debianの/ usr / sbin / pure-ftpd-wrapperスクリプトがsslプロトコルを設定するためにpure-ftpdによって使用される-Jスイッチをサポートしていないため、少し複雑です。したがって、最初のステップは、ラッパースクリプトに-Jオプションのサポートを追加することです。 Debian 6のpure-ftpdバージョンは古すぎて、SSLプロトコルの設定がないため、これはDebian6では機能しません。したがって、Debian 6ユーザーの唯一のオプションは、Debian7にアップグレードすることです。ファイルを開く
nano / usr / sbin / pure-ftpd-wrapper
行まで下にスクロールします
'TLS' => ['-Y%d'、\&parse_number_1]、
直後にこの新しい行を追加します:
'TLSCipherSuite' => ['-J%s'、\&parse_string]、
最後に、許可するSSLプロトコルを含む構成ファイルを作成します。
echo'HIGH:MEDIUM:+ TLSv1:!SSLv2:!SSLv3'> / etc / pure-ftpd / conf / TLSCipherSuite
変更を適用するには、pure-ftpdを再起動します。私のサーバーでは、mysqlでpure-ftpdを使用しているため、デーモンの名前は、pure-ftpdではなくpure-ftpd-mysqlになります。
service pure-ftpd-mysql restart
結果は次のようになります:
[メール保護]:〜#service pure-ftpd-mysql restart
ftpサーバーの再起動:実行中:/ usr / sbin / pure-ftpd-mysql-virtualchroot -l mysql:/ etc / pure-ftpd / db / mysql .conf -l pam -Y 1 -8 UTF-8 -H -J HIGH:MEDIUM:+ TLSv1:!SSLv2:!SSLv3 -D -b -O clf:/var/log/pure-ftpd/transfer.log- E -u 1000 -A -B
[メール保護]:〜#
そのため、-Jオプションがデーモンの開始シーケンスに正常に追加されました。
- SSLプードル攻撃
- ISPConfig