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.
Panduan ini merupakan panduan sederhana dan ringkas dalam melakukan konfigurasi firewall menggunakan ufw
dan hanya mencakup perintah ufw
yang paling sering digunakan dalam praktek administrasi sistem sehari-hari.
Mengaktifkan Service UFW
Sebelum anda dapat melakukan konfigurasi firewall menggunakan ufw
, anda harus memastikan service ufw
telah berjalan di server anda dengan perintah:
$ sudo systemctl status ufw
Bila ternyata status service ufw
adalah inactive (dead)
maka anda harus mengaktifkannya dengan cara
$ sudo systemctl start ufw
$ sudo systemctl enable ufw
Jalankan perintah sudo systemctl status ufw
sekali lagi dan pastikan kali ini status service ufw
adalah active (exited)
.
Mengaktifkan Firewall Menggunakan UFW
Walaupun service ufw telah aktif, namun firewall rule belum diaktifkan. Anda bisa cek dengan perintah
$ sudo ufw status
Bila output perintah tersebut adalah Status: inactive
maka artinya ufw
belum aktif dan default policy dari firewall adalah ACCEPT. Silahkan recheck dengan perintah sudo iptables -L
maka anda akan mendapatkan output kurang lebih seperti ini
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destinationChain FORWARD (policy ACCEPT)
target prot opt source destinationChain OUTPUT (policy ACCEPT)
target prot opt source destination
Kondisi seperti ini akan mengijinkan seluruh koneksi keluar dan masuk ke komputer anda. Sekarang aktifkan lah ufw dengan perintah
$ sudo ufw enable
Kemudian tekan y
bila mendapatkan pesan Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Bila berhasil, maka anda akan mendapatkan pesan Firewall is active and enabled on system startup
.
Jalankan perintah
$ sudo ufw status verbose
untuk melihat default policy
setelah ufw
diaktifkan. Contoh output perintah tersebut adalah
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
Policy tersebut akan:
- melarang (deny) seluruh paket masuk, kecuali yang diijinkan,
- mengijinkan (allow) seluruh paket yang masuk,
- tidak mengaktifkan (disabled) paket routing.
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. Pada komputer yang saya gunakan terdapat aplikasi Apache, OpenSSH, dan Postfix sehingga output perintah sudo ufw app list
menjadi seperti ini
$ sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission
Anda dapat mengijinkan aplikasi tertentu dengan perintah sudo ufw allow <nama aplikasi>
, misalkan sudo ufw allow OpenSSH
. Anda dapat melihat policy yang ada dalam masing-masing Application profile
dengan perintah sudo ufw app info <application>
. Berikut adalah contoh output ketika menjalankan perintah sudo ufw app info OpenSSH
$ sudo ufw app info OpenSSH
Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.Port:
22/tcp
Mengijinkan Akses Layanan
Mengijinkan Layanan SSH
Untuk mengijinkan layanan SSH menggunakan ufw
dapat anda lakukan dengan mengijinkan Application profile
OpenSSH
dengan perintah
$ sudo ufw allow OpenSSH
atau anda dapat melakukannya secara manual dengan cara
$ sudo ufw allow 22/tcp
Tapi sebenarnya, secara default ufw
akan mengijinkan layanan SSH, karena bila tidak diijinkan maka akan menjadi masalah ketika anda melakukan konfigurasi dari remote komputer.
Mengijinkan Layanan Apache
Cara paling mudah mengijinkan layanan Web server Apache, baik itu port 80 untuk protokol HTTP dan port 443 untuk protokol HTTPS adalah dengan perintah
$ sudo ufw allow 'Apache Full'
atau anda dapat melakukannya secara manual dengan cara :
https://www.tokopedia.com/afristore
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
Jalankan perintah sudo ufw status verbose
untuk mengecek dampak perubahan firewall policy.
Mengijinkan Port dan Protokol Tertentu
Anda dapat mengijinkan port dan protokol tertentu dengan format perintah sudo ufw allow <port>/<protokol>
, misalkan perintah
$ sudo ufw allow 80/tcp
akan mengijinkan akses ke port 80 dengan protokol TCP, sedangkan perintah
$ sudo ufw allow 53/udp
akan mengijinkan akses ke port 53 dengan protokol UDP.
Mengijinkan Port dengan Range dan Protokol Tertentu
Anda dapat mengijinkan port dengan range dan protokol tertentu dengan format perintah sudo ufw allow <first port>:<last port>/<protokol>
, misalkan perintah
$ sudo ufw allow 8000:8100/tcp
akan mengijinkan akses ke port 8000 hingga 8100 dengan protokol TCP, sedangkan perintah
$ sudo ufw allow 5300:5500/udp
akan mengijinkan akses ke port 5300 hingga 5500 dengan protokol UDP.
Mengijinkan IP Tertentu
Anda dapat mengijinkan IP tertentu dengan format perintah sudo ufw allow from <ip>
, misalkan perintah
$ sudo ufw allow from 104.16.124.127
akan mengijinkan semua akses dari IP 104.16.124.127 masuk ke komputer anda. Bila anda ingin IP tertentu dapat mengakses port tertentu di komputer anda maka anda dapat menjalankan perintah dengan format sudo ufw allow from <ip> to any port <port>
, misalkan
$ sudo ufw allow from 104.16.124.127 to any port 22
akan mengijinkan akses dari IP 104.16.124.127 masuk ke port 22 di komputer anda.
Mengijinkan Subnet Tertentu
Anda dapat mengijinkan subnet tertentu dengan format perintah sudo ufw allow from <network address>/<subnet>
, misalkan perintah
$ sudo ufw allow from 104.16.124.0/24
akan mengijinkan semua akses dari subnet 104.16.124.0/24 masuk ke komputer anda. Bila anda ingin subnet tertentu dapat mengakses port tertentu di komputer anda maka anda dapat menjalankan perintah dengan format sudo ufw allow from <network address>/<subnet> to any port <port>
, misalkan
$ sudo ufw allow from 104.16.124.0/24 to any port 22
akan mengijinkan akses dari IP 104.16.124.0/24 masuk ke port 22 di komputer anda.
Memblokir Akses
Memblokir Akses dari IP atau Subnet Tertentu
ufw
dapat anda manfaatkan untuk memblokir IP atau Subnet tertentu. Untuk memblokir IP tertentu gunakan perintah dengan format sudo ufw deny from <ip>
misalkan
$ sudo ufw deny from 104.16.124.127
Bila anda ingin memblokir Subnet tertentu, maka gunakan perintah dengan format udo ufw deny from <ip>/<subnet>
misalkan
$ sudo ufw deny from 104.16.124.127
Bila anda ingin memblokir Subnet tertentu, maka gunakan perintah dengan format udo ufw deny from <ip>/<subnet>
misalkan
$ sudo ufw deny from 104.16.124.0/24