Máy chủ Linux đã đạt được sự phổ biến rộng rãi trong các doanh nghiệp và cá nhân nhờ tính linh hoạt, hiệu quả về chi phí và hiệu suất mạnh mẽ. Tuy nhiên, việc đảm bảo an ninh cho các máy chủ này là vô cùng quan trọng.

Trong bài viết này, chúng tôi sẽ khám phá cách bảo vệ máy chủ Linux của bạn bằng CSF (ConfigServer Security & Firewall) hoặc phần mềm tương tự, và cung cấp các liên kết và ví dụ để củng cố máy chủ của bạn.

CSF là gì?

CSF là một tường lửa stateful mạnh mẽ được thiết kế đặc biệt cho máy chủ Linux. Nó cung cấp giao diện dễ sử dụng và các tính năng bảo mật toàn diện, khiến nó trở thành lựa chọn phổ biến trong giới quản trị hệ thống.

CSF không chỉ là tường lửa mà còn là hệ thống phát hiện xâm nhập, chủ động giám sát và chặn các hoạt động độc hại.

Bạn có thể tìm hiểu thêm về CSF và các tính năng của nó trên trang web chính thức: ConfigServer Security & Firewall .

Tại sao nên chọn CSF?

Có nhiều lý do để chọn CSF thay vì các giải pháp tường lửa khác cho máy chủ Linux của bạn:

  • Cài đặt và cấu hình đơn giản
  • Cập nhật thường xuyên và hỗ trợ cộng đồng tích cực
  • Tương thích với hầu hết các bản phân phối Linux và bảng điều khiển
  • Các tính năng bảo mật toàn diện, bao gồm phát hiện xâm nhập và theo dõi đăng nhập thất bại
  • Các tùy chọn cấu hình có thể tùy chỉnh

Cách cài đặt và cấu hình CSF

Trước khi cài đặt CSF, điều quan trọng là phải gỡ bỏ hoặc vô hiệu hóa bất kỳ tường lửa nào khác trên máy chủ của bạn. Thực hiện theo các bước sau để cài đặt và cấu hình CSF:

  1. Đăng nhập vào máy chủ với quyền root thông qua SSH.
  2. Tải phiên bản mới nhất của CSF bằng lệnh sau:
1wget https://download.configserver.com/csf.tgz
  1. Giải nén tệp đã tải:
1tar -xzf csf.tgz
  1. Điều hướng đến thư mục đã giải nén và chạy tập lệnh cài đặt:
1cd csf
2sh install.sh
  1. Mở tệp cấu hình tại /etc/csf/csf.conf bằng trình soạn thảo văn bản yêu thích của bạn (ví dụ: nano hoặc vim). Tùy chỉnh các cài đặt theo yêu cầu bảo mật của bạn.
  2. Sau khi cấu hình CSF, kiểm tra tính tương thích của máy chủ bằng cách chạy:
1perl /usr/local/csf/bin/csftest.pl
  1. Nếu kiểm tra thành công, kích hoạt CSF bằng cách thay đổi cài đặt TESTING thành 0 trong tệp cấu hình.
  2. Khởi động lại CSF để áp dụng các thay đổi:
1csf -r

Để biết hướng dẫn chi tiết hơn và các tùy chọn cấu hình, hãy tham khảo tài liệu chính thức CSF .

Cấu hình CSF tối ưu để tăng cường bảo mật

Dưới đây là một số cài đặt được khuyến nghị cho cấu hình CSF tối ưu nhằm cải thiện bảo mật máy chủ Linux của bạn.

Lưu ý rằng các cài đặt này có thể không phù hợp với mọi môi trường máy chủ, vì vậy điều quan trọng là phải tùy chỉnh chúng theo nhu cầu cụ thể của bạn. Luôn kiểm tra các thay đổi trước khi áp dụng lên máy chủ sản xuất.

  1. Hạn chế kết nối vào và ra

Giới hạn các kết nối vào và ra chỉ với các cổng cần thiết trong các phần TCP_IN, TCP_OUT, UDP_INUDP_OUT. Ví dụ:

1TCP_IN = "22,80,443"
2TCP_OUT = "22,80,443,53"
3UDP_IN = "53"
4UDP_OUT = "53"
  1. Kích hoạt phát hiện đăng nhập thất bại

Đảm bảo CSF theo dõi các lần đăng nhập thất bại bằng cách kích hoạt các tùy chọn LF_* trong tệp cấu hình:

1LF_TRIGGER = "5"
2LF_SSHD = "5"
3LF_FTPD = "10"
4LF_SMTPAUTH = "5"
5LF_POP3D = "10"
6LF_IMAPD = "10"

