ConfigServer Firewall (CSF) là Tường lửa dành cho máy chủ Linux và hệ thống BSD để kiểm soát lưu lượng truy cập vào và ra. Trước khi đi sâu vào chi tiết cụ thể về CSF, chúng ta hãy cùng tìm hiểu tường lửa là gì và hoạt động như thế nào.
Tường lửa hoạt động như một lá chắn bảo vệ hệ thống khỏi các cuộc tấn công từ bên ngoài. Một số trong số chúng là tường lửa có trạng thái, cổng cấp mạch, tường lửa lọc UDP/ICMP hoặc bộ lọc lớp ứng dụng.
Tường lửa đi kèm với một bộ quy tắc để lọc lưu lượng truy cập vào và ra. Và tùy thuộc vào loại Tường lửa bạn đang sử dụng, nó sẽ quyết định xem một IP có được phép truy cập mạng hay không. Danh sách các quy tắc được xác định cho một hệ thống cụ thể và tường lửa sẽ lọc lưu lượng truy cập theo các quy tắc đó.
ConfigServer Firewall (CSF) là một trong những tường lửa nguồn mở được sử dụng rộng rãi nhất trong các máy chủ Linux. CSF đi kèm với một danh sách các tính năng có thể được sử dụng để định cấu hình các quy tắc. Do đó, nó rất mạnh mẽ và dễ sử dụng cùng một lúc.
Sau khi cập nhật hoàn tất, hãy chạy các lệnh sau để cài đặt các phụ thuộc cần thiết.
Trong trường hợp bạn đã cài đặt phiên bản CSF trước đó trong hệ thống, hãy chạy lệnh sau để gỡ cài đặt trước. Vì Debian 11 sử dụng phiên bản Perl mới, nên quá trình cài đặt CSF có thể gây xung đột với quá trình cài đặt CSF hiện tại.
Nếu bạn đang sử dụng một tập lệnh cấu hình tường lửa khác như UFW, bạn nên tắt chúng trước khi tiếp tục.
Kho lưu trữ Debian 11 không chứa các gói CSF. Do đó, bạn cần tải xuống phiên bản tường lửa ConfigServer mới nhất từ trang web chính thức của họ.
Để thực hiện việc đó, hãy đưa ra lệnh sau.
Bây giờ hãy chạy lệnh bên dưới để giải nén tệp đã tải xuống.
Sau khi giải nén tệp, hãy cài đặt CSF bằng lệnh sau.
Sau khi quá trình cài đặt hoàn tất, tường lửa sẽ được cài đặt. Để khởi động tường lửa CSF, hãy chạy lệnh sau.
Chạy lệnh bên dưới để đảm bảo mọi thứ đều ổn.
Bạn sẽ nhận được đầu ra như hiển thị bên dưới.Đầu ra này xác nhận rằng CSF đang hoạt động.
Để bật tường lửa CSF khởi động khi khởi động, hãy chạy lệnh sau.
Bạn có thể kiểm tra trạng thái của CSF bằng lệnh bên dưới.
Đầu ra này xác nhận rằng CSF đang hoạt động. Bây giờ hãy cấu hình tường lửa này.
Đầu ra mẫu:
Bạn nên xem lại tệp cấu hình này để đảm bảo rằng nó được cấu hình theo nhu cầu của bạn. Trong tệp này, bạn có thể thấy tất cả các quy tắc mặc định đang hoạt động theo góc nhìn của hệ thống. Hãy cùng xem xét kỹ hơn một số quy tắc trong số đó.
Số lượng cổng mở càng ít thì hệ thống càng an toàn. Nhưng bạn nên luôn mở một số cổng phổ biến. Bạn có thể thấy tất cả các cổng được mở theo mặc định, trong tệp csf.conf như được hiển thị bên dưới.
Như bạn có thể thấy trong tệp cấu hình, nếu bạn muốn cho phép/chặn bất kỳ cổng nào, bạn nên thêm/xóa số cổng trong danh sách tương ứng.
Ví dụ, nếu bạn muốn chặn cổng 80, thì cổng đó phải được xóa khỏi danh sách, như được hiển thị bên dưới.
Nếu bạn đang sử dụng IPv6, bạn cũng nên cập nhật nó trong tệp cấu hình vì hầu hết các cuộc tấn công hiện nay đều được thực hiện qua giao thức IPv6. Bạn nên cấu hình TCP6_IN, TCP6_OUT tương tự như những gì chúng tôi đã cấu hình cho các cổng IPv4 ở trên.
Đầu ra mẫu:
Bây giờ chúng ta hãy cấu hình các thiết lập CONNLIMIT. CONNLIMIT là một tính năng bảo mật trong CSF cho phép bạn giới hạn số lượng kết nối đồng thời mà một kết nối từ xa có thể có trên một cổng cụ thể. Điều này giúp giảm thiểu rủi ro của các cuộc tấn công DoS/DDoS.
Ví dụ: nếu bạn muốn giới hạn bất kỳ IP nào có không quá 3 kết nối đồng thời, thì bạn nên cập nhật như được hiển thị bên dưới. Thiết lập này sẽ chỉ cho phép 3 kết nối đồng thời trên cổng 22 và 3 kết nối đồng thời trên cổng 443.
Tiếp theo, chúng ta hãy cấu hình các thiết lập PORTFLOOD. Tùy chọn này cho phép chúng ta cấu hình số lượng yêu cầu kết nối tối đa được phép trên một cổng trong một khung thời gian nhất định.
Ví dụ, nếu bạn muốn chặn bất kỳ IP nào nếu có hơn 3 kết nối được thiết lập trên cổng 443 bằng giao thức TCP trong vòng 60 giây, bạn nên cập nhật như hiển thị bên dưới. Khối sẽ tự động bị xóa sau khi khung thời gian 60 giây kết thúc kể từ lần kết nối cuối cùng.
Tính năng cơ bản nhất của bất kỳ tường lửa nào là chặn và cho phép các địa chỉ IP. Bạn có thể thêm địa chỉ IP mà bạn muốn chặn bằng cách thêm thủ công vào tệp csf.deny hoặc bạn có thể thêm toàn bộ phạm vi IP vào tệp csf.deny.
Ví dụ: bạn có thể chặn toàn bộ phạm vi IP 192.168.1.0/24.
Hoặc
Bạn có thể chặn một IP duy nhất là 192.168.2.0 bằng cách thêm nó vào tệp csf.deny như được hiển thị bên dưới.
Mở tệp csf.deny bằng lệnh sau.
Thêm các dòng sau vào cuối tệp. Từng dòng một.
Đầu ra mẫu:
Sau khi hoàn tất, hãy lưu và đóng tệp bằng cách nhấn CTRL+X, Y và Enter.
Tệp csf.allow trái ngược với tệp csf.deny, được sử dụng để loại trừ một IP hoặc phạm vi IP khỏi tất cả các bộ lọc. Lưu ý rằng ngay cả khi bạn đã thêm một IP vào tệp csf.deny, địa chỉ IP bị chặn vẫn được phép truy cập vào máy chủ của bạn bằng cách thêm địa chỉ đó vào tệp csf.allow.
CSF cung cấp nhiều tùy chọn để thiết lập tường lửa của riêng bạn, nằm ngoài phạm vi của hướng dẫn này. Bạn có thể tham khảo tài liệu của ConfigServer về các thiết lập và cách chúng hoạt động.
Sau khi hoàn tất việc cập nhật tất cả các thiết lập cần thiết, hãy lưu và đóng tệp csf.conf bằng cách nhấn CTRL+X, Y và Enter.
CSF cũng cung cấp tính năng bỏ qua địa chỉ IP khỏi bất kỳ bộ lọc nào. Không giống như việc cho phép một địa chỉ IP trong tệp csf.allow, bạn không thể bỏ qua một địa chỉ IP nếu nó được liệt kê trong tệp csf.deny.
Bây giờ bạn đã cấu hình tất cả các thiết lập trong tệp csf.conf, đã đến lúc cập nhật bộ quy tắc để áp dụng các thay đổi.
Để thực hiện việc đó, hãy chạy lệnh sau.
Sau khi thực hiện lệnh trên hoàn tất, bạn sẽ có thể thấy một thông báo như trong ảnh chụp màn hình sau. Nếu không có thông báo lỗi nào được hiển thị, xin chúc mừng! Cấu hình tường lửa của máy chủ của bạn hiện đã được cập nhật và sẵn sàng sử dụng.
Nếu gặp bất kỳ sự cố nào, bạn luôn có thể tham khảo tài liệu về Tường lửa ConfigServer để biết thêm thông tin.
Tường lửa hoạt động như một lá chắn bảo vệ hệ thống khỏi các cuộc tấn công từ bên ngoài. Một số trong số chúng là tường lửa có trạng thái, cổng cấp mạch, tường lửa lọc UDP/ICMP hoặc bộ lọc lớp ứng dụng.
Tường lửa đi kèm với một bộ quy tắc để lọc lưu lượng truy cập vào và ra. Và tùy thuộc vào loại Tường lửa bạn đang sử dụng, nó sẽ quyết định xem một IP có được phép truy cập mạng hay không. Danh sách các quy tắc được xác định cho một hệ thống cụ thể và tường lửa sẽ lọc lưu lượng truy cập theo các quy tắc đó.
ConfigServer Firewall (CSF) là một trong những tường lửa nguồn mở được sử dụng rộng rãi nhất trong các máy chủ Linux. CSF đi kèm với một danh sách các tính năng có thể được sử dụng để định cấu hình các quy tắc. Do đó, nó rất mạnh mẽ và dễ sử dụng cùng một lúc.
Điều kiện tiên quyết
Để cài đặt và cấu hình CSF trên Debian 11, bạn phải có:- Một máy chủ chạy Debian 11 và hệ thống của bạn phải được kết nối với internet.
- Quyền truy cập gốc vào máy chủ.
Cập nhật hệ thống của bạn
Trước khi cài đặt Tường lửa ConfigServer, bạn phải cập nhật hệ thống của mình. Chạy lệnh bên dưới để cập nhật hệ thống của bạn.
Mã:
sudo apt update
Mã:
sudo apt install libio-socket-inet6-perl libsocket6-perl -y
Mã:
sudo apt install sendmail dnsutils unzip libio-socket-ssl-perl-y
Mã:
sudo apt install libcrypt-ssleay-perl git perl iptables libnet-libidn-perl -y
Mã:
cd /etc/csf && sh uninstall.sh
Mã:
sudo ufw disable
Cài đặt tường lửa CSF trên Debian 11
Bây giờ bạn đã cài đặt tất cả các điều kiện tiên quyết cần thiết, hãy tải xuống và cài đặt tường lửa CSF.Kho lưu trữ Debian 11 không chứa các gói CSF. Do đó, bạn cần tải xuống phiên bản tường lửa ConfigServer mới nhất từ trang web chính thức của họ.
Để thực hiện việc đó, hãy đưa ra lệnh sau.
Mã:
wget http://download.configserver.com/csf.tgz
Mã:
sudo tar -xvzf csf.tgz
Mã:
cd csf && sh install.sh
Mã:
sudo systemctl start csf
Mã:
perl /usr/local/csf/bin/csftest.pl
Để bật tường lửa CSF khởi động khi khởi động, hãy chạy lệnh sau.
Mã:
sudo systemctl enable csf
Mã:
sudo systemctl status csf
Đầu ra mẫu:
Cấu hình tường lửa CSF trên Debian 11
Sau khi bạn đã cài đặt tường lửa CSF, các quy tắc mặc định sẽ hoạt động, đi kèm với tệp cấu hình /etc/csf/csf.confBạn nên xem lại tệp cấu hình này để đảm bảo rằng nó được cấu hình theo nhu cầu của bạn. Trong tệp này, bạn có thể thấy tất cả các quy tắc mặc định đang hoạt động theo góc nhìn của hệ thống. Hãy cùng xem xét kỹ hơn một số quy tắc trong số đó.
Mã:
sudo nano /etc/csf/csf.conf
Như bạn có thể thấy trong tệp cấu hình, nếu bạn muốn cho phép/chặn bất kỳ cổng nào, bạn nên thêm/xóa số cổng trong danh sách tương ứng.
Ví dụ, nếu bạn muốn chặn cổng 80, thì cổng đó phải được xóa khỏi danh sách, như được hiển thị bên dưới.
Nếu bạn đang sử dụng IPv6, bạn cũng nên cập nhật nó trong tệp cấu hình vì hầu hết các cuộc tấn công hiện nay đều được thực hiện qua giao thức IPv6. Bạn nên cấu hình TCP6_IN, TCP6_OUT tương tự như những gì chúng tôi đã cấu hình cho các cổng IPv4 ở trên.
Đầu ra mẫu:
Bây giờ chúng ta hãy cấu hình các thiết lập CONNLIMIT. CONNLIMIT là một tính năng bảo mật trong CSF cho phép bạn giới hạn số lượng kết nối đồng thời mà một kết nối từ xa có thể có trên một cổng cụ thể. Điều này giúp giảm thiểu rủi ro của các cuộc tấn công DoS/DDoS.
Ví dụ: nếu bạn muốn giới hạn bất kỳ IP nào có không quá 3 kết nối đồng thời, thì bạn nên cập nhật như được hiển thị bên dưới. Thiết lập này sẽ chỉ cho phép 3 kết nối đồng thời trên cổng 22 và 3 kết nối đồng thời trên cổng 443.
Tiếp theo, chúng ta hãy cấu hình các thiết lập PORTFLOOD. Tùy chọn này cho phép chúng ta cấu hình số lượng yêu cầu kết nối tối đa được phép trên một cổng trong một khung thời gian nhất định.
Ví dụ, nếu bạn muốn chặn bất kỳ IP nào nếu có hơn 3 kết nối được thiết lập trên cổng 443 bằng giao thức TCP trong vòng 60 giây, bạn nên cập nhật như hiển thị bên dưới. Khối sẽ tự động bị xóa sau khi khung thời gian 60 giây kết thúc kể từ lần kết nối cuối cùng.
Tính năng cơ bản nhất của bất kỳ tường lửa nào là chặn và cho phép các địa chỉ IP. Bạn có thể thêm địa chỉ IP mà bạn muốn chặn bằng cách thêm thủ công vào tệp csf.deny hoặc bạn có thể thêm toàn bộ phạm vi IP vào tệp csf.deny.
Ví dụ: bạn có thể chặn toàn bộ phạm vi IP 192.168.1.0/24.
Hoặc
Bạn có thể chặn một IP duy nhất là 192.168.2.0 bằng cách thêm nó vào tệp csf.deny như được hiển thị bên dưới.
Mở tệp csf.deny bằng lệnh sau.
Mã:
sudo nano /etc/csf/csf.deny
Mã:
192.168.2.0
192.168.1.0/24
Sau khi hoàn tất, hãy lưu và đóng tệp bằng cách nhấn CTRL+X, Y và Enter.
Tệp csf.allow trái ngược với tệp csf.deny, được sử dụng để loại trừ một IP hoặc phạm vi IP khỏi tất cả các bộ lọc. Lưu ý rằng ngay cả khi bạn đã thêm một IP vào tệp csf.deny, địa chỉ IP bị chặn vẫn được phép truy cập vào máy chủ của bạn bằng cách thêm địa chỉ đó vào tệp csf.allow.
Mã:
sudo nano /etc/csf/csf.allow
Sau khi hoàn tất việc cập nhật tất cả các thiết lập cần thiết, hãy lưu và đóng tệp csf.conf bằng cách nhấn CTRL+X, Y và Enter.
CSF cũng cung cấp tính năng bỏ qua địa chỉ IP khỏi bất kỳ bộ lọc nào. Không giống như việc cho phép một địa chỉ IP trong tệp csf.allow, bạn không thể bỏ qua một địa chỉ IP nếu nó được liệt kê trong tệp csf.deny.
Mã:
sudo nano /etc/csf/csf.ignore
Để thực hiện việc đó, hãy chạy lệnh sau.
Mã:
sudo csf -r
Kết luận
Trong hướng dẫn này, bạn đã tìm hiểu cách cài đặt ConfigServer Security & Firewall (CSF) trên máy chủ Debian 11. Bạn cũng đã học cách tạo các quy tắc tường lửa, thêm IP vào cả danh sách được phép và bị chặn bằng cách sử dụng các tệp cấu hình CSF.Nếu gặp bất kỳ sự cố nào, bạn luôn có thể tham khảo tài liệu về Tường lửa ConfigServer để biết thêm thông tin.