Cài ConfigServer Security and Firewall trên CentOS
Hướng dẫn Linux Server · cập nhật 25/08/2026
Cài ConfigServer Security and Firewall bằng cách tải file csf.tgz, giải nén rồi chạy install.sh, sau đó mở đúng cổng cần dùng và tắt chế độ Testing. Mất khoảng mười phút qua SSH, phần lâu nhất là rà lại danh sách cổng.
CSF là tường lửa mềm chạy trên nền iptables, quản lý bằng file cấu hình văn bản. Ngoài việc lọc cổng, nó theo dõi log đăng nhập và tự chặn IP dò mật khẩu, quét cổng hay gửi quá nhiều kết nối cùng lúc.
- Cài mô đun Perl mà script CSF cần.
- Tải và giải nén bộ cài.
- Chạy install.sh.
- Mở đúng cổng rồi tắt chế độ Testing.
- Khởi động CSF và cho tự chạy khi máy khởi động.
Bước tắt chế độ Testing khoá cổng ngay lập tức. Nếu bạn chưa mở cổng SSH đang dùng thì phiên kết nối hiện tại đứt và không vào lại được. Mở sẵn một phiên SSH thứ hai trước khi làm, và giữ nó suốt quá trình cấu hình.
CSF làm được gì mà iptables trần không làm được
CSF không thay iptables mà đứng trên nó, sinh ra các luật iptables từ một file cấu hình dễ đọc. Phần đáng giá nằm ở tiến trình lfd chạy nền, đọc log hệ thống và tự thêm IP vào danh sách chặn khi phát hiện dấu hiệu tấn công, việc mà iptables trần không tự làm được.
| Việc | iptables trần | CSF |
|---|---|---|
| Mở hoặc chặn cổng | Gõ lệnh từng luật | Sửa một dòng trong file cấu hình |
| Giữ luật sau khi khởi động lại | Phải lưu bằng công cụ riêng | Tự nạp lại |
| Chặn IP dò mật khẩu | Không có | Tiến trình lfd tự làm |
| Chặn quét cổng | Cấu hình tay khá dài | Bật bằng một tuỳ chọn |
| Gỡ chặn nhầm IP | Tìm và xoá luật thủ công | Một lệnh csf -dr |
| Xem IP nào đang bị chặn | Đọc toàn bộ bảng luật | Một lệnh csf -g |
CSF chạy trên phần lớn bản Linux dòng Red Hat và Debian, và tích hợp sẵn giao diện trong cPanel, DirectAdmin, Webmin. Có bảng điều khiển thì bạn cấu hình được qua giao diện web thay vì sửa file, nhưng file cấu hình vẫn là nơi lưu trạng thái thật.
Cài ConfigServer Security and Firewall trên CentOS
Năm bước dưới đây chạy bằng quyền root qua SSH. Bộ cài là một script shell, không nằm trong kho gói của hệ điều hành nên phải tải trực tiếp từ trang của ConfigServer. Máy chủ cần ra được Internet để tải file.
1. Cài mô đun Perl
yum install perl-libwww-perl
Script của CSF viết bằng Perl và cần mô đun này để gọi web. Trên Debian hoặc Ubuntu, gói tương ứng tên là libwww-perl, cài bằng apt.
2. Tải bộ cài
cd /tmp
wget https://download.configserver.com/csf.tgz
3. Giải nén và chạy script cài
tar -xzf csf.tgz
cd csf
sh install.sh
Script tự nhận diện hệ điều hành và bảng điều khiển đang có trên máy, rồi cài phần giao diện tương ứng. Cài xong nó in ra kết quả kiểm tra mô đun iptables, dòng nào báo thiếu thì tính năng liên quan sẽ không hoạt động.
4. Kiểm mô đun iptables còn thiếu
perl /usr/local/csf/bin/csftest.pl
Kết quả đúng kết thúc bằng dòng RESULT: csf should function on this server. Trên máy ảo dùng nền OpenVZ, một số mô đun không có sẵn và cần nhà cung cấp bật giúp ở tầng máy chủ vật lý.
Cấu hình cổng và tắt chế độ Testing
Script cài đặt để CSF ở chế độ Testing, nghĩa là mọi luật tự xoá sau năm phút để bạn không tự khoá mình ra ngoài. Máy chưa được bảo vệ thật cho tới khi tắt chế độ này, và trước khi tắt phải chắc chắn cổng SSH đang dùng nằm trong danh sách cho phép.
Mở file cấu hình chính:
nano /etc/csf/csf.conf
Tìm bốn dòng khai danh sách cổng và sửa cho khớp dịch vụ máy đang chạy:
# Cổng TCP cho phép vào
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"
# Cổng TCP cho phép ra
TCP_OUT = "20,21,22,25,53,80,110,113,443"
# Cổng UDP cho phép vào
UDP_IN = "20,21,53"
# Cổng UDP cho phép ra
UDP_OUT = "20,21,53,113,123"
Danh sách trên là mặc định cho một máy chủ web kèm mail. Máy chạy bảng điều khiển cần mở thêm cổng riêng: DirectAdmin dùng 2222, cPanel dùng 2082 tới 2087, Plesk dùng 8443. Đổi cổng SSH khác 22 thì phải thêm cổng đó, nếu không phiên kết nối đứt ngay khi tắt Testing.
Cuối cùng đổi dòng TESTING sang 0 rồi lưu file:
TESTING = "0"
Khởi động CSF và các lệnh dùng hàng ngày
Sau khi lưu file cấu hình, khởi động lại CSF để nạp luật mới và cho nó tự chạy mỗi lần máy khởi động. Từ lúc này tường lửa có hiệu lực thật, kiểm tra ngay bằng cách mở một kết nối SSH mới từ máy khác.
systemctl enable csf lfd
systemctl restart csf lfd
Trên các bản cũ dùng init script như CentOS 6, hai lệnh tương đương là chkconfig --level 235 csf on và service csf restart.
| Lệnh | Tác dụng |
|---|---|
csf -d IP | Chặn một địa chỉ IP |
csf -dr IP | Gỡ chặn địa chỉ IP |
csf -a IP | Cho phép một địa chỉ IP qua tường lửa |
csf -ar IP | Xoá địa chỉ IP khỏi danh sách cho phép |
csf -g IP | Tra xem địa chỉ IP có đang bị chặn không |
csf -r | Nạp lại luật sau khi sửa cấu hình |
csf -x | Tắt tường lửa |
csf -e | Bật lại tường lửa |
csf -t | Xem danh sách IP đang bị chặn tạm |
Gõ csf không kèm tham số để xem toàn bộ danh sách tuỳ chọn. Sau mỗi lần sửa file csf.conf, chạy csf -r để nạp lại, không nạp thì luật cũ vẫn còn hiệu lực.
Các file cấu hình trong thư mục etc csf
Toàn bộ trạng thái của CSF nằm trong thư mục /etc/csf. Biết file nào giữ gì thì gỡ rối nhanh hơn nhiều so với dò qua giao diện, nhất là khi bảng điều khiển không mở được vì chính tường lửa đang chặn.
| File | Nội dung |
|---|---|
csf.conf | File cấu hình chính, khai cổng và mọi tuỳ chọn |
csf.allow | IP luôn được cho qua tường lửa |
csf.deny | IP bị chặn vĩnh viễn |
csf.ignore | IP không bao giờ bị lfd chặn tự động |
csf.pignore | Tiến trình mà lfd bỏ qua khi quét |
csf.uidignore | Tài khoản mà lfd bỏ qua khi quét |
Thêm IP văn phòng của bạn vào csf.ignore là cách rẻ nhất để không bao giờ bị chính tường lửa khoá ra ngoài khi gõ nhầm mật khẩu vài lần. Sửa xong nhớ chạy csf -r.
Xử lý các lỗi thường gặp và cách gỡ cài đặt
Ba tình huống dưới đây gặp nhiều nhất sau khi tắt chế độ Testing. Hai tình huống đầu liên quan tới cổng bị đóng nhầm, tình huống thứ ba là khi bạn muốn bỏ CSF hẳn khỏi máy.
Mất kết nối SSH ngay sau khi tắt Testing. Cổng SSH chưa nằm trong TCP_IN. Nếu còn phiên SSH thứ hai đang mở, chạy csf -x để tắt tường lửa rồi sửa lại danh sách cổng. Mất cả hai phiên thì phải vào qua console của nhà cung cấp.
Website hoặc mail đột nhiên không truy cập được. Cổng của dịch vụ đó chưa được mở, hoặc IP người dùng đã bị lfd chặn tự động. Tra bằng csf -g IP_NGUOI_DUNG, đang bị chặn thì gỡ bằng csf -dr rồi thêm vào csf.ignore.
Cần gỡ CSF khỏi máy. Script gỡ nằm sẵn trong thư mục cấu hình:
sh /etc/csf/uninstall.sh
Lệnh này xoá toàn bộ CSF kèm mọi luật đã đặt và máy trở về không có tường lửa. Chỉ muốn tạm dừng thì dùng csf -x, giữ nguyên cấu hình để bật lại bằng csf -e.
Việc nên làm sau khi tường lửa chạy
Kiểm tra danh sách cổng đang mở từ bên ngoài để chắc chắn không còn cổng thừa. Cổng mở không cần thiết là bề mặt tấn công miễn phí cho người khác, mà tường lửa nào cũng không giúp được nếu chính bạn mở cửa.
Bật cảnh báo qua email trong csf.conf bằng cách điền địa chỉ vào dòng LF_ALERT_TO. Tiến trình lfd gửi thư mỗi lần chặn IP hoặc phát hiện đăng nhập root, đây là cách sớm nhất để biết máy đang bị dò.
Trên máy chủ CentOS 7 hoặc CentOS 8 đã hết vòng đời, tường lửa chỉ giảm rủi ro chứ không thay được bản vá bảo mật. Xem thêm mốc hết hỗ trợ và đường chuyển đổi trong hướng dẫn fix lỗi Not found trying other mirror trên CentOS 7. Máy chạy DirectAdmin thì nhớ mở cổng 2222 trước khi tắt Testing, xem cách cài trong hướng dẫn cài đặt DirectAdmin trên CentOS và Ubuntu.