Cara Mengamankan Website – Keamanan website adalah hal yang sangat penting, terutama bagi Anda yang meng-host banyak domain di satu server VPS. Salah satu ancaman yang sering terlupakan adalah visitor bisa mengakses langsung website Anda melalui IP publik VPS tanpa melalui domain. Hal ini bisa membuka celah keamanan. Dengan memblokir akses langsung ke IP publik, Anda dapat memastikan bahwa website hanya bisa dibuka melalui nama domain, sehingga meningkatkan lapisan keamanan dan authority domain Anda.
Alasan utama memblokir akses langsung ke IP publik VPS adalah terkait dengan SSL/TLS yang tidak valid. Jika pengunjung bisa mengakses website Anda menggunakan IP publik, maka sertifikat SSL/TLS yang digunakan untuk mengenkripsi koneksi tidak akan cocok dengan IP tersebut, karena SSL/TLS memverifikasi bahwa nama domain sesuai dengan sertifikat yang diterbitkan untuk domain tersebut.
Hal ini Mengakibatkan:
Saya sangat merekomendasikan Nevacloud sebagai provider VPS Lokal Indonesia. Di sana, Anda dapat membeli VPS dengan sistem pembayaran per jam. Harga yang mereka tawarkan pun cukup menarik, mulai dari Rp 48.000/bulan.
Keunggulan VPS NevaCloud
Baca Juga : Cara Mengamankan Server Ubuntu dari Peretas
Ada beberapa cara untuk memblokir direct access web melalui IP Address ini. Diantaranya melalui konfigurasi web server seperti Nginx atau Apache. Melalui WAF seperti cloudflare atau menggunakan Firewall. Tapi pada tutorial kali ini Admin hanya akan membagikan tutorial cara blokirnya melalui Web Server Nginx. Untuk cara yang lain akan Kami update secepatnya.
Jika web server yang Anda pakai adalah Nginx, cara ini bisa Anda terapkan.. Pertama unlink dulu site default nginx.
sudo unlink /etc/nginx/sites-enabled/default
Buat dulu folder untuk menyimpan sertifikat ssl self-signednya
sudo mkdir -p /etc/nginx/ssl
Kemudian baru buat Sertifikat SSL Self-Signed. Kita perlu SSL untuk menerima permintaan HTTPS. Karena hanya akan diblock koneksinya, jadi kita buat saja dengan openssl.
Silahkan sesuaikan dengan identitas Anda. Mulai dari Negara, nama web, email dan lainya.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/nginx/ssl/openssl.key -out /etc/nginx/ssl/openssl.crt \
-subj "/C=ID/ST=Dexaweb/L=YK/O=Dexaweb/OU=Dexaweb/CN=dexahost.web.id/[email protected]"
Kemudian hapus dan buat baru konfigurasi site default nginxnya.
sudo rm /etc/nginx/sites-available/default
sudo nano /etc/nginx/sites-available/default
Masukkan baris konfigurasi berikut :
server {
listen 80 default_server;
listen 443 ssl http2 default_server;
server_name _; # Untuk menangani semua permintaan tanpa hostname yang valid
ssl_certificate /etc/nginx/ssl/openssl.crt;
ssl_certificate_key /etc/nginx/ssl/openssl.key;
ssl_protocols TLSv1.2 TLSv1.3;
# Tampilkan 404 jika akses melalui IP
return 404;
}
Penjelasan:
ssl_certificate
dan ssl_certificate_key
mengarah ke sertifikat dan key self-signed yang telah Anda buat.return 404;
memastikan bahwa jika seseorang mencoba mengakses IP langsung, server akan merespons dengan halaman 404 (Not Found).Buat symlinks ke site-enabled
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
Terakhir check konfigurasi dan restart Nginx.
sudo nginx -t
sudo systemctl restart nginx
Kita akan uji dengan mengakses website wordpress. Kita akan akses IP Publik VPS menggunakan protokol HTTP dan HTTPS. Jika konfigurasi benar, maka akan muncul page 404 Not Found.
https://ip-public-server
Menonaktifkan akses langsung ke IP publik VPS sangat penting untuk meningkatkan keamanan website Anda. Dengan cara ini, Anda melindungi server dari potensi serangan seperti DDoS dan menghindari masalah terkait SSL/TLS yang tidak valid saat mengakses website melalui IP. Menggunakan proxy server seperti CloudFlare untuk mengarahkan lalu lintas hanya melalui nama domain juga memberikan lapisan perlindungan tambahan, serta menjaga server tetap aman dari pemindaian port dan eksploitasi kerentanannya. Dengan mengikuti langkah-langkah yang telah dijelaskan, Anda dapat memastikan bahwa website Anda hanya dapat diakses melalui jalur yang aman dan terkontrol, menjaga integritas dan kepercayaan pengunjung terhadap situs Anda.
Semoga panduan ini bermanfaat, dan selamat mencoba! 🚀