GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengatur Firewall Dengan UFW Di Linux

Panduan ini menjelaskan apa itu UFW, cara menginstal UFW di Linux, dan cara mengatur firewall dengan UFW di berbagai sistem operasi Linux.

Pengantar

Keamanan adalah bisnis yang serius. Baik Anda menjalankan sistem operasi Linux di pusat data atau di desktop, Anda harus mengamankan sistem operasi Anda dari semua kemungkinan ancaman.

Bahkan, server yang berjalan di lingkungan perusahaan akan terlindungi dengan baik. Sebagian besar perusahaan korporat menginvestasikan jutaan dolar untuk mengamankan infrastruktur mereka.

Akan ada tim jaringan terpisah, tim firewall, tim keamanan untuk melindungi lingkungan Anda dan server Linux. Ini tidak akan terjadi ketika Anda menjalankan Linux di desktop atau server Anda.

Anda harus mengetahui cara mengamankan mesin Linux Anda dengan alat yang tepat. Salah satu alat tersebut adalah UFW .

Apa itu UFW?

UFW , singkatan dari U nrumit F marahdengan all, adalah program firewall yang sudah diinstal sebelumnya secara default dengan distribusi berbasis Ubuntu.

Mengapa UFW bukan iptables? Anda mungkin bertanya-tanya.

Jika Anda belum mengetahuinya, Netfilter adalah sistem pemfilteran paket yang dikirimkan bersama kernel Linux dan iptables digunakan untuk memanipulasi filter bersih dengan serangkaian perintah.

Menjadi nyaman dengan iptables mungkin membutuhkan waktu dan bisa menjadi tugas yang menakutkan. Untuk mempermudah pengelolaan firewall, ada banyak front-end untuk iptables yang dibuat. UFW adalah salah satunya.

UFW adalah front-end baris perintah untuk mengelola iptables. Ini menyediakan kerangka kerja untuk mengelola dan memanipulasi firewall netfilter.

UFW tersedia secara default di semua instalasi Ubuntu setelah versi 8.04 LTS.

Ada juga front-end grafis untuk UFW bernama Gufw . Kami akan membahasnya dalam panduan terpisah. Dalam artikel ini, fokus kami adalah menggunakan ufw dari baris perintah.

Tanpa basa-basi lagi, mari kita lanjutkan dan lihat cara menginstal dan mengatur firewall UFW di Linux.

1. Instal UFW di Linux

UFW sudah diinstal sebelumnya dengan sebagian besar distribusi berbasis Debian dan berbasis Arch. Untuk memeriksa apakah UFW sudah terpasang atau belum, jalankan perintah berikut:

$ yang ufw 
/usr/sbin/ufw
$ versi ufw 
ufw 0.36
Hak Cipta 2008-2015 Canonical Ltd.

Jika tidak diinstal pada distribusi Anda, Anda dapat menginstalnya menggunakan manajer paket default distribusi Anda.

Untuk menginstal UFW di Alpine Linux, jalankan:

$ sudo apk tambahkan ufw

Instal UFW di Arch Linux dan variannya seperti EndeavourOS dan Manjaro Linux:

$ sudo pacman -S ufw

Instal ufw di Debian, Ubuntu dan turunannya:

$ sudo apt update 
$ sudo apt install ufw

Instal UFW di Fedora:

$ sudo dnf install ufw

UFW tersedia di [EPEL] repositori untuk sistem operasi Enterprise Linux seperti RHEL, CentOS, AlmaLinux dan Rocky Linux.

Aktifkan [EPEL] repositori dan instal UFW di RHEL, CentOS, AlmaLinux, Rocky Linux seperti di bawah ini:

$ sudo dnf install epel-release
$ sudo dnf install ufw

Instal UFW di openSUSE:

$ sudo zypper install ufw

1.1. Aktifkan, mulai, dan hentikan layanan UFW

Dalam sistem berbasis Debian, daemon UFW akan dimulai dan diaktifkan secara otomatis.

Jalankan perintah berikut untuk memeriksa status layanan UFW:

$ systemctl status ufw

Contoh keluaran:

● ufw.service - Firewall tidak rumit Dimuat:dimuat (/usr/lib/systemd/system/ufw.service; diaktifkan; vendor prese> Aktif:aktif (keluar) sejak Sen 2021-07-05 20:08:01 IST; 44 detik yang lalu Dokumen:man:ufw(8) man:ufw-framework(8) file://usr/share/doc/ufw/README Proses:21690 ExecStart=/usr/libexec/ufw/ufw-init start ( code=keluar, stat> PID Utama:21690 (kode=keluar, status=0/SUCCESS) CPU:169msJul 05 20:08:01 ostechnix systemd[1]:Memulai firewall yang tidak rumit...05 Juli 20:08:01 ostechnix systemd[1]:Selesai Firewall tidak rumit.

Cara lain untuk memeriksa apakah layanan UFW diaktifkan dan aktif:

$ systemctl diaktifkan ufw 
diaktifkan
$ systemctl aktif ufw 
aktif

Jika layanan UFW tidak dimulai secara otomatis setelah instalasi, jalankan perintah berikut untuk memulai layanan UFW:

$ sudo systemctl start ufw

Ufw juga harus diaktifkan untuk memulai secara otomatis di antara reboot sistem.

$ sudo systemctl aktifkan ufw

Atau, Anda dapat menggabungkan kedua perintah menjadi satu untuk mengaktifkan dan memulai layanan UFW sekaligus seperti di bawah ini:

$ sudo systemctl aktifkan --now ufw

Untuk menghentikan layanan UFW, cukup jalankan:

$ sudo systemctl stop ufw

3. Siapkan firewall dengan UFW di Linux

3.1. Mendapatkan bantuan

Jika Anda baru mengenal UFW, hal pertama yang harus dilakukan setelah menginstalnya adalah merujuk ke bagian bantuan dan halaman manual UFW untuk mendapatkan ide dasar tentang penggunaan UFW.

$ ufw --help
$ man ufw

Jika Anda lupa sintaks atau memerlukan referensi untuk fitur ufw tertentu, kedua perintah ini akan sangat berguna.

3.2. Tetapkan aturan default

Menggunakan UFW, Anda dapat membuat aturan (atau kebijakan) firewall untuk mengizinkan atau menolak layanan tertentu. Melalui kebijakan ini, Anda menginstruksikan UFW port, layanan, alamat IP, dan antarmuka apa yang harus diizinkan atau ditolak.

Ada kebijakan default yang disertakan dengan ufw. Kebijakan default akan menghapus semua koneksi masuk dan mengizinkan semua koneksi keluar.

PENTING: Jika Anda menyiapkan ufw di server jauh, pastikan Anda telah mengizinkan port atau layanan ssh sebelum mengaktifkan firewall ufw.

Kebijakan masuk default akan menolak semua koneksi masuk. Jadi jika Anda tidak mengonfigurasi aturan untuk mengizinkan SSH, Anda akan dikunci dari sistem jarak jauh dan Anda tidak dapat masuk ke sistem. Ini tidak terjadi ketika Anda menjalankan ufw di sistem lokal Anda.

Kebijakan default didefinisikan di /etc/default/ufw mengajukan. Berikut isi filenya:

Dari sini, kita dapat menetapkan kebijakan default.

Atau, Kita dapat menggunakan ufw allow perintah untuk menetapkan kebijakan default untuk perintah masuk dan keluar:

$ sudo ufw default tolak masuk
$ Sudo ufw default mengizinkan keluar

3.2.1. Periksa status aturan firewall UFW

Untuk memeriksa apakah kebijakan default aktif, jalankan perintah berikut:

$ sudo ufw status

Contoh keluaran:

Status:activeTo Action From-- ------ ----SSH ALLOW Anywhere 224.0.0.251 mDNS ALLOW Anywhere SSH (v6) ALLOW Anywhere (v6) ff02::fb mDNS ALLOW Anywhere (v6)  

Dan untuk informasi status yang lebih lengkap, gunakan perintah ini:

$ sudo ufw status verbose

Contoh keluaran:

Status:activeLogging:aktif (rendah)Default:tolak (masuk), izinkan (keluar), tolak (dirutekan) Profil baru:skipTo Action From-- ------ ----22/tcp (SSH) ALLOW IN Anywhere 224.0.0.251 5353/udp (mDNS) ALLOW IN Anywhere 22/tcp (SSH (v6)) ALLOW IN Di mana saja (v6) ff02::fb 5353/udp (mDNS) Izinkan Di Mana Saja (v6) 

Untuk melihat format bernomor, jalankan:

$ Sudo ufw status bernomor

3.2.2. Tambahkan aturan

Biarkan saya menggunakan SSH sebagai contoh untuk mendemonstrasikan cara menambahkan aturan firewall dengan ufw memerintah. Perhatikan perintah di bawah ini:

$ sudo ufw izinkan ssh
$ sudo ufw izinkan 22
$ sudo ufw allow 22/tcp
$ sudo ufw allow 2222/tcp

Semua perintah memiliki tujuan yang sama.

[1] - Pada perintah pertama, saya mengizinkan semua akses ke ssh melayani. UFW tahu secara default ssh mendengarkan port 22 . Jadi ketika Anda menggunakan izinkan ssh service, itu juga akan menegakkan aturan untuk port 22 .
[ 2 ] - Pada perintah kedua, saya secara eksplisit memberi tahu untuk mengizinkan koneksi masuk untuk port 22 .
[ 3 ] - Perintah ketiga sama dengan perintah kedua. Ini memungkinkan semua akses ke tcp port 22 . Baik protokol TCP dan UDP didukung.
[ 4 ] - Pada perintah keempat, saya mengizinkan port ssh khusus (yaitu 2222 ) untuk menerima koneksi masuk.

Anda dapat menggunakan keempat perintah ini tidak hanya untuk ssh tetapi untuk layanan dan port apa pun. Misalnya, jika Anda ingin terhubung ke PostgreSQL yang berjalan di port 5433 , maka aturannya harus ditambahkan seperti di bawah ini.

$ sudo ufw allow 5433

Demikian pula, kita dapat menggunakan ufw deny perintah untuk menolak koneksi masuk:

$ sudo ufw tolak 5433

Perintah ini akan menolak lalu lintas pada port 5433 .

3.2.3. Hapus aturan firewall UFW

Untuk menghapus aturan atau kebijakan, Anda dapat menggunakan perintah ufw delete.

Misalnya, Jika Anda tidak ingin lagi mengizinkan lalu lintas HTTP, jalankan saja:

sudo ufw delete allow 80

3.2.4. Aktifkan, nonaktifkan, dan muat ulang aturan firewall UFW

Ini berbeda dengan mengaktifkan dan memulai daemon UFW. Memulai unit ufw systemd tidak akan menegakkan aturan firewall Anda. UFW memiliki perintah khusus untuk mengaktifkan, menonaktifkan, dan memuat ulang aturan firewall.

Untuk membuat aturan efektif, Anda harus menjalankan perintah berikut:

$ sudo ufw aktifkan 
Firewall aktif dan diaktifkan pada startup sistem

Seperti yang telah saya sebutkan, gunakan perintah berikut untuk melihat status aturan firewall UFW:

$ sudo ufw status

Contoh keluaran:

Status:activeTo Action From-- ------ ----SSH ALLOW Anywhere 224.0.0.251 mDNS ALLOW Anywhere SSH (v6) ALLOW Anywhere (v6) ff02::fb mDNS ALLOW Anywhere (v6)  

Untuk menonaktifkan aturan Firewall, jalankan:

$ sudo ufw nonaktifkan 
Firewall berhenti dan dinonaktifkan saat startup sistem

Harap diperhatikan: Perintah di atas hanya akan menonaktifkan aturan firewall. Daemon UFW akan tetap berjalan dan diaktifkan saat reboot.

Setelah menambahkan kebijakan apa pun, muat ulang ufw agar kebijakan diterapkan menggunakan perintah:

$ sudo ufw reload

3.2.5. Menambahkan kebijakan untuk rentang port

Anda dapat menambahkan kebijakan untuk berbagai port alih-alih membuat kebijakan untuk satu port:

$ sudo ufw allow 8000:8080/tcp
$ sudo ufw tolak 8000:8080/tcp

3.2.6. Menambahkan kebijakan untuk alamat IP, subnet, dan port tertentu

Anda dapat membuat aturan yang lebih halus dengan ufw. Katakanlah jika Anda ingin server Anda terhubung (ssh’ed) dari IP tertentu saja, Anda dapat melakukannya dengan menambahkan aturan berikut.

$ sudo ufw izinkan dari 192.168.156.2
$ sudo ufw izinkan dari 192.168.156.2 ke port mana saja 2222

Perintah pertama memungkinkan IP yang ditentukan untuk terhubung berdasarkan port yang dibuka. Perintah kedua menetapkan bahwa pengguna dapat terhubung ke port 2222 hanya dari 192.168.156.2 .

Untuk mengizinkan sekelompok IP dari subnet yang sama terhubung ke ssh , Anda dapat menggunakan subnet sambil menambahkan aturan, yang memungkinkan semua bagian IP dari subnet itu terhubung ke port 2222 .

$ sudo ufw izinkan dari 192.168.156.1/24 ke port mana saja 2222

3.2.7. Menambahkan kebijakan antarmuka jaringan

Anda juga dapat membuat kebijakan berdasarkan antarmuka jaringan. Perintah berikut akan membuat kebijakan untuk menerima koneksi untuk antarmuka jaringan en01 ke port 2222 .

$ sudo ufw izinkan en01 ke port mana saja 2222

3.2.8. Uji aturan tanpa menerapkannya menggunakan opsi dry-run

UFW memiliki --dry-run pilihan untuk menguji aturan tanpa benar-benar menerapkannya. Sebagai contoh, berikut ini yang akan diterapkan jika membuka port SSH:

$ sudo ufw --dry-run allow ssh

Seperti yang Anda lihat pada output di atas, perintah ufw hanya menampilkan aturan yang dihasilkan, tetapi tidak menerapkannya saat kita menambahkan --dry-run pilihan. Ini berguna saat Anda ingin menguji kebijakan firewall apa pun.

3.2.9. Tambahkan komentar ke setiap aturan

Anda mungkin telah menambahkan beberapa aturan. Setelah sejumlah aturan tertentu (Katakanlah 50), Anda tidak dapat mengingat tentang apa aturan itu.

Dalam hal ini, Anda dapat menambahkan komentar ke setiap aturan seperti di bawah ini:

$ sudo ufw izinkan 22 komentar 'buka port 22 untuk ssh'

Perintah di atas akan mengizinkan semua lalu lintas ke port 22 dan menambahkan komentar untuk aturan. Dengan cara ini Anda dapat dengan mudah menemukan tujuan dari aturan tertentu.

4. Aturan mana yang diprioritaskan?

Prioritas penting ketika Anda membuat beberapa aturan untuk layanan/port yang sama. Kebijakan mendapatkan prioritas mereka dalam urutan yang mereka buat. Jalankan perintah berikut yang akan memberi Anda kebijakan beserta prioritasnya.

$ Sudo ufw status bernomor

Contoh keluaran:

Status:aktif Untuk Bertindak Dari -- ------ ----[ 1] 22 ALLOW IN Anywhere [ 2] 2222 allow IN Anywhere [ 3] 2222 ALLOW IN 192.168.156.2 [ 4] 2222 MENOLAK DI 192.168.157.0/24  [ 5] 22 (v6) IZINKAN DI Mana Saja (v6) [ 6] 2222 (v6) IZINKAN DI Mana Saja (v6) 

Lihatlah [ 4 ] pada output di atas. Koneksi apa pun ke port 2222 dari subnet 192.168.157.0/24 harus dijatuhkan.

Tetapi ketika saya mencoba menghubungkan dari salah satu mesin dari subnet yang sama, koneksi akan diizinkan karena prioritas tinggi telah diberikan kepada [ 2 ].

Untuk mengesampingkan perilaku ini, Anda harus membuat aturan dengan prioritas. Anda dapat menghapus aturan yang ada dan menambahkan aturan baru dengan prioritas dan memuat ulang layanan.

$ sudo ufw delete 4Deleting:deny dari 192.168.157.0/24 ke port mana saja 2222Lanjutkan dengan operasi (y|n)? yAturan dihapus
$ sudo ufw insert 2 tolak dari 192.168.157.0/24 ke port mana saja 2222 
Aturan dimasukkan
$ sudo ufw reload 
Firewall dimuat ulang
$ sudo ufw status numberedStatus:activeTo Action From-- ------ ----[ 1] 22 ALLOW IN Anywhere[ 2] 2222 DENY IN 192.168.157.0/24[ 3] 2222 ALLOW IN Anywhere[ 4] 2222 IZINKAN DI 192.168.156.2[ 5] 22 (v6) IZINKAN DI Mana Saja (v6)[ 6] 2222 (v6) IZINKAN DI Mana Saja (v6)

Perhatikan keluaran di atas. Prioritas ditetapkan kembali ke [ 2 ]. Sekarang jika saya mencoba menghubungkan ke port 2222
dari 192.168.157.0/24 , koneksi saya akan ditolak.

5. Pencatatan UFW

Log adalah taruhan terbaik ketika ada yang tidak beres.

Untuk menonaktifkan logging UFW, jalankan perintah berikut:

$ sudo ufw keluar 
Pencatatan dinonaktifkan

Untuk mengaktifkan pencatatan log UFW, jalankan:

$ sudo ufw masuk 
Pencatatan diaktifkan

Ada empat tingkat logging, yaitu rendah , sedang , tinggi , dan penuh . Tergantung pada level yang Anda pilih, log akan dibuat di bawah /var/log/ufw.log mengajukan. Secara default, level log akan rendah.

Anda dapat menggunakan perintah di bawah ini untuk mengatur ke level yang Anda inginkan:

$ sudo ufw logging [ tinggi | sedang | Penuh | Rendah ]

Untuk memeriksa status logging dan level log, jalankan ufw status perintah dan cari logging entri.

$ sudo ufw status verbose 
Status:aktif
Masuk:aktif (tinggi)
Default:tolak (masuk), izinkan (keluar), tolak (dirutekan)
Profil baru:lewati

6. Profil aplikasi

Saat Anda menginstal paket apa pun menggunakan manajer paket Anda (Misalnya apt atau pacman), profil aplikasi yang mendefinisikan aturan untuk paket itu akan dibuat di ufw.

Misalnya, jika Anda menginstal server OpenSSH menggunakan apt , maka profil akan dibuat untuk port 22 . Semua profil aplikasi disimpan di bawah /etc/ufw/applications.d direktori.

Untuk mendapatkan daftar profil aplikasi, jalankan perintah berikut:

$ sudo ufw daftar aplikasi

Contoh keluaran:

Aplikasi yang tersedia:CUPSOpenSSH

Ini adalah mesin uji. Saya hanya menginstal OpenSSH. Jadi Anda hanya melihat dua profil.

Untuk mendapatkan informasi mendetail tentang profil tersebut dan kebijakan apa yang diterapkannya, jalankan perintah berikut:

$ sudo ufw info aplikasi 'OpenSSH'

Contoh keluaran:

Profil:OpenSSH 
Judul:Server shell aman, pengganti rshd
Deskripsi:OpenSSH adalah implementasi gratis dari protokol Secure Shell.
Pelabuhan:
22/tcp

7. Setel ulang firewall UFW ke kebijakan default

Jika Anda ingin membersihkan semua aturan yang Anda buat dan reset ke default, Anda dapat melakukannya dengan menjalankan ufw reset perintah.

$ sudo ufw reset

Contoh keluaran:

Mengatur ulang semua aturan ke default yang diinstal. Lanjutkan dengan operasi (y|n)? yMencadangkan 'user.rules' ke '/etc/ufw/user.rules.20210705_131655'Mencadangkan 'before.rules' ke '/etc/ufw/before.rules.20210705_131655'Mencadangkan 'after.rules' ke '/ etc/ufw/after.rules.20210705_131655'Mencadangkan 'user6.rules' ke '/etc/ufw/user6.rules.20210705_131655'Mencadangkan 'before6.rules' ke '/etc/ufw/before6.rules.20210705_131655' Mencadangkan 'after6.rules' ke '/etc/ufw/after6.rules.20210705_131655'

Saat Anda menjalankan perintah ini, aturan Anda saat ini akan dicadangkan sebelum disetel ulang ke profil default.

Ufw juga memiliki banyak front-end grafis. Salah satunya adalah Gufw .

8. Gufw, front-end grafis untuk UFW

Beberapa dari Anda mungkin tidak nyaman dengan mode baris perintah. Untungnya, tersedia front-end grafis untuk UFW.

Gufw adalah aplikasi front-end grafis untuk mengelola Uncomplicated Firewall (UFW) di Linux. Gufw terutama dikembangkan untuk menginstal dan mengkonfigurasi firewall untuk desktop Linux.

Lihat panduan berikut untuk mempelajari cara menginstal dan mengkonfigurasi Gufw di Linux:

  • Cara Menyetel Firewall Dengan Gufw Di Desktop Linux

Kesimpulan

Dalam panduan ini, kita telah membahas apa itu UFW, cara menginstal dan mengatur firewall UFW di Linux dengan contoh perintah.

Sekarang giliran Anda untuk menguji ufw di mesin Anda. Saya sarankan uji ufw di mesin Virtual apa pun sebelum menerapkannya di desktop atau server Anda.


Linux
  1. Cara Mengatur Firewall dengan UFW di Ubuntu 20.04

  2. Cara Mengatur Firewall UFW di Ubuntu 18.04

  3. Cara Menginstal Fail2ban dengan Firewalld di Rocky Linux 8

  1. Cara Mengatur Firewall dengan UFW di Debian 10

  2. Cara Mengatur Firewall dengan UFW di Debian 9

  3. Cara Menginstal MX Linux 21 Langkah demi Langkah dengan Tangkapan Layar

  1. Cara Install phpMyAdmin dengan Nginx di Linux Mint 19 / Linux Mint 18

  2. Cara Memasang Dan Mengatur Firewall Utangle

  3. Cara Menyinkronkan File Dengan Unison Di Linux