Firewall yang dikonfigurasi dengan benar adalah salah satu aspek terpenting dari keamanan sistem secara keseluruhan. Secara default, Ubuntu dilengkapi dengan alat konfigurasi firewall yang disebut UFW (Uncomplicated Firewall).

UFW adalah front-end yang mudah digunakan untuk mengelola aturan firewall iptables dan tujuan utamanya adalah membuat pengelolaan iptables lebih mudah, seperti namanya uncomplicated (tidak rumit) Firewall, karena pengaturan firewall ini memang tidak rumit.

Sebelum mulai dengan tutorial ini, pastikan Anda masuk ke server dengan akun pengguna dengan hak sudo atau dengan pengguna root.

Praktik terbaik adalah menjalankan perintah administratif sebagai pengguna sudo alih-alih root. Jika tidak memiliki pengguna sudo di sistem Ubuntu, Anda dapat membuatnya dengan mengikuti instruksi ini.

Diharapkan Anda membuka Linux Terminal / Baris perintah di Linux untuk mengikuti dan menerapkan panduan di halaman ini. Kami juga sarankan Anda untuk menguji setiap tutorial atau panduan yang ada di Internet di virtual machine (vmware atau virtualbox) sebelum menerapkan ke server produksi, agar tidak mengacaukan sistem yang berjalan ketika ada kesalahan.

Install UFW

Uncomplicated Firewall harusnya sudah terinstal secara default di Ubuntu 18.04, tetapi jika belum terinstal pada sistem, Anda dapat install paket UFW dengan mengetik:

sudo apt install ufw

Periksa Status UFW

Setelah instalasi selesai, Anda dapat memeriksa status UFW dengan perintah berikut:

sudo ufw status verbose
Status: inactive

Jika UFW diaktifkan, output akan terlihat mirip dengan yang berikut:

ubuntu status UFW

Kebijakan Default UFW di Linux

Secara default, UFW akan memblokir semua koneksi yang masuk dan memungkinkan semua koneksi keluar. Ini berarti siapa pun yang mencoba mengakses server, mereka tidak akan dapat terhubung kecuali Anda secara khusus membuka port, sementara semua aplikasi dan layanan yang berjalan di server akan dapat mengakses dunia luar.

Kebijakan default didefinisikan dalam file /etc/default/ufw dan dapat diubah menggunakan perintah sudo ufw default <policy> <chain>.

Firewall policies, atau Kebijakan firewall adalah dasar untuk membangun aturan yang lebih rinci yang ditetapkan sendiri oleh pengguna. Dalam kebanyakan kasus, Kebijakan Default UFW adalah sudah cukup baik. Kita hanya perlu menambahkan sedikit perintah agar sesuai dengan kebutuhan kita.

Profil Aplikasi di belakang Firewall

Ketika menginstal paket dengan perintah apt, UFW akan menambahkan profil aplikasi ke /etc/ufw/applications.d. Profil ini menjelaskan layanan dan berisi pengaturan UFW.

Anda dapat melihat list semua profil aplikasi yang tersedia di server dengan mengetik:

sudo ufw app list

Bergantung pada paket yang diinstal pada sistem, output akan terlihat mirip dengan yang berikut: (output dapat bervariasi)

Available applications:
  Dovecot IMAP
  Dovecot POP3
  Dovecot Secure IMAP
  Dovecot Secure POP3
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission
  Transparent Proxy 
  VNC               
  WWW               
  WWW Cache         
  WWW Full          
  WWW Secure

Untuk menemukan informasi lebih lanjut tentang profil tertentu dan aturan yang disertakan, gunakan perintah berikut:

sudo ufw app info 'Nginx Full'
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server

Ports:
  80,443/tcp

Seperti yang Anda lihat dari output di atas profil ‘Nginx Full’ membuka port 80 dan 443.

Izinkan Koneksi SSH SSH di UFW

