Android

Cara mengkonfigurasi dan mengelola firewall pada centos 8

#17 Installasi Ajenti | Server Management System - Centos 7 Server

#17 Installasi Ajenti | Server Management System - Centos 7 Server

Daftar Isi:

Anonim

Firewall adalah metode untuk memantau dan memfilter lalu lintas jaringan yang masuk dan keluar. Ia bekerja dengan mendefinisikan seperangkat aturan keamanan yang menentukan apakah akan mengizinkan atau memblokir lalu lintas tertentu. Firewall yang dikonfigurasi dengan benar adalah salah satu aspek terpenting dari keamanan sistem secara keseluruhan.

CentOS 8 dikirimkan dengan daemon firewall bernama firewalld. Ini adalah solusi lengkap dengan antarmuka D-Bus yang memungkinkan Anda untuk mengelola firewall sistem secara dinamis.

Dalam tutorial ini, kita akan berbicara tentang cara mengkonfigurasi dan mengelola firewall pada CentOS 8. Kami juga akan menjelaskan konsep dasar FirewallD.

Prasyarat

Untuk mengkonfigurasi layanan firewall, Anda harus login sebagai root atau pengguna dengan hak akses sudo.

Konsep Dasar Firewalld

firewalld menggunakan konsep zona dan layanan. Berdasarkan zona dan layanan yang akan Anda konfigurasi, Anda dapat mengontrol lalu lintas apa yang diizinkan atau diblokir ke dan dari sistem.

Firewalld dapat dikonfigurasi dan dikelola menggunakan utilitas baris perintah firewall-cmd .

Di CentOS 8, iptables digantikan oleh nftables sebagai backend firewall default untuk daemon firewalld.

Zona Firewalld

Zona adalah seperangkat aturan yang telah ditentukan yang menentukan tingkat kepercayaan jaringan yang terhubung dengan komputer Anda. Anda dapat menetapkan antarmuka dan sumber jaringan ke zona.

Berikut adalah zona yang disediakan oleh FirewallD yang dipesan sesuai dengan tingkat kepercayaan zona dari tidak dipercaya menjadi tepercaya:

  • drop: Semua koneksi yang masuk terputus tanpa pemberitahuan. Hanya koneksi keluar yang diizinkan. blok: Semua koneksi yang masuk ditolak dengan pesan icmp-host-prohibited untuk IPv4 dan icmp6-adm-prohibited untuk IPv6n. Hanya koneksi keluar yang diizinkan. publik: Untuk digunakan di area publik yang tidak terpercaya. Anda tidak mempercayai komputer lain di jaringan, tetapi Anda dapat mengizinkan koneksi masuk yang dipilih. eksternal: Untuk digunakan pada jaringan eksternal dengan penyamaran NAT diaktifkan ketika sistem Anda bertindak sebagai gateway atau router. Hanya koneksi masuk terpilih yang diizinkan. internal: Untuk digunakan pada jaringan internal ketika sistem Anda bertindak sebagai gateway atau router. Sistem lain pada jaringan umumnya dipercaya. Hanya koneksi masuk terpilih yang diizinkan. dmz: Digunakan untuk komputer yang terletak di zona demiliterisasi Anda yang memiliki akses terbatas ke seluruh jaringan Anda. Hanya koneksi masuk terpilih yang diizinkan. kerja: Digunakan untuk mesin kerja. Komputer lain di jaringan umumnya dipercaya. Hanya koneksi masuk terpilih yang diizinkan. rumah: Digunakan untuk mesin rumah. Komputer lain di jaringan umumnya dipercaya. Hanya koneksi masuk terpilih yang diizinkan. tepercaya: Semua koneksi jaringan diterima. Percayai semua komputer di jaringan.

Layanan firewall

Layanan Firewalld adalah aturan yang telah ditentukan yang berlaku dalam suatu zona dan menentukan pengaturan yang diperlukan untuk memungkinkan lalu lintas masuk untuk layanan tertentu. Layanan ini memungkinkan Anda untuk dengan mudah melakukan beberapa tugas dalam satu langkah.

Misalnya, layanan dapat berisi definisi tentang membuka port, meneruskan lalu lintas, dan banyak lagi.

Pengaturan Runtime dan Permanen Firewalld

Firewalld menggunakan dua set konfigurasi yang terpisah, runtime, dan konfigurasi permanen.

Konfigurasi runtime adalah konfigurasi yang sedang berjalan dan tidak bertahan saat reboot. Ketika daemon firewalld dimulai, ia memuat konfigurasi permanen, yang menjadi konfigurasi runtime.

Secara default, ketika membuat perubahan pada konfigurasi Firewalld menggunakan utilitas firewall-cmd , perubahan diterapkan pada konfigurasi runtime. Untuk membuat perubahan permanen tambahkan opsi --permanent ke perintah.

Untuk menerapkan perubahan di kedua set konfigurasi, Anda dapat menggunakan salah satu dari dua metode berikut:

  1. Ubah konfigurasi runtime dan buat itu permanen:

    sudo firewall-cmd sudo firewall-cmd --runtime-to-permanent

    Ubah konfigurasi permanen dan muat ulang daemon firewalld:

    sudo firewall-cmd --permanent sudo firewall-cmd --reload

