Hướng dẫn chi tiết: Tối ưu bảo mật máy chủ Linux và CentOS

Tội phạm mạng đang gia tăng và dự kiến sẽ duy trì tốc độ tăng trưởng nhanh chóng trong những năm tới. Một số thậm chí còn cho rằng nó sẽ sớm trở thành mối đe dọa số một đối với nền kinh tế toàn cầu. Đó là lý do tại sao các doanh nghiệp nên coi trọng vấn đề an ninh mạng và cố gắng hết sức để cập nhật các tiêu chuẩn bảo mật mới nhất.

Trong bài viết này, chúng tôi mang đến cho bạn hướng dẫn từng bước về cách bảo mật CentOS 8.

Tại sao bảo mật CentOS lại quan trọng?

Các bản phân phối Linux, chẳng hạn như CentOS, là một số hệ điều hành an toàn nhất hiện nay. Nhưng điều đó không có nghĩa là bạn không nên thực hiện các biện pháp thích hợp để bảo vệ chúng hơn nữa.

Mặc dù người dùng cá nhân có thể thoát khỏi các cài đặt CentOS mặc định, nhưng các doanh nghiệp có nhiều khả năng bị tội phạm mạng nhắm mục tiêu hơn. Vì vậy, nếu bạn là chủ doanh nghiệp, hãy đặt bảo mật CentOS 8 trở thành một trong những ưu tiên hàng đầu.

Bảo mật máy chủ Linux sẽ bảo vệ doanh nghiệp khỏi thời gian ngừng hoạt động ngoài dự kiến và mất dữ liệu. Nhưng quan trọng hơn, nó sẽ bảo vệ nó khỏi những hậu quả tồi tệ nhất của các cuộc tấn công mạng , bao gồm cả các vụ kiện và thiệt hại về danh tiếng.

Làm thế nào để bảo mật CentOS 8?

CentOS 8 được giới thiệu lần đầu tiên vào năm 2019 như một bản nâng cấp lớn cho hệ điều hành CentOS. Bản nâng cấp này mang đến một loạt các thay đổi cho CentOS, chẳng hạn như bổ sung trình quản lý gói DNF và tường lửa nftables.

Tuy nhiên, việc bảo mật CentOS 8 không khác nhiều so với việc bảo mật các phiên bản trước của nó. Chỉ cần làm theo hướng dẫn từng bước của chúng tôi bên dưới và bạn sẽ bảo mật được CentOS 8 ngay lập tức.

Truy cập SSH an toàn

Bước đầu tiên trong bất kỳ hướng dẫn tăng cường máy chủ CentOS nào là bảo mật quyền truy cập SSH.

Nếu tin tặc có thể đăng nhập vào máy chủ qua SSH, họ sẽ có quyền truy cập không giới hạn vào máy chủ. Đó là lý do tại sao tăng cường bảo mật truy cập SSH là biện pháp ưu tiên thực hiện.

Đây là cách bạn có thể cải thiện bảo mật SSH của mình theo ba bước.

  1. Vô hiệu hóa đăng nhập root.

Trên CentOS, đăng nhập tài khoản root bị tắt theo mặc định. Trong trường hợp bạn đã bật nó, bạn nên tắt nó bằng cách đặt giá trị PermitRootLogin thành không trong tệp etc/ssh/sshd_config.

Vô hiệu hóa đăng nhập root

Bây giờ hãy khởi động lại sshd để áp dụng các thay đổi.

sudo systemctl restart sshd

2. Thay đổi cổng SSH mặc định

Đặt cổng SSH tùy chỉnh sẽ lọc ra mọi cuộc tấn công SSH không nhắm mục tiêu. Để làm điều này, bạn sẽ bỏ ghi chú và thay thế cổng 22 trong etc/ssh/sshd_config.

Thay đổi cổng SSH mặc định

Hãy nhớ khởi động lại sshd để áp dụng các thay đổi.

sudo systemctl restart sshd

3. Thay thế xác thực mật khẩu bằng các khóa SSH.

Nếu có đủ thời gian, bất kỳ mật khẩu nào cũng có thể bị bẻ khóa bằng một cuộc tấn công vũ phu. Để ngăn chặn điều này, thay vào đó, bạn nên chuyển sang sử dụng các khóa SSH.

Đầu tiên, tạo một cặp khóa SSH mới.

ssh-keygen

Thay thế xác thực mật khẩu bằng các khóa SSH

Sau đó kiểm tra khóa SSH riêng tư và ghi lại hoặc sao chép tệp của nó sang thiết bị khác.

