Bagaimana cara menonaktifkan SSLv3 di Apache?

76

Semua orang tampaknya berbicara tentang kerentanan POODLE hari ini. Dan semua orang merekomendasikan untuk menonaktifkan SSLv3 di Apache menggunakan direktif konfigurasi berikut:

SSLProtocol All -SSLv2 -SSLv3

bukannya default

SSLProtocol All -SSLv2

Saya telah melakukan itu, dan tidak ada sukacita - setelah pengujian berulang kali dengan berbagai alat ( ini yang cepat ), saya menemukan bahwa SSLv3 diterima dengan senang hati oleh server saya.

Ya, saya memang me-restart Apache. Ya, saya melakukan rekursif greppada semua file konfigurasi, dan saya tidak memiliki penggantian apa pun di mana pun. Dan tidak, saya tidak menggunakan beberapa versi kuno Apache:

[root@server ~]# apachectl -v
Server version: Apache/2.2.15 (Unix)
Server built:   Jul 23 2014 14:17:29

Jadi, apa yang menyebabkannya? Bagaimana seseorang benar-benar menonaktifkan SSLv3 di Apache?

Bogdan Stăncescu
sumber
Dijawab di sini: askubuntu.com/q/537196/7163
Rory Alsop
5
Seperti dijelaskan dalam pertanyaan, saya telah melakukan semua langkah yang ditunjukkan di bagian itu dan SSL3 masih tersedia. Saya tidak bisa memberi tahu Anda bagian mana yang gagal menonaktifkan SSL3, tetapi intinya adalah tidak berfungsi, secara keseluruhan. Karena itu, saya mengerti Anda memiliki topi moderator Anda pada saat ini, jadi tolong lepaskan pertanyaan - itu mungkin membuktikan bahwa saya bodoh dan saya membuat kesalahan mendasar, tetapi dari POV moderator ini adalah pertanyaan yang sah.

Jawaban:

80

Saya memiliki masalah yang sama ... Anda harus memasukkan SSLProtocol all -SSLv2 -SSLv3dalam setiap bait VirtualHost di httpd.conf

Bait VirtualHost umumnya menjelang akhir file httpd.conf. Jadi misalnya:

...
...
<VirtualHost your.website.example.com:443>
    DocumentRoot /var/www/directory
    ServerName your.website.example.com

    ...
    SSLEngine on
    ...
    SSLProtocol all -SSLv2 -SSLv3
    ...
</VirtualHost>

Juga periksa ssl.conf atau httpd-ssl.conf atau serupa karena mereka dapat diatur di sana, tidak harus di httpd.conf

darcoli
sumber
3
Sebagai catatan, tergantung pada sysadmin / webmaster Anda, VirtualHost mungkin juga tinggal di dalam file khusus mereka di conf.d (itulah cara saya ingin menjaga rumah, dan itu adalah sesuatu yang saya pelajari, bukan sesuatu yang saya temukan, jadi saya berharap saya bukan satu-satunya).
Bogdan Stăncescu
3
Perhatikan bahwa setidaknya Apache 2.4+ yang SSLProtocoldikonfigurasi di luar stan VirtualHost akan berlaku untuk semua host virtual.
nurikabe
2
Saya menemukan alat ini yang akan menguji, antara lain, apakah server Anda memiliki SSLv3 dinonaktifkan: ssllabs.com/ssltest/index.html
amphetamachine
1
Jawaban ini sangat membantu saya ketika menonaktifkan TLSv1. Untuk memeriksa apakah sebuah protokol diberikan sepenuhnya dinonaktifkan, saya menemukan berguna berikut: nmap -sV --script ssl-enum-ciphers -p 443 <hostname>.
Luca Citi
Apakah ada cara untuk mengatur seluruh SSLProtocolsistem, tanpa harus mengedit setiap VirtualHost?
Dunatotatos
10

Saya memiliki masalah yang sama pada Ubuntu 14.04. Setelah membaca ini, saya mengedit bagian "SSLProtocol" di /etc/apache2/mods-available/ssl.conf.

  • dari: SSLProtocol all
  • untuk: SSLProtocol all -SSLv2 -SSLv3 -TLSV1

Tapi itu tidak berhasil. Jadi saya mengedit bagian berikut juga "SSLCipherSuite" di /etc/apache2/mods-available/ssl.conf.

  • dari: SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
  • untuk: SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SSLv3:!SSLv2:!TLSv1

Dan sekarang ini bekerja untuk saya.

