Hướng dẫn cài đặt FireWallD cho Cloud Server chạy trên CentOS 7

FirewallD là một giải pháp quản lý tưởng lửa tương thích với nhiều phiên bản hệ điều hành Linux. Đặc biệt là CentOS 7. Đây là một trong những phần mềm nên cài đặt dành cho Cloud Server – dịch vụ thuê máy chủ ảo chạy trên CentOS 7.

Hướng dẫn cài đặt FireWallD cho Cloud Server chạy trên CentOS 7

Hướng dẫn cài đặt FireWallD cho Cloud Server chạy trên CentOS 7

Để tự mình cài đặt và cấu hình FireWallD cho Cloud Server sử dụng hệ điều hành CentOS 7. Hãy cùng xem hướng dẫn chi tiết trong bài viết dưới đây của ODS nhé!

FirewallD là gì?

FirewallD hay tường lửa động thay thế Iptables. Là giao diện người dùng của Fedora 18 trong RHEL được cài đặt mặc định trên RHEL 7 và CentOS 7.

Với FirewallD, quản trị viên hệ thống Linux Cloud Server có thể cho phép thay đổi cấu hình mà không làm các kết nối hiện tại bị gián đoạn. FirewallD cung cấp giao diện cho các dịch vụ hoặc ứng dụng để trực tiếp thêm quy tắc tường lửa. Nó cũng kết nối với mã hạt nhân của bộ lọc mạng và hỗ trợ giao thức IPv4 và IPv6.

FirewallD động cung cấp thông tin về các cài đặt tường lửa hoạt động hiện tại với D-BUS. Đây là một hệ thống BUS tin nhắn cho phép giao tiếp giữa các quá trình dễ dàng, cũng như các vùng. Giao diện D-BUS cho phép daemon FirewallD giao tiếp với các quy trình và cho phép các ứng dụng, trình nền và quản trị viên bật hoặc tắt tính năng FirewallD. Ví dụ như mở cổng, chuyển tiếp cổng hoặc gói và thực hiện các tác vụ nâng cao hơn. Trong bài viết dưới đây, ODS sẽ hướng dẫn bạn cách cài đặt tường lửa FirewallD trên Cloud Server sử dụng hệ điều hành CentOS 7.

Một số khái niệm cần biết trước khi cài đặt

Trước khi cài đặt tường lửa FirewallD, bạn cần hiểu rõ một số khái niệm cơ bản dưới đây.

Zone

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

Trong quá trình sử dụng, bạn có thể chọn Zone mặc định, thiết lập các quy tắc trong Zone hoặc chỉ định giao diện mạng (Network Interface) để xác định hành vi được phép.

Các Zone được xác định trước theo mức độ tin cậy, từ thấp đến cao như sau:

  • Drop: Mức tin cậy thấp nhất – toàn bộ các kết nối đến sẽ bị từ chối mà không phản hồi, chỉ cho phép duy nhất kết nối đi ra.
  • Block: Gần giống với Drop nhưng các kết nối đến bị từ chối và phản hồi bằng tin nhắn từ icmp-host-prohibited (hoặc icmp6-adm-prohibited).
  • Public: Đại diện cho mạng công cộng, không đáng tin cậy. Các máy tính/Services khác không được tin tưởng trong hệ thống nhưng vẫn cho phép các kết nối đến trên cơ sở chọn từng trường hợp cụ thể.
  • External: Hệ thống mạng bên ngoài trong trường hợp bạn sử dụng tường lửa làm Gateway, được cấu hình giả lập NAT để giữ bảo mật mạng nội bộ mà vẫn có thể truy cập.
  • Internal: Được sử dụng cho phần nội bộ của Gateway. Các máy tính/Services thuộc Zone này thì khá đáng tin cậy.
  • Dmz: sử dụng cho các máy tính/service trong khu vực DMZ(Demilitarized) – cách ly không cho phép truy cập vào phần còn lại của hệ thống mạng, chỉ cho phép một số kết nối đến nhất định.
  • Work: sử dụng trong công việc, tin tưởng hầu hết các máy tính và một vài services được cho phép hoạt động.
  • Home: môi trường gia đình – tin tưởng hầu hết các máy tính khác và thêm một vài services được cho phép hoạt động.
  • Trusted: đáng tin cậy nhất – tin tưởng toàn bộ thiết bị trong hệ thống.

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

  • Runtime (mặc định): Có hiệu quả ngay lập tức, mất hiệu lực khi Reboot lại hệ thống.
  • Permanent: Không thể sử dụng cho hệ thống đang chạy. Bạn cần Reload mới có hiệu lực, tác dụng vĩnh viễn cả khi Reboot hệ thống.

Việc Restart/Reload sẽ hủy bộ các thiết lập Runtime. Đồng thời áp dụng thiết lập Permanent mà không làm phá vỡ các kết nối và Session hiện tại. Điều này giúp kiểm tra hoạt động của các quy tắc trên tường lửa và dễ dàng khởi động lại nếu có vấn đề xảy ra.

Cài đặt tường lửa FirewallD

Thông thường, FirewallD sẽ được nhà cung cấp cài đặt mặc định trên Cloud Server sử dụng hệ điều hành CentOS 7. Trong trường hợp Cloud Server của bạn chưa được cài đặt FirewallD, hãy thực hiện các bước sau đây:

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

# yum install firewalld

– Khởi động FirewallD:

# systemctl start firewalld

– Kiểm tra tình trạng hoạt động

# 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

Lưu ý chúng ta không nên cho FirewallD khởi động cùng hệ thống cũng như thiết lập Permanent tránh bị khóa khỏi hệ thống nếu thiết lập sai. Chỉ thiết lập như vậy khi bạn đã hoàn thành các quy tắc tường lửa cũng như test cẩn thận.

– Khởi động lại

# systemctl restart firewalld

# firewall-cmd –reload

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

# systemctl stop firewalld

# systemctl disable firewalld

Các bước cấu hình FirewallD

Thiết lập các Zone

– Liệt kê tất cả các Zone trong hệ thống

# firewall-cmd –get-zones

block dmz drop external home internal public trusted work

– Kiểm tra Zone mặc định

# firewall-cmd –get-default-zone

public

– Kiểm tra Zone Active (được sử dụng bởi giao diện mạng)

Vì FirewallD chưa được thiết lập bất kỳ quy tắc nào nên zone mặc định cũng đồng thời là zone duy nhất được kích hoạt, điều khiển mọi luồng dữ liệu.

# firewall-cmd –get-active-zones

public

interfaces: eth0

– Thay đổi Zone mặc định, ví dụ thành Home:

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

success

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

– Liệt kê toàn bộ các quy tắc của các Zones:

# firewall-cmd –list-all-zones

– Liệt kê toàn bộ các quy tắc trong zone mặc định 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ả cho thấy public là zone mặc định đang được kích hoạt, liên kết với card mạng eth0 và cho phép DHCP cùng SSH.

– Liệt kê toàn bộ các quy tắc trong một zone cụ thể, ví dụ 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ê 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

Để thiết lập chúng ta chỉ việc thêm các services vào zone đang sử dụng.

– Đầu tiên chúng ta sẽ 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

Lưu ý: Có thể tìm hiểu thêm thông tin về service qua thông tin lưu tại /usr/lib/firewalld/services/.

Hệ thống thông thường cần cho phép các services sau: ssh(22/TCP), http(80/TCP), https(443/TCP), smtp(25/TCP), smtps(465/TCP) và smtp-submission(587/TCP)

– Thiết lập cho phép services trên FirewallD, sử dụng –add-service:

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

success

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

success

Ngay lập tức, zone “public” cho phép kết nối HTTP trên cổng 80. Kiểm tra lại

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

ssh dhcpv6-client http

– Vô hiệu hóa services trên FirewallD, sử dụng –remove-service:

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

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

Thiết lập cho Port

Trong trường hợp bạn thích quản lý theo cách truyền thống qua Port, FirewallD cũng hỗ trợ bạn điều đó.

– 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

Mặc dù, các zone có sẵn là quá đủ với nhu cầu sử dụng, bạn vẫn có thể tạo lập zone của riêng mình để mô tả rõ ràng hơn về các chức năng của chúng. Ví dụ, bạn có thể tạo riêng một zone cho Web Server, Public Web hay một Zone cấu hình riêng cho DNS trong mạng nội bộ privateDNS. Bạn cần thiết lập Permanent khi thêm một zone.

# 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

Đã có Zone thiết lập riêng, bạn có thể cấu hình như các Zone thông thường: thiết lập mặc định, thêm các quy tắc… Ví dụ:

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

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

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

Đến đây, việc cài đặt tường lửa FirewallD trên Cloud Server sử dụng hệ điều hành CentOS 7 đã hoàn tất. ODS tin rằng việc cài đặt này sẽ không quá khó khăn đối với bạn. Nếu bạn gặp phải vấn đề gì trong quá trình thực hiện, hãy liên hệ với bộ phận kỹ thuật ODS. Chúng tôi sẽ được hỗ trợ hướng dẫn chi tiết hơn.

BÌNH CHỌN:

Hãy bình chọn 5 sao nếu bạn tìm thấy nội dung hữu ích.

Xếp hạng: 0 / 5. Phiếu bầu: 0

Cảm ơn bạn đã bình chọn.

    YÊU CẦU TƯ VẤN DỊCH VỤ