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, HTTPS443- DirectAdmin: Port
2222- CSF/LFD: Firewall + chống brute-force
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.ignore và csf.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.
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/
中文 (中国)
English