Omong-omong, Cipher Suites tidak terpengaruh oleh POODLE, hanya protokolnya - tetapi sebagian besar peramban boleh saja dengan Cipher Suite SSLv3 yang dinonaktifkan.

Jangan gunakan ini untuk Server Surat! Atau Anda akan (mungkin) menghadapi masalah karena tidak dapat mengambil Surat Anda di beberapa perangkat.

BlueM00n
sumber
Terima kasih. Jawaban ini berfungsi pada pengaturan WHM / cPanel. Saya mencoba metode lain yang disarankan secara online dan hanya Anda yang berhasil.
Voitek Zylinski
1
Ini berfungsi, tetapi akan menonaktifkan akses dengan IE 10, karena menggunakan SSLv3 dan TLS1.0 secara default.
Erebus
4

Untuk Ubuntu 10,04

Untuk menonaktifkan SSLv3 di semua vhosts aktif, Anda memerlukan opsi di

/etc/apache2/mods-available/ssl.conf:

SSLProtocol all -SSLv2 -SSLv3
Hubsidubsidu
sumber
2

Saya memiliki masalah yang sama pagi ini, dan saya menemukan virtualhost lain yang mengaktifkan SSLv3, sehingga seluruh server merespons koneksi SSLv3.

Jadi, pastikan tidak ada host Anda yang memiliki SSLv3 aktif.

terdon
sumber
1

Pastikan SSLCipherSuite tidak mengandung! SSLv3. Dalam konteks itu, itu juga merujuk ke TLS1.0 dan TLS1.1.

Misalnya, jika konfigurasi Anda adalah SSLProtocol All , hanya TLS1.2 yang akan tersedia karena cara SSLCipherSuite dikonfigurasi dengan! SSLv3.

segera
sumber
0

Untuk pengguna CentOs yang mengalami kesulitan mengedit file konfigurasi SSL Anda melalui SSH, coba nonaktifkan SSLv3 melalui WHM :

Langkah 1: Navigasikan ke Editor Sertakan

-Login ke WHM -Buka layar "Apache Configuration", dan klik "Sertakan Editor"

Langkah 2: Edit Termasuk

-Di bawah "Pre Main Include", pilih "Semua Versi". Dengan cara ini server Anda akan terlindungi jika Anda mengubah versi Apache Anda. Saat dipilih, masukkan yang berikut ke dalam kotak teks:

Pada CentOS / RHEL 6.x:

SSLHonorCipherOrder Pada
SSLProtocol -All + TLSv1 + TLSv1.1 + TLSv1.2

Pada CentOS / RHEL 5.x:

SSLHonorCipherOrder Di
SSLProtocol -All + TLSv1

... dan kemudian klik Perbarui .

Setelah Anda mengklik pembaruan, Anda akan diminta untuk me-restart Apache; lakukan saat ini.

sumber asli: https://www.liquidweb.com/kb/how-to-disable-sslv3-and-protect-your-whmcpanel-server-from-poodle/

Isaias Valencia
sumber
1
Jawaban ini relevan untuk server yang dikendalikan melalui WHM / cPanel, bukan untuk server yang menjalankan CentOS.
Bogdan Stăncescu
0

Metode yang Anda gunakan adalah untuk versi baru dari Apache dan openssl. Mungkin saja versi baru ini tidak diinstal pada sistem Anda, memverifikasi versi yang diinstal saat ini.

Karena SSLv2dan SSLv3keduanya rentan terhadap beberapa serangan, jadi akan lebih baik menggunakan TLS saja. Jadi modifikasi file conf apache Anda sebagai berikut,

SSLProtocol TLSv1 TLSv1.1 TLSv1.2

atau

SSLProtocol TLSv1
P4cK3tHuNt3R
sumber
Ya, saya juga mencobanya - tidak ada sukacita. :-(
bisa tolong tempel output dari perintah "apachectl configtest".
P4cK3tHuNt3R
0

Saya memiliki masalah yang sama dan saya telah memeriksa bahwa saya memiliki semua pengaturan apache yang sesuai dengan benar.

Namun yang saya lewatkan adalah saya menggunakan nginx sebagai proxy terbalik di depan apache. Saya juga kebetulan menggunakan Plesk dan ini dari panduan perbaikan POODLE mereka :

Jika Anda menjalankan Nginx, sertakan baris berikut dalam konfigurasi Anda di antara arahan SSL lainnya di /etc/nginx/nginx.conf:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
icc97
sumber