GNU/Linux >> Belajar Linux >  >> Linux

Kerentanan HTTPOXY:Cara melindungi dan menguji server web Anda

Kerentanan HTTPOXY yang ditemukan baru-baru ini adalah kerentanan yang mempengaruhi aplikasi yang berjalan di lingkungan cgi atau mirip cgi. Artinya, masalah tersebut memengaruhi hampir semua server web termasuk Apache dan Nginx, serta sebagian besar aplikasi PHP. Bahkan mode mod_php di Apache pun terpengaruh.

Tutorial ini akan menunjukkan cara melindungi server web Anda dari HTTPOXY. Ini berisi bagian untuk Distribusi Linux yang paling banyak digunakan CentOS + RHEL, Debian, dan Ubuntu. Langkah-langkahnya juga dapat diterapkan ke distribusi Linux lainnya, tetapi jalur ke file konfigurasi mungkin berbeda.

Penjelasan rinci tentang kerentanan HTTPOXY dapat ditemukan di situs web ini https://httpoxy.org/.

Langkah-langkah yang dijelaskan dalam tutorial ini kompatibel dengan tutorial server sempurna ISPConfig.

1 Bagaimana HTTPOXY memengaruhi server saya?

HTTPOXY mempengaruhi klien yang menghormati variabel HTTP_PROXY dan menggunakannya untuk konfigurasi proxy mereka dan aplikasi sisi server yang menggunakan HTTP_PROXY sebagai variabel nyata atau yang ditiru di lingkungan mereka. Hasil serangan dapat berupa lalu lintas yang diproksi oleh aplikasi web ke sistem target yang dipilih oleh penyerang atau aplikasi membuka koneksi keluar ke sistem lain. Kerentanan ini mudah dieksploitasi dari jarak jauh dan server dapat dipindai untuk mendeteksinya, jadi sangat disarankan untuk mengambil tindakan untuk menutupnya di server Anda.

1.1 Solusi umum

Solusi yang direkomendasikan saat ini adalah menghapus atau memfilter variabel header HTTP_PROXY. Ini dilakukan di Apache dengan modul mod_headers dan pernyataan konfigurasi ini:

RequestHeader unset Proxy early

Di Nginx, Anda dapat menggunakan baris ini untuk menghapus variabel HTTP_PROXY.

fastcgi_param HTTP_PROXY "";

Bab berikutnya menjelaskan prosedur rinci untuk Distribusi Linux yang berbeda.

2 Debian

Bab ini menjelaskan konfigurasi untuk melindungi Apache dan Nginx pada server Debian 8 (Jessie) dan Debian 7 (Wheezy) terhadap HTTPOXY. Langkah selanjutnya mengasumsikan bahwa Anda masuk sebagai pengguna root di shell. Jika Anda login dengan pengguna yang berbeda, gunakan perintah su (atau sudo jika Anda mengonfigurasi sudo) untuk menjadi pengguna root.

2.2 Debian 8 (Jessie) dengan Apache

Aktifkan modul header Apache

a2enmod headers

Tambahkan file konfigurasi global /etc/Apache2/conf-available/httpoxy.conf. Saya akan menggunakan editor nano di sini:

nano /etc/apache2/conf-available/httpoxy.conf

dan rekatkan konten berikut ke file itu:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

Simpan file. Kemudian aktifkan di konfigurasi dengan perintah a2enconf dan restart apache.

a2enconf httpoxy
service apache2 restart

2.2 Debian 7 (Mengi) dengan Apache

Aktifkan modul header Apache:

a2enmod headers

Tambahkan file konfigurasi global /etc/Apache2/conf.d/httpoxy.conf. Saya akan menggunakan editor nano di sini:

nano /etc/apache2/conf.d/httpoxy.conf

dan rekatkan konten berikut ke file itu:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

Simpan file. Kemudian restart apache.

service apache2 restart

2.3 Debian dengan Nginx

Perintah berikut akan menambahkan fastcgi_param yang menyetel variabel HTTP_PROXY ke string kosong ke file /etc/nginx/fastcgi_params.

echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

Kemudian mulai ulang nginx untuk menerapkan perubahan konfigurasi.

service nginx restart

