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:
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.