Setelah melakukan berbagai perhitungan, akhirnya aku memutuskan untuk pindah dari shared hosting ke vps. Selain pertimbangan harga yang lebih murah (ada banyak web yang dikelola), aku juga sudah dikecewakan beberapa perusahaan web hosting di Indonesia. Jadi aku putuskan saja untuk berpindah dari shared hosting ke VPS.
Oleh karena itu, aku mau bikin tulisan tentang bagaimana membeli VPS, install vps, mengamankan VPS hingga konfigurasi website di vps sehingga dapat dijalankan dengan baik. Kumpulan tulisan dengan topik ini bisa kamu baca pada link di bawah ini
Berikut topik tulisan tentang hosting wordpress sendiri yang bisa kamu ikuti
- Hosting Wordpress Sendiri 1 : Install dan Setting VPS
- Hosting Wordpress Sendiri 2 : Install Nginx, PHP dan MySQL
- Hosting Wordpress Sendiri 3 : Install dan Setting Wordpress
- Hosting Wordpress Sendiri 4 : Setting HTTPS dan Gzip Compression
- Hosting Wordpress Sendiri 5 : Pindah Shared Hosting ke VPS
Membeli VPS
Ada banyak penyedia layanan VPS seperti digitalocean dan vultr. Namun pada kesempatan ini aku akan menggunakan vultr. Dengan pertimbangan harga yang sama namun mendapatkan spesifikasi server yang mirip dengan DO. Kalau mau coba, kamu bisa dapatkan $10 di Vultr.
Sebelum membeli VPS, kita harus menentukan lokasi server dan sistem operasi yang digunakan. Aku memilih lokasi server di Singapura dan sistem operasi Ubuntu 20.04 serta spesifikasi yang dibandrol $10/bulan. Sudah lebih dari cukup untuk menampung 5 website yang dikelola saat ini.
Kenapa Server di Singapura? Karena lokasi servernya cukup dekat dengan Indonesia yang notabene semua website yang akan diletakkan di vps adalah website yang diakses oleh pengunjung dari Indonesia. Sehingga lebih cepat diakses oleh pengunjung.
Kenapa menggunakan ubuntu? Selain sudah sepuluh tahun menggunakannya di desktop maupun laptop, sistem operasi ini cukup populer dan ada banyak resource yang bisa digunakan untuk mengatasi masalah pada server.
Kamu bisa menambahkan credits di akun dulu, pembayaran akan ditagihkan setiap bulan. Jadi bisa isi credits dengan top up setiap bulan. Kamu bisa bayar pakai Jenius kalau nggak punya kartu kredit.
Install Sistem Operasi
Pada halaman dashboard vultr, tekan tombol + lalu pilih Deploy New Server. Lalu kita akan diminta untuk memilih jenis server. Karena untuk hosting satu blog yang belum terlalu besar, pilih cloud compute
Setelah memilih jenis server, di bawahnya kita diminta untuk memilih lokasi server. Seperti yang sudah aku tulis sebelumnya, apabila target pengunjung merupakan Indonesia, pilih server Indonesia.
Kemudian kita diminta memilih sistem operasi. Aku pilih menggunakan ubuntu 20.04, karena ini merupakan versi paling baru dari ubuntu yang kebetulan juga merupakan versi LTS (Long Time Support) yang masih akan terus mendapatkan update selama 5 tahun kedepan
Kemudian pilih harga yang sesuai dengan kebutuhanmu. Kalau kamu cuma mau jalankan 1 blog di server ini, lebih baik menggunakan yang paling murah, yaitu $5/tahun. Itu sudah lebih dari cukup kok untuk 1 blog.
Kemudian Enter Server Label terserah mau dinamakan apa. Tunggu proses install sistem operasi server selesai (sekitar 5 menit) sampai kita mendapatkan IP Server VPS yang baru.
Aku sengaja deploy server baru buat tutorial ini, setelah itu akan aku hapus setelah menyelesaikan tutorialnya :)). Kalau sudah selesai kita akan mendapatkan ip adress server seperti gambar di bawah ini
Informasi servermu akan tampak seperti gambar dibawah ini. Mulai dari ip, username dan passwordnya.
Login VPS
Setelah proses instalasi sistem operasi selesai, kamu akan mengetahui ip server, root dan password. Kemudian kamu bisa login menggunakan terminal di mac maupun ubuntu dengan cara
ssh root@ipserver
Install Software Update
Seperti halnya sistem operasi yang baru diinstall, hal yang perlu dilakukan adalah melakukan cek repository apakah ada update software dengan cara
apt-get update
Setelah melakukan cek update software, langkah selanjutnya adalah install software yang sudah ada updatenya dengan cara
apt-get upgrade
Tunggu sampai proses selesai, dan untuk menghemat space pada vps, kamu bisa hapus software yang sudah nggak dipakai oleh sistem dengan cara
apt-get autoremove
Membuat User
Langkah selanjutnya dalam setting vps adalah membuat user baru. Kenapa?
Demi alasan keamanan, user root tidak akan bisa login ke server. Sehingga kita butuh user baru untuk login ke server. Karena user root terlalu luas privilegenya, sehingga cukup berbahaya apabila langsung bisa login sebagai root. Berbahayanya ketika ada orang yang tau passwordnya
Bagaimana cara membuat user baru? Gunakan perintah di bawah ini
adduser namauser
Kamu akan diminta untuk mengisi data dasar user seperti passwordnya juga. Aku sarankan sih pakai password generator dan menyimpannya menggunakan password manager seperti 1password. Untuk memastikan akun tetap aman sih.
Setelah membuat user, langkah selanjutnya masukkan user ke dalam sudo group dengan cara
usermod -a -G sudo namauser
Setelah itu coba logout dengan perintah
logout
Kemudian login lagi dengan perintah
ssh namauser@ipserver
Login VPS Tanpa Password
Setelah user baru dibuat, langkah selanjutnya adalah membuat ssh keypair. Buat apa? Untuk memudahkan kita login. Sehingga kita nggak butuh login menggunakan password di komputer yang akan kita gunakan. Ini membuat kita hanya bisa login ke server menggunakan perangkat yang sudah kita daftarkan.
Caranya, buka terminal di linux maupun mac dan ketikkan perintah di bawah ini
ssh-keygen -t rsa
Kamu bisa pilih dimana akan menyimpan kunci server tersebut. Langsung enter kalau mau di lokasi default. Setelah itu kamu akan diminta untuk mengisi passphrase. Yang merupakan password untuk kunci yang kamu buat. Jadi kamu harus memasukkan passphrase ini apabila ingin login ke dalam vps.
Jalankan perintah di bawah ini
cat ~/.ssh/id_rsa.pub
Copy hasil yang keluar dari perintah tersebut dan untuk sementara letakkan di text editor.
Masuk ke VPS dengan user baru yang sudah dibuat, kemudian bikin folder .ssh dan atur permissionnya dengan cara di bawah ini
mkdir ~/.ssh
chmod 700 ~/.ssh
Dalam folder .ssh, buat file dengan nama authorized_keys dengan cara
nano ~/.ssh/authorized_keys
Kalau mau pakai vim ya tinggal ganti nano dengan vim. Kemudian isi dengan hasil random teks yang sudah kita simpan sebelumnya setelha menjalanknan perintah cat.
Setelah itu, ganti lagi permission file dari authorized_keys menjadi 600 dengan cara
chmod 600 ~/.ssh/authorized_keys
Nah, sekarang kamu gak perlu masukin password ketika login ke VPS. Coba aja logout dan masuk lagi dengan cara ssh username@ipserver.
Kamu harus tetap memasukkan password, apabila mengatur passphrase ketika generate ssh.
Disable Login Root
Untuk alasan keamanan, login menggunakan root disarankan untuk dinonaktifkan. sehingga akan muncul error seperti contoh di bawah ini apabila ada yang berusaha login dengan root
Caranya gimana? Ikuti langkah-langkah berikut ini
sudo nano /etc/ssh/sshd_config
Cari tulisan PermitRootLogin yes
dan ganti menjadi PermitRootLogin no
. Kemudian simpan. Setelah itu kamu harus restart ssh dengan cara
sudo service ssh restart
Setelah itu coba login dengan user root, maka kamu tidak akan bisa dan mengalami seperti yang aku alami di atas.
Setelah disable root, selanjutnya adalah menolak user login ke VPS dengan password. Sehingga hanya komputer yang punya ssh key aja yang bisa login ke VPS. Jadi, ada baiknya menyimpan backup SSH Key.
sudo nano /etc/ssh/sshd_config
Cari PasswordAuthentication yes
dan ubah menjadi PasswordAuthentication no
. Kemudian simpat dan restart lagi service ssh supaya bisa bekerja dengan cara
sudo service ssh restart
Sebelum keluar, coba buka terminal baru dan coba login. Nanti kamu akan mengalami pesan error seperti yang ada di gambar atas.
Firewall
Firewall merupakan salah satu layer keamanan dari server yang cara kerjanya melakukan block pada jaringan. Ada software yang bernama ufw (Unncomplicated Firewall) yang seharusnya sudah terinstall secara default, kalau belum kamu bisa gunakan perintah di bawah ini
sudo apt-get install ufw
Setelah berhasil terinstall, langkah selanjutnya adalah menambahkan rules defaultnya, ytiu membuka port 22 untuk SSH dan 80 untuk HTTP, selain itu juga perlu menambahkan porot 443 untuk HTTPS karena website akan dijalankan pada mode HTTPS.
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
Setelah itu kita bisa cek rules yang diatur pada firewall dengan cara
sudo ufw show added
Hasilnya kurang lebih akan tampak seperti screenshot di bawah ini
Fail2ban
Langkah selanjutnya adalah install Fail2ban yang berfungsi untuk memonitor dan memblokir aktivitas mencurigakan dalam jangka waktu tertentu. Cara kerjanya dengan memasukkan ip address yang melakukan aktivitas mencurigakan ke dalam rules firewall.
Secara default, aplikasi ini tidak terinstall. Jadi kamu bisa install dengan cara
sudo apt-get install fail2ban
Setelah install, kemudian cukup jalankan perintah
sudo service fail2ban start
Default dari aplikasi ini sudah cukup dengan memblokir selama 10 menit setelah gagal login sebanyak 6x melalui ssh.
Selesai!
Setup awal VPS sudah selesai, sekarang kamu sudah memiliki vps yang siap digunakan untuk beberapa hal sesuai dengan kebutuhan. Dengan metode di atas, kamu sudah berhasil melakukan setting keamanan dasar untuk VPS.
Pada artikel selanjutnya, aku akan berbagi tentang bagaimana install nginx, konfigurasi server block hingga membuat website di vps bisa diakses. Kalau ada pertanyaan, bisa tulis di kolom komentar yak!
Btw, kalau ada kesalahan dalam penulisan artikel di atas let me know yak! Biar aku koreksi sehingga nggak menyesatkan banyak orang.
Leave a Comment