CentOS Stream 8 にhttpd2.4.6をDNFでインストール

CentOS Stream 8 にhttpdをDNFでインストールしていってみたいと思います。

今回はhttpd2.4.37をインストールします。

httpdかNginxかって議論がありますが、さくっと便利なのはhttpdです。
Nginxは本番環境の性能が求められるようなときに威力を発揮しますが、ローカル環境や開発環境、勉強目的ではスペックオーバーとなります。

そもそも Nginx を必要とするほど大量アクセスのあるWebサイトってどれほどあるか。
そこまでサイトを育てるのがどんなに大変か。

「httpdとNginxを比べたら」って話ですが、httpd自体そんなに悪いものではありません。
どちらも一長一短です。

そういう話は良いから単純にNginxが使いたい場合はこちらです。

なお本番環境で利用される場合はここにある内容だけを鵜呑みにせずセキュリティ専門家に相談されることをお勧めします。

環境

実施日2021-09-24
サーバ さくらのVPS 2G
OSCentOS Stream 8
cat /etc/redhat-release
CentOS Stream release 8

インストール内容の確認

まずは対象バージョンを確認します。

dnf list httpd openssl
Last metadata expiration check: 2:30:26 ago on Fri 24 Sep 2021 01:12:03 AM JST.
Installed Packages
openssl.x86_64        1:1.1.1k-4.el8                          @baseos
Available Packages
httpd.x86_64          2.4.37-40.module_el8.5.0+852+0aafc63b   appstream

opensslはたしかMySQL絡みでインストールしていたはずです。

httpdはインストールされていないようです。

セットアップファイルを作成

cd
vi /root/setup_httpd.sh
#! /bin/sh

dnf -y install httpd mod_ssl


mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.backup
mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.stop

touch /etc/httpd/conf.d/ssl.conf

mkdir /etc/httpd/conf.d/vhosts


cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.backup

sed -i -e "/^#ServerName www.example.com:80$/a\ServerName localhost:80" /etc/httpd/conf/httpd.conf


cp /etc/httpd/conf.modules.d/00-base.conf /etc/httpd/conf.modules.d/00-base.conf.backup

sed -i -e "s/^LoadModule auth_digest_module modules\/mod_auth_digest.so$/# LoadModule auth_digest_module modules\/mod_auth_digest.so/" /etc/httpd/conf.modules.d/00-base.conf
sed -i -e "s/^LoadModule authn_anon_module modules\/mod_authn_anon.so$/# LoadModule authn_anon_module modules\/mod_authn_anon.so/" /etc/httpd/conf.modules.d/00-base.conf
sed -i -e "s/^LoadModule authn_dbm_module modules\/mod_authn_dbm.so$/# LoadModule authn_dbm_module modules\/mod_authn_dbm.so/" /etc/httpd/conf.modules.d/00-base.conf
sed -i -e "s/^LoadModule authz_owner_module modules\/mod_authz_owner.so$/# LoadModule authz_owner_module modules\/mod_authz_owner.so/" /etc/httpd/conf.modules.d/00-base.conf
sed -i -e "s/^LoadModule authz_groupfile_module modules\/mod_authz_groupfile.so$/# LoadModule authz_groupfile_module modules\/mod_authz_groupfile.so/" /etc/httpd/conf.modules.d/00-base.conf
sed -i -e "s/^LoadModule authz_dbm_module modules\/mod_authz_dbm.so$/# LoadModule authz_dbm_module modules\/mod_authz_dbm.so/" /etc/httpd/conf.modules.d/00-base.conf
sed -i -e "s/^LoadModule include_module modules\/mod_include.so$/# LoadModule include_module modules\/mod_include.so/" /etc/httpd/conf.modules.d/00-base.conf
sed -i -e "s/^LoadModule ext_filter_module modules\/mod_ext_filter.so$/# LoadModule ext_filter_module modules\/mod_ext_filter.so/" /etc/httpd/conf.modules.d/00-base.conf
sed -i -e "s/^LoadModule mime_magic_module modules\/mod_mime_magic.so$/# LoadModule mime_magic_module modules\/mod_mime_magic.so/" /etc/httpd/conf.modules.d/00-base.conf
sed -i -e "s/^LoadModule autoindex_module modules\/mod_autoindex.so$/# LoadModule autoindex_module modules\/mod_autoindex.so/" /etc/httpd/conf.modules.d/00-base.conf
sed -i -e "s/^LoadModule userdir_module modules\/mod_userdir.so$/# LoadModule userdir_module modules\/mod_userdir.so/" /etc/httpd/conf.modules.d/00-base.conf
sed -i -e "s/^LoadModule cache_module modules\/mod_cache.so$/# LoadModule cache_module modules\/mod_cache.so/" /etc/httpd/conf.modules.d/00-base.conf
sed -i -e "s/^LoadModule version_module modules\/mod_version.so$/# LoadModule version_module modules\/mod_version.so/" /etc/httpd/conf.modules.d/00-base.conf
sed -i -e "s/^LoadModule usertrack_module modules\/mod_usertrack.so$/# LoadModule usertrack_module modules\/mod_usertrack.so/" /etc/httpd/conf.modules.d/00-base.conf
sed -i -e "s/^LoadModule cache_disk_module modules\/mod_cache_disk.so$/# LoadModule cache_disk_module modules\/mod_cache_disk.so/" /etc/httpd/conf.modules.d/00-base.conf


