Cara konfigurasi firewall dengan UFW di Ubuntu
Tags: firstpost, firewall, ubuntu, indonesia
Published: 2021-02-26 20:12:10

Pada artikel ini akan ditunjukkan bagaimana cara konfigurasi firewall dengan UFW pada server berbasis Ubuntu. Memang ada tool firewall yang lebih dikenal, sangat fleksibel dan disukai para sysadmin, yaitu `iptables`, tetapi bagi para pemula bukan hal yang mudah untuk menggunakannya. Oleh sebab itu pemilihan UFW (singkatan dari Uncomplicated Firewall) untuk artikel ini akan sangat memudahkan untuk mengutak atik konfigurasi firewall tanpa harus menyentuh `iptables`.

## Instalasi UFW
Secara default UFW sudah terinstal namun jika ternyata belum, jalankan perintah dibawah ini.
```
sudo apt install ufw
```

## Rules untuk koneksi SSH

Untuk menambahkan ijin (rules) koneksi SSH pada firewall, cek profil default SSH bawaan UFW dengan perintah ini.
```
sudo ufw app list
```

Outputnya akan seperti ini.
```
Available applications:
OpenSSH
```

Jalankan perintah berikut.
```
sudo ufw allow OpenSSH
```

Jika output dari perintah `sudo ufw app list` diatas tidak memunculkan aplikasi apapun, jalankan perintah ini.
```
sudo ufw allow ssh
```

menjadi
```
sudo ufw allow 22
```

Dimana angka `22` adalah port untuk SSH. Jalankan perintah dibawah ini, bilamana port default SSH ini sudah diubah (misalkan jadi `1212`).
```
sudo ufw allow 1212
```

## Aktifkan UFW

Baris perintahnya adalah,
```
sudo ufw enable
```

Kadangkala muncul pesan error seperti dibawah ini.
```
ERROR: problem running ufw-init
ip6tables-restore: line 4 failed
ip6tables-restore: line 138 failed
ip6tables-restore: line 30 failed
Problem running '/etc/ufw/before6.rules'
Problem running '/etc/ufw/user6.rules'
```

Hal ini biasanya terjadi pada server yang tidak support IPv6. Lakukan langkah berikut untuk memperbaikinya.

Buka file config UFW dengan perintah.
```
nano /etc/default/ufw
```

Cari baris yang tertulis `IPV6=yes` lalu diubah menjadi `IPV6=no`

Kemudian tekan tombol `Ctrl+X` dan tekan huruf `Y` akhiri dengan Enter.

Jalankan kembali perintah ini untuk mengaktifkan UFW.
```
sudo ufw enable
```

### Penambahan Rules untuk Koneksi Lainnya

Supaya server berfungsi sebagaimana mestinya, maka perlu ditambahkan rules untuk koneksi standar lainnya seperti HTTP, FTP, IMAP, dan sebagainya. Berikut ini adalah daftar port standar yang perlu ditambahkan.
```
sudo ufw allow http
sudo ufw allow https
sudo ufw allow ftp
sudo ufw allow smtp
sudo ufw allow pop3
sudo ufw allow pop3s
sudo ufw allow imap
sudo ufw allow imaps
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
```

Supaya dapat menambahkan port dengan range tertentu secara mudah, gunakan perintah ini. Misalkan mulai dari port `1000` s.d. `1010`
```
sudo ufw allow 1000:1010/tcp
```

Adapun daftar lengkap port standar beserta peruntukannya bisa dilihat di laman [Default Port Numbers You Need to Know as an Administrator](https://geekflare.com/default-port-numbers/)

## Menggunakan Alamat IP

Selain nomor port, bisa juga digunakan alamat IP, contoh penggunannya sebagai berikut.
```
sudo ufw allow from 192.192.192.192
```

atau
```
sudo ufw allow from 192.192.192.192 to any port 22
```

Penambahan dengan menggunakan subnet alamat IP dapat menggunakan perintah ini.
```
sudo ufw allow from 192.192.192.192/24
```

atau
```
sudo ufw allow from 192.192.192.192/24 to any port 22
```

## Mengecek Konfigurasi di UFW

Untuk mengecek konfigurasi firewall sejauh ini di UFW, jalankan perintah berikut.
```
sudo ufw status verbose
```

Outputnya akan terlihat seperti ini.
```
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
80 ALLOW IN Anywhere
443 ALLOW IN Anywhere
21/tcp ALLOW IN Anywhere
25/tcp ALLOW IN Anywhere
110 ALLOW IN Anywhere
995 ALLOW IN Anywhere
143 ALLOW IN Anywhere
993 ALLOW IN Anywhere
53/tcp ALLOW IN Anywhere
53/udp ALLOW IN Anywhere
```

## Menghapus Rules di UFW

Gunakan langkah berikut ini untuk menghapus daftar ijin/rules yang sudah ada di UFW.
```
sudo ufw status numbered
```

Akan nampak adanya tambahan kolom nomor urut pada sebelah kiri, seperti tampilan dibawah ini.
```
Status: active
To Action From
-- ------ ----
[ 1] OpenSSH ALLOW IN Anywhere
[ 2] 80 ALLOW IN Anywhere
[ 3] 443 ALLOW IN Anywhere
[ 4] 21/tcp ALLOW IN Anywhere
[ 5] 25/tcp ALLOW IN Anywhere
[ 6] 110 ALLOW IN Anywhere
[ 7] 995 ALLOW IN Anywhere
[ 8] 143 ALLOW IN Anywhere
[ 9] 993 ALLOW IN Anywhere
[10] 53/tcp ALLOW IN Anywhere
[11] 53/udp ALLOW IN Anywhere
```

Sebagai contoh yang akan dihapus adalah baris nomor `2` yaitu port untuk `http`, jalankan perintah berikut.
```
sudo ufw delete 2
```

atau
```
sudo ufw delete allow http
```

dimungkinkan juga dengan
```
sudo ufw delete allow 80
```

## Reset UFW

Berikut ini adalah perintah untuk menghapus semua rules yang sudah dibuat di UFW.
```
sudo ufw reset
```

Sampai disini artikelnya, semoga berguna.