Ví dụ này thiết lập chặn tạm thời sau 5 lần đăng nhập thất bại trong khoảng thời gian quy định cho SSH, FTP, SMTP, POP3 và IMAP.

  1. Kích hoạt theo dõi tiến trình

Giám sát các tiến trình của máy chủ để phát hiện hoạt động đáng ngờ bằng cách kích hoạt theo dõi tiến trình:

1PT_LIMIT = "60"
2PT_USERMEM = "200"
3PT_USERTIME = "1800"
4PT_USERKILL = "1"

Ví dụ này thiết lập khoảng thời gian 60 giây cho theo dõi tiến trình, giới hạn sử dụng bộ nhớ 200 MB, thời gian tiến trình tối đa 1800 giây và khả năng kết thúc các tiến trình vượt quá giới hạn.

  1. Đừng quên khởi động lại CSF sau khi sửa đổi tệp cấu hình:
1csf -r

Sử dụng hồ sơ trong CSF để tăng cường bảo mật

Hồ sơ CSF là các cài đặt cấu hình được định nghĩa trước, phù hợp với các trường hợp sử dụng cụ thể hoặc mức độ bảo mật. Chúng cho phép bạn chuyển đổi nhanh chóng giữa các cấu hình khác nhau mà không cần phải thay đổi thủ công từng cài đặt riêng lẻ.

Điều này đặc biệt hữu ích khi bạn cần áp dụng các biện pháp bảo mật nghiêm ngặt hơn hoặc tạm thời nới lỏng các hạn chế. Trong phần này, chúng tôi sẽ giải thích hồ sơ là gì, cách sử dụng chúng và một số lưu ý khi áp dụng.

Hồ sơ CSF là gì?

Hồ sơ CSF về cơ bản là các tệp cấu hình chứa các cài đặt cụ thể cho các kịch bản khác nhau. Các hồ sơ này có thể được áp dụng bằng một lệnh duy nhất, giúp dễ dàng chuyển đổi giữa các cấu hình bảo mật khác nhau.

CSF đi kèm với nhiều hồ sơ mặc định, mỗi hồ sơ được thiết kế cho một mục đích cụ thể, chẳng hạn như máy chủ web hoặc máy chủ thư.

Cách sử dụng hồ sơ CSF

  1. Đầu tiên, điều hướng đến thư mục hồ sơ CSF:
1cd /usr/local/csf/profiles
  1. Liệt kê các hồ sơ có sẵn:
1ls

Bạn sẽ thấy danh sách các hồ sơ mặc định như webserver.conf, mailserver.confdefault.conf.

  1. Để áp dụng một hồ sơ, sử dụng lệnh sau:
1csf --profile <profile_name>
  1. Ví dụ, để áp dụng hồ sơ webserver.conf:
1csf --profile webserver
  1. Nếu bạn muốn tạo hồ sơ tùy chỉnh, hãy sao chép tệp cấu hình hiện có vào thư mục hồ sơ:
1cp /etc/csf/csf.conf /usr/local/csf/profiles/my_custom_profile.conf

Sau đó chỉnh sửa tệp my_custom_profile.conf bằng trình soạn thảo văn bản yêu thích và điều chỉnh các cài đặt theo nhu cầu của bạn. Khi đã thực hiện các thay đổi, bạn có thể áp dụng hồ sơ tùy chỉnh bằng lệnh đã đề cập trước đó.

Lưu ý khi sử dụng hồ sơ CSF

  1. Sao lưu cấu hình hiện tại trước khi áp dụng hồ sơ mới. Điều này đảm bảo bạn có thể dễ dàng quay lại cài đặt trước đó nếu cần.
  2. Kiểm tra hồ sơ mới trong môi trường phi sản xuất trước khi áp dụng lên máy chủ thực. Điều này giúp xác định các vấn đề hoặc xung đột tiềm ẩn.
  3. Khi tạo hồ sơ tùy chỉnh, đảm bảo tuân theo các phương pháp tốt nhất để bảo vệ máy chủ Linux và xem xét trường hợp sử dụng và môi trường cụ thể của bạn.
  4. Thường xuyên xem xét và cập nhật hồ sơ để theo kịp các khuyến nghị và phương pháp bảo mật mới nhất.
  5. Hãy nhớ rằng việc áp dụng hồ sơ mới sẽ ghi đè lên các cài đặt hiện tại. Xem xét nội dung hồ sơ trước khi áp dụng, đặc biệt nếu sử dụng hồ sơ tùy chỉnh hoặc đã thực hiện các thay đổi đối với hồ sơ mặc định.