Mengaktifkan FirewallD

Pada CentOS 8, firewalld diinstal dan diaktifkan secara default. Jika karena alasan tertentu tidak diinstal pada sistem Anda, Anda dapat menginstal dan memulai daemon dengan mengetik:

sudo dnf install firewalld sudo systemctl enable firewalld --now

Anda dapat memeriksa status layanan firewall dengan:

sudo firewall-cmd --state

Jika firewall diaktifkan, perintah akan mencetak yang running . Kalau tidak, Anda akan melihat not running .

Zona Firewalld

Zona default adalah zona yang digunakan untuk segala sesuatu yang tidak secara eksplisit ditetapkan ke zona lain.

Anda dapat melihat zona default dengan mengetik:

sudo firewall-cmd --get-default-zone

public

Untuk mendapatkan daftar semua zona yang tersedia, ketik:

sudo firewall-cmd --get-zones

block dmz drop external home internal public trusted work

Untuk melihat zona aktif dan antarmuka jaringan yang ditetapkan untuknya:

sudo firewall-cmd --get-active-zones

Output di bawah ini menunjukkan bahwa antarmuka eth0 dan eth1 ditugaskan ke zona public :

public interfaces: eth0 eth1

Anda dapat mencetak pengaturan konfigurasi zona dengan:

sudo firewall-cmd --zone=public --list-all

public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Dari output di atas, kita dapat melihat bahwa zona publik aktif dan menggunakan target default, yaitu REJECT . Output juga menunjukkan bahwa zona tersebut digunakan oleh antarmuka eth0 dan eth1 dan memungkinkan lalu lintas klien DHCP dan SSH.

sudo firewall-cmd --list-all-zones

Perintah mencetak daftar besar dengan pengaturan semua zona yang tersedia.

Mengubah target zona

Target menentukan perilaku default zona untuk lalu lintas masuk yang tidak ditentukan. Itu dapat diatur ke salah satu opsi berikut: default , ACCEPT , REJECT , dan DROP .

Untuk menetapkan target zona, tentukan zona dengan opsi --zone dan target dengan opsi --set-target .

Misalnya, untuk mengubah target zona public ke DROP Anda akan menjalankan:

sudo firewall-cmd --zone=public --set-target=DROP

Menetapkan antarmuka ke zona yang berbeda

Anda dapat membuat serangkaian aturan khusus untuk zona yang berbeda dan menetapkan antarmuka yang berbeda untuknya. Ini sangat berguna saat Anda menggunakan banyak antarmuka pada mesin Anda.

Untuk menetapkan antarmuka ke zona yang berbeda, tentukan zona dengan opsi --zone dan antarmuka dengan opsi --zone --change-interface .

Misalnya, perintah berikut menetapkan antarmuka eth1 ke zona work :

sudo firewall-cmd --zone=work --change-interface=eth1

Verifikasi perubahan dengan mengetik:

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

Mengubah Zona Default

Untuk mengubah zona default, gunakan opsi --set-default-zone diikuti oleh nama zona yang ingin Anda jadikan default.

Misalnya, untuk mengubah zona default ke home Anda akan menjalankan perintah berikut:

sudo firewall-cmd --set-default-zone=home

Verifikasi perubahan dengan:

sudo firewall-cmd --get-default-zone

home

Menciptakan Zona baru

Firewalld juga memungkinkan Anda untuk membuat zona Anda sendiri. Ini berguna saat Anda ingin membuat aturan per-aplikasi.

Dalam contoh berikut kita akan membuat zona baru bernama memcached , buka port 11211 dan izinkan akses hanya dari alamat IP 192.168.100.30 :

  1. Buat zona:

    sudo firewall-cmd --new-zone=memcached --permanent

    Tambahkan aturan ke zona:

    sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent

    Muat ulang daemon firewalld untuk mengaktifkan perubahan:

    sudo firewall-cmd --reload

Layanan Firewalld

Dengan firewalld Anda dapat mengizinkan lalu lintas untuk port dan / atau sumber tertentu berdasarkan aturan yang telah ditentukan yang disebut layanan.

Untuk mendapatkan daftar semua layanan standar yang tersedia ketik:

sudo firewall-cmd --get-services

Anda dapat menemukan informasi lebih lanjut tentang setiap layanan dengan membuka file.xml terkait di /usr/lib/firewalld/services . Misalnya, layanan HTTP didefinisikan seperti ini:

/usr/lib/firewalld/services/http.xml

WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages. WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.

Untuk mengizinkan lalu lintas HTTP masuk (port 80) untuk antarmuka di zona publik, hanya untuk sesi saat ini (konfigurasi runtime) ketik:

sudo firewall-cmd --zone=public --add-service=http Jika Anda memodifikasi zona default, Anda dapat meninggalkan opsi --zone .

Untuk memverifikasi bahwa layanan telah ditambahkan dengan sukses, gunakan opsi --list-services :

sudo firewall-cmd --zone=public --list-services

ssh dhcpv6-client

