Ketika pertama kali membuat server Debian untuk VPS, ada beberapa konfigurasi dasar VPS yang perlu terapkan.
Konfigurasi dasar ini dapat meningkatkan keamanan. Selain itu, konfigurasi dasar ini akan memudahkan Anda dalam melakukan beberapa paket instalasi.
Apa saja langkah-langkahnya?
Berikut ini langkah yang perlu di lakukan untuk konfigurasi VPS Debian :
- Root login
- Update dan upgrade server
- Membuat user baru
- Tambahkan Public Key Authentication (PKA)
- Nonaktifkan Password Authentication
- Test Log In
- Konfigurasi Firewall menggunakan UFW
- Reboot VPS Debian
1. Root Login
Root login digunakan untuk proses masuk ke server. Anda bisa mendapatkan detail Login di panel ataupun email saat Anda membeli cloud VPS.
Jika menggunakan Windows, Anda akan membutuhkan aplikasi seperti PuTTY. Masukkan IP pada kotak Host Name (or IP address) lalu klik Open.
Selanjutnya akan muncul halaman untuk masukkan user login as, lalu masukkan password yang telah diberikan pada email saat pembelian VPS Hosting Indonesia.
Sedangkan untuk Linux dan Mac, Anda dapat menggunakan terminal yang sudah menjadi aplikasi bawaan pada sistem operasinya. Masukkan perintah dibawah ini untuk login server.
$ ssh root@server_IP_Anda
Setelah proses login selesai, Anda akan menerima peringatan tentang keaslian host.
Setelah klik YES kemudian Anda akan diminta untuk masukkan user login as dan kata sandi.
Jika ini adalah pertama kalinya Anda masuk ke server dengan kata sandi, Anda bisa cek kata sandi pada email yang Anda gunakan untuk pembelian VPS. Di email tersebut, Anda akan mendapatkan informasi untuk login SSH.
2. Update dan Upgrade Server
Setelah login ke server, Anda perlu melakukan update dan upgrade server untuk memastikan program atau aplikasi yang digunakan tidak terjadi error.
Update server adalah pembaharuan sebuah program komputer atau menambah data pendukung, termasuk juga memperbaiki kelemahan-kelemahan (bug) dan meningkatkan kegunaan atau kinerjanya. Untuk melakukan update, gunakan perintah ini:
$ apt-get update
Upgrade server digunakan untuk menginstall versi terbaru dari semua paket saat ini yang diinstall pada sistem dari sumber-sumber yang telah disebutkan dalam /etc/apt/sources.list. Paket yang terinstall akan di-upgrade dengan versi terbaru yang tersedia. Untuk melakukan upgrade server, gunakan perintah ini:
$ apt-get upgrade
3. Membuat User Baru
Setelah masuk sebagai root, Anda dapat menambahkan pengguna akun baru yang nantinya bisa Anda gunakan untuk masuk/login server. Fungsi dari user baru di sini adalah untuk menambahkan tingkat keamanan saat login sehingga tidak sembarang orang bisa login ke server VPS Anda. Selain itu, mempermudah dalam proses manajemen dan pengolahan sever.
Pada contoh di bawah ini, kami membuat user baru dengan nama “dev”. Anda bisa membuat user dengan nama yang sesuai dengan keinginan dan kebutuhan Anda :
$ adduser dev
Setelah itu, Anda akan diminta untuk memasukkan password baru. Buat password yang unik, fungsinya adalah untuk keamanan server Anda.
Selain itu, Anda juga akan diminta mengisi beberapa detail informasi seperti Full Name, Room Number, Work Phone dan Home Phone. Tetapi dalam pengisian informasi tersebut adalah opsional.
Selesai, Anda telah berhasil membuat user baru. Dalam penambahan user, Anda bisa menambahkan sesuai kebutuhan. Anda bisa mengulangi perintah di atas untuk membuat user baru.
4. Tambahkan Public Key Authentication (Recommended)
Langkah selanjutnya dalam mengamankan server adalah mengatur Public Key Authentication untuk pengguna baru Anda. Public Key Authentication akan memberikan kenyamanan dan keamanan untuk login melalui SSH karena user tidak perlu memasukkan username dan password seperti biasanya (dan rawan brute-force).
Untuk membuat Public Key Authentication, Anda perlu generate Key Pair SSH. Berikut adalah cara membuat public key authentication:
4.1. Generate a Key Pair
Untuk menghasilkan New Key Pair SSH, masukkan perintah berikut di terminal Anda:
$ ssh-keygen
Dengan asumsi pengguna lokal Anda disebut “Local User”, Anda akan melihat output yang terlihat seperti berikut:
Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa):dev
Tekan ENTER untuk menerima nama dan jalur file ini.
Selanjutnya, Anda akan diminta untuk memasukan passphrase (frasa sandi) untuk mengamankan key. Anda dapat memasukkan kata sandi atau membiarkan kata sandi kosong.
Anda telah berhasil membuat Key Pair yang terdiri dari Private Key id_rsa dan Public Key, id_rsa.pub. Setelah itu, Anda bisa melihat file Public Key dengan nama Private Key, id_rsa dan Public Key di direktori .ssh.
Note
Jika Anda membiarkan kata sandi kosong, Anda akan dapat menggunakan private key untuk otentikasi tanpa memasukan kata sandi. Jika Anda memasukkan passphrase, Anda akan memerlukan private key dan passphrase untuk login. Mengamankan key Anda dengan passphrase lebih aman, tetapi kedua metode memiliki penggunaannya dan lebih aman dari pada otentikasi kata sandi dasar.
4.2. Salin Public Key
Setelah sukses membuat Public Key Authentication, kini Anda perlu menyalinnya ke server baru Anda. Terdapat dua cara untuk menyalin Public Key ini, yaitu menggunakan ssh-copy-id dan dengan cara manual. Pilih salah satu cara di bawah ini yang menurut Anda mudah.
- Pilihan 1 Gunakan ssh-copy-id
Jalankan ssh-copy-id dengan menggunakan perintah di bawah ini. (Ganti IP_server_Anda dengan alamat IP server Anda yang sesungguhnya).
$ ssh-copy-id dev@IP_server_Anda
Selanjutnya Anda akan diminta untuk memasukan kata sandi user yang telah Anda buat., Setelah itu, Public Key Anda akan ditambahkan .ssh/authorized_keys untuk remote user. Sekarang Public Key dapat digunakan untuk masuk server.
- Pilihan 2 Install Key Secara Manual
Cara lain untuk menyalin Public Key adalah dengan cara manual jalankan perintah di bawah ini untuk membuat Public Key Anda (id_rsa.pub).
$ cat ~/.ssh/id_rsa.pub
Ini akan menampilkan Public Key Anda yang akan terlihat seperti berikut ini:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/3K3UNpE0iTWLNla51XmDioLmdD8Wp3cIkxJyRJmnRM3Tkc5QvIUjvcViJmjPUxn2kmKETtMJUXWDCArG8z1SLSn7hIbwxfdduLRS8/ip8tVafeG3571wgLp9dAkmW0j0OBInYP3w3Bw5HxeUy4b6gZ9jsmtdrFaY+lQcq3yhX5YJQrPn8aR2luPDiya6bh2pObqVC9Si4wjcooraVHRpUfoiim/htNWu3WmXoI9Y8PR8n0Q3/CouUvgVPgFUkPfvklphrDMZtoAzflNoAU7u8QNvulBan7mpuYsKa4NpiUNsvPeOU3Wf8/W3AzNBRkFeryQuUAtD4nYHN80Wln3v root@dapitkurniawan.io
Anda harus menambahkan file Public Key di atas ke file khusus di direktori home/user. Berikut cara menambahkan file Private Key id_rsa dan Public Key, id_rsa.pub:
Apabila Anda masih login sebagai root, masukkan perintah berikut ini untuk beralih ke pengguna baru:
$ su - dev
Anda akan berada di direktori home/new user Anda.
Buat direktori baru yang disebut .ssh dan batasi izinnya dengan perintah berikut ini:
Buat direktori baru yang disebut .ssh dan batasi izinnya dengan perintah berikut ini:
$ mkdir ~/.ssh$ chmod 700 ~/.ssh
Sekarang buka file yang .ssh disebut authorized_keys dengan editor teks. Kami akan gunakan perintah nano untuk mengedit file.
$ nano ~/.ssh/authorized_keys
Ketikkan perintah ini untuk kembali ke user root:
$ exit
Selesai, kini Anda telah berhasil menambahkan Public Key Authentication pada server.
5. Nonaktifkan Password Authentication (Recommended)
Anda dapat meningkatkan keamanan server Anda dengan menonaktifkan otentikasi kata sandi. Melakukan hal itu akan membatasi akses SSH ke server Anda hanya untuk otentikasi Public Key. Artinya, satu-satunya cara untuk masuk ke server Anda selain dari konsol adalah dengan memiliki Private key.
Untuk menonaktifkan otentikasi kata sandi di server Anda, ikuti langkah-langkah ini.
$ sudo nano /etc/ssh/sshd_config
Temukan baris yang menentukan PasswordAuthentication, hapus tanda # lalu ubah nilainya menjadi “NO” seperti pada gambar di bawah ini.
Berikut adalah dua pengaturan lain yang penting untuk otentikasi kunci saja dan ditetapkan secara default. Jika belum mengubah file ini sebelumnya, Anda tidak perlu mengubah pengaturan ini:
Ketika Anda selesai melakukan perubahan, simpan dan tutup file menggunakan perintah Ctrl+X, lalu Y, lalu ENTER.
Ketik ini untuk melakukan restart SSH :
$ sudo systemctl reload sshd
Sekarang otentikasi kata sandi dinonaktifkan. Server Anda sekarang hanya dapat diakses dengan otentikasi kunci SSH..
6. Test Log In
sebelum Anda keluar dari server, Anda harus menguji konfigurasi baru Anda. Jangan putuskan sambungan sampai Anda mengkonfirmasi bahwa Anda bisa masuk melalui SSH.
Masuk ke server Anda menggunakan akun baru yang Anda buat. Untuk melakukannya, gunakan perintah ini:
$ ssh dev@IP_Server_Anda
Jika Anda menambahkan otentikasi Public Key ke New User, seperti yang dijelaskan dalam langkah empat dan lima, Private Key Anda akan digunakan sebagai otentikasi. Jika tidak, Anda akan diminta kata sandi pengguna Anda. Setelah otentikasi diberikan ke server, Anda akan masuk sebagai New User.
7. Konfigurasi Firewall Menggunakan UFW
Uncomplicated Firewall (UFW) adalah sebuah interface dari Linux iptables. iptables sendiri adalah tools yang sangat bagus untuk melakukan konfigurasi firewall di sistem operasi berbasis Linux. Namun, iptables cukup rumit untuk dipahami oleh sebagian orang.
UFW hadir untuk mengatasi permasalahan tersebut dengan cara menyederhanakan perintah konfigurasi firewall sehingga memudahkan sistem administrator dalam mengelola firewall.
Di bawah ini kami akan menjelaskan cara konfigurasi firewall menggunakan UFW.
7.1. Mengaktifkan Service UFW
Berikut adalah langkah-langkah konfigurasi firewall menggunakan UFW.Sebelum melakukan konfigurasi firewall menggunakan ufw, Anda harus memastikan service ufw telah berjalan di server Anda dengan perintah:
$ sudo systemctl status ufw
Bila ternyata service ufw adalah inactive (dead), Anda harus mengaktifkannya dengan cara di bawah ini:
$ sudo systemctl start ufw$ sudo systemctl enable ufw
Setelah menjalankan perintah diatas, pastikan kali ini status service ufw adalah active (exited) seperti pada gambar di bawah ini.
7.2. Mengaktifkan Firewall Menggunakan UFW
Walaupun service ufw telah aktif, firewall rule belum diaktifkan. Anda bisa mengeceknya dengan perintah ini:
$ sudo ufw status
Bila output perintah tersebut Status: inactive maka artinya ufw belum aktif dan default policy dari firewall adalah ACCEPT.
Cek kembali dengan perintah di bawah ini.
$ sudo iptables -L
Maka Anda akan mendapatkan output kurang lebih seperti ini.
Kondisi seperti ini akan mengijinkan seluruh koneksi keluar dan masuk ke server Anda. Sekarang aktifkanlah ufw dengan perintah ini:
$ sudo ufw enable
Kemudian tekan y bila mendapatkan pesan seperti pada tampilan di bawah ini:
Bila berhasil, Anda akan mendapatkan pesan Firewall is active and enabled on system startup. Untuk melakukan pengecekan status jalankan perintah ini.
Untuk melihat default policy setelah UFW diaktifkan. Contoh output perintah tersebut adalah
$ sudo ufw status verbose
Penjelasan Default Policy :
- Melarang (dany) seluruh paket masuk, kecuali yang diizinkan.
- Mengijinkan (allow) seluruh paket yang masuk.
- Tidak mengaktifkan (disabled) paket routing.
7.3. Mengaktifkan UFW Application Profile
UFW telah menyediakan berbagai Application profile yang berisi default rule berbagai aplikasi populer. Anda dapat melihat daftar Application profile tersebut dengan menggunakan perintah.
$ sudo ufw app list
Output perintah tersebut bergantung pada aplikasi yang Anda install dalam komputer Anda. Berikut contoh output perintah di atas:
Anda dapat mengizinkan aplikasi tertentu dengan perintah
$ sudo ufw allow nama aplikasi
Anda dapat melihat policy yang ada dalam masing-masing Application profile dengan perintah sudo ufw app info <nama aplikasi>. Berikut adalah contoh output ketika menjalankan perintah di atas.
7.4. Mengizinkan Akses Layanan SSH
Untuk mengizinkan layanan SSH menggunakan ufw, Anda dapat melakukannya dengan mengizinkan Application profile OpenSSH menggunakan perintah ini:
$ sudo ufw allow OpenSSH
Atau Anda dapat melakukannya secara manual dengan cara
$ sudo ufw allow 22/top
7.5. Mengizinkan Layanan Apache
Setelah memberi izin pada SSH selanjutnya adalah mengizinkan layanan Apache Cara paling mudah mengizinkan layanan Web server Apache, baik itu port 80 untuk protokol HTTP dan port 443 untuk protokol HTTPS dengan perintah
$ sudo ufw allow ‘Apache Full’
Atau Anda dapat melakukannya secara manual dengan cara
$ sudo ufw allow 80/tcp$ sudo ufw allow 443/tcp
Jalankan perintah di bawah ini untuk mengecek dampak perubahan firewall policy
$ sudo ufw status verbose
7.6. Mengizinkan Port dan Protokol Tertentu
Kemudian Anda dapat mengizinkan port dan protokol tertentu dengan format perintah
$ sudo ufw allow 80/tcp
Permintaan di atas akan mengizinkan akses ke port 80 dengan protokol TCP, sedangkan perintah
$ sudo ufw allow 53/udp
Permintaan di atas akan mengizinkan akses ke port 53 dengan protokol UDP.
7.7. Mengizinkan Port dengan Range dan Protokol Tertentu
Setelah itu, Anda dapat mengizinkan port dengan range dan protokol tertentu dengan format perintah
$ sudo ufw allow 8000:8100/tcp
Permintaan di atas akan mengizinkan akses ke port 8000 hingga 8100 dengan protokol TCP.
$ sudo ufw allow 5300:5500/udp
sedangkan perintah, diatas akan mengizinkan akses ke port 5300 hingga 5500 dengan protokol TCP
7.8. Mengizinkan IP tertentu
Anda dapat mengizinkan IP dengan format perintah yang tujuannya adalah mengizinkan akses dari IP tertentu di server.
$ sudo ufw allow from 104.28.29.182
Perintah di atas akan mengizinkan semua akses dari IP 104.28.29.182 masuk ke komputer Anda. Bila ingin hanya IP tertentu yang dapat mengakses port tertentu di server, Anda dapat menjalankan perintah ini:
$ sudo ufw allow from 104.28.29.182 to any port 22
7.9. Mengizinkan Subnet tertentu
Anda dapat mengizinkan Subnet dengan format perintah yang berfungsi untuk mengizinkan semua akses dari Subnet yang masuk ke server Anda.
$ sudo ufw allow from 104.28.29.180/24
Perintah di atas akan mengizinkan semua akses dari subnet 104.28.29.180/24 masuk ke server Anda. Bila ingin hanya Subnet tertentu yang dapat mengakses port tertentu di server, Anda dapat menjalankan perintah
$ sudo ufw allow from 104.28.24.40/24 to any port 22
Perintah di atas akan mengizinkan akses dari IP 104.28.24.40/24 masuk ke port 22 di server Anda.
7.10. Memblokir Akses dari IP atau Subnet Tertentu
UFW dapat Anda manfaatkan untuk memblokir IP atau Subnet tertentu. Untuk memblokir IP tertentu gunakan perintah.
$ sudo ufw deny from 104.17.170.122
Bila Anda ingin memblokir Subnet tertentu, gunakan perintah dengan format
$ sudo ufw deny from 104.17.170.122/24
8. Cara Reboot VPS debian 9
Konfigurasi terakhir yang harus dilakukan adalah melakukan reboot server yang fungsinya adalah untuk memuat ulang setelah Anda melakukan konfigurasi server. Silahkan masukkan perintah ini.
$ reboot
Dengan menjalankan semua langkah konfigurasi dasar di atas, server Anda telah memiliki dasar keamanan yang kuat. Dengan begitu Anda bisa menggunakannya dengan aman.