Bằng cách hiểu và sử dụng hồ sơ CSF, bạn có thể quản lý và chuyển đổi hiệu quả giữa các cấu hình bảo mật khác nhau trên máy chủ Linux. Điều này không chỉ tiết kiệm thời gian mà còn đảm bảo máy chủ của bạn luôn được bảo vệ trong các tình huống khác nhau.

Thiết lập giao diện người dùng CSF

CSF cung cấp giao diện người dùng (UI) dựa trên web để quản lý và cấu hình tường lửa. Giao diện đồ họa này đặc biệt hữu ích cho những người không thoải mái với các công cụ dòng lệnh hoặc thích quản lý trực quan.

Trong phần này, chúng tôi sẽ hướng dẫn bạn thiết lập UI CSF và thảo luận một số lưu ý khi sử dụng.

Thiết lập UI CSF

UI CSF có sẵn mặc định cho các bảng điều khiển phổ biến như cPanel, DirectAdmin và Webmin. Nếu bạn đang sử dụng một trong các bảng điều khiển này, UI CSF đã được tích hợp sẵn trong bảng điều khiển của bạn.

Đối với các bảng điều khiển khác hoặc máy chủ không có bảng điều khiển, bạn có thể thiết lập UI CSF theo các bước sau:

  1. Đảm bảo các phụ thuộc cần thiết đã được cài đặt trên máy chủ:
  • Perl
  • Module LWP (libwww-perl)
  • Module GD (libgd)
  • Module GD::Graph

Bạn có thể cài đặt các phụ thuộc này bằng trình quản lý gói. Ví dụ, trên Ubuntu:

1sudo apt-get install perl libwww-perl libgd-dev libgd-perl libgd-graph-perl
  1. Mở tệp cấu hình CSF tại /etc/csf/csf.conf bằng trình soạn thảo văn bản yêu thích (ví dụ: nano hoặc vim).
  2. Tìm các cài đặt sau và sửa đổi như sau:
1UI = "1"
2UI_PORT = "<your_desired_port>"
3UI_USER = "<your_username>"
4UI_PASS = "<your_password>"

Thay thế <your_desired_port> bằng số cổng chưa sử dụng (ví dụ: 8080), <your_username> bằng tên người dùng bạn chọn, và <your_password> bằng mật khẩu mạnh và duy nhất.

  1. Lưu và đóng tệp cấu hình.
  2. Khởi động lại CSF để áp dụng các thay đổi:
1csf -r

Truy cập UI CSF bằng cách mở http://IP_máy_chủ:<cổng_mong_muốn> trong trình duyệt và đăng nhập bằng tên người dùng và mật khẩu đã chỉ định trong tệp cấu hình.

Thiết lập HTTPS cho UI CSF

Việc bảo mật UI CSF bằng HTTPS là thiết yếu để đảm bảo an toàn cho thông tin đăng nhập và truyền dữ liệu. Việc sử dụng HTTPS được khuyến nghị mạnh mẽ, đặc biệt khi truy cập UI qua internet.

Trong phần này, tôi sẽ hướng dẫn cách thiết lập HTTPS cho UI CSF sử dụng Let’s Encrypt, ACME hoặc Certbot, và nơi đặt các chứng chỉ đã tạo để CSF có thể đọc được.

HTTPS với Certbot

  1. Đảm bảo Certbot đã được cài đặt trên máy chủ. Bạn có thể tìm hướng dẫn cụ thể cho bản phân phối của mình trên trang web Certbot .
  2. Tạo chứng chỉ cho tên miền của bạn bằng Certbot:
1sudo certbot certonly --standalone -d example.com

Thay thế example.com bằng tên miền của bạn. Đảm bảo tên miền trỏ đến địa chỉ IP của máy chủ.

  1. Sau khi tạo chứng chỉ, bạn sẽ tìm thấy các tệp chứng chỉ trong thư mục /etc/letsencrypt/live/example.com/. Các tệp cần thiết: fullchain.pem (chứng chỉ) và privkey.pem (khóa riêng tư).
  2. Sao chép các tệp chứng chỉ đến vị trí CSF có thể đọc được:
1sudo cp /etc/letsencrypt/live/example.com/fullchain.pem /etc/csf/ui/ssl/cert.pem
2sudo cp /etc/letsencrypt/live/example.com/privkey.pem /etc/csf/ui/ssl/key.pem
  1. Mở tệp cấu hình CSF tại /etc/csf/csf.conf bằng trình soạn thảo văn bản yêu thích (ví dụ: nano hoặc vim).
  2. Sửa đổi các cài đặt sau:
