XAMPP menolak akses dari alamat IP eksternal tertentu

Sep 17 2019

Saya butuh bantuan untuk mengamankan server XAMPP pengujian saya sejauh ini tidak ada yang saya coba yang berhasil. Saya menjalankan Apache 2.4.7 pada mesin Windows 7.

Penyiapannya adalah sebagai berikut:

Saya mengarahkan semua lalu lintas yang datang di IP server saya, port 80 ke aplikasi java yang berjalan localhost:5000.

Kode yang melakukan semua ini dalam httpd-vhosts.conffile adalah sebagai berikut:

<VirtualHost *:80> 
  ProxyPreserveHost On
  ProxyRequests Off
  ServerName demo.website.com
  ServerAlias website.com
  ProxyPass / http://localhost:5000/
  ProxyPassReverse / http://localhost:5000/
  <Proxy *>
        Order deny,allow
        Allow from all
  </Proxy>
</VirtualHost>

Pertanyaannya adalah, bagaimana cara denylalu lintas dari alamat IP eksternal tertentu?

Sepertinya saya tidak dapat menggunakan .htaccesskarena permintaan pada port 80 diarahkan ke aplikasi java, bukan folder xampp yang berisi konten web.

Selain itu, kode di bawah ini juga tidak berfungsi:

<Proxy *>
    order allow,deny
    deny from 193.37.XXX.XX
    allow from all
</Proxy>

Pilihan lain apa yang tersedia?

Ada saran?

EDIT:

Setelah tanggapan yang saya dapatkan, sepertinya saya telah melakukan reverse proxy yang sepenuhnya salah membuka celah yang dapat dieksploitasi di server. Berdasarkan jawaban yang diberikan, saya telah mengubah kode awal saya.

Karena saya menggunakan kode tidak aman yang serupa untuk port 443 dan saya tidak dapat menjalankan apache setelah modifikasi baru, saya telah memposting pertanyaan baru DI SINI .

Jawaban

4 HBruijn Sep 18 2019 at 07:45

Seperti yang telah dikomentari oleh @MichaelHampton: segera hapus pengaturan berikut:

<Proxy *>
    order allow,deny
    deny from 193.37.XXX.XX
    allow from all
</Proxy> 

Itu tidak diperlukan untuk reverse proxy tetapi digunakan untuk mengkonfigurasi proxy maju , terbuka untuk hampir semua orang, yang akan memungkinkan server Anda untuk disalahgunakan. (Untungnya kamu masih juga menggunakan )ProxyRequests off

BTW ketika Anda memang membutuhkan proxy penerusan, jangan gunakan Apache httpd tetapi produk yang lebih spesifik.


Sepertinya saya tidak bisa menggunakan .htaccess ...

IMHO Anda sudah menuju ke arah yang salah dengan maksud Anda membuat .htaccessfile, yang merupakan kesayangan saya, dikutip dari manual di file .htaccess :

Anda harus menghindari penggunaan .htaccessfile sepenuhnya jika Anda memiliki akses ke file konfigurasi server utama httpd . Menggunakan .htaccessfile memperlambat server http Apache Anda . Direktif apa pun yang dapat Anda sertakan dalam .htaccessfile lebih baik diatur dalam Directoryblok di file konfigurasi Apache utama, karena akan memiliki efek yang sama dengan kinerja yang lebih baik) dan menggabungkannya dengan

Tetapi alasan mengapa dalam kasus ini .htaccess tidak berfungsi adalah karena mereka menerapkan pengaturan ke sumber daya pada sistem file lokal, dari direktori, dan dengan proxy terbalik, konten diambil dari tempat lain oleh Apache httpd.


Solusi untuk masalah Anda yang sebenarnya, seperti cara menerapkan kontrol akses tambahan dan alamat IP putih / daftar hitam pada URL proxy terbalik: Anda menempatkan ProxyPassarahan dan arahan tambahan dalam satu <Location>blok di konfigurasi Anda (yang juga karena Apache 2.4 kebetulan adalah konfigurasi sintaks yang menawarkan kinerja terbaik) dan menambah batasan alamat IP dengan Requirepetunjuk ke lokasi itu:

<VirtualHost *:80> 
  ServerName demo.website.com
  ServerAlias website.com

  <Location />
    <RequireAll>
      # Block IP-addresses from the 193.37.0.0/16 and 10.9.8.0/24 networks 
      Require not ip 193.37 10.9.8
      # Allow all other IP's
      Require all granted
    </RequireAll> 
    ProxyPass http://localhost:5000/
    ProxyPassReverse http://localhost:5000/
  </Location>

</VirtualHost>