Blokir akses website lewat IP di Nginx
Yup, ternyata solusi saya sebelumnya itu salah kaprah. Kasusnya masih berhubungan, dimana salah satu website yang dihosting dalam Nginx bisa diakses kontennya kalau lewat alamat IP VPSnya. Masalahnya hal ini diindeks oleh Google. Yang saya bahas sebelumnya adalah mengalihkan pengunjung yang membuka lewat IP ke URL situsnya, dan aslinya bisa dikatakan cukup.
Tapi karena saya tidak ingin alamat IPnya diketahui umum dan ini pakai CloudFlare maka bisa dikatakan tidaklah ideal. Akhirnya saya putuskan agar memblokir saja seluruh usaha akses ke situsnya apabila datangnya melalui alamat IP. Jadi seakan – akan tidak ada yang dihosting didalamnya.
Oke, kita perlu mengedit nginx.conf dan tambahkan kode berikut dalam blok http{}
. Tapi ingat, ini letaknya diatas konfigurasi virtual host Nginx, karena akan diproses secara berurutan.
server {
return 444;
}
Pas saya coba kode diatas cuma ampuh pada koneksi HTTP.
Jadinya saya cari solusi serupa tapi untuk HTTPS, dan ini yang saya dapatkan. Lokasinya saya tempatkan dibawah kode diatas.
server {
listen 443 ssl default_server;
server_name _;
return 444;
}
Solusi alternatif tapi metodenya tetap sama, kalau yang ini malah diposisikan setelah konfigurasi virtual hosting.
server {
listen 80;
listen 443;
server_name 192.168.1.233;
return 444;
}
Ini berlaku untuk HTTP dan HTTPS, bedanya langsung ditentukan setiap request ke alamat IP server akan ditutup. Silahkan dicoba yang ini kalau yang sebelumnya bermasalah.
Jangan lupa restart Nginx agar setting barunya diterapkan. Dan saya jelaskan bahwa kode 444
ini unik milik Nginx yang artinya koneksi ditutup tanpa respon. Kalau 404
maksudnya konten tidak ditemukan, jadi beda fungsinya.
Hmm, bermanfaat ini kalau ingin menyembunyikan ip vps, bisa untuk meminimalisir celah keamanan karena dari ip salah satu jalan untuk ddos dsb kan mas chandra?
Ya, pertimbangan saya salah satunya itu juga mbak. Hehe. 😀 Sebentar lagi saya mau koreksi karena pas saya uji coba ada yang masih kurang sreg hasilnya.
sip ditunggu sampai sreg baru saya terapkan di live site 😀
Sudah mbak, yang kode ketiga. Pakai kode sebelumnya memang sukses tapi kalau digabung malah koneksi HTTPS saya ditolak walaupun pakai nama domain. Makanya saya buru – buru koreksi sebelum menyesatkan. Haha. 😀
Beda di urutannya juga, yang ini letaknya dibawah baris
include /etc/nginx/conf.d/*.conf;
daninclude /etc/nginx/sites-enabled/*;
, jadi dieksekusi paling akhir.karna saya nggak pakai https, tetap bisa pakai yang pertama 🙂
Haha, aman dah. Saya pakai HTTPS soalnya, jadi cek 2 protokol apa beres semuanya. 🙂
mas kalau mau bikin web proxy gimana mislkan
www.domain.com:8011
Bisa dijelaskan dulu susunan stacknya mbak? Ini Nginx di depan Apache sebagai reverse proxy atau bagaimana ya? Tujuannya?
sperti klo kita buka vesta cp knappa mesti msukan
www.domain.com:8083
di port 8083nah public html di vesta cp itu dimana ?
Ya karena itu default port untuk administrasi Vesta mbak, sudah ditentukan dari sananya dan bisa diubah kalau mau. Dan
public_html
ini maksudnya halaman panel Vesta? Ada di/usr/local/vesta/web
nah klo ku mau bkin web dengan menggunakan port bisa ga
Website biasa pada port selain 80? Ya bisa saja mbak. Cuma saya ingin tahu saja tujuannya apa ya mbak.
tujuannya agar web mail ku ga smbarang org bisa ngakses ke web maill ku mas klo saat ini kan web mail ku sprti ini
www.namadomain.com/webmail
nah mksud ak url web mail’nya di ganti dengan port jdi mislanyawww.namadomain.com:1100
Coba cek di konfigurasi Nginxnya mbak apakah ada
listen
untuk Roundcube dan coba diganti portnya, saya sudah ga megang VestaCP (lenyap bersamaan Virtwire), jadi belum bisa ngecek sendiri.Tapi kalau mengganti URL bisa lewat setting server di panelnya. Ada opsi Webmail URL.