Bagaimana saya bisa menguji apakah server apache saya adalah proxy terbuka?

11

Apakah ada perintah curl yang akan memvalidasi jika server bertindak sebagai proxy terbuka?

Saya sudah mencoba

curl --proxy http://<my server>:80 http://yahoo.com

Tetapi respon dari apache adalah:

Description: Could not process this "GET" request.
Akan
sumber
10
Itu harus dilakukan. Respons itu berarti itu tidak bertindak sebagai proxy, pada port itu pula. Seandainya Anda seharusnya telah menerima halaman Yahoo (atau otentikasi proxy, atau beberapa respons proxy lainnya).
squillman
Anda juga harus mencoba proksi ke situs https, http / https diimplementasikan secara berbeda. Proxy apache yang saya gunakan tidak berfungsi seperti ini, server jarak jauh (proksi) ditentukan di suatu tempat konfigurasi. Ini seperti ketika Anda ingin halaman dari server acak muncul di situs utama Anda atau sesuatu.
Some Linux Nerd
curl --proxy http: // <yourserver>: 80 https: //mail.google.com # <--- https
Beberapa Nerd Linux
Selain dari tes yang disarankan di atas Anda hanya dapat memeriksa konfigurasi Anda. Untuk mengonfigurasi Apache sebagai proksi penerusan memerlukan "ProxyRequests On" (defaultnya tidak aktif). Ini hanya dapat diaktifkan di tingkat global (Server) atau virtual host, jadi Anda tidak perlu mencari file htaccess.
percaya

Jawaban:

1

Jawaban sederhananya adalah ini, jika Anda memiliki ProxyRequests On(default ke mati) di suatu tempat di konfigurasi Anda maka Anda mungkin menjalankan proxy terbuka, jika Anda tidak maka Anda tidak, setidaknya dari sisi konfigurasi Apache hal.

Jika Anda masih mendapatkan 200 OKentri dalam log akses Anda untuk permintaan yang tampak seperti permintaan proxy maju, itu mungkin karena Anda memiliki semua penulisan ulang yang memetakan setiap permintaan ke controller tidak peduli seperti apa tampilannya. Anda mungkin dapat menambahkan kondisi untuk mencegah hal ini jika Anda khawatir.

Kafir
sumber