Bagaimana cara memblokir akses dari beberapa alamat IP (tidak untuk )?
Saya punya Apache / CentOS 6 server web menjalankan beberapa situs keluarga kecil dari rumah saya dengan alamat IP dinamis yang diperbarui dengan Namecheap Klien DNS. Saya tidak ingin orang dapat memasukkan alamat IP saya ke browser mereka dan mendapatkan situs default saya. Namun, saya perlu agar berfungsi seperti sekarang, tanpa mengubah cara keluarga saya menghubungkannya, untuk menghindari segudang panggilan dukungan dari paman, bibi, nenek, ibu, saudara perempuan, keponakan, dll tentang mengapa jalan pintas mereka tidak bekerja
Saya memiliki alamat IP saya dikonfigurasi sebagai vhost untuk mengirim permintaan ke folder nol yang menunjukkan file indeks Apache default, tetapi saya ingin menyembunyikan fakta bahwa ada server web di sana sama sekali untuk permintaan alamat IP. Bagaimana saya harus mengkonfigurasi Apache atau .htaccess untuk sepenuhnya menjatuhkan atau menolak (mana yang akan mencegah orang menggali lebih dalam) orang yang menggunakan alamat IP saya di browser mereka?
Alasan saya adalah: Saya tidak ingin pergi ke situs porno dan memiliki seseorang - admin situs, script kiddie, orang malware, siapa pun - dapatkan alamat IP saya, masukkan ke browser mereka, dan dapatkan gambar keluarga dan anjing saya. "Oh, Sol LastName - tinggal di Random Town, FL. Bekerja untuk perusahaan X membuat widget. Memiliki seorang istri dan 7 anak-anak, semuanya digambarkan dan diberi nama. Suka kurcaci hamil dengan kostum domba, bernyanyi di Yiddish. Mengirim pesan langsung ke istrinya (referensi silang dengan Facebook) dengan saran tentang cara memakai kostum domba yang lebih provokatif terdengar menyenangkan! "
Atau kiddie script acak menjadi marah karena saya dissed Faygo di forum mereka. Menempatkan alamat IP saya ke browser mereka, menemukan situs saya, nama saya, informasi umum tentang keluarga saya, memutuskan untuk mengirim ke forum kota lokal yang Sol LastName sedang mencari sarjana yang memenuhi syarat untuk melanjutkan Perlu saya lanjutkan?
sumber
Jawaban:
Anda tidak dapat menyembunyikan sepenuhnya bahwa ada server web di sana, karena koneksi ke server dibuat dengan alamat IP, dan bukan nama host. Apache kemudian membaca permintaan, yang berisi bidang Host yang menunjukkan IP yang digunakan untuk mengakses situs ini, tetapi pada saat itu, koneksi TCP sudah dibuat. Namun Anda dapat menggunakan mod_security untuk menutup koneksi TCP setelah apache menemukan vhost yang benar tanpa mengirim balasan HTTP, lihat https://serverfault.com/questions/401517/how-to-drop-all-requests-using-mod-security .
Juga, pastikan bahwa vhost yang Anda gunakan untuk menjatuhkan permintaan itu adalah apache vhost pertama yang dibaca dalam konfigurasinya, karena itu akan menjadi yang dipilih jika tidak ada vhost yang cocok (misalnya, jika seseorang menggunakan file host mereka untuk memberikan nama acak ke alamat IP Anda).
sumber