3 Ubuntu

Bab ini menjelaskan konfigurasi untuk melindungi Apache dan Nginx pada server Ubuntu 14.04 - 16.04 terhadap HTTPOXY.

3.1 Ubuntu dengan Apache

Aktifkan modul header Apache.

sudo a2enmod headers

Tambahkan file konfigurasi global /etc/Apache2/conf-available/httpoxy.conf. Saya akan menggunakan editor nano di sini:

sudo nano /etc/apache2/conf-available/httpoxy.conf

dan rekatkan konten berikut ke file itu:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

Simpan file. Kemudian aktifkan di konfigurasi dengan perintah a2enconf dan restart apache.

sudo a2enconf httpoxy
sudo service apache2 restart

3.2 Ubuntu dengan Nginx

Langkah-langkah untuk melindungi Ubuntu dari HTTPOXY mirip dengan langkah-langkah untuk Debian. Kami hanya perlu memastikan untuk menjalankan perintah dengan sudo. Perintah echo ini akan menambahkan baris fastcgi_param yang menetapkan variabel HTTP_PROXY sebagai string kosong. File /etc/nginx/fastcgi_params disertakan ke dalam bagian @PHP dan cgi-bin default dari file nginx vhost dan juga di vhost yang dibuat oleh ISPConfig. Jika Anda menambahkan vhost khusus, periksa apakah vhost tersebut berisi "include /etc/nginx/fastcgi_params;" di bagian konfigurasi untuk php dan konektor cgi atau fastcgi lainnya.

Jalankan perintah berikut untuk menambahkan variabel HTTP_PROXY kosong.

sudo echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

Kemudian mulai ulang Nginx untuk menerapkan perubahan konfigurasi.

sudo service nginx restart

4 CentOS, RHEL dan Fedora

Bab ini menjelaskan konfigurasi untuk melindungi Apache dan Nginx di server CentOS dari HTTPOXY. Langkah yang sama juga berlaku untuk server Fedora. Login sebagai pengguna root pada shell sebelum Anda melanjutkan dengan perintah di bawah ini.

4.1 Apache

File konfigurasi Apache (httpd) pada CentOS adalah /etc/httpd/conf/httpd.conf. Saya akan menambahkan aturan header Apache di akhir file httpd.conf dengan perintah ini:

echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

Kemudian restart httpd untuk menerapkan perubahan konfigurasi.

service httpd restart

4.2 Nginx

Server web Nginx di CentOS menyertakan fastcgi_params ke dalam bagian PHP dan CGI dari vhost default, sehingga kita dapat menambahkan aturan untuk mengatur variabel HTTP_PROXY kosong di sana. Jalankan perintah ini untuk menambahkan variabel HTTP_PROXY kosong.

echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

Kemudian mulai ulang nginx untuk menerapkan perubahan konfigurasi.

service nginx restart

5 Tes

Terakhir, Anda harus menguji apakah server Anda aman sekarang. Luke Rehman telah mengembangkan alat pengujian online yang bagus yang dapat ditemukan di sini: https://httpoxy.rehmann.co/

Masukkan URL ke server atau situs web Anda di alat dan klik tombol "uji".

Berikut adalah hasil untuk howtoforge.com. Seperti yang Anda lihat, situs web kami aman.

  • Situs Web HTTPOXY https://httpoxy.org/
  • Terima kasih kepada Jesse untuk resep Debian 8.


Linux
  1. Cara mengkonfigurasi server web Apache

  2. Cara memulai, memulai ulang, dan menghentikan server web Apache

  3. Cara Menginstal Server Web Apache di Ubuntu

  1. Cara Menemukan File Konfigurasi MySQL, PHP dan Apache

  2. Apa itu Server Web, dan Bagaimana Cara Kerja Server Web?

  3. Bagaimana cara memeriksa kesalahan sintaks dalam konfigurasi server web Apache saya

  1. Bagaimana Memperbaiki Kerentanan DROWN di server Web Apache/NGINX dan SMTP?

  2. Cara Menginstal dan mengkonfigurasi server web Apache di Ubuntu 13.10

  3. Cara Melindungi Apache dan SSH Dengan Fail2Ban di CentOS 8