Debian menyertakan beberapa paket yang menyediakan alat untuk mengelola firewall dengan iptables diinstal sebagai bagian dari sistem dasar. Mungkin rumit bagi pemula untuk mempelajari cara menggunakan alat iptables untuk mengonfigurasi dan mengelola firewall dengan benar, tetapi UFW menyederhanakannya.
UFW (Uncomplicated Firewall) adalah front-end yang mudah digunakan untuk mengelola aturan firewall iptables dan tujuan utamanya adalah membuat pengelolaan iptables lebih mudah atau seperti namanya tidak rumit.
Dalam tutorial ini, kami akan menunjukkan cara mengatur firewall dengan UFW di Debian 9.
Prasyarat #
Sebelum melanjutkan dengan tutorial ini, pastikan pengguna yang Anda masuki memiliki hak sudo.
Instal UFW #
UFW tidak terinstal secara default di Debian 9. Anda dapat menginstal ufw
paket dengan mengetik:
sudo apt install ufw
Periksa Status UFW #
Setelah proses instalasi selesai, Anda dapat memeriksa status UFW dengan perintah berikut:
sudo ufw status verbose
Outputnya akan terlihat seperti ini:
Status: inactive
UFW dinonaktifkan secara default. Instalasi tidak akan mengaktifkan firewall secara otomatis untuk menghindari penguncian dari server.
Jika UFW diaktifkan, output akan terlihat seperti berikut:
Kebijakan Default UFW #
Secara default, UFW akan memblokir semua koneksi masuk dan mengizinkan semua koneksi keluar. Artinya, siapa pun yang mencoba mengakses server Anda tidak akan dapat terhubung kecuali Anda secara khusus membuka port tersebut, sementara semua aplikasi dan layanan yang berjalan di server Anda 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. Dalam kebanyakan kasus, Kebijakan Default UFW awal adalah titik awal yang baik.
Profil Aplikasi #
Saat memasang paket dengan apt
itu akan menambahkan profil aplikasi ke /etc/ufw/applications.d
direktori yang menjelaskan layanan dan berisi pengaturan UFW.
Untuk membuat daftar semua profil aplikasi yang tersedia di sistem Anda, ketik:
sudo ufw app list
Bergantung pada paket yang diinstal pada sistem Anda, hasilnya 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 perintah berikut:
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
AOutput di atas memberitahu kita bahwa profil OpenSSH membuka port 22
.
Izinkan Koneksi SSH #
Sebelum mengaktifkan firewall UFW terlebih dahulu kita harus mengizinkan koneksi SSH yang masuk.
Jika Anda terhubung ke server dari lokasi yang jauh, yang hampir selalu terjadi dan Anda mengaktifkan firewall UFW sebelum secara eksplisit mengizinkan koneksi SSH yang masuk, Anda tidak akan dapat lagi terhubung ke server Debian Anda.
Untuk mengonfigurasi firewall UFW Anda agar mengizinkan koneksi SSH masuk, 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 8822
, maka Anda dapat menggunakan perintah berikut untuk mengizinkan koneksi pada port tersebut:
sudo ufw allow 8822/tcp
Aktifkan UFW #
Sekarang setelah firewall UFW Anda dikonfigurasi untuk mengizinkan koneksi SSH masuk, Anda dapat mengaktifkannya 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, cukup ketik y
dan tekan Enter
.
Izinkan koneksi pada port lain #
Bergantung pada aplikasi yang berjalan di server dan kebutuhan spesifik Anda, Anda juga harus mengizinkan akses masuk ke beberapa port lain.
Berikut adalah beberapa contoh cara mengizinkan koneksi masuk ke beberapa layanan yang paling umum:
Buka port 80 - HTTP #
Koneksi HTTP dapat diizinkan dengan perintah berikut:
sudo ufw allow http
Alih-alih http
profile, Anda dapat menggunakan nomor port, 80
:
sudo ufw allow 80/tcp
Buka port 443 - HTTPS #
Koneksi HTTPS dapat diizinkan dengan perintah berikut:
sudo ufw allow https
Untuk mencapai hal yang sama alih-alih https
Anda dapat menggunakan nomor port, 443
:
sudo ufw allow 443/tcp
Buka port 8080 #
Jika Anda menjalankan Tomcator aplikasi lain yang mendengarkan pada port 8080, Anda dapat mengizinkan koneksi masuk dengan:
sudo ufw allow 8080/tcp
Izinkan Rentang Port #
Dengan UFW Anda juga dapat mengizinkan akses ke rentang port. Saat mengizinkan rentang port dengan UFW, Anda harus menentukan protokol, baik tcp
atau udp
.
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
Izinkan Alamat IP Tertentu #
Jika Anda ingin 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
Izinkan 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
Izinkan 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 ke port 3360
(MySQL) Anda akan menjalankan perintah berikut:
sudo ufw allow from 192.168.1.0/24 to any port 3306
Mengizinkan Koneksi ke Antarmuka Jaringan Tertentu #
Untuk mengizinkan akses pada port tertentu, katakanlah port 3360
pada antarmuka jaringan tertentu eth2
, gunakan allow in on
perintah diikuti dengan nama antarmuka:
sudo ufw allow in on eth2 to any port 3306
Menolak 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
, jalankan 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
Anda akan menggunakan:
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 sebenarnya.
Menghapus aturan UFW dengan nomor aturan lebih mudah, terutama jika Anda baru mengenal UFW.
Untuk menghapus aturan dengan nomor aturan 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
Misalnya untuk menghapus aturan nomor 3, aturan yang mengizinkan koneksi ke port 8080, masukkan:
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