Agar port 80 tetap terbuka setelah reboot jalankan perintah yang sama sekali lagi dengan opsi --permanent , atau jalankan:

sudo firewall-cmd --runtime-to-permanent

Gunakan --list-services bersama dengan opsi --permanent untuk memverifikasi perubahan Anda:

sudo firewall-cmd --permanent --zone=public --list-services

ssh dhcpv6-client

Sintaks untuk menghapus layanan sama dengan ketika menambahkan satu. Cukup gunakan --add-service bendera --add-service :

sudo firewall-cmd --zone=public --remove-service=http --permanent

Perintah di atas menghapus layanan http dari konfigurasi permanen zona publik.

Membuat Layanan FirewallD baru

Seperti yang telah kami sebutkan, layanan default disimpan di /usr/lib/firewalld/services . Cara termudah untuk membuat layanan baru adalah menyalin file layanan yang ada ke direktori /etc/firewalld/services , yang merupakan lokasi untuk layanan yang dibuat pengguna dan mengubah pengaturan file.

Misalnya, untuk membuat definisi layanan untuk Server Media Plex, Anda dapat menggunakan file layanan SSH:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

Buka file plexmediaserver.xml baru dibuat dan ubah nama pendek dan deskripsi untuk layanan di dalamnya dan tag. Tag paling penting yang perlu Anda ubah adalah tag port , yang menentukan nomor port dan protokol yang ingin Anda buka.

Dalam contoh berikut, kami membuka port 1900 UDP dan 32400 TCP.

/etc/firewalld/services/plexmediaserver.xml

plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere. plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.

Simpan file dan muat ulang layanan FirewallD:

sudo firewall-cmd --reload

Anda sekarang dapat menggunakan layanan plexmediaserver di zona Anda sama dengan layanan lainnya.

Membuka Port dan Sumber IP

Firewalld juga memungkinkan Anda untuk dengan cepat mengaktifkan semua lalu lintas dari alamat IP tepercaya atau pada port tertentu tanpa membuat definisi layanan.

Membuka IP sumber

Untuk mengizinkan semua lalu lintas masuk dari alamat IP tertentu (atau rentang), tentukan zona dengan opsi --zone dan IP sumber dengan opsi --add-source .

Misalnya, untuk mengizinkan semua lalu lintas masuk dari 192.168.1.10 di zona public , jalankan:

sudo firewall-cmd --zone=public --add-source=192.168.1.10

Buat aturan baru tetap ada:

sudo firewall-cmd --runtime-to-permanent

Verifikasi perubahan menggunakan perintah berikut:

sudo firewall-cmd --zone=public --list-sources

192.168.1.10

Sintaks untuk menghapus IP sumber sama dengan ketika menambahkan satu. Cukup gunakan --remove-source alih --remove-source alih opsi --add-source :

sudo firewall-cmd --zone=public --remove-source=192.168.1.10

Membuka port sumber

Untuk mengizinkan semua lalu lintas masuk pada port tertentu, tentukan zona dengan opsi --zone dan port serta protokol dengan opsi --add-port .

Misalnya, untuk membuka port 8080 di zona publik untuk sesi saat ini Anda dapat menjalankan:

sudo firewall-cmd --zone=public --add-port=8080/tcp

Protokol dapat berupa tcp , udp , sctp , atau dccp .

Verifikasi perubahan:

sudo firewall-cmd --zone=public --list-ports

8080

Agar port tetap terbuka setelah reboot, tambahkan aturan ke pengaturan permanen dengan menjalankan perintah yang sama menggunakan flag --permanent atau dengan menjalankan:

sudo firewall-cmd --runtime-to-permanent

Sintaks untuk menghapus port sama dengan ketika menambahkan port. Cukup gunakan --remove-port alih --remove-port alih opsi --add-port .

sudo firewall-cmd --zone=public --remove-port=8080/tcp

Port Penerusan

Untuk meneruskan lalu lintas dari satu port ke port lain, pertama-tama aktifkan penyamaran untuk zona yang diinginkan menggunakan opsi --add-masquerade . Misalnya, untuk mengaktifkan penyamaran untuk zona external , ketik:

sudo firewall-cmd --zone=external --add-masquerade

Meneruskan lalu lintas dari satu port ke port lain di alamat IP

Dalam contoh berikut ini, kami meneruskan lalu lintas dari port 80 ke port 8080 di server yang sama:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

Teruskan lalu lintas ke alamat IP lain

Dalam contoh berikut ini, kami meneruskan lalu lintas dari port 80 ke port 80 di server dengan IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2

Meneruskan lalu lintas ke server lain di port yang berbeda

Dalam contoh berikut ini kami meneruskan lalu lintas dari port 80 ke port 8080 pada server dengan IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

Untuk membuat aturan penerusan tetap ada, gunakan:

sudo firewall-cmd --runtime-to-permanent

Kesimpulan

Anda telah belajar cara mengkonfigurasi dan mengelola layanan firewalld pada sistem CentOS 8 Anda.

Pastikan untuk mengizinkan semua koneksi yang masuk yang diperlukan untuk memfungsikan sistem Anda, sambil membatasi semua koneksi yang tidak perlu.

firewalld firewall centos security