XAMPP menolak akses dari alamat IP eksternal tertentu
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.conf
file 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 deny
lalu lintas dari alamat IP eksternal tertentu?
Sepertinya saya tidak dapat menggunakan .htaccess
karena 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
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 .htaccess
file, yang merupakan kesayangan saya, dikutip dari manual di file .htaccess :
Anda harus menghindari penggunaan
.htaccess
file sepenuhnya jika Anda memiliki akses ke file konfigurasi server utama httpd . Menggunakan.htaccess
file memperlambat server http Apache Anda . Direktif apa pun yang dapat Anda sertakan dalam.htaccess
file 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 ProxyPass
arahan 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>