kiểm tra khóa SSH riêng tư

Bây giờ hãy tắt xác thực mật khẩu bằng cách đặt giá trị PasswordAuthentication thành không trong tệp etc/ssh/sshd_config.

tắt xác thực mật khẩu bằng cách đặt giá trị PasswordAuthentication

Cuối cùng, khởi động lại sshd để áp dụng các thay đổi.

sudo systemctl restart sshd

Trong tương lai, khi bạn cần đăng nhập vào máy chủ, hãy sử dụng cờ -i với lệnh ssh để chỉ định tệp khóa. Như thường lệ, hãy nhớ thay thế $username@hostname bằng tên người dùng Linux và tên máy chủ/IP máy chủ.

ssh -i /path/to/key $username@hostname

Kích hoạt SELinux

SELinux là một mô-đun bảo mật cho phép bạn đặt các hạn chế tùy chỉnh cho mọi ứng dụng trên hệ thống của mình. Bạn có thể sử dụng nó để giới hạn mọi thứ từ quyền truy cập mạng đến quyền đọc và ghi. Nó được cài đặt sẵn và kích hoạt trên CentOS.

1. Kiểm tra xem SELinux đã được bật chưa.

sudo sestatus

Kiểm tra xem SELinux đã được bật chưa

2. Kích hoạt SELinux.

Để bật SELinux, bạn cần chỉnh sửa tệp cấu hình của nó etc/selinux/config và thay đổi giá trị SELINUX từ bị vô hiệu hóa thành thực thi hoặc cho phép.

Kích hoạt SELinux

Hãy nhớ khởi động lại máy chủ để áp dụng các thay đổi.

sudo reboot

3. Đặt chế độ hoạt động phù hợp.

SELinux có thể chạy ở hai chế độ khác nhau: thực thi hoặc cho phép. Thực thi là chế độ mặc định áp dụng chính sách bảo mật cho toàn bộ máy chủ. Mặt khác, chế độ cho phép không thực sự thực thi các quy tắc. Thay vào đó, nó chỉ ghi lại bất kỳ khả năng từ chối nào mà chế độ thực thi sẽ đưa ra, làm cho nó tốt hơn cho mục đích thử nghiệm.

Để kiểm tra chế độ hoạt động hiện đang hoạt động và chuyển đổi giữa chúng, bạn có thể sử dụng các lệnh sau.

Đặt chế độ hoạt động phù hợp

Định cấu hình Tường lửa

Bạn nên bảo vệ các cổng không sử dụng của máy chủ bằng giải pháp tường lửa như tường lửa. Tường lửa này được cài đặt sẵn trên CentOS và được bật theo mặc định. Nó cần thiết cho việc bảo mật máy chủ Linux.

1. Liệt kê các cổng và dịch vụ đang mở

Trước tiên, hãy xem dịch vụ và cổng nào được phép chấp nhận kết nối.

sudo firewall-cmd --list-all

Liệt kê các cổng và dịch vụ đang mở

2. Định cấu hình tường lửa để cho phép kết nối HTTP và HTTPS.

Bằng cách cho phép kết nối HTTP và HTTPS, để mở các trang web và ứng dụng của mình cho khách truy cập.

sudo firewall-cmd --zone=public --permanent --add-service=http

sudo firewall-cmd --zone=public --permanent --add-service=https

A black screen with green text Description automatically generated

Cuối cùng, khởi động lại tường lửa để áp dụng các thay đổi.

sudo firewall-cmd --reload

3. Định cấu hình tường lửa để cho phép tất cả các kết nối từ các IP cụ thể.

Bước này cho phép bạn đưa IP của bất kỳ quản trị viên hoặc nhà phát triển nào thường xuyên sử dụng máy chủ vào danh sách trắng. Đổi lại, họ không bao giờ phải lo lắng về việc bị chặn và mất quyền truy cập.

sudo firewall-cmd --zone=trusted --permanent --add-source=#.#.#.#

Định cấu hình tường lửa để cho phép tất cả các kết nối từ các IP cụ thể

Có nhiều quy tắc và lệnh tường lửa hữu ích khác mà bạn có thể sử dụng để tăng cường bảo mật cho CentOS. Để tìm hiểu thêm về chúng, hãy đọc các trang hướng dẫn sử dụng tường lửa.

Như thường lệ, hãy nhớ khởi động lại tường lửa để áp dụng các thay đổi.

sudo firewall-cmd --reload

Chạy sao lưu thường xuyên