mv /etc/httpd/conf.modules.d/00-dav.conf /etc/httpd/conf.modules.d/00-dav.conf.stop
mv /etc/httpd/conf.modules.d/00-lua.conf /etc/httpd/conf.modules.d/00-lua.conf.stop

cp /etc/httpd/conf.modules.d/00-proxy.conf /etc/httpd/conf.modules.d/00-proxy.conf.backup

sed -i -e "s/^LoadModule lbmethod_bybusyness_module modules\/mod_lbmethod_bybusyness.so$/# LoadModule lbmethod_bybusyness_module modules\/mod_lbmethod_bybusyness.so/" /etc/httpd/conf.modules.d/00-proxy.conf
sed -i -e "s/^LoadModule lbmethod_byrequests_module modules\/mod_lbmethod_byrequests.so$/# LoadModule lbmethod_byrequests_module modules\/mod_lbmethod_byrequests.so/" /etc/httpd/conf.modules.d/00-proxy.conf
sed -i -e "s/^LoadModule lbmethod_bytraffic_module modules\/mod_lbmethod_bytraffic.so$/# LoadModule lbmethod_bytraffic_module modules\/mod_lbmethod_bytraffic.so/" /etc/httpd/conf.modules.d/00-proxy.conf
sed -i -e "s/^LoadModule lbmethod_heartbeat_module modules\/mod_lbmethod_heartbeat.so$/# LoadModule lbmethod_heartbeat_module modules\/mod_lbmethod_heartbeat.so/" /etc/httpd/conf.modules.d/00-proxy.conf
sed -i -e "s/^LoadModule proxy_ajp_module modules\/mod_proxy_ajp.so$/# LoadModule proxy_ajp_module modules\/mod_proxy_ajp.so/" /etc/httpd/conf.modules.d/00-proxy.conf
sed -i -e "s/^LoadModule proxy_express_module modules\/mod_proxy_express.so$/# LoadModule proxy_express_module modules\/mod_proxy_express.so/" /etc/httpd/conf.modules.d/00-proxy.conf
sed -i -e "s/^LoadModule proxy_fcgi_module modules\/mod_proxy_fcgi.so$/# LoadModule proxy_fcgi_module modules\/mod_proxy_fcgi.so/" /etc/httpd/conf.modules.d/00-proxy.conf
sed -i -e "s/^LoadModule proxy_fdpass_module modules\/mod_proxy_fdpass.so$/# LoadModule proxy_fdpass_module modules\/mod_proxy_fdpass.so/" /etc/httpd/conf.modules.d/00-proxy.conf
sed -i -e "s/^LoadModule proxy_ftp_module modules\/mod_proxy_ftp.so$/# LoadModule proxy_ftp_module modules\/mod_proxy_ftp.so/" /etc/httpd/conf.modules.d/00-proxy.conf
sed -i -e "s/^LoadModule proxy_scgi_module modules\/mod_proxy_scgi.so$/# LoadModule proxy_scgi_module modules\/mod_proxy_scgi.so/" /etc/httpd/conf.modules.d/00-proxy.conf
sed -i -e "s/^LoadModule proxy_wstunnel_module modules\/mod_proxy_wstunnel.so$/# LoadModule proxy_wstunnel_module modules\/mod_proxy_wstunnel.so/" /etc/httpd/conf.modules.d/00-proxy.conf


