Hướng Dẫn Cài Đặt và Cấu Hình Tường Lửa Cho Máy Chủ Đám Mây DataOnline Hiệu Quả Nhất

Cài Đặt và Cấu Hình Tường Lửa Cho Máy Chủ Đám Mây DataOnline

Về vấn đề bảo mật, khi triển khai máy chủ đám mây trên DataOnline, tường lửa (Firewall) sẽ tự động được kích hoạt. Loại phần mềm tường lửa được sử dụng trên máy chủ của bạn sẽ phụ thuộc vào hệ điều hành bạn đã triển khai. Hướng dẫn này sẽ giúp bạn xác định loại tường lửa hiện tại, cách cấu hình để cho phép hoặc chặn lưu lượng truy cập, cùng với các thông tin bổ sung về cách quản lý tường lửa của bạn.

Bạn đang muốn bảo mật máy chủ đám mây? Trước khi bắt đầu, hãy chọn một VPS chất lượng để đảm bảo hiệu suất. Tìm hiểu ngay các gói mua VPS tại DataOnline với cấu hình mạnh mẽ, hỗ trợ 24/7, giúp bạn vận hành hệ thống an toàn và ổn định.

Máy chủ của tôi sử dụng loại tường lửa nào ?

Tùy thuộc vào hệ điều hành, máy chủ đám mây của bạn có thể sử dụng một trong các tường lửa sau:

  • Firewalld: Fedora, CentOS 7 và các bản phân phối khác dựa trên Red Hat hoặc SUSE Linux sử dụng công cụ cấu hình này cho iptables.
  • IPFW: FreeBSD.
  • Packet Filter (pf): OpenBSD.
  • IP Filter (ipf): FreeBSD, NetBSD, OpenBSD và Solaris.
  • Uncomplicated Firewall (UFW): Công cụ cấu hình của Ubuntu cho iptables.
  • nftables: Các máy chủ Debian sử dụng bản nâng cấp của iptables.
  • Windows Firewall: Microsoft Windows.
  • iptables: Nhiều tiện ích tường lửa của OS là giao diện cho iptables, được bàn luận ở cuối bài viết này.

Hướng dẫn khởi động nhanh Firewalld

Firewalld là phần mềm tường lửa mặc định cho Fedora, CentOS 7 và các bản phân phối hiện đại khác dựa trên Red Hat hoặc SUSE Linux. Hướng dẫn nhanh này đưa ra một số lệnh và kỹ thuật hữu ích để hỗ trợ gỡ lỗi Firewalld.

Kiểm tra Firewalld đang hoạt động

$ firewall-cmd --state
running

Kiểm tra các Zone gán cho các Interface đang hoạt động

$ firewall-cmd --get-active-zones
public
    interfaces: ens3

Kiểm tra các cổng và dịch vụ được cho phép

Giả sử zone đang hoạt động của bạn là public, kiểm tra nhanh cho biết lưu lượng nào được phép:

$ firewall-cmd --zone=public --list-ports
7000-8000/tcp

$ firewall-cmd --zone=public --list-services
cockpit dhcpv6-client ssh

Ví dụ: Cho phép SSH

Giả sử zone đang hoạt động là public, bạn có thể dùng một trong hai phương pháp sau để cho phép SSH:

$ firewall-cmd --zone=public --add-service=ssh

hoặc

# firewall-cmd --add-port=22/tcp

Chế độ Panic

Chế Độ Drop Tất Cả Các Gói

Với quyền root, sử dụng tham số --panic-on:

# firewall-cmd --panic-on

Tất cả các gói sẽ bị chặn. Các kết nối đang hoạt động sẽ bị ngắt sau một khoảng thời gian không hoạt động.

Tắt Chế Độ Panic

Với quyền root, sử dụng tham số --panic-off:

# firewall-cmd --panic-off

Kiểm Tra Trạng Thái Chế Độ Panic

firewall-cmd --query-panic && echo "enabled" || echo "Not enabled"

Cấu hình vĩnh viễn với Tạm thời

Các thay đổi tạm thời gây ra một vấn đề phổ biến; máy chủ hoạt động như mong đợi cho đến khi khởi động lại. Hãy đảm bảo rằng bạn lưu cấu hình của mình một cách vĩnh viễn.

Để làm cho một lệnh trở thành cấu hình vĩnh viễn, thêm tùy chọn --permanent vào tất cả các lệnh (trừ các lệnh --direct vốn là tạm thời theo bản chất). Các thiết lập được thực hiện với tùy chọn --permanent sẽ không có hiệu lực cho đến khi tường lửa được tải lại, dịch vụ khởi động lại hoặc hệ thống khởi động lại. Các thiết lập không có tùy chọn --permanent có hiệu lực ngay lập tức nhưng chỉ có giá trị cho đến lần tải lại tường lửa, khởi động lại hệ thống hoặc dịch vụ.

Vô hiệu hóa Firewalld

Với quyền root, hãy mask và vô hiệu hóa dịch vụ:

# systemctl mask --now firewalld.service # systemctl disable --now firewalld.service

Thông tin thêm

Hướng dẫn khởi động nhanh IPFW

IPFW là tường lửa có trạng thái (stateful firewall) và bộ lọc gói của FreeBSD. Hướng dẫn nhanh này đưa ra một số lệnh và kỹ thuật hữu ích để hỗ trợ gỡ lỗi IPFW.

Kích hoạt và khởi động IPFW

Để kích hoạt IPFW khi khởi động, thêm dòng sau vào tập tin /etc/rc.conf:# sysrc firewall_enable="YES"

# sysrc firewall_enable="YES"

Khởi động tường lửa:

# service ipfw start

Liệt kê tất cả các quy tắc tường lửa

# ipfw list

Xóa Tất Cả Các Quy Tắc

# ipfw -q -f flush

Vô Hiệu Hóa và Dừng IPFW

Tham khảo tài liệu của IPFW.

Dừng tường lửa:

# /etc/rc.d/ipfw stop

Để vô hiệu hóa tường lửa, chỉnh sửa tập tin /etc/rc.conf và đặt:

firewall_enable="NO"

Ví Dụ: Cho Phép SSH và Chặn Tất Cả Các Lưu Lượng Khác

Giả sử địa chỉ IP của máy chủ là 192.0.2.123.

Cho phép tất cả lưu lượng outbound từ địa chỉ này:

# ipfw -q add allow all from 192.0.2.123 to any out

Chặn tất cả lưu lượng outbound từ các địa chỉ khác:

# ipfw -q add deny log all from any to any out

Cho phép TCP nếu thiết lập thành công:

# ipfw -q add allow tcp from any to any established

Cho phép các gói IP fragments:

# ipfw -q add allow all from any to any frag

Cho phép inbound SSH:

# ipfw -q add allow tcp from any to 192.0.2.123 22 setup

Tất cả các lưu lượng khác đều bị chặn và ghi log:

# ipfw -q add deny log all from any to any

Quy tắc vĩnh viễn với tạm thời

Có thể thay đổi cấu hình IPFW “on-the-fly” mà không lưu vĩnh viễn. Điều này gây ra vấn đề phổ biến; máy chủ hoạt động như mong đợi cho đến lần khởi động lại tiếp theo. Hãy đảm bảo rằng bạn lưu cấu hình của mình một cách vĩnh viễn.

Để làm cho các quy tắc của bạn trở nên vĩnh viễn, hãy đưa các quy tắc vào một tập tin, chẳng hạn /etc/ipfw.conf, sau đó thêm dòng sau vào tập tin /etc/rc.conf:

firewall_enable="YES"
firewall_type="/etc/ipfw.conf"

Ví dụ về /etc/ipfw.conf cho phép SSH và chặn tất cả các lưu lượng khác:

# ==========================================
# IPFW Example - Allow SSH, deny all other
# 192.0.2.123 is the example IP address
# ==========================================

# Allow anything outbound from this address.
add allow all from 192.0.2.123 to any out

# Deny anything outbound from other addresses.
add deny log all from any to any out

# Allow TCP through if setup succeeded.
add allow tcp from any to any established

# Allow IP fragments
add allow all from any to any frag

# Allow inbound ssh
add allow tcp from any to 192.0.2.123 22 setup

# Everything else is denied and logged.
add deny log all from any to any

Thông Tin Thêm

Xem tài liệu của IPFW để biết thêm chi tiết.

Packet Filter (pf) Quickstart

OpenBSD Packet Filter (pf) là tường lửa có trạng thái (stateful packet filter) được phát triển cho OpenBSD, nhưng đã được chuyển thể sang nhiều hệ điều hành khác. Hướng dẫn nhanh này đưa ra một số lệnh và kỹ thuật hữu ích để hỗ trợ gỡ lỗi pf.

Kích hoạt và khởi động pf

Để kích hoạt pf khi khởi động, thêm dòng sau vào tập tin /etc/rc.conf:

# sysrc pf_enable=yes

Khởi động pf thủ công:

# pfctl -e

Xem bộ quy tắc pf

Hiển thị bộ quy tắc hiện tại:

# pfctl -sr

Hiển thị mọi thứ có thể:

# pfctl -sa

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

Dừng pf:

# pfctl -d

Vô hiệu hóa pf khi khởi động:

# rcctl disable pf

Ví dụ: cho phép ssh và chặn tất cả các lưu lượng khác

Thêm các quy tắc sau vào tập tin /etc/pf.conf:

block all
pass out proto tcp to any port 22 keep state

Thông tin thêm

Xem tài liệu pf để biết thêm chi tiết.

Hướng dẫn nhanh về ip Filter

IP Filter (thường được gọi là ipf) là một tường lửa mã nguồn mở có sẵn trên nhiều hệ điều hành, bao gồm FreeBSD, NetBSD, OpenBSD và Solaris. IPFILTER được tích hợp sẵn trong cài đặt cơ bản của FreeBSD dưới dạng mô-đun kernel loadable. Hướng dẫn nhanh này cung cấp một số lệnh và kỹ thuật hữu ích để hỗ trợ gỡ lỗi IPFilter.

Khởi động ipf

# service ipfilter start

Xem bộ quy tắc lọc gói đang hoạt động

ipfstat -io

Xóa tất cả các quy tắc lọc

ipf -F a

Dừng ipf

# service ipfilter stop

Ví dụ: cho phép ssh và chặn tất cả các lưu lượng khác

Thêm các quy tắc sau vào tập tin /etc/ipf.conf để tạo một tường lửa đơn giản chỉ cho phép SSH (cổng 22) cho IP ví dụ 192.0.2.123:

block in on any all
pass in quick on any proto tcp from any to 192.0.2.123/32 port = 22 keep state

Thông tin thêm

Xem tài liệu ipf để biết thêm chi tiết.

Hướng dẫn nhanh về Tường lửa Uncomplicated (UFW)

UFW là công cụ cấu hình tường lửa mặc định cho Ubuntu. Hướng dẫn nhanh này đưa ra một số lệnh và kỹ thuật hữu ích để hỗ trợ gỡ lỗi UFW.

Kích hoạt UFW

Kích hoạt UFW với bộ quy tắc mặc định:

$ sudo ufw enable

Kiểm tra trạng thái

Kiểm tra trạng thái của tường lửa:

$ sudo ufw status
ufw: command not found

Bạn có thể thấy một trong các kết quả sau:

UFW chưa được cài đặt

$ sudo ufw status
ufw: command not found

UFW đã được cài đặt nhưng chưa được cấu hình

$ sudo ufw status
Status: inactive

UFW đang chạy

Các quy tắc tường lửa hiện hành sẽ được hiển thị:

$ sudo ufw status verbose
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)

Vô hiệu hóa UFW

$ sudo ufw disable

Đặt lại UFW về mặc định

$ sudo ufw reset

Ví Dụ

Cho phép ssh, chặn tất cả các lưu lượng khác

Một ví dụ chặn tất cả lưu lượng inbound ngoại trừ SSH (cổng 22):

$ sudo ufw default deny incoming $ sudo ufw default allow outgoing $ sudo ufw allow ssh $ sudo ufw enable $ sudo ufw reload

Cho phép cổng 80 (http) và 443 (https), chặn tất cả các lưu lượng khác

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing
$ sudo ufw allow ssh
$ sudo ufw enable
$ sudo ufw reload

Khởi động nhanh nftables

nftables cung cấp hỗ trợ tường lửa và NAT. Hướng dẫn nhanh này đưa ra một số lệnh và kỹ thuật hữu ích để hỗ trợ gỡ lỗi nftables.

Kích Hoạt và Khởi Động nftables

Các phiên bản gần đây của Debian đã cài đặt nftables theo mặc định.

Nếu cần cài đặt nftables:

# aptitude install nftables

Để kích hoạt nftables khi khởi động:

# systemctl enable nftables.service

Liệt kê bộ quy tắc hiện hành

# nft list ruleset

Xóa tất cả các quy tắc

Để ngừng nftables lọc lưu lượng, xóa tất cả các quy tắc:

nft flush ruleset

Vô hiệu hóa và dừng nftables

Để vô hiệu hóa nftables khi khởi động:

# systemctl mask nftables.service

Để gỡ cài đặt nftables:

# aptitude purge nftables

Ví dụ đơn giản cho ssh và web

Ví dụ đơn giản này cho phép SSH, HTTP, HTTPS và ICMP, đồng thời chặn tất cả các lưu lượng inbound khác. Chỉnh sửa tập tin /etc/nftables.conf:

sudo nano /etc/nftables.conf

Thay thế nội dung của /etc/nftables.conf bằng các quy tắc sau:

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;

        # accept any localhost traffic
        iif lo accept

        # accept traffic originated from us
        ct state established,related accept

        # drop invalid packets
        ct state invalid counter drop

        # accept ssh, http, and https
        tcp dport { 22, 80, 443 } accept

        # accept icmp
        ip protocol icmp accept

        # count and reject everything else
        counter reject with icmpx type admin-prohibited
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }

}

Thông tin thêm

Xem thêm chi tiết tại wiki Debian về nftables.

Khởi động nhanh Windows Firewall

Windows Firewall with Advanced Security có thể được truy cập qua giao diện GUI, Command Prompt hoặc PowerShell. Hướng dẫn nhanh này đưa ra một số lệnh và kỹ thuật hữu ích để hỗ trợ gỡ lỗi Windows Firewall.

Chạy Windows Firewall từ GUI

Nếu sử dụng giao diện GUI, hãy dùng một trong các cách sau để khởi chạy Windows Firewall:

Từ Giao Diện Windows

  • Nhấp vào Tìm kiếm.
  • Gõ “Windows Firewall”.
  • Chọn “Windows Firewall với Bảo mật Nâng cao”.

MMC

  • Thêm snap-in cho “Windows Firewall với Bảo mật Nâng cao”.
  • Từ dòng lệnh
  • wf.msc.

Tắt giao diện Windows Firewall with Advanced Security

  1. Mở Server Manager.
  2. Chọn Windows Firewall với Bảo mật Nâng cao từ menu Tools.
  3. Trong khung giữa, nhấp vào Thuộc tính Windows Firewall.
  4. Có ba tab profile trong cửa sổ thuộc tính, tương ứng với ba profile của Windows Firewall (domain, private và public). Trong mỗi tab, chọn Off từ danh sách dropdown Firewall state.
  5. Nhấp OK để đóng cửa sổ thuộc tính.

Kích hoạt và vô hiệu hóa Windows Firewall từ dòng lệnh

Các lệnh dưới đây cần được chạy từ Command Prompt hoặc PowerShell với quyền quản trị.

Bật tường lửa sử dụng netsh:

netsh advfirewall set allprofiles state on

Tắt tường lửa sử dụng netsh:

netsh advfirewall set allprofiles state off

Bật tường lửa sử dụng Windows PowerShell:

Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True

Tắt tường lửa sử dụng Windows PowerShell:

Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False

Tài nguyên bổ sung

Đối với chi tiết về sử dụng Group Policy hoặc MMC snap-ins, hãy tham khảo tài liệu của Microsoft.

Khởi động nhanh iptables

iptables là một tiện ích ở không gian người dùng cho phép bạn cấu hình các quy tắc lọc gói IP của tường lửa kernel Linux.

Liệt kê tất cả các quy tắc đang chạy

Để xem các quy tắc tường lửa hiện hành:

# iptables -L -v

Vô hiệu hóa và xóa tất cả các quy tắc

Để tạm thời vô hiệu hóa tường lửa, xóa tất cả các quy tắc:

$ sudo iptables -P INPUT ACCEPT
$ sudo iptables -P OUTPUT ACCEPT
$ sudo iptables -P FORWARD ACCEPT
$ sudo iptables -F

Chặn tất cả lưu lượng

Để chặn mọi thứ, đặt chính sách của tất cả các chain thành DROP:

$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT DROP
$ sudo iptables -P FORWARD DROP

Ví dụ thông thường

Dưới đây là một ví dụ điển hình cho phép SSH, HTTP và HTTPS nhưng chặn mọi lưu lượng khác.

Bước 1

Thêm một quy tắc vào chain INPUT:

  • Giao thức: TCP.
  • Cổng đích: 22, 80 & 443.
  • Với các gói này, nhảy đến ACCEPT.
$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Bước 2

Thêm một quy tắc vào chain INPUT: Chặn tất cả mọi thứ khác.

$ sudo iptables -A INPUT -j DROP

Thông tin thêm

Để có cái nhìn sâu hơn về cách cấu hình và quản lý tường lửa với iptables, bạn có thể tham khảo thêm các hướng dẫn chi tiết cho các hệ điều hành khác nhau, chẳng hạn như Ubuntu và CentOS. Việc hiểu rõ cách sử dụng iptables sẽ giúp bạn tối ưu hóa khả năng bảo mật mạng và kiểm soát truy cập vào hệ thống của mình một cách hiệu quả hơn.

Ngoài ra, việc sử dụng iptables kết hợp với các công cụ quản lý tường lửa khác như UFW (Uncomplicated Firewall) sẽ mang lại sự linh hoạt và dễ dàng trong việc thiết lập các chính sách bảo mật, đặc biệt là đối với những người quản trị không chuyên sâu về các cấu hình phức tạp.

Để tối ưu chi phí khi cài đặt tường lửa, hãy cân nhắc thuê VPS giá rẻ từ DataOnline. Với mức giá phải chăng bạn vẫn sở hữu VPS hiệu năng cao, băng thông không giới hạn, lý tưởng cho mọi nhu cầu bảo mật và vận hành.

Chúng tôi khuyến khích bạn dành thời gian tìm hiểu thêm về các tùy chọn cấu hình của iptables, vì nó không chỉ giúp bảo vệ máy chủ mà còn tạo ra một hệ thống mạng ổn định và an toàn, đáp ứng được các yêu cầu ngày càng khắt khe trong bảo mật mạng.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *