Blokir akses nama domain yang tidak ada pada Apache

Idem dengan pembahasan saya sebelumnya soal ada orang yang mengarahkan nama domainnya (dengan A record) ke alamat IP salah satu VPS saya. Ini banyak kerugiannya apabila dibiarkan. Kalau yang dulu solusinya untuk Nginx maka kali ini buat Apache.

Secara default kalau ada nama domain yang diminta dan pada Apache tidak mengenali atau memang tidak ada akan muncul halaman error 404 Not Foundnya. Atau kalau konfigurasi Apache anda kurang bagus malah akan muncul situs anda yang sedang dihosting disana. Ini berbahaya kan? Apalagi setiap permintaan akan diproses, jadi buang – buang resource VPS kalau cukup banyak yang salah pointing.

Solusinya sendiri sangatlah sederhana, kita akan memblokir semua akses yang masuk apabila tidak ada virtual host dengan nama domain yang diminta. Jadi silahkan edit konfigurasi Apache dan letakkan kode berikut diawal sebelum kode virtual host lainnya.

  • Apache 2.2
    <VirtualHost *:80>
        ServerName tidak_ada
        <Location />
            Order allow,deny
            Deny from all
        </Location>
    </VirtualHost>
    <VirtualHost *:80>
        ServerName nama_domain.com
        <Location />
            AllowOverride All
            Order allow,deny
            allow from all
        </Location>
    </VirtualHost>
  • Apache 2.4
    <VirtualHost *:80>
        ServerName tidak_ada
        <Location />
            Require all denied
        </Location>
    </VirtualHost>
    <VirtualHost *:80>
        ServerName nama_domain.com
        <Location />
            Require all granted
        </Location>
    </VirtualHost>

Itu saya berikan contoh kode virtual host Apache yang ada pada VPS anda. Silahkan diadaptasikan konfigurasinya saja supaya ikut kondisi server yang anda miliki.

Jangan lupa setelahnya silahkan ada reload atau restart proses Apache agar konfigurasi barunya diterapkan. Setelah itu coba tes dengan nama domain ngawur yang telah dipointing ke alamat IP VPSnya.

Tinggalkan komentar