mv /etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/autoindex.conf.stop
mv /etc/httpd/conf.d/userdir.conf /etc/httpd/conf.d/userdir.conf.stop

touch /etc/httpd/conf.d/autoindex.conf
touch /etc/httpd/conf.d/userdir.conf
touch /etc/httpd/conf.d/welcome.conf

# sed -i -e "s/^LanguagePriority en ca cs da de el eo es et fr he hr it ja/LanguagePriority ja en ca cs da de el eo es et fr he hr it/" /etc/httpd/conf/httpd.conf
# sed -i -e "s/^IndexOptions /# IndexOptions /" /etc/httpd/conf/httpd.conf
# sed -i -e "s/^AddIconByEncoding /# AddIconByEncoding /" /etc/httpd/conf/httpd.conf
# sed -i -e "s/^AddIconByType /# AddIconByType /" /etc/httpd/conf/httpd.conf
# sed -i -e "s/^AddIcon /# AddIcon /" /etc/httpd/conf/httpd.conf
# sed -i -e "s/^DefaultIcon /# DefaultIcon /" /etc/httpd/conf/httpd.conf
# sed -i -e "s/^ReadmeName /# ReadmeName /" /etc/httpd/conf/httpd.conf
# sed -i -e "s/^HeaderName /# HeaderName /" /etc/httpd/conf/httpd.conf
# sed -i -e "s/^IndexIgnore /# IndexIgnore /" /etc/httpd/conf/httpd.conf


systemctl enable httpd.service
systemctl status httpd.service


systemctl start httpd.service
systemctl stop httpd.service

実行する

# 実行権限を与える
chmod 700 /root/setup_httpd.sh

# 実行する
/root/setup_httpd.sh

# 削除する
rm /root/setup_httpd.sh

# 設定の確認
vi /etc/httpd/conf/httpd.conf

確認

httpd -S

load modules/mod_cache_socache.so

次のエラーが出るとき

httpd: Syntax error on line 59 of /etc/httpd/conf/httpd.conf: Syntax error on line 29 of /etc/httpd/conf.modules.d/00-base.conf: Cannot load modules/mod_cache_socache.so into server: /etc/httpd/modules/mod_cache_socache.so: undefined symbol: ap_cache_cacheable_headers_in

Perlを使っていないなら外す

vi /etc/httpd/conf.modules.d/00-base.conf
LoadModule cache_socache_module modules/mod_cache_socache.so

▲を探して # でコメント

バーチャルホスト

vi /etc/httpd/conf.d/vhosts.conf
<Files .user.ini>
    order deny,allow
    deny from all
</Files>

ServerTokens ProductOnly
ServerSignature Off


##############################################################################
#       ssl
##############################################################################

Listen 443
SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
# SSLMutex default
Mutex default ssl-cache
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
#SSLRandomSeed startup file:/dev/random  512
#SSLRandomSeed connect file:/dev/random  512
#SSLRandomSeed connect file:/dev/urandom 512
SSLCryptoDevice builtin
#SSLCryptoDevice ubsec

# SSLCompression off
SSLHonorCipherOrder On
SSLProtocol all -SSLv2 -SSLv3

# Apache/2.2以下
# Header add Strict-Transport-Security "max-age=15768000"

# Apache/2.2 以上
Header always set Strict-Transport-Security "max-age=15768000"

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:HIGH:MEDIUM:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!3DES


