Firewall yang dikonfigurasi dengan benar adalah salah satu aspek terpenting dari keamanan sistem secara keseluruhan.
UFW (Uncomplicated Firewall) adalah front-end yang mudah digunakan untuk mengelola aturan firewall iptables. Tujuan utamanya adalah membuat pengelolaan iptables lebih mudah atau, seperti namanya, tidak rumit.
Artikel ini menjelaskan cara menyiapkan firewall dengan UFW di Debian 10.
Prasyarat #
Hanya root atau pengguna dengan hak sudo yang dapat mengelola firewall sistem.
Menginstal UFW #
Masukkan perintah berikut untuk menginstal ufw
paket:
sudo apt update
sudo apt install ufw
Memeriksa Status UFW #
Instalasi tidak akan mengaktifkan firewall secara otomatis untuk menghindari penguncian dari server. Anda dapat memeriksa status UFW dengan mengetik:
sudo ufw status verbose
Outputnya akan terlihat seperti ini:
Status: inactive
Jika UFW diaktifkan, output akan terlihat seperti berikut:
Kebijakan Default UFW #
Secara default, UFW memblokir semua koneksi masuk dan mengizinkan semua koneksi keluar. Ini berarti bahwa siapa pun yang mencoba mengakses server Anda tidak akan dapat terhubung kecuali Anda secara khusus membuka port tersebut. Aplikasi dan layanan yang berjalan di server akan dapat mengakses dunia luar.
Kebijakan default didefinisikan dalam /etc/default/ufw
file dan dapat diubah menggunakan sudo ufw default <policy> <chain>
perintah.
Kebijakan firewall adalah dasar untuk membangun aturan yang lebih rinci dan ditentukan pengguna. Umumnya, Kebijakan Default UFW awal adalah titik awal yang baik.
Profil Aplikasi #
Sebagian besar aplikasi dikirimkan dengan profil aplikasi yang menjelaskan layanan dan berisi pengaturan UFW. Profil secara otomatis dibuat di /etc/ufw/applications.d
direktori selama instalasi paket.
Untuk membuat daftar semua profil aplikasi yang tersedia di sistem Anda, ketik:
sudo ufw utf --help
Tergantung pada paket yang diinstal pada sistem Anda, output akan terlihat seperti berikut:
Available applications:
DNS
IMAP
IMAPS
OpenSSH
POP3
POP3S
Postfix
Postfix SMTPS
Postfix Submission
...
Untuk menemukan informasi lebih lanjut tentang profil tertentu dan aturan yang disertakan, gunakan app info
perintah, diikuti dengan nama profil. Misalnya untuk mendapatkan info tentang profil OpenSSH Anda akan menggunakan:
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
Outputnya mencakup nama profil, judul, deskripsi, dan aturan firewall.
Izinkan Koneksi SSH #
Sebelum mengaktifkan firewall UFW terlebih dahulu, Anda harus mengizinkan koneksi SSH yang masuk.
Jika Anda terhubung ke server Anda dari lokasi yang jauh, dan Anda mengaktifkan firewall UFW sebelum secara eksplisit mengizinkan koneksi SSH yang masuk, Anda tidak akan lagi dapat terhubung ke server Debian Anda.
Untuk mengonfigurasi firewall UFW Anda agar menerima koneksi SSH, jalankan perintah berikut:
sudo ufw allow OpenSSH
Rules updated
Rules updated (v6)
Jika server SSH mendengarkan pada port selain port default 22, Anda harus membuka port tersebut.
Misalnya, server ssh Anda mendengarkan pada port 7722
, Anda akan mengeksekusi:
sudo ufw allow 7722/tcp
Aktifkan UFW #
Sekarang setelah firewall UFW dikonfigurasi untuk mengizinkan koneksi SSH masuk, aktifkan dengan menjalankan:
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. Ketik “y” dan tekan “Enter”.
Membuka Port #
Bergantung pada aplikasi yang berjalan di server Anda, Anda harus membuka port tempat layanan dijalankan.
Berikut adalah beberapa contoh cara mengizinkan koneksi masuk ke beberapa layanan yang paling umum:
Buka port 80 - HTTP #
Izinkan koneksi HTTP:
sudo ufw allow http
Alih-alih http
profile, Anda dapat menggunakan nomor port, 80
:
sudo ufw allow 80/tcp
Buka port 443 - HTTPS #
Izinkan koneksi HTTPS:
sudo ufw allow https
Anda juga dapat menggunakan nomor port, 443
:
sudo ufw allow 443/tcp
Buka port 8080 #
Jika Anda menjalankan Tomcator aplikasi lain yang mendengarkan pada port 8080
buka portnya dengan:
sudo ufw allow 8080/tcp
Membuka Rentang Port #
Dengan UFW, Anda juga dapat mengizinkan akses ke rentang port. Saat membuka rentang, Anda harus menentukan protokol port.
Misalnya, untuk mengizinkan port dari 7100
ke 7200
pada kedua tcp
dan udp
, jalankan perintah berikut:
sudo ufw allow 7100:7200/tcp
sudo ufw allow 7100:7200/udp
Mengizinkan Alamat IP Tertentu #
Untuk mengizinkan akses pada semua port dari alamat IP tertentu, gunakan ufw allow from
perintah diikuti dengan alamat IP:
sudo ufw allow from 64.63.62.61
Mengizinkan Alamat IP Tertentu pada port Tertentu #
Untuk mengizinkan akses pada port tertentu, misalkan port 22
dari mesin kerja Anda dengan alamat IP 64.63.62.61 gunakan perintah berikut:
sudo ufw allow from 64.63.62.61 to any port 22
Mengizinkan Subnet #
Perintah untuk mengizinkan koneksi dari subnet alamat IP sama seperti saat menggunakan satu alamat IP. Satu-satunya perbedaan adalah Anda perlu menentukan netmask. Misalnya, jika Anda ingin mengizinkan akses untuk alamat IP mulai dari 192.168.1.1 hingga 192.168.1.254 hingga 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, katakanlah port 3360 hanya ke antarmuka jaringan tertentu eth2
, gunakan allow in on
dan nama antarmuka jaringan:
sudo ufw allow in on eth2 to any port 3306
Tolak koneksi #
Kebijakan default untuk semua koneksi masuk disetel ke deny
, yang berarti UFW akan memblokir semua koneksi yang masuk kecuali Anda secara khusus membuka koneksi tersebut.
Katakanlah Anda membuka port 80
dan 443
, dan server Anda diserang dari 23.24.25.0/24
jaringan. Untuk menolak semua koneksi dari 23.24.25.0/24
, gunakan perintah berikut:
sudo ufw deny from 23.24.25.0/24
Jika Anda hanya ingin menolak akses ke port 80
dan 443
dari 23.24.25.0/24
gunakan:
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 tolak sama dengan menulis aturan izinkan. Anda hanya perlu mengganti allow
dengan deny
.
Hapus Aturan UFW #
Ada dua cara berbeda untuk menghapus aturan UFW. Dengan nomor aturan dan dengan menentukan aturan yang sebenarnya.
Menghapus aturan UFW dengan nomor aturan lebih mudah, terutama jika Anda baru mengenal UFW.
Untuk menghapus aturan berdasarkan nomornya terlebih dahulu, Anda perlu menemukan nomor aturan yang ingin Anda hapus. Untuk melakukannya jalankan 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 mengizinkan koneksi ke port 8080, Anda dapat menggunakan perintah berikut:
sudo ufw delete 3
Metode kedua adalah menghapus aturan dengan menentukan aturan yang sebenarnya. Misalnya, jika Anda menambahkan aturan untuk membuka port 8069
Anda dapat menghapusnya dengan:
sudo ufw delete allow 8069
Nonaktifkan UFW #
Jika karena alasan apa pun Anda ingin menghentikan UFW dan menonaktifkan semua aturan yang dijalankan:
sudo ufw disable
Nanti jika Anda ingin mengaktifkan kembali UTF dan mengaktifkan semua aturan cukup ketik:
sudo ufw enable
Setel ulang UFW #
Menyetel ulang UFW akan menonaktifkan UFW, dan menghapus semua aturan yang aktif. Ini berguna jika Anda ingin mengembalikan semua perubahan dan memulai dari awal.
Untuk mereset UFW cukup ketik perintah berikut:
sudo ufw reset