Sebelum mengaktifkan firewall UFW kita perlu menambahkan aturan yang akan memungkinkan koneksi SSH yang masuk. Kebanyakan kasus yang terjadi adalah pengguna terhubung ke server dari lokasi yang jauh, dan kemudian mengaktifkan UFW firewall sebelum secara eksplisit mengatur koneksi untuk SSH. Akibat yang terjadi, pengguna tidak lagi dapat terhubung ke server Ubuntu. Dengan kata lain UFW memblokir koneksi apa pun dari luar menuju ke server.

Untuk mengkonfigurasi UFW firewall untuk memungkinkan koneksi SSH yang masuk, ketikkan perintah berikut:

sudo ufw allow ssh
Rules updated
Rules updated (v6)

Jika Anda mengubah port SSH ke port lain selain port 22, Anda harus membuka port baru untuk akses SSH tersebut.

Misalnya, jika daemon ssh Anda listen pada port 4123, maka Anda dapat menggunakan perintah berikut untuk mengizinkan koneksi pada port tersebut:

sudo ufw allow 4123/tcp

Cara Aktifkan UFW

Sekarang firewall UFW telah dikonfigurasi untuk memungkinkan koneksi SSH yang masuk, kita dapat mengaktifkannya dengan mengetik:

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Anda akan diperingatkan bahwa mengaktifkan firewall dapat mengganggu koneksi ssh yang ada, cukup ketik y dan tekan Enter.

Izinkan koneksi di port lain

Bergantung pada aplikasi yang berjalan di server, dan kebutuhan spesifik Anda, Anda juga harus mengizinkan akses masuk ke beberapa port lain.

Di bawah ini kami akan menunjukkan kepada Anda beberapa contoh tentang cara mengizinkan koneksi masuk ke beberapa layanan yang paling umum:

Cara Membuka port 80 – HTTP di UFW Firewall

Koneksi HTTP dapat diizinkan dengan perintah berikut:

sudo ufw allow http

alih-alih http Anda dapat menggunakan nomor port, 80:

sudo ufw allow 80/tcp

Selain perintah di atas, Anda juga dapat menggunakan profil aplikasi, dalam hal ini, ‘Nginx HTTP’:

sudo ufw allow 'Nginx HTTP'

Cara Membuka port 443 – HTTPS di UFW Firewall

Koneksi HTTP dapat diizinkan dengan perintah berikut:

sudo ufw allow https

Untuk mencapai yang sama alih-alih profil https , Anda dapat menggunakan nomor port, 443:

sudo ufw allow 443/tcp

atau Anda dapat menggunakan profil aplikasi, ‘Nginx HTTPS’:

sudo ufw allow 'Nginx HTTPS'

Cara Membuka port 8080

Jika Anda menjalankan Tomcat atau aplikasi lain yang mendengarkan pada port 8080 , Anda dapat membuka port 8080 untuk memungkinkan jenis koneksi yang masuk dengan menggunakan perintah :

sudo ufw allow 8080/tcp

Izinkan Rentang Port

Alih-alih memungkinkan akses ke port tunggal, UFW memungkinkan Anda untuk mengatur akses dengan mengizinkan ke rentang port. Saat mengizinkan rentang port dengan UFW, Anda harus menentukan protokol, baik tcp atau udp. Misalnya, jika ingin mengizinkan port dari 7100 hingga 7200 pada tcp dan udp, jalankan perintah berikut:

sudo ufw allow 7100:7200/tcp
sudo ufw allow 7100:7200/udp

Izinkan Akses dari Alamat IP Tertentu

Untuk mengizinkan akses pada semua port dari mesin yang ada di rumah Anda dengan alamat IP 64.63.62.61, tentukan from san diikuti dengan alamat IP yang ingin Anda masukkan ke whitelist:

sudo ufw allow from 64.63.62.61

Izinkan Alamat IP Khusus pada port Khusus

Untuk mengizinkan akses pada port tertentu, misalkan port 22 dari mesin kerja Anda dengan alamat IP 64.63.62.61, gunakan to any port dan diikuti oleh nomor port:

sudo ufw allow from 64.63.62.61 to any port 22

Izinkan Subnet

Perintah untuk mengizinkan koneksi ke subnet alamat IP sama dengan ketika menggunakan satu alamat IP, satu-satunya perbedaan adalah bahwa Anda perlu menentukan netmask. Misalnya, jika ingin mengizinkan akses untuk alamat IP mulai dari 192.168.1.1 hingga 192.168.1.254 ke port 3360 (MySQL) Anda dapat menggunakan perintah ini:

sudo ufw allow from 192.168.1.0/24 to any port 3306

Izinkan Koneksi ke Antarmuka Jaringan Tertentu

Untuk mengizinkan akses pada port tertentu, misalkan port 3360 hanya untuk antarmuka jaringan tertentu eth2, maka Anda perlu menentukan pengaturan firewall dengan pernyataan allow in on dan nama antarmuka jaringan:

sudo ufw allow in on eth2 to any port 3306

Cara Blokir koneksi Menggunakan UFW

Kebijakan default untuk semua koneksi yang masuk diatur untuk di tolak (deny) dan jika Anda belum mengubahnya, UFW akan memblokir semua koneksi yang masuk kecuali Anda secara khusus membuka koneksi.

Katakanlah port 80 dan 443 terbuka untuk akses ke situs web Anda. Namun suatu ketika server Anda sedang diserang DDoS dari jaringan 23.24.25.0/24. Untuk menolak semua koneksi dari 23.24.25.0/24 , Anda dapat menggunakan perintah berikut:

sudo ufw deny from 23.24.25.0/24

Jika hanya ingin menolak akses ke port 80 dan 443 dari 23.24.25.0/24, Anda dapat menggunakan perintah berikut:

sudo ufw deny from 23.24.25.0/24 to any port 80
sudo ufw deny from 23.24.25.0/24 to any port 443

Menulis aturan deny (tolak) sama dengan menulis aturan allow (izinkan), Anda hanya perlu mengganti pernyataan allow menjadi deny.

Cara Menghapus UFW rules

Ada dua cara berbeda untuk menghapus aturan UFW, dengan nomor aturan dan dengan menentukan aturan yang sebenarnya.

Menghapus aturan UFW dengan nomor aturan memang lebih mudah, terutama jika Anda baru mengenal UFW. Untuk menghapus aturan dengan nomor aturan terlebih dahulu, Anda perlu menemukan nomor aturan yang ingin di hapus, Anda bisa melihat nomor aturan dengan menjalankan perintah berikut:

sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 8080/tcp                   ALLOW IN    Anywhere

Untuk menghapus aturan nomor 3, aturan yang memungkinkan koneksi ke port 8080, gunakan perintah berikut:

sudo ufw delete 2

Metode kedua adalah menghapus aturan dengan menentukan aturan yang sebenarnya, misalnya jika menambahkan aturan untuk membuka port 8069 Anda dapat menghapusnya dengan:

sudo ufw delete allow 8069

Cara Nonaktifkan UFW

Jika karena suatu alasan Anda ingin menghentikan UFW dan menonaktifkan semua aturan yang ada, Perintah ini dapat Anda gunakan:

sudo ufw disable

Ketika sudah selesai, dan Anda ingin mengaktifkan kembali UFW dan mengaktifkan semua aturan, cukup ketik:

sudo ufw enable

Reset UFW

Reset UFW akan menonaktifkan UFW, dan menghapus semua aturan yang aktif. Hal ini bermanfaat jika Anda ingin mengembalikan semua perubahan dan mulai dengan yang baru.

Untuk mereset pengaturan UFW dan menghapus semua rule yang telah Anda buat ketik perintah :

sudo ufw reset

Kesimpulan

Anda telah belajar cara menginstal dan mengkonfigurasi firewall UFW di server Ubuntu 18.04. Pastikan untuk mengizinkan semua koneksi yang masuk untuk koneksi diperlukan dan yang Anda butuhkan untuk memfungsikan sistem dengan optimal. Gunakan Firewall untuk membatasi semua koneksi yang tidak perlu.

Jika Anda merasa “tersiksa” dengan semua pengaturan yang harus di lakukan dengan baris perintah. Anda dapat menggunakan web kontrol panel GUI gratis Webmin. Webmin tersedia secara bebas dan dapat berjalan di Ubuntu, debian, maupun CentOS dan Fedora.