##############################################################################
#       http default
##############################################################################
<VirtualHost *:80>
    DocumentRoot "/var/www/html"
# PassengerEnabled off
</VirtualHost>



##############################################################################
#       https default
##############################################################################
<VirtualHost _default_:443>
    DocumentRoot "/var/www/html"
#    ServerName www.example.com:443
    ErrorLog logs/ssl_error_log
    TransferLog logs/ssl_access_log
    LogLevel warn
    SSLEngine on
#     SSLProtocol all -SSLv2 -SSLv3
#     SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

    # SSLCertificateFile と SSLCertificateKeyFile は設定しないと起動できない
    SSLCertificateFile /etc/pki/tls/certs/localhost.crt
    SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
#    SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
#    SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
#    SSLVerifyClient require
#    SSLVerifyDepth  10
#    <Location />
#    SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
#                and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
#                and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
#                and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
#                and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20       ) \
#               or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
#    </Location>
#    SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
    <Files ~ "\.(cgi|shtml|phtml|php3?)$">
        SSLOptions +StdEnvVars
    </Files>
    <Directory "/var/www/cgi-bin">
        SSLOptions +StdEnvVars
    </Directory>
    SetEnvIf User-Agent ".*MSIE.*" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0
    CustomLog logs/ssl_request_log \
              "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>



##############################################################################
#       Includes
##############################################################################

