Android

Cara mengatur firewall dengan firewalld pada centos 7

Konfigurasi Firewall di Centos 7 | Administrasi Keamanan Jaringan

Konfigurasi Firewall di Centos 7 | Administrasi Keamanan Jaringan

Daftar Isi:

Anonim

Firewall yang dikonfigurasi dengan benar adalah salah satu aspek terpenting dari keamanan sistem secara keseluruhan.

FirewallD adalah solusi firewall lengkap yang mengelola aturan iptables sistem dan menyediakan antarmuka D-Bus untuk mengoperasikannya. Dimulai dengan CentOS 7, FirewallD menggantikan iptables sebagai alat manajemen firewall default.

Dalam tutorial ini, kami menunjukkan kepada Anda cara mengatur firewall dengan FirewallD pada sistem CentOS 7 Anda dan menjelaskan kepada Anda konsep dasar FirewallD.

Prasyarat

Sebelum Anda mulai dengan tutorial ini, pastikan Anda masuk ke server Anda dengan akun pengguna dengan hak sudo atau dengan pengguna root. Praktik terbaik adalah menjalankan perintah administratif sebagai pengguna sudo alih-alih root. Jika Anda tidak memiliki pengguna sudo di sistem CentOS Anda, Anda dapat membuatnya dengan mengikuti instruksi ini.

Konsep Dasar Firewalld

FirewallD menggunakan konsep zona dan layanan, alih-alih rantai dan aturan iptables. Berdasarkan zona dan layanan yang akan Anda konfigurasi, Anda dapat mengontrol lalu lintas apa yang diizinkan atau tidak diizinkan ke dan dari sistem.

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

Zona Firewalld

Zona adalah seperangkat aturan yang ditentukan yang menentukan lalu lintas apa yang harus diizinkan berdasarkan tingkat kepercayaan pada 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.

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 persisten saat reboot. Ketika layanan 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, Anda perlu menggunakan opsi --permanent .

Menginstal dan Mengaktifkan FirewallD

  1. Firewalld diinstal secara default pada CentOS 7, tetapi jika tidak diinstal pada sistem Anda, Anda dapat menginstal paket dengan mengetik:

    sudo yum install firewalld

    Layanan Firewalld dinonaktifkan secara default. Anda dapat memeriksa status firewall dengan:

    sudo firewall-cmd --state

    Untuk memulai layanan FirewallD dan mengaktifkannya pada tipe boot:

    sudo systemctl start firewalld sudo systemctl enable firewalld

Bekerja dengan Firewalld Zone

Setelah mengaktifkan layanan FirewallD untuk pertama kalinya, zona public ditetapkan sebagai zona default. 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

Secara default, semua antarmuka jaringan diberikan zona default. Untuk memeriksa zona apa yang digunakan oleh antarmuka jaringan Anda, ketik:

sudo firewall-cmd --get-active-zones

public interfaces: eth0 eth1

Output di atas memberitahu kita bahwa kedua antarmuka eth0 dan eth1 ditugaskan ke zona publik.

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 ditetapkan sebagai default, digunakan oleh antarmuka eth0 dan eth1 . Juga, koneksi yang terkait dengan klien DHCP dan SSH diizinkan.

sudo firewall-cmd --list-all-zones

Perintah mencetak daftar besar dengan pengaturan semua zona yang tersedia.

Mengubah Zona Antarmuka

Anda dapat dengan mudah mengubah Zona Antarmuka dengan menggunakan opsi --zone menggunakan dalam kombinasi dengan opsi --zone --change-interface . Perintah berikut akan menetapkan antarmuka eth1 ke zona kerja:

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 rumah, Anda harus menjalankan perintah berikut:

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

Verifikasi perubahan dengan:

sudo firewall-cmd --get-default-zone

home

Membuka Port atau Layanan

Dengan FirewallD Anda dapat mengizinkan lalu lintas untuk port 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

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

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 layanan. Cukup gunakan --remove-service daripada --add-service :

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

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

Bagaimana jika Anda menjalankan aplikasi seperti Plex Media Server yang tidak tersedia layanan yang sesuai?

Dalam situasi seperti ini, Anda memiliki dua opsi. Anda dapat membuka port yang sesuai atau mendefinisikan layanan FirewallD baru.

Misalnya, Server Plex mendengarkan pada port 32400 dan menggunakan TCP, untuk membuka port di zona publik untuk sesi saat ini menggunakan opsi --add-port= :

sudo firewall-cmd --zone=public --add-port=32400/tcp Protokol dapat berupa tcp atau udp .

Untuk memverifikasi bahwa port telah ditambahkan dengan sukses, gunakan opsi --list-ports :

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

32400/tcp

Agar port 32400 terbuka setelah reboot, tambahkan aturan ke pengaturan permanen dengan menjalankan perintah yang sama menggunakan opsi --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=32400/tcp

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 kita 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..

Meneruskan Port dengan Firewalld

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

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

  • Meneruskan lalu lintas dari satu port ke port lainnya di server yang sama

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 server 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

Membuat Ruleset dengan FirewallD

Dalam contoh berikut, kami akan menunjukkan cara mengkonfigurasi firewall Anda jika Anda menjalankan server web. Kami mengasumsikan server Anda hanya memiliki satu antarmuka eth0 , dan Anda ingin mengizinkan lalu lintas masuk hanya pada port SSH, HTTP, dan

  1. Ubah zona default ke dmz

    Kami akan menggunakan zona dmz (demiliterisasi) karena secara default hanya mengizinkan lalu lintas SSH. Untuk mengubah zona default ke dmz dan menetapkannya ke antarmuka eth0 , jalankan perintah berikut:

    sudo firewall-cmd --set-default-zone=dmz sudo firewall-cmd --zone=dmz --add-interface=eth0

    Buka port HTTP dan

    Untuk membuka port HTTP dan HTTPS tambahkan aturan layanan permanen ke zona dmz:

    sudo firewall-cmd --permanent --zone=dmz --add-service=http sudo firewall-cmd --permanent --zone=dmz --add-service=https

    Buat perubahan efektif segera dengan memuat ulang firewall:

    sudo firewall-cmd --reload

    Verifikasi perubahan

    Untuk memeriksa jenis pengaturan konfigurasi zona dmz:

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

    dmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

    Output di atas memberitahu kita bahwa dmz adalah zona default, diterapkan ke antarmuka eth0 dan ssh (22) http (80) dan port https (443) terbuka.

Kesimpulan

Anda telah belajar cara mengonfigurasi dan mengelola layanan FirewallD pada sistem CentOS Anda.

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

firewalld firewall iptables centos security