Làm thế nào để cài đặt FirewallD cho Cloud Server trên CentOS 7?

992
11-08-2022
Làm thế nào để cài đặt FirewallD cho Cloud Server trên CentOS 7?

Giải pháp quản lý tường lửa FirewallD là một trong những phần mềm nên được cài đặt cho Cloud Server trên hệ điều hành Linux - CentOS 7. Tuy nhiên, việc thiết lập FirewallD không hề dễ dàng. Hãy cùng Bizfly Cloud tìm hiểu cách cài đặt FirewallD cho Cloud Server trên CentOS 7 nhanh chóng nhất!

Một số điều cần biết trước khi cài đặt FirewallD cho Cloud Server trên CentOS

FirewallD là gì?

Làm thế nào để cài đặt FirewallD cho Cloud Server trên CentOS 7? - Ảnh 1.

FirewallD là giải pháp tường lửa động thay thế cho Iptables. Nó được cài đặt mặc định trên RHEL 7 và CentOS 7. Điểm khác biệt giữa FirewallD và Iptables là FirewallD sử dụng zones và services thay vì dùng chain và rules. Các khái niệm này sẽ được trình bày rõ hơn ở bên dưới.

Bên cạnh đó, FirewallD cho phép thay đổi cấu hình mà không làm gián đoạn các kết nối hiện tại. FirewallD còn cung cấp giao diện cho các ứng dụng để trực tiếp thêm quy tắc tường lửa. 

Để cài đặt FirewallD cho Cloud Server trên CentOS, bạn nên tìm hiểu thêm các khái niệm dưới đây.

Zone là gì?

Zone là một nhóm quy tắc dùng để xác định những luồng dữ liệu được cho phép, dựa theo mức độ tin tưởng của điểm xuất phát luồng dữ liệu trong hệ thống mạng. 

Mức độ tin cậy của các nhóm quy tắc Zone, được đánh giá từ thấp đến cao lần lượt là drop, block, public, external, internal, dmz, work, home và trusted.

Runtime và Permanent

Trong FirewallD, các quy tắc được cấu hình thời gian có hiệu lực là Runtime hoặc Permanent. Trong đó:

Runtime: là có hiệu lực ngay lập tức và bị mất hiệu lực khi reboot hệ thống.

Permanent: là không thể sử dụng khi hệ thống đang hoạt động, cần phải tải lại (reload) mới có hiệu lực. Tuy nhiên, khác với Runtime, Permanent vẫn có tác dụng ngay cả khi hệ thống bị reboot.

Cách cài đặt FirewallD cho Cloud Server trên CentOS 7

Làm thế nào để cài đặt FirewallD cho Cloud Server trên CentOS 7? - Ảnh 2.

Thông thường, giải pháp tường lửa FirewallD sẽ được cài đặt sẵn trên Cloud Server với hệ điều hành CentOS 7. Tuy nhiên, nếu Cloud Server của bạn chưa có FirewallD, bạn có thể tham khảo phần dưới đây:

Chạy lệnh cài đặt:

# yum install firewalld

Khởi động FirewallD:

# systemctl start firewalld

Kiểm tra tình trạng hoạt động của FirewallD

# systemctl status firewalld

- firewalld.service – firewalld – dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)

Active: active (running) since Wed 2017-12-13 16:43:20 +07; 30s ago

Docs: man:firewalld(1)

 Main PID: 12696 (firewalld)

CGroup: /system.slice/firewalld.service

└─12696 /usr/bin/python -Es /usr/sbin/firewalld –nofork –nopid

# systemctl is-active firewalld

active

# firewall-cmd –state

running

Thiết lập FirewallD khởi động cùng hệ thống

# systemctl enable firewalld

Kiểm tra lại :

# systemctl is-enabled firewalld

enabled

Bạn cần lưu ý rằng ta không nên cho FirewallD khởi động cùng hệ thống và thiết lập Permanent. Vì bạn có thể sẽ bị khóa khỏi hệ thống nếu có bất kỳ thiết lập nào đó không chính xác.. 

Khởi động lại FirewallD

# systemctl restart firewalld

# firewall-cmd –reload

Dừng và vô hiệu hóa FirewallD

# systemctl stop firewalld

# systemctl disable firewalld

Cách cấu hình FirewallD cho Cloud Server trên CentOS

Thiết lập các Zone

Liệt kê tất cả các Zone

# firewall-cmd –get-zones

block dmz drop external home internal public trusted work

Kiểm tra Zone mặc định (default)

# firewall-cmd –get-default-zone

public

Kiểm tra Zone Active 

# firewall-cmd –get-active-zones

public

interfaces: eth0

Thay đổi Zone default, ví dụ thành Home:

# firewall-cmd –set-default-zone=home

success

Thiết lập các quy tắc

Liệt kê tất cả quy tắc của các Zone:

# firewall-cmd –list-all-zones

Liệt kê tất cả quy tắc trong Zone default và Zone Active

# firewall-cmd –list-all

public (active)

 target: default

 icmp-block-inversion: no

 interfaces: eth0

 sources:

 services: ssh dhcpv6-client

 ports:

 protocols:

 masquerade: no

 forward-ports:

 source-ports:

 icmp-blocks:

 rich rules:

Kết quả trên chứng tỏ public là zone mặc định đang được kích hoạt. Nó liên kết với  card mạng eth0 và cho phép DHCP cùng SSH.

Liệt kê tất cả quy tắc trong một Zone cụ thể, chẳng hạn như home

 # firewall-cmd –zone=home –list-all

home

 target: default

 icmp-block-inversion: no

 interfaces:

 sources:

 services: ssh mdns samba-client dhcpv6-client

 ports:

 protocols:

 masquerade: no

 forward-ports:

 source-ports:

 icmp-blocks:

 rich rules:

Liệt kê tất cả các Services/Port được cho phép trong Zone

# firewall-cmd –zone=public –list-services

# firewall-cmd –zone=public –list-ports

Thiết lập cho Service

Bạn tiến hành thêm các Services vào Zone đang sử dụng.

Trước hết cần xác định các Services trên hệ thống:

# firewall-cmd –get-services

RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server

Thiết lập cho phép services trên FirewallD

# firewall-cmd –zone=public –add-service=http

success

# firewall-cmd –zone=public –add-service=http –permanent

success

Kiểm tra lại

# firewall-cmd –zone=public –list-services

ssh dhcpv6-client http

Vô hiệu hóa Services trên FirewallD:

# firewall-cmd –zone=public –remove-service=http

# firewall-cmd –zone=public –remove-service=http –permanent

Thiết lập Port

Mở Port với tham số –add-port:

# firewall-cmd –zone=public –add-port=9999/tcp

# firewall-cmd –zone=public –add-port=9999/tcp –permanent

Mở 1 dải Port

# firewall-cmd –zone=public –add-port=4990-5000/tcp

# firewall-cmd –zone=public –add-port=4990-5000/tcp –permanent

Kiểm tra lại

# firewall-cmd –zone=public –list-ports

9999/tcp 4990-5000/tcp

Đóng Port với tham số –remove-port:

# firewall-cmd –zone=public –remove-port=9999/tcp

# firewall-cmd –zone=public –remove-port=9999/tcp –permanent

Tạo Zone riêng

Dù đã có sẵn Zone nhưng bạn vẫn có thể tạo Zone riêng cho mình để mô tả rõ hơn chức năng của chúng. Lưu ý, bạn cần phải thiết lập Permanent khi thêm một Zone riêng.

# firewall-cmd –permanent –new-zone=publicweb

success

# firewall-cmd –permanent –new-zone=privateDNS

success

# firewall-cmd –reload

success

Kiểm tra lại

# firewall-cmd –get-zones

block dmz drop external home internal privateDNS public publicweb trusted work

Sau khi đã tạo Zone riêng, bạn có thể cấu hình nó như các Zone thông thường cũng như  thêm các quy tắc,... Chẳng hạn như:

# firewall-cmd –zone=publicweb –add-service=ssh –permanent

# firewall-cmd –zone=publicweb –add-service=http –permanent

# firewall-cmd –zone=publicweb –add-service=https –permanent

Trên đây là một số điều cần lưu ý khi cài đặt FirewallD cho Cloud Server trên CentOS 7. Hãy theo dõi Bizfly Cloud để được cập nhật những bài viết mới nhất về công nghệ!

SHARE