1UI_SSL = "1"
2UI_CERT = "/etc/csf/ui/ssl/cert.pem"
3UI_KEY = "/etc/csf/ui/ssl/key.pem"
  1. Lưu và đóng tệp cấu hình.
  2. Khởi động lại CSF để áp dụng các thay đổi:
1csf -r

Bây giờ bạn có thể truy cập an toàn UI CSF qua HTTPS bằng cách mở https://example.com:<cổng_mong_muốn> trong trình duyệt.

Nhớ gia hạn chứng chỉ Let’s Encrypt mỗi 90 ngày vì nó có thời hạn hiệu lực ngắn. Bạn có thể tự động hóa quy trình này bằng cron job.

Hãy nhớ rằng HTTPS là cần thiết và được khuyến nghị mạnh mẽ để bảo mật UI CSF. Bằng cách làm theo các bước này, bạn có thể đảm bảo thông tin đăng nhập và truyền dữ liệu được bảo vệ khỏi các mối đe dọa tiềm ẩn.

Lưu ý khi sử dụng UI CSF

  1. Chọn mật khẩu mạnh và duy nhất cho UI CSF để ngăn chặn truy cập trái phép. Cập nhật mật khẩu thường xuyên và tránh sử dụng cùng một mật khẩu cho các dịch vụ khác.
  2. Hạn chế quyền truy cập UI CSF bằng cách chỉ cho phép các địa chỉ IP cụ thể kết nối. Bạn có thể thực hiện điều này bằng cách sửa đổi cài đặt UI_ALLOW trong tệp cấu hình CSF:
1UI_ALLOW = "192.168.1.1,192.168.1.2"

Thay thế các địa chỉ IP mẫu bằng những địa chỉ bạn muốn cho phép truy cập UI CSF.

  1. Đảm bảo cổng được chọn cho UI CSF không được sử dụng bởi các dịch vụ khác. Ngoài ra, nên sử dụng cổng không tiêu chuẩn để giảm khả năng bị tấn công tự động.
  2. Thường xuyên cập nhật UI CSF và các phụ thuộc của nó để bảo vệ khỏi các lỗ hổng và vấn đề bảo mật đã biết.
  3. Giám sát nhật ký truy cập để xác định các hoạt động đáng ngờ hoặc các lần đăng nhập trái phép. Nhật ký CSF nằm tại /var/log/lfd.log.

Bằng cách thiết lập và sử dụng UI CSF, bạn có thể quản lý và cấu hình hiệu quả các cài đặt tường lửa thông qua giao diện đồ họa dễ sử dụng.

Đảm bảo tuân theo các phương pháp tốt nhất và xem xét các điểm đã đề cập ở trên để duy trì môi trường an toàn và đáng tin cậy.

Bảo vệ CSF chống tấn công DDoS

CSF có thể giúp bảo vệ máy chủ của bạn khỏi các cuộc tấn công từ chối dịch vụ phân tán (DDoS) bằng cách áp dụng các cấu hình và biện pháp bảo mật khác nhau.

Trong phần này, chúng tôi sẽ trình bày cách CSF có thể bảo vệ chống lại các cuộc tấn công DDoS và cung cấp một số ví dụ cấu hình và khuyến nghị.

Bảo vệ SYN Flood

Tấn công SYN flood là một loại tấn công DDoS trong đó kẻ tấn công gửi một lượng lớn gói SYN đến máy chủ, gây cạn kiệt tài nguyên khi cố gắng thiết lập kết nối.

Để kích hoạt bảo vệ SYN flood trong CSF, sửa đổi các cài đặt sau trong /etc/csf/csf.conf:

1SYNFLOOD = "1"
2SYNFLOOD_RATE = "100/s"
3SYNFLOOD_BURST = "150"

Các cài đặt này kích hoạt bảo vệ SYN flood và cấu hình giới hạn tốc độ và burst cho các kết nối đến.

Bảo vệ giới hạn kết nối

Bằng cách giới hạn số lượng kết nối đồng thời đến máy chủ, bạn có thể giảm thiểu các cuộc tấn công DDoS nhắm vào các dịch vụ cụ thể.

Để kích hoạt bảo vệ giới hạn kết nối, cấu hình cài đặt CONNLIMIT:

1CONNLIMIT = "22;5,80;50,443;50"

Ví dụ này giới hạn kết nối ở mức 5 cho SSH (22), 50 cho HTTP (80) và 50 cho HTTPS (443).

Bảo vệ Port Flood

