2011-04-24 49 views
14

我試圖讓運行Apache 2.2.17的Fedora 14服務器通過McAfee ScanAlert的PCI-DSS合規性掃描。我使用的是默認的SSLCipherSuite和SSLProtocol指令在ssl.conf中設定的第一次嘗試......請提供將通過PCI合規性掃描的Apache SSLCipherSuite

SSLProtocol ALL -SSLv2 
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP 

失敗的理由是弱密碼被啓用。用ssllabs和serversniff工具掃描發現,40位和56位密鑰確實可用。

然後我改......

SSLProtocol -ALL +SSLv3 +TLSv1 

,並嘗試了所有報道各種網站上,從配套廠商通過PCI掃描下列字符串...

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH 
SSLCipherSuite ALL:!ADH:!NULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:-LOW:+SSLv3:+TLSv1:-SSLv2:+EXP:+eNULL 
SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:RC4+RSA:+HIGH:+MEDIUM 
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM 
SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH 

我重啓動Apache更新後,apachectl configtest說我的語法沒問題。隨後的ScanAlert掃描全部失敗,其他掃描工具繼續顯示40位和56位密碼。我嘗試將httpd.conf中的SSLProtocol和SSLCipherSuite直接添加到VirtualHost中,這並沒有幫助。

它實際上感覺就像某處重寫了這些設置,但我找不到任何設置ssl.conf以外的值的任何地方。

如果有人能夠提供一個已經通過了最近PCI掃描的已知良好的SSLCipherSuite,它將有助於我們追蹤我的問題。

謝謝。

+0

請參閱http://stackoverflow.com/questions/5769331/please-provide-an-apache-sslciphersuite-that-will-pass-a-pci-compliance-scan/28284345#comment45978046_28284345 – Gaia 2015-03-04 14:31:29

回答

8

經過數小時的搜索和拔毛,我發現我的問題。

我的ssl.conf中的默認SSLProtocol和SSLCipherSuite指令存儲在標記爲<VirtualHost _default_:443>的默認容器中。

我的實際網站有自己的容器,標有它的IP地址,例如:<VirtualHost 64.34.119.12:443>。更改_default_容器中的值沒有任何影響,但將更強大的SSLProtocol和SSLCipherSuite指令直接添加到特定於站點的VirtualHost容器,最終使其生效。

仍然不確定爲什麼調整_default_容器或讓它們位於httpd.conf中的VirtualHost容器中不起作用。

作爲一個明確的答案的問題,我用...

SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH 

通過我的ScanAlert掃描。我敢打賭,上面的大部分其他字符串也會起作用。

+0

我有一個類似的問題,禁用sslv2。在我們的例子中,服務器使用plesk運行。我不得不把上面的代碼放在'virtualhost'容器之前,而不是內部,這對我們來說是個訣竅。然而,我並沒有禁用弱密碼,但我不確定由於舊的出口限制,在非美國國家有多大的強密碼。 – Haluk 2011-08-29 18:14:48

+0

這是一個可怕的字符串使用,不應該使用永遠(截至2015年)。它允許幾個完全不安全的套件。請始終使用https://www.ssllabs.com/ssltest進行測試 – ThomasH 2015-04-30 20:16:21

2

您是否告訴Apache強制執行加密命令?

SSLHonorCipherOrder上

2

僅供參考 - 我發現這個設置:

SSLCipherSuite HIGH:!SSLv2:!ADH 

生產協議,因爲這樣的設置完全相同的名單:

SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH 

據:

openssl ciphers -v 'ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH' 
openssl ciphers -v 'HIGH:!SSLv2:!ADH' 
2

以下配置由Qualys公司推薦的,它給了我們一個一個對他們scanner

SSLProtocol all -SSLv2 -SSLv3 
SSLHonorCipherOrder on 
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS" 

是的,還要確保Apache是​​能夠讀取新的配置。我把它直接放在虛擬主機容器內。

從他們的網站:https://community.qualys.com/blogs/securitylabs/2013/08/05/configuring-apache-nginx-and-openssl-for-forward-secrecy

+0

此配置不支持Windows XP上的IE6。如果這對您仍然很重要,您可能需要在末尾添加「+ RC4 RC4」。 – 2014-04-10 05:35:43

0

看吧Mozilla Wiki

本文檔的目標是幫助運營團隊在服務器上配置TLS。

11

隨着新的漏洞被發現並且瀏覽器升級,這裏的答案可能(會)變得過時。我建議你依靠Mozilla SSL Configuration Generator檢查你應該使用哪種配置。

enter image description here

+3

這應該被移到成爲首選的答案。 – depicus 2015-03-04 13:45:48