Apache 2.0 - Menonaktifkan metode HTTP TRACE dan TRACK

3

Saya menggunakan Apache 2.0 sebagai server HTTP dan tujuan khusus klien HTTP berbasis Perl. Sampai sekarang saya menonaktifkan metode TRACE dan TRACK menggunakan konfigurasi berikut di file httpd.conf:

Tulis ulang pada

RewriteCond% {REQUEST_METHOD} ^ (TRACE | TRACK)

RewriteRule. * - [F]

Pertanyaan

1) Untuk meningkatkan kinerja, dapatkah saya mengganti konfigurasi sebelumnya dengan yang berikut?

traceEnable off

2) Dapatkah perintah "traceEnable off" memastikan bahwa kedua metode TRACE dan TRACK akan dinonaktifkan?

3) Akhirnya, apakah saya perlu menambahkan TRACE / TRACK menonaktifkan konfigurasi di file httpd.conf karena server HTTP hanya dapat diakses oleh klien HTTP berbasis-Perl?

funk
sumber

Jawaban:

2
  1. Menurut dokumentasi http://httpd.apache.org/docs/2.0/mod/core.html#traceenable TraceEnable Off hanya akan menonaktifkan metode HTTP TRACE. Itu tidak melakukan apa pun pada metode TRACK.

  2. Lihat 1.

  3. Jika server Anda bersifat publik, Anda mungkin harus menonaktifkan metode ini.

Selain itu: karena Anda tampaknya paranoid (yang bisa menjadi hal yang baik !), Saya akan memutakhirkan ke versi Apache yang lebih baru karena rilis final 2.0 telah dibuat dan tidak ada bug baru - termasuk lubang keamanan akan diperbaiki.

Colin 't Hart
sumber
Hai! Terima kasih atas tanggapan Anda! Pembaruan server tidak dalam tanggung jawab saya, jadi saya harus bekerja di Apache 2.0. ;) Bagaimanapun, saya tidak dapat memahami efek perintah TRACK di Apache karena metode TRACK adalah perintah Microsoft yang tidak didukung oleh Apache. Anda punya ide?
funk
Tidak ada ide. Saya tidak yakin apakah itu berhasil, tetapi mungkin Anda dapat menggunakan curl -X TRACKuntuk menguji apakah Apache bahkan menanggapi TRACK sama sekali tanpa konfigurasi? Lihat blogs.plexibus.com/2009/01/15/rest-esting-with-curl untuk info tentang cara menggunakan CURL untuk menguji metode HTTP lainnya.
Colin 't Hart
Saya suka ikal! :) Perintah yang bagus dan bermanfaat! Terima kasih!
funk
Beri tahu kami temuan Anda! Saya menjalankan beberapa server Apache publik dan sedang mempertimbangkan untuk menguncinya lebih jauh. Sebagai contoh, saya hanya mengaktifkan modul yang benar-benar saya butuhkan (yang hanya sekitar 6 atau 7).
Colin 't Hart
Ini sangat terlambat, tetapi Apache / 2.4.6 (CentOS) melaporkan 501 - Tidak Diimplementasikan ketika saya mengeriting -X TRACK itu.
Michael Cordingley
4

Kasus A: Arahan TRACE

Menggunakan perintah "traceEnable on" di file httpd.conf dan menjalankan perintah curl berikut:

SITE = http://www.server.my; curl $ SITE -X TRACE

Jawabannya adalah:

TRACE / HTTP/1.1 User-Agent: curl/7.29.0 Host: http://www.server.my Accept: */*

Di sisi lain, jika "traceEnable off" perintah curl sebelumnya kembali:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.</p>
<hr>
<address>Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.7d DAV/2 Server at http://www.server.my Port 80</address>
</body></html>

yang berarti bahwa arahan mengaktifkan TRACE dinonaktifkan. Jadi, saya pikir perintah "traceEnable off" berfungsi dengan benar.

Kasus B: Arahan TRACK

Menggunakan perintah "traceEnable on" di file httpd.conf dan menjalankan perintah curl berikut:

SITE = http://www.server.my; curl $ SITE -X TRACK

Jawabannya adalah:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Method Not Implemented</title>
</head><body>
<h1>Method Not Implemented</h1>
<p>TRACK to / not supported.<br />
</p>
<hr>
<address>Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.7d DAV/2 Server at http://www.server.my Port 80</address>
</body></html>

Berikut ini adalah kesimpulan dari testcase sebelumnya: 501 Metode Tidak Diimplementasikan . Jika Anda mengirim permintaan TRACE ke Apache, itu akan mengembalikan bahwa metode ini tidak diterapkan. Jadi, saya pikir kita tidak perlu khawatir ... Ini dikonfirmasi oleh uji kasus berikutnya.

Jika "traceEnable off" maka permintaan TRACK sebelumnya mengembalikan pesan "tidak diimplementasikan" yang sama.

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Method Not Implemented</title>
</head><body>
<h1>Method Not Implemented</h1>
<p>TRACK to / not supported.<br />
</p>
<hr>
<address>Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.7d DAV/2 Server at http://www.server.my Port 80</address>
</body></html>

Menurut http://publib.boulder.ibm.com/httpserv/ihsdiag/http_trace.html , meskipun server apache tidak mendukung metode TRACK secara asli, mungkin modul plug-in untuk memberikan dukungan untuknya. Untuk menonaktifkan kemampuan ini untuk modul plug-in, selain menonaktifkan metode TRACE kita mungkin harus menonaktifkan metode TRACK menggunakan modul Rewrite.

Tetapi jika Anda tidak menginstal plug-in TRACK ke Apache, tidak ada masalah keamanan. Apakah asumsi ini valid?

funk
sumber
Ya: jika Anda tidak menginstal (m) modul apa pun, Anda membatasi kemampuan Apache. Periksa dokumentasi modul yang Anda instal dengan seksama.
Colin 't Hart