Bảo vệ port flood giúp bảo vệ máy chủ của bạn khỏi các cuộc tấn công DDoS nhắm vào các cổng cụ thể.

Để kích hoạt bảo vệ port flood, cấu hình cài đặt PORTFLOOD:

1PORTFLOOD = "22;tcp;5;300,80;tcp;30;5,443;tcp;30;5"

Ví dụ này giới hạn tốc độ kết nối mới cho SSH (22) ở mức 5 mỗi 300 giây, và cho HTTP (80) và HTTPS (443) ở mức 30 mỗi 5 giây.

Danh sách chặn

CSF có thể tích hợp với các danh sách chặn IP khác nhau để ngăn chặn các địa chỉ IP độc hại đã biết truy cập máy chủ của bạn.

Để kích hoạt tích hợp danh sách chặn, cấu hình các cài đặt BLOCKLIST_* trong tệp cấu hình CSF:

1BLOCKLIST_DE = "1"
2BLOCKLIST_6DE = "1"
3BLOCKLIST_DE_URL = "https://lists.blocklist.de/lists/all.txt"
4BLOCKLIST_6DE_URL = "https://lists.blocklist.de/lists/ipv6/all.txt"

Ví dụ này kích hoạt tích hợp với danh sách chặn blocklist.de cho cả địa chỉ IPv4 và IPv6.

Chặn theo quốc gia

CSF cho phép bạn chặn truy cập từ các quốc gia cụ thể bằng cách sử dụng cài đặt CC_DENYCC_ALLOW_FILTER. Mặc dù phương pháp này không phù hợp với mọi tình huống, nhưng nó có thể hữu ích khi bạn muốn hạn chế truy cập từ các quốc gia được biết đến với việc phát động các cuộc tấn công DDoS.

1CC_DENY = "CN,IR,RU"
2CC_ALLOW_FILTER = "US,CA,GB"

Ví dụ này chặn truy cập từ Trung Quốc (CN), Iran (IR) và Nga (RU), và chỉ cho phép kết nối đến từ Hoa Kỳ (US), Canada (CA) và Vương quốc Anh (GB).

Nhớ khởi động lại CSF sau khi sửa đổi tệp cấu hình:

1csf -r

Bằng cách áp dụng các cấu hình và khuyến nghị này, bạn có thể cải thiện đáng kể khả năng bảo vệ máy chủ chống lại các cuộc tấn công DDoS.

Hãy nhớ rằng không có biện pháp bảo mật nào là hoàn toàn không thể xâm phạm, vì vậy điều thiết yếu là phải thường xuyên giám sát máy chủ để phát hiện các mối đe dọa tiềm ẩn và điều chỉnh cài đặt CSF cho phù hợp.

Các giải pháp bảo mật thay thế

Mặc dù CSF là lựa chọn tuyệt vời cho bảo mật máy chủ Linux, nhưng cũng đáng xem xét các giải pháp thay thế cung cấp các tính năng tương tự:

  • UFW (Uncomplicated Firewall) : Tường lửa thân thiện với người dùng cho các hệ thống dựa trên Ubuntu.
  • Firewalld : Công cụ quản lý tường lửa cho các bản phân phối Linux sử dụng systemd.
  • IPTables : Công cụ dòng lệnh mạnh mẽ để lọc gói tin và chuyển đổi địa chỉ mạng trên Linux.

Kết luận

Bảo mật máy chủ Linux là điều cần thiết để bảo vệ dữ liệu và duy trì tính toàn vẹn của máy chủ. CSF cung cấp giải pháp mạnh mẽ và thân thiện với người dùng để đạt được mục tiêu này.

Bằng cách làm theo các bước được nêu trong bài viết này, bạn có thể dễ dàng cài đặt và cấu hình CSF trên máy chủ Linux của mình. Hãy nhớ khám phá các giải pháp bảo mật thay thế như UFW, Firewalld và IPTables nếu bạn đang tìm kiếm thêm các tùy chọn.

Tôi hy vọng bạn thấy bài viết này hữu ích và nhiều thông tin trong việc bảo mật máy chủ Linux của bạn với CSF. Nếu bạn thích bài viết này và thấy nó có giá trị, xin hãy chia sẻ với những người khác có thể hưởng lợi từ nó. Tôi cũng khuyến khích bạn để lại bình luận với suy nghĩ hoặc câu hỏi của bạn, và tôi sẽ sẵn lòng giúp đỡ. 😊

Hãy luôn cảnh giác và giữ an toàn cho máy chủ của bạn trong năm 2023 và sau đó!