Include conf.d/vhosts/*.conf

module ssl_module is already loaded, skipping

次のエラーが出るとき

AH01574: module ssl_module is already loaded, skipping
AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/httpd/conf.d/vhosts.conf:1
AH00526: Syntax error on line 69 of /etc/httpd/conf.d/vhosts.conf:
SSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty

SSLCertificateFile と SSLCertificateKeyFile に設定しているファイルが無いと起動できないのでファイルを作成します。

正式な証明書でなく、証明書の形になっていれば良いので「おれおれ証明書」などでググって作成します。
証明書が出来たら、下記のパスを作成した証明書に書き換えます。

SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

確認

vhosts の下に何もなければエラーになるので、とりあえず空のファイルを追加

touch /etc/httpd/conf.d/vhosts/example.conf

httpd -S

ドメインごとの設定ファイル

バーチャルホスト設定は、1ファイル1ドメインとして作成するようにします。
複数ドメインで1つのシステムを構築するような場合は、1ファイル1サイト、1ファイル1システムで良いと思います。

ここではまず、雛形となる汎用的な設定ファイルを作成します。

新しいバーチャルホスト設定を追加するときはここで作った雛形をコピーして書き換えるような流れになります。

次のテキストファイルを作成します。

/etc/httpd/conf.d/vhosts/_sample.conf.txt

ファイル名は「アンダーバー、サンプル、ドット、コンフ、ドット、ティエックスティ」です。

アンダーバーで始めることで ls で並べたとき先頭に来るようにします。

拡張子 txt なのは、とりあえず .conf で終わらさないためです。
拡張子 conf にするとhttpdから読み込まれますが、サンプルファイルを読み込ませたくないので拡張子を変えます。

テキストエディタで開き、次の内容にします。

# CLIENT NAME   : ローカルホスト
# GROUP NAME    : ローカルホスト
# PROJECT NAME  : ローカルホスト
# CREATE UPDATE : 2018-12-31
# LAST UPDATE   : 2018-12-31


##############################################################################
#       directory
##############################################################################
<directory "="" home="" sample="" public_html"="">
#    AddHandler server-parsed html
#    AddHandler server-parsed php
#    AddOutputFilter INCLUDES .html
    AddHandler cgi-script .cgi
#    AddHandler fcgid-script .php
#    AddHandler fcgid-script .php .html
    DirectoryIndex index.php index.html index.htm index.cgi
    Options Includes ExecCGI  FollowSymLinks
    AllowOverride All
    Require ip 127.0.0.1
#    Require ip 192.168.1.0/24
</directory>


##############################################################################
#       http
##############################################################################
# SITE NAME  :  サイト名
# BASE URL   : /
<virtualhost *:80="">
    DocumentRoot "/home/sample/public_html"
    ServerName group-project-local.example.com
    ServerAlias group-project-local-1.example.com
</virtualhost>


##############################################################################
#       https
##############################################################################
# SITE NAME  :  サイト名
# BASE URL   : /
<virtualhost *:443="">
    DocumentRoot "/home/sample/public_html"
    ServerName group-project-local.example.com
    ServerAlias group-project-local-1.example.com
    LogLevel warn
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
    SSLCertificateFile      "G:/app_data/ssl/ssl-example.com_2.4.8.crt"
    SSLCertificateKeyFile   "G:/app_data/ssl/ssl-example.com-no-pass.key"
#     SSLCertificateChainFile "G:/app_data/ssl/ssl-example.com.ca"
    <files ~="" "\.(cgi|shtml|phtml|php3?)$"="">
        SSLOptions +StdEnvVars
    </files>
    SetEnvIf User-Agent ".*MSIE.*" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0
#    ErrorLog G:/app_data/projects/exampl.com/logs/ssl_error_log
#    TransferLog G:/app_data/projects/exampl.com/logs/ssl_access_log
#    CustomLog G:/app_data/projects/exampl.com/logs/ssl_request_log \
#        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</virtualhost>

CentOS Stream 8 にhttpd2.4.6 で1ユーザー1ドメイン権限を実現する

詳しくは▲もご覧ください。

脆弱性対策

TRACE メソッドが無効になっていることを確認する

参考サイト

http://d.hatena.ne.jp/eji/20081209/1228838413

確認

※ xxx.xxx.xxx.xxx は確認したいサーバのIPアドレスを示します。
※ yyy.yyy.yyy.yyy はクライアント(接続元)のIPアドレスを示します。
※ example.com は確認したいサーバのドメインを示します。

telnet xxx.xxx.xxx.xxx 80
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx.
Escape character is '^]'.
OPTIONS / HTTP/1.1
HOST: yyy.yyy.yyy.yyy

HTTP/1.1 200 OK
Date: Wed, 13 Jul 2016 14:32:52 GMT
Server: Apache
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 0
Connection: close
Content-Type: httpd/unix-directory

Connection closed by foreign host.

Allow: ・・・TRACE の文字が確認できるので有効です。

openssl s_client -host example.com -port 443
[・・・途中省略・・・]
---
OPTIONS / HTTP/1.1
HOST: yyy.yyy.yyy.yyy

HTTP/1.1 200 OK
Date: Wed, 13 Jul 2016 14:34:10 GMT
Server: Apache
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 0
Connection: close
Content-Type: httpd/unix-directory

closed

Allow: ・・・TRACE の文字が確認できるので有効です。

対策

vi /etc/httpd/conf/httpd.conf

末尾に下記を記述

TraceEnable Off
# 再起動して反映
systemctl restart httpd.service
# 無効になっていることを確認する
telnet xxx.xxx.xxx.xxx 80
openssl s_client -host example.com -port 443
Allow: GET,HEAD,POST,OPTIONS

チェックツール

https://www.ssllabs.com/ssltest/index.html
チェックボックスにチェックを入れる、入れなければボードに結果が出てくる

Webサーバー nginx における SSL証明書設定の安全性向上 ~SSL Server Test で A+ 判定を目指して~
https://www.saintsouth.net/blog/safety-of-ssl-certificate-setting-improvements-in-web-server-nginx-to-get-rankaplus-from-ssl-server-test/

その他・メモ

# vi /etc/httpd/conf.d/vhosts.conf
VirtualHost ディレクティブの外側に書くと全体で有効
ただし、VirtualHost で上書きされていないことを確認する必要あり
# SSLCompression off
SSLHonorCipherOrder On
SSLProtocol all -SSLv2 -SSLv3

# Apache/2.2以下
Header add Strict-Transport-Security "max-age=15768000"

# Apache/2.2 以上
Header always set Strict-Transport-Security "max-age=15768000"
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:HIGH:MEDIUM:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!3DES