Thực hiện tất cả các biện pháp phòng ngừa bảo mật là điều cần thiết nếu bạn muốn giảm thiểu khả năng bị tấn công. Nhưng bạn cần nhớ rằng không có hệ thống máy tính nào an toàn 100%.

Đừng lo lắng, đó là mục đích của các bản sao lưu và bạn có thể khôi phục chúng ngay khi phát hiện ra rằng một hệ thống bị xâm phạm. Chỉ cần đảm bảo định cấu hình chúng đúng cách để giữ an toàn cho CentOS .

Dưới đây là một số điều cần lưu ý nếu bạn muốn tận dụng tối đa cấu hình sao lưu của mình.

1. Giữ các bản sao lưu ở các vị trí thực tế khác nhau.

Mặc dù tội phạm mạng thường hoạt động từ xa nhưng đôi khi chúng thực sự có thể đánh cắp các bản sao lưu vật lý . Hơn nữa, một trung tâm dữ liệu nơi đặt máy chủ và các bản sao lưu có thể trở thành nạn nhân của nguy cơ hỏa hoạn.

Đó là lý do tại sao bạn phải luôn giữ các bản sao lưu của mình ở ít nhất hai vị trí thực tế để giữ an toàn cho CentOS .

2. Giữ các bản sao lưu hàng năm, hàng tháng, hàng tuần và hàng ngày.

Bạn có thể gặp may mắn và nhận ra hệ thống của mình đã bị xâm nhập ngay khi nó xảy ra. Trong trường hợp như vậy, các bản sao lưu hàng ngày hoặc hàng tuần mặc định chỉ là những gì bạn cần để đưa mọi thứ trở lại bình thường.

Tuy nhiên, đôi khi có thể mất vài tháng trước khi bạn nhận ra hệ thống của mình đã bị xâm phạm. Điều tồi tệ hơn nữa là một số trường hợp nhiễm phần mềm độc hại không thể giải quyết, mất dữ liệu vĩnh viễn.

Để ngăn những vấn đề như vậy ảnh hưởng đến bạn, hãy đảm bảo giữ các phiên bản sao lưu cũ hơn thay vì chỉ những phiên bản gần đây. Đó chính xác là mục đích sao lưu hàng tháng và hàng năm.

3. Backup toàn bộ hệ thống

Trong nhiều trường hợp, mọi người ưu tiên các thư mục /home hoặc /var vì đó là nơi lưu trữ các trang web và ứng dụng của họ. Nhưng trên thực tế, việc sao lưu toàn bộ hệ thống cũng quan trọng không kém.

Chỉ cần nghĩ về nó một lúc. Bạn hoặc quản trị viên sẽ mất bao lâu để cài đặt và định cấu hình tất cả phần mềm cần thiết trên hệ thống mới sau khi bạn bị xâm nhập? Chưa kể tường lửa sẽ mất bao lâu để thu thập cùng một IP và cung cấp cùng mức độ bảo vệ như trước đây.

Cập nhật mọi thứ

Để giữ an toàn cho CentOS , hãy đảm bảo chạy các bản cập nhật thường xuyên. Điều này bao gồm thông tin kho lưu trữ gói, gói đã cài đặt và tất cả phần mềm được cài đặt thủ công.

Bạn có thể cài đặt và cập nhật bất kỳ phần tử nào trong ngăn xếp máy chủ của mình, chẳng hạn như Apache, MySQL và PHP, dưới dạng một gói. Tuy nhiên, bất kỳ phần mềm nào bạn tải xuống theo cách thủ công, chẳng hạn như CMS (hệ thống quản lý nội dung), sẽ cần được cập nhật theo cách thủ công.

  1. Cập nhật thông tin gói cước

sudo dnf check-update

Cập nhật thông tin gói

  1. Cập nhật tất cả các gói

Nếu hài lòng với kết quả, bạn có thể tiến hành nâng cấp tất cả các gói.

sudo dnf update

Cập nhật tất cả các gói

Nếu không, bạn có thể cập nhật từng gói riêng lẻ. Hãy nhớ thay $packagename bằng tên của từng gói.

sudo dnf update $packagename

3. Cập nhật CMS, plugin và mọi phần mềm được cài đặt thủ công khác.

Luôn cập nhật hệ thống Linux là rất quan trọng, nhưng đừng quên CMS .

Các hệ thống CMS, chẳng hạn như WordPress hoặc Magento, được tạo ra từ nhiều bộ phận khác nhau do các công ty khác nhau phát triển. Mặc dù bản chất mô-đun của chúng mang lại rất nhiều lợi ích, nhưng đó cũng là điều khiến chúng dễ bị tấn công. Đây là một phần quan trọng trong quá trình bảo mật máy chủ Linux.

Để luôn cập nhật tất cả phần mềm được cài đặt thủ công, hãy đọc tài liệu chính thức của nó.

Xóa các gói không sử dụng

Các gói không sử dụng làm tăng khả năng bị khai thác tiềm năng một cách không cần thiết. Đó là lý do tại sao bạn nên tìm và xóa chúng để giữ an toàn cho CentOS của mình.

1. Tìm và xóa các gói không sử dụng bằng autoremove.

sudo dnf autoremove

Tìm và xóa các gói không sử dụng bằng autoremove

2. Tìm và xóa các tệp tạm thời.

sudo dnf clean all

Tìm và xóa các tệp tạm thời

Sử dụng mật khẩu mạnh

Đặt mật khẩu mạnh là một phần quan trọng trong quá trình tăng cường sức mạnh cho máy chủ Linux. Mật khẩu mạnh được tạo từ một chuỗi dài ngẫu nhiên các chữ hoa, chữ thường, số và ký hiệu. Họ không nên bao gồm bất kỳ từ hoặc ngày.

Hơn nữa, bạn cũng nên đảm bảo rằng tất cả người dùng cập nhật mật khẩu của họ thường xuyên. Chính sách mật khẩu giảm đáng kể nguy cơ tấn công DDos bằng cách ngăn người dùng sử dụng lại cùng một mật khẩu cho nhiều dịch vụ.

1. Sử dụng pwgen để tạo mật khẩu mạnh.

Cài pwgen.

sudo dnf install pwgen

Sử dụng pwgen để tạo mật khẩu mạnh

Tạo danh sách mật khẩu bằng cách sử dụng cờ -ys, trong đó y có nghĩa là bao gồm các ký hiệu và s được sử dụng để tạo chuỗi mật khẩu có độ an toàn cao.

pwgen -ys 20

Tạo danh sách mật khẩu

2. Đặt chính sách hết hạn mật khẩu.

Sử dụng tệp etc/login.defs để đặt chính sách hết hạn mật khẩu ngắn hơn, chẳng hạn như 30 đến 90 ngày.

  • PASS_MAX_DAYS là số ngày sau đó mật khẩu sẽ hết hạn.
  • PASS_MIN_DAYS là số ngày cần trôi qua trước khi có thể thay đổi mật khẩu.
  • PASS_WARN_AGE là số ngày cảnh báo sẽ được hiển thị khi đăng nhập trước khi mật khẩu hết hạn. Tính năng này không kéo dài thời gian hết hạn PASS_MAX_DAYS.

Đặt chính sách hết hạn mật khẩu

3. Áp dụng chính sách mới cho người dùng hiện tại.

Khi bạn đặt chính sách mới, chính sách này chỉ ảnh hưởng đến người dùng mới. Để kiểm tra chính sách của người dùng hiện tại, bạn sẽ sử dụng lệnh chage -l trong khi thay thế $username bằng người dùng Linux.

sudo chage -l $username

Áp dụng chính sách mới cho người dùng hiện tại

Để áp dụng nó cho những cái hiện có, bạn cần sử dụng lệnh chage. Cờ -M dành cho số ngày tối đa, -m cho số ngày tối thiểu và -W cho các cảnh báo. Đừng quên thay thế $days và $username bằng các giá trị phù hợp và kiểm tra xem thay đổi có được áp dụng hay không.

sudo chage -M $days $username

Cài đặt Fail2ban

Khi bạn đang làm việc để củng cố CentOS 8, điều quan trọng nữa là bạn phải cài đặt tính năng ngăn chặn xâm nhập Fail2ban. Phần mềm này bảo vệ máy chủ khỏi các nỗ lực đăng nhập độc hại bằng cách chặn một cách có hệ thống các IP hoạt động sai.

1. Cài đặt Fail2ban.

sudo dnf install fail2ban

Cài đặt Fail2ban

2. Kích hoạt và kích hoạt Fail2ban.

Bắt đầu fail2ban và đặt nó tải khi khởi động.

sudo systemctl enable fail2ban

sudo systemctl start fail2ban

Kích hoạt và kích hoạt Fail2ban

3. Định cấu hình Fail2ban.

Trước khi có thể định cấu hình Fail2ban, bạn cần sao chép etc/fail2ban/jail.conf sang etc/fail2ban/jail.local.

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Bây giờ hãy thêm IP vào danh sách bỏ qua và bỏ ghi chú dòng.

Sau đó định cấu hình cách hệ thống sẽ xử lý các IP đáng ngờ.

  • bantime xác định thời gian một IP sẽ bị chặn.
  • maxretry là số lần một IP có thể không đăng nhập được trước khi bị chặn.
  • findtime là khoảng thời gian mà sau đó bộ đếm maxretry được đặt lại.

định cấu hình cách hệ thống sẽ xử lý các IP đáng ngờ

Cuối cùng, khởi động lại Fail2ban để áp dụng những thay đổi này.

sudo systemctl restart fail2ban

khởi động lại Fail2ban

Có nhiều tính năng Fail2ban hữu ích khác mà bạn có thể sử dụng để bảo mật CentOS. Để tìm hiểu thêm về chúng, hãy đọc các trang hướng dẫn sử dụng Fail2ban.

Mật khẩu bảo vệ GRUB

Một bước quan trọng khác trong hướng dẫn tăng cường CentOS 8 này liên quan đến việc bảo vệ GRUB. Grand Unified Bootloader (GRUB) là bộ tải khởi động phổ biến nhất cho nhiều bản phân phối Linux, bao gồm cả CentOS.

GRUB có thể được sử dụng để đặt lại mật khẩu gốc bằng cách đăng nhập vào chế độ một người dùng. Đó là lý do tại sao bạn nên đặt mật khẩu để bảo vệ và cải thiện bảo mật cho CentOS của mình.

Đặt mật khẩu.

sudo grub2-setpassword

Mật khẩu bảo vệ GRUB

Tắt Ctrl+Alt+Del

Nhấn các phím Ctrl, Alt và Delete cùng nhau sẽ khởi động lại trên hầu hết các bản phân phối Linux, bao gồm cả CentOS. Nếu kẻ tấn công có quyền truy cập bàn phím và khởi động lại hệ thống , thì họ có khả năng truy cập vào chế độ một người dùng mà không cần mật khẩu.

Đó là lý do tại sao điều quan trọng là bạn phải tắt nó để ngăn chặn bất kỳ lần khởi động lại không mong muốn nào và cải thiện bảo mật CentOS 8 .

Vô hiệu hóa phím tắt.

sudo systemctl mask ctrl-alt-del.target

Tắt Ctrl+Alt+Del

Bảo mật hạt nhân

Bảo vệ nhân Linux là một khía cạnh quan trọng khác của việc bảo mật CentOS. Cấu hình nhân Linux được lưu trữ trong /proc/sys. Để thay đổi chúng, bạn có thể sử dụng lệnh systctl.

1. Kiểm tra cấu hình.

sudo sysctl –system

Bảo mật hạt nhân

2. Chỉnh sửa cấu hình.

Mở tệp etc/sysctl.conf và sao chép các cấu hình sau vào tệp đó. Chúng sẽ hoạt động với hầu hết các máy miễn là chúng không được sử dụng làm bộ định tuyến. Đảm bảo đọc từng nhận xét trước khi áp dụng các thay đổi.

# Disable IP forwarding

net.ipv4.ip_forward = 0

# Disable source routing

net.ipv4.conf.default.accept_source_route = 0

# Disable the Magic System Request key

kernel.sysrq = 0

# Enable TCP SYN cookie protection

net.ipv4.tcp_syncookies = 1

# Enable SYN flood protection

net.ipv4.tcp_synack_retries = 5

# Don’t accept source-routed packets

net.ipv4.conf.all.accept_source_route = 0

# Don’t accept ICMP redirects

net.ipv4.conf.all.accept_redirects = 0

# Log packets with suspicious addresses

net.ipv4.conf.all.log_martians = 1

# Ignore broadcast requests

net.ipv4.icmp_echo_ignore_broadcasts = 1

# Ignore bad ICMP errors

net.ipv4.icmp_ignore_bogus_error_responses = 1

3. Apply the changes.

Finally, reload sysctl to apply the changes.

sudo sysctl -p

Dành thêm vài giờ cho bảo mật có thể bảo vệ bạn khỏi những hậu quả nghiêm trọng của các cuộc tấn công mạng, bao gồm cả các vụ kiện và thiệt hại về danh tiếng. Hướng dẫn từng bước này về cách bảo mật CentOS 8 là một nơi tuyệt vời để bắt đầu, vì vậy hãy hành động và cải thiện bảo mật ngay hôm nay.

Facebook
Twitter
LinkedIn
Pinterest