Konfigurasi Firewall UFW
UFW adalah front-end untuk iptables, untuk membuat pengelolaan firewall Netfilter lebih mudah, maka nama "Uncomplicated Firewall". Ini menyediakan antarmuka baris perintah dengan sintaks yang mirip dengan Filter Paket OpenBSD. Ini sangat cocok sebagai firewall berbasis host. UFW adalah iptables front-end yang direkomendasikan pada Distro Linux berbasis Debian dan biasanya sudah diinstal sebelumnya pada distro ini. Secara default, UFW menetapkan aturan firewall untuk alamat IPv4 dan IPv6. Front-end iptables terkenal lainnya adalah firewalld, yang merupakan aplikasi firewall default pada distro Linux berbasis RPM (RHEL, CentOS, Fedora, OpenSUSE, dll).
Memulai UFW di Server Debian/Ubuntu/Linux Mint
sudo ufw status
UFW hadir dengan kebijakan penolakan masuk default, kebijakan penolakan penerusan default, dan kebijakan izin keluar default, dengan pelacakan stateful untuk koneksi baru untuk koneksi masuk dan diteruskan. Sebelum mengaktifkan UFW, Anda perlu mengetahui port apa yang dibuka pada alamat IP publik server Anda.
Setelah mendapatkan port TCP dan UDP yang terbuka di server Anda, Anda perlu memutuskan port mana yang harus diizinkan untuk menerima koneksi masuk. Jika ada server openSSH yang berjalan, maka Anda harus selalu mengizinkan port TCP 22 sebelum mengaktifkan UFW. Ini dicapai melalui perintah berikut.
- Port SSH default
sudo ufw allow 22/tcp
- Port HTTP
sudo ufw allow 80/tcp
- Port HTTPS
sudo ufw allow 443/tcp
- Membuka seluruh port yang digunakan Nginx
sudo ufw allow "Nginx Full"
- Membuka semua port yang digunakan Apache
sudo ufw allow "Apache Full"
Membuat Backlist IP
- Katakanlah ada spammer yang terus-menerus mencoba mengirim spam ke server email Anda. Anda dapat menggunakan UFW untuk memblokir alamat IP spammer agar tidak mengakses
port TCP 25dari server email Anda, dengan perintah berikut. Ganti12.34.56.78dengan alamat IP spammer.
sudo ufw insert 1 deny in from 12.34.56.78 to any port 25 proto tcp
- Perhatikan bahwa aturan firewall yang baru ditambahkan diletakkan di bagian bawah secara default. Jika sebelumnya Anda mengizinkan akses ke port 25 dari mana saja, maka Anda perlu memasukkan aturan penolakan sebagai aturan pertama, seperti di atas, sehingga aturan penolakan akan diterapkan terlebih dahulu. Anda selalu dapat memasukkan aturan penolakan baru sebagai aturan pertama.
- Anda juga dapat memblokir rentang alamat IP seperti di bawah ini.
sudo ufw insert 1 deny in from 192.168.0.0/24 to any port 25 proto tcp
- Untuk memblokir alamat IP agar tidak mengakses semua port di server Anda
sudo ufw insert 1 deny in from 12.34.56.78
Deleting UFW rules by rule number
sudo ufw status numbered
- Output
To Action From
-- ------ ----
[ 1] 80/tcp ALLOW IN Anywhere
[ 2] 443/tcp ALLOW IN Anywhere
[ 3] 6789/tcp ALLOW IN Anywhere
[ 4] 22/tcp DENY IN Anywhere
[ 5] 80/tcp (v6) ALLOW IN Anywhere (v6)
[ 6] 443/tcp (v6) ALLOW IN Anywhere (v6)
[ 7] 6789/tcp (v6) ALLOW IN Anywhere (v6)
[ 8] 22/tcp (v6) DENY IN Anywhere (v6)
Jika ingin menghapus port 80/tcp masukkan perintah berikut
sudo ufw delete 1
Removing UFW rules by ufw syntax
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw deny 23/tcp
- Deleted
sudo ufw delete allow 80/tcp
sudo ufw delete allow 443/tcp
sudo ufw delete deny 23/tcp
Block ping (ICMP)
In order to deny any incoming ICMP ping requests we need to modify /etc/ufw/before.rules UFW’s configuration file. First, make a backup copy:
sudo cp /etc/ufw/before.rules /etc/ufw/before.rules_backup
Next, open the file with root privileges using your favorite text editor and change:
FROM:
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
TO:
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP
-A ufw-before-input -p icmp --icmp-type source-quench -j DROP
-A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP
-A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP