Hướng dẫn cài đặt CSF Firewall trên Ubuntu 24.04 để bảo vệ VPS

CSF config

CSF Firewall (ConfigServer Security & Firewall) là một trong những giải pháp firewall phổ biến dành cho Linux Server và VPS. CSF không chỉ kiểm soát các kết nối vào/ra máy chủ mà còn đi kèm LFD (Login Failure Daemon) để phát hiện và tự động chặn nhiều hành vi bất thường như brute-force SSH, đăng nhập thất bại liên tục, port scan hoặc các hoạt động đáng ngờ.

Trong bài viết này, DataOnline sẽ hướng dẫn bạn cài đặt và cấu hình CSF Firewall trên Ubuntu 24.04 LTS, đồng thời hướng dẫn cách sử dụng CSF với DirectAdmin để bảo vệ VPS Hosting.

 

Mô hình demo

  • OS: Ubuntu 24.04 LTS
  • IPv4: 203.0.113.10
  • SSH: Port 22
  • Web: HTTP 80, HTTPS 443
  • DirectAdmin: Port 2222
  • CSF/LFD: Firewall + chống brute-force

Mục lục nội dung

1. CSF Firewall là gì?

CSF là viết tắt của ConfigServer Security & Firewall, một firewall dành cho hệ điều hành Linux.

CSF sử dụng các rule firewall để kiểm soát traffic và kết hợp với LFD – Login Failure Daemon để theo dõi các log hệ thống. Khi phát hiện một IP có hành vi bất thường, LFD có thể tự động đưa IP đó vào danh sách block.

DataOnline cung cấp dịch vụ cho thuê vps, chúng tôi đã kích hoạt sẵn CSF trong linux. Đặc biệt các ứng dụng DirectAdmin cũng được tích hợp sẵn và sử dụng dễ dàng trên giao diện DirectAdmin.

Một số chức năng thường được sử dụng:

  • Firewall kiểm soát kết nối TCP/UDP.
  • Allow/Block IP.
  • Tự động block IP brute-force.
  • Phát hiện port scan.
  • Theo dõi SSH login.
  • Theo dõi các dịch vụ trên server.
  • Giới hạn số lượng connection.
  • Gửi cảnh báo qua email.
  • Quản lý firewall trực tiếp trên DirectAdmin.
  • Hỗ trợ IPv4 và IPv6.
  • Hỗ trợ whitelist/blacklist.
  • Theo dõi các log bảo mật.

DirectAdmin hiện tích hợp trực tiếp CSF và khuyến nghị sử dụng CSF kết hợp với Brute Force Monitor để tăng cường bảo mật máy chủ.

2. Tại sao VPS nên sử dụng CSF Firewall?

Một VPS public Internet thường xuyên nhận các request từ Internet, bao gồm cả traffic hợp lệ và các request dò quét tự động.

Ví dụ, một VPS mới cài Ubuntu có thể liên tục nhận các request thử:

SSH brute-force
Port scanning
WordPress login brute-force
FTP login brute-force
SMTP abuse
MySQL scanning
Web vulnerability scanning

Nếu server chỉ sử dụng mật khẩu yếu hoặc mở quá nhiều port, nguy cơ bị khai thác sẽ tăng lên.

CSF giúp xây dựng mô hình:

Internet
    |
    v
+-------------------+
|    CSF Firewall   |
+-------------------+
    |
    +---- SSH 22
    +---- HTTP 80
    +---- HTTPS 443
    +---- DirectAdmin 2222
    +---- Mail
    +---- DNS
    |
    v
Server Services

Điểm quan trọng là không nên mở tất cả các port trên server. Chỉ nên mở những port thực sự cần thiết.

DirectAdmin cũng cung cấp danh sách các port cần thiết cho SSH, web, mail, DNS và DirectAdmin.

3. Kiểm tra VPS Ubuntu 24.04

Đăng nhập VPS bằng SSH:

ssh root@203.0.113.10

Kiểm tra phiên bản Ubuntu:

lsb_release -a

Hoặc:

cat /etc/os-release

Kết quả:

PRETTY_NAME="Ubuntu 24.04.2 LTS"
VERSION_ID="24.04"

Kiểm tra kernel:

uname -r

Nên cập nhật hệ thống trước khi cài CSF:

apt update
apt upgrade -y

Sau đó reboot nếu kernel hoặc các thành phần quan trọng được cập nhật:

reboot

4. Kiểm tra các firewall đang chạy

Trước khi cài CSF, nên kiểm tra các firewall hiện tại.

Nếu VPS đang sử dụng UFW:

ufw status

Nếu UFW đang hoạt động, không nên đồng thời xây dựng một hệ thống firewall phức tạp với CSF nếu chưa hiểu rõ rule của cả hai.

Có thể kiểm tra:

systemctl status ufw

Nếu xác định chuyển sang CSF:

ufw disable

Lưu ý: Trước khi disable firewall hoặc thay đổi rule, hãy đảm bảo bạn đang có một phiên SSH dự phòng hoặc console của nhà cung cấp VPS. Cấu hình firewall sai có thể khiến bạn mất kết nối tới server.

5. Cài đặt CSF Firewall trên Ubuntu 24.04

Cài các package cần thiết:

apt update

apt install -y \
wget \
curl \
tar \
perl \
libwww-perl \
liblwp-protocol-https-perl \
libgd-graph-perl \
unzip

Tải CSF:

cd /usr/local/src

wget https://download.configserver.com/csf.tgz

Giải nén:

tar -xzf csf.tgz

Chuyển vào thư mục CSF:

cd csf

Chạy installer:

sh install.sh

Sau khi cài xong, kiểm tra:

csf -v

Ví dụ:

csf: vX.X

Kiểm tra test:

perl /usr/local/csf/bin/csftest.pl

Nếu hệ thống báo các chức năng firewall hoạt động bình thường thì có thể chuyển sang bước cấu hình.

6. Cấu hình CSF Firewall

File cấu hình chính của CSF là:

/etc/csf/csf.conf

DirectAdmin cũng sử dụng file này làm file cấu hình chính của CSF. Ngoài ra còn có các file như csf.allow, csf.deny, csf.ignorecsf.pignore.

Mở file:

nano /etc/csf/csf.conf

7. Tắt chế độ TESTING

Sau khi cài CSF, mặc định hệ thống có thể chạy ở chế độ testing.

Tìm:

TESTING = "1"

Chuyển thành:

TESTING = "0"

Đây là bước quan trọng để CSF thực sự áp dụng firewall rules.

Sau khi thay đổi cấu hình:

csf -ra

Trong đó:

csf -r   = restart CSF
csf -ra  = restart CSF + LFD

DirectAdmin cũng hướng dẫn đặt TESTING = "0" sau khi xác nhận vẫn có thể đăng nhập SSH vào server.

8. Cấu hình các port cần thiết

Một trong những phần quan trọng nhất khi cấu hình CSF là danh sách port.

Mở:

nano /etc/csf/csf.conf

Tìm:

TCP_IN =
TCP_OUT =
UDP_IN =
UDP_OUT =

Với VPS Ubuntu chạy web cơ bản, có thể cấu hình:

TCP_IN = "22,80,443"
TCP_OUT = "22,25,53,80,443,465,587,993,995"

DNS:

UDP_IN = "53"
UDP_OUT = "53"

Nếu server không cung cấp DNS server public thì không nhất thiết phải mở UDP/53.

9. Cấu hình CSF cho DirectAdmin

Nếu VPS chạy DirectAdmin, cần mở thêm port:

2222

Ví dụ:

TCP_IN = "22,80,443,2222"

Port:

2222

là port mặc định để truy cập DirectAdmin.

DirectAdmin hiện liệt kê các port phổ biến gồm:

Port Dịch vụ
20-21 FTP
22 SSH
25 SMTP
53 DNS
80 HTTP
443 HTTPS
110 POP3
143 IMAP
465 SMTPS
587 Submission
993 IMAPS
995 POP3S
2222 DirectAdmin
3306 MySQL
7080 LiteSpeed WebAdmin

Không phải server nào cũng cần mở toàn bộ các port này. Chỉ mở port tương ứng với dịch vụ đang sử dụng.

ConfigServer Security & Firewall - csf

10. Nếu sử dụng FTP Passive Mode

Đây là phần rất dễ bị bỏ sót khi cài firewall cho DirectAdmin.

FTP Passive Mode cần một khoảng port riêng.

Ví dụ:

35000 - 35999

CSF:

TCP_IN = "22,80,443,2222,35000:35999"

Với Pure-FTPd có thể cấu hình PassivePortRange tương ứng.

DirectAdmin lưu ý rằng FTP TLS cần mở rõ range passive FTP vì firewall không thể tự mở data port dựa trên nội dung FTP được mã hóa.

11. Không nên mở port MySQL 3306 toàn Internet

Nếu MySQL chỉ phục vụ website trên cùng server:

Website
   |
   v
MySQL

thì không cần public port:

3306

Do đó không nên thêm:

3306

vào TCP_IN nếu không cần remote MySQL.

Nếu bắt buộc phải cho một máy chủ khác truy cập MySQL, tốt hơn nên giới hạn theo IP.

Ví dụ server database client:

198.51.100.20

Có thể tạo rule phù hợp thay vì mở 3306 cho toàn Internet.

12. Whitelist IP quản trị

Đây là bước rất nên thực hiện trước khi áp dụng firewall.

Ví dụ IP quản trị:

1.2.3.4

Whitelist:

csf -a 1.2.3.4

Kiểm tra:

grep 1.2.3.4 /etc/csf/csf.allow

CSF hỗ trợ:

csf -a IP

để allow IP lâu dài.

Có thể xóa:

csf -ar 1.2.3.4

DirectAdmin cũng cung cấp Quick Allow trực tiếp trong giao diện CSF.

13. Block một IP

Ví dụ phát hiện IP:

203.0.113.55

đang brute-force SSH.

Block:

csf -d 203.0.113.55

Kiểm tra:

csf -g 203.0.113.55

Xóa block:

csf -dr 203.0.113.55

Một số lệnh CSF thường dùng:

csf -a IP
csf -d IP
csf -dr IP
csf -g IP
csf -t
csf -r
csf -ra

DirectAdmin cũng cung cấp bảng tham chiếu các command CSF thường dùng.

14. Cấu hình cảnh báo email

CSF/LFD có khả năng gửi cảnh báo khi phát hiện hoạt động bất thường.

Mở:

nano /etc/csf/csf.conf

Tìm:

LF_ALERT_TO

Cấu hình email quản trị:

LF_ALERT_TO = "admin@example.com"

Sau đó:

csf -ra

DirectAdmin khuyến nghị kiểm tra việc nhận email cảnh báo sau khi cài CSF/LFD.

Đây là phần rất hữu ích vì firewall không chỉ block IP mà còn giúp quản trị viên biết server đang bị tấn công kiểu gì.

15. Kiểm tra trạng thái CSF và LFD

Kiểm tra CSF:

csf -l

Kiểm tra LFD:

csf --lfd status

Hoặc:

systemctl status lfd

Kiểm tra:

systemctl status csf

Kiểm tra log:

tail -f /var/log/lfd.log

File log quan trọng:

/var/log/lfd.log

DirectAdmin cũng sử dụng đây là log chính để theo dõi hoạt động của LFD.

16. Cấu hình CSF trực tiếp trên DirectAdmin

Nếu VPS đã cài DirectAdmin, CSF có thể được tích hợp trực tiếp vào giao diện quản trị.

DirectAdmin hỗ trợ CSF từ phiên bản 1.61.0.

Truy cập:

https://IP-SERVER:2222

Đăng nhập DirectAdmin bằng tài khoản Admin.

Sau đó vào:

Extra Features
        ↓
ConfigServer Security & Firewall

Tại đây có thể thực hiện nhiều thao tác mà không cần SSH.

Ví dụ:

Quick Allow
Quick Deny
Search for IP
Firewall Configuration
Restart CSF + LFD

17. Allow IP trực tiếp trên DirectAdmin

Trong giao diện CSF:

Extra Features
        ↓
ConfigServer Security & Firewall
        ↓
Quick Actions

Nhập IP:

1.2.3.4

vào:

Quick Allow

Sau đó thực hiện Allow.

DirectAdmin có tài liệu hướng dẫn chính thức cho việc whitelist IP thông qua CSF GUI.

18. Block IP trực tiếp trên DirectAdmin

Tại:

Extra Features
        ↓
ConfigServer Security & Firewall

Sử dụng:

Quick Deny

Nhập:

203.0.113.55

Sau đó block IP.

Có thể sử dụng:

Search for IP

để kiểm tra một IP đang nằm trong rule nào.

19. Cấu hình CSF thông qua DirectAdmin

Nếu muốn chỉnh sâu các thông số firewall, có thể mở:

Firewall Configuration

hoặc chỉnh trực tiếp:

nano /etc/csf/csf.conf

Sau khi thay đổi:

csf -ra

Không nên chỉnh quá nhiều thông số cùng lúc. Nên thay đổi từng nhóm cấu hình và kiểm tra SSH, HTTP/HTTPS, DirectAdmin, mail sau mỗi lần thay đổi.

20. Cài CSF trực tiếp thông qua DirectAdmin CustomBuild

Với DirectAdmin hiện đại, có thể sử dụng CustomBuild để cài CSF.

Kiểm tra cấu hình:

da build set csf yes

Sau đó:

da build csf

DirectAdmin hiện cung cấp chính thức phương pháp này cho server đang chạy DirectAdmin.

Sau khi cài đặt, kiểm tra:

csf -v

và:

csf --lfd status

21. Cấu hình mẫu CSF cho VPS Ubuntu 24.04 + DirectAdmin

Một cấu hình cơ bản có thể bắt đầu như sau:

TESTING = "0"

TCP_IN = "22,80,443,2222"
TCP_OUT = "22,25,53,80,443,465,587,993,995"

UDP_IN = "53"
UDP_OUT = "53"

Nếu sử dụng FTP Passive:

TCP_IN = "22,80,443,2222,35000:35999"

Nếu server có mail server, cần mở thêm các port mail tương ứng với dịch vụ thực tế.

Không nên copy nguyên cấu hình này cho mọi server. Port cần mở phụ thuộc vào dịch vụ đang chạy trên VPS.

22. Kiểm tra port đang thực sự sử dụng

Trước khi mở firewall, nên kiểm tra server:

ss -lntup

Ví dụ:

LISTEN 0 4096 0.0.0.0:22
LISTEN 0 4096 0.0.0.0:80
LISTEN 0 4096 0.0.0.0:443
LISTEN 0 4096 0.0.0.0:2222

Sau đó chỉ mở những port cần thiết.

Đây là cách tốt hơn việc mở một danh sách port rất dài theo các bài hướng dẫn trên Internet.

23. Kiểm tra firewall sau khi cấu hình

Sau khi chỉnh sửa:

csf -ra

Kiểm tra:

csf -l

Kiểm tra service:

systemctl status csf
systemctl status lfd

Từ một máy khác có thể kiểm tra:

nmap SERVER_IP

Ví dụ:

nmap -Pn 203.0.113.10

Kết quả nên chỉ hiển thị các port mà bạn chủ động public.

24. Một số lỗi thường gặp khi cài CSF

Lỗi mất SSH sau khi bật CSF

Đây là lỗi phổ biến nhất.

Nguyên nhân có thể do:

SSH port không nằm trong TCP_IN

Ví dụ SSH chạy port:

22222

nhưng CSF chỉ mở:

TCP_IN = "22,80,443"

Cần thêm:

TCP_IN = "22,80,443,22222"

Sau đó:

csf -ra

DirectAdmin không truy cập được

Kiểm tra port:

2222

CSF phải có:

TCP_IN = "22,80,443,2222"

Kiểm tra DirectAdmin:

ss -lntp | grep 2222

Website không truy cập được

Kiểm tra:

80
443

CSF:

TCP_IN = "22,80,443,2222"

Kiểm tra webserver:

ss -lntp | grep -E ':80|:443'

FTP đăng nhập được nhưng không upload/download

Khả năng cao là chưa mở passive port.

Ví dụ:

35000-35999

Cần cấu hình cả FTP server và CSF sử dụng cùng một port range.

25. CSF có thay thế được các biện pháp bảo mật khác không?

Không.

CSF chỉ là một lớp bảo vệ trong hệ thống security.

Một VPS nên kết hợp:

                    Internet
                       |
                       v
              +----------------+
              | Cloud Firewall |
              +----------------+
                       |
                       v
              +----------------+
              | CSF / LFD      |
              +----------------+
                       |
          +------------+-------------+
          |            |             |
         SSH          Web          Mail
          |            |             |
          v            v             v
       SSH Key      HTTPS        SPF/DKIM/DMARC
       MFA          WAF          Anti-spam

Ngoài CSF, nên thực hiện thêm:

  • Sử dụng SSH Key.
  • Hạn chế SSH root login.
  • Sử dụng mật khẩu mạnh.
  • Cập nhật Ubuntu thường xuyên.
  • Cập nhật DirectAdmin.
  • Cập nhật WordPress/plugin nếu có.
  • Bật HTTPS.
  • Backup định kỳ.
  • Giám sát CPU/RAM/Disk/Network.
  • Không public MySQL nếu không cần.
  • Không mở port dịch vụ không sử dụng.
  • Sử dụng Cloud Firewall nếu nhà cung cấp VPS hỗ trợ.

DirectAdmin cũng khuyến nghị nhiều lớp hardening khác như cập nhật phần mềm, ModSecurity, mật khẩu mạnh và bảo vệ SSH.

26. Các lệnh CSF thường dùng

Lệnh Chức năng
csf -v Kiểm tra phiên bản
csf -l Hiển thị firewall rules
csf -a IP Allow IP
csf -d IP Block IP
csf -ar IP Remove allow
csf -dr IP Remove deny
csf -g IP Tìm IP trong firewall
csf -t Xem temporary rules
csf -r Restart CSF
csf -ra Restart CSF + LFD
csf -e Enable CSF
csf -x Disable CSF
csf -s Start firewall
csf -f Flush firewall
csf --lfd status Kiểm tra LFD

Các command này được DirectAdmin liệt kê trong tài liệu CSF/LFD chính thức.

27. Kết luận

CSF Firewall là một giải pháp phù hợp để tăng cường bảo mật cho VPS Linux, đặc biệt với các máy chủ chạy DirectAdmin, Website Hosting, WordPress, Mail Server hoặc nhiều dịch vụ public Internet.

Với Ubuntu 24.04, quy trình cơ bản gồm:

1. Update Ubuntu
       ↓
2. Kiểm tra firewall hiện tại
       ↓
3. Cài CSF
       ↓
4. Kiểm tra csftest
       ↓
5. Whitelist IP quản trị
       ↓
6. Cấu hình TESTING = 0
       ↓
7. Mở đúng port cần thiết
       ↓
8. Restart CSF + LFD
       ↓
9. Kiểm tra log
       ↓
10. Kiểm tra từ Internet

Đối với VPS sử dụng DirectAdmin, CSF có thể được quản lý trực tiếp trong:

DirectAdmin
→ Extra Features
→ ConfigServer Security & Firewall

Nhờ đó quản trị viên có thể nhanh chóng allow/block IP, tìm IP, xem trạng thái firewall và quản lý CSF/LFD mà không cần thực hiện toàn bộ thao tác bằng SSH.

Nếu triển khai VPS cho khách hàng, nên kết hợp CSF + SSH hardening + HTTPS + ModSecurity/WAF + backup + monitoring thay vì chỉ dựa vào một firewall duy nhất.

FAQ – Câu hỏi thường gặp

CSF có hoạt động trên Ubuntu 24.04 không?

Có thể triển khai CSF trên Ubuntu 24.04, tuy nhiên cần kiểm tra phiên bản CSF và các dependency tại thời điểm cài đặt. Sau khi cài nên chạy:

perl /usr/local/csf/bin/csftest.pl

để kiểm tra khả năng hoạt động của firewall.

CSF có phù hợp với DirectAdmin không?

Có. DirectAdmin có tích hợp CSF trực tiếp và hỗ trợ quản lý CSF/LFD trong giao diện. DirectAdmin đã hỗ trợ tích hợp CSF từ phiên bản 1.61.0.

Có nên dùng UFW và CSF cùng lúc không?

Không nên nếu không có lý do cụ thể và không hiểu rõ rule của cả hai. Với server sử dụng CSF, nên để CSF quản lý firewall để tránh xung đột hoặc khó kiểm soát rule.

Có cần mở port 3306 trên VPS DirectAdmin không?

Thông thường không cần nếu website và MySQL chạy trên cùng server. Chỉ mở 3306 khi thực sự cần remote MySQL và nên giới hạn nguồn truy cập.

CSF có chống DDoS được không?

CSF có một số cơ chế giới hạn connection và phát hiện hành vi bất thường, nhưng không nên xem CSF là giải pháp chống DDoS chuyên dụng. Với volumetric DDoS, nên sử dụng thêm lớp bảo vệ ở upstream/network hoặc nhà cung cấp có DDoS protection.


Link gốc nhà phát triển https://configserver.com/configserver-security-and-firewall/