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ì?
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
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ệ!