Trên hệ điều hành CentOS 7, việc cài đặt và cấu hình FirewallD không chỉ đơn giản mà còn rất linh hoạt. Bạn có thể tùy chỉnh các quy tắc theo yêu cầu cụ thể của môi trường và ứng dụng của bạn. Trong bài viết này, chúng ta sẽ đi qua các bước cơ bản để cài đặt FirewallD và cấu hình nó 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
Vinh Phạm. Bizflycloud