5 cách cải thiện bảo mật tài khoản người dùng Linux

Bước đầu tiên và quan trọng nhất để bảo mật máy chủ và hệ thống Linux là ngăn chặn các bên độc hại truy cập không cần thiết. Kiểm soát tài khoản người dùng sao cho phù hợp là một trong nhiều cách để tăng cường bảo mật cho hệ thống của bạn.

Một tài khoản người dùng được bảo vệ tốt có khả năng ngăn chặn các phương pháp tấn công phổ biến. Do đó, với tư cách là quản trị viên hệ thống Linux, bạn cũng có trách nhiệm bảo vệ máy chủ của mình thông qua các kỹ thuật bảo mật hiệu quả.

Bài viết này trình bày một số biện pháp kiểm soát bảo mật tài khoản người dùng cơ bản để ngăn chặn truy cập không cần thiết và khắc phục các lỗ hổng có thể xảy ra khi hệ thống bị xâm phạm.

1. Hạn chế quyền truy cập tài khoản root

Theo mặc định, mọi cài đặt hệ thống Linux đều thiết lập một tài khoản root cho bất kỳ ai từ bên ngoài có thể truy cập thông qua SSH. Tuy nhiên, quyền truy cập vào tài khoản root thông qua SSH hoặc nhiều người dùng truy cập bên trong hệ thống có thể gây ra sự cố.

Ví dụ, kẻ tấn công có thể đăng nhập với tư cách người dùng root và có quyền truy cập vào hệ thống.

Để hạn chế quyền truy cập root không cần thiết từ bên trong hoặc bên ngoài hệ thống Linux, bạn có thể:

  • Thêm người dùng khác và cấp quyền root cho user đó
  • Tắt đăng nhập root SSH

Tạo superuser mới

Để cấp quyền sudo hoặc quyền root cho tài khoản người dùng Linux thông thường, hãy thêm người dùng vào nhóm sudo như sau:

usermod -aG sudo username

Bây giờ, hãy chuyển sang tài khoản người dùng bằng lệnh su và xác minh các đặc quyền root của nó bằng cách đưa ra lệnh chỉ người dùng root mới có thể tiếp cận được:

su - username
sudo systemctl restart sshd

Kích hoạt quyền sudo cung cấp một số lợi ích bảo mật tốt, chẳng hạn như:

  • Bạn không cần phải chia sẻ mật khẩu root với người dùng thông thường.
  • Nó giúp bạn kiểm tra tất cả các lệnh do người dùng thông thường chạy, có nghĩa là nó lưu trữ chi tiết về ai, khi nào và ở đâu thực hiện lệnh trong file /var/log/secure.
  • Bên cạnh đó, bạn có thể chỉnh sửa file /etc/sudoers để giới hạn quyền superuser của người dùng thông thường. Bạn có thể sử dụng lệnh su -l để kiểm tra quyền root hiện tại của người dùng.

Tắt đăng nhập SSH root

Để vô hiệu hóa quyền truy cập SSH root trên hệ thống, trước tiên, hãy mở file cấu hình chính.

Bây giờ, bỏ ghi chú dòng sau để đặt quyền đăng nhập root thành no:

PermitRootLogin no

Lưu file và khởi động lại service sshd bằng cách nhập:

sudo systemctl restart sshd

Bây giờ, bất cứ khi nào bạn cố gắng truy cập SSH vào hệ thống với tư cách là người dùng root, bạn sẽ nhận được thông báo lỗi sau:

Permission denied, please try again.

2. Đặt ngày hết hạn trên tài khoản

Một cách hiệu quả khác để kiểm soát quyền truy cập không cần thiết là đặt ngày hết hạn trên các tài khoản được tạo để sử dụng tạm thời.

Ví dụ, nếu một thực tập sinh hoặc một nhân viên cần quyền truy cập vào hệ thống, bạn có thể đặt ngày hết hạn trong quá trình tạo tài khoản. Đó là một biện pháp phòng ngừa trong trường hợp bạn quên xóa tài khoản theo cách thủ công sau khi họ rời khỏi tổ chức.

Sử dụng lệnh chage với tiện ích grep để tìm nạp thông tin chi tiết về ngày hết hạn tài khoản cho người dùng:

chage -l username| grep account

Đầu ra:

Account expires : never

Như được hiển thị ở trên, đầu ra cho biết không có ngày hết hạn. Bây giờ sử dụng lệnh usermod với flag -e để đặt ngày hết hạn ở định dạng YYYY-MM-DD và xác minh sự thay đổi bằng lệnh chage ở trên.

usermod -e 2021-01-25 username
chage -l username| grep account

3. Cải thiện bảo mật cho mật khẩu tài khoản

Thực thi chính sách mật khẩu mạnh là một khía cạnh quan trọng của việc bảo mật tài khoản người dùng, vì mật khẩu yếu cho phép kẻ tấn công dễ dàng xâm nhập vào hệ thống của bạn thông qua các cuộc tấn công Brute-force, Dictionary hoặc Rainbow Table.

Chọn một mật khẩu dễ nhớ có thể mang lại một số điểm tiện lợi, nhưng nó cũng mở ra nhiều cơ hội cho những kẻ tấn công đoán mật khẩu với sự trợ giúp của các công cụ và danh sách từ có sẵn trực tuyến.

Đặt ngày hết hạn mật khẩu

Linux cung cấp một số tùy chọn mặc định bên trong file /etc/logins.defs cho phép bạn đặt ngày hết hạn mật khẩu tài khoản. Sử dụng lệnh chage và ghi lại thông tin chi tiết về việc hết hạn mật khẩu như sau:

chage -l username | grep days
BiếnGiá trị mặc địnhCông dụngGiá trị lý tưởng
PASS_MAX_DAYS9999Số ngày mặc định để sử dụng mật khẩu phụ thuộc vào loại thiết lập tài khoản của bạn40
PASS_MIN_DAYS0Ngăn người dùng thay đổi mật khẩu của họ ngay lập tức5
PASS_MIN_LEN5Buộc người dùng đặt mật khẩu có độ dài nhất định15
PASS_WARN_AGE0Cảnh báo người dùng thay đổi mật khẩu trước khi bị buộc phải làm như vậy7

Đối với các tài khoản đang sử dụng, bạn có thể kiểm soát việc lão hóa mật khẩu với sự trợ giúp của lệnh chage để đặt PASS_MAX_DAYS, PASS_MIN_DAYS và PASS_WARN_AGE thành 40, 5 và 7.

chage -M 40 -m 5 -W 7 username

Hash mật khẩu

Một cách khác để tăng cường bảo mật mật khẩu tài khoản là lưu trữ các hash mật khẩu bên trong file . Hash là các hàm toán học một chiều lấy mật khẩu làm đầu vào và xuất ra một chuỗi không thể đảo ngược.

Trước đó, trên các hệ thống Linux, bất cứ khi nào người dùng nhập mật khẩu của họ để đăng nhập, hệ thống sẽ tạo hash của nó và kiểm tra chéo nó với code được lưu trữ trong file .

Tuy nhiên, có một vấn đề với quyền truy cập file passwd, bất kỳ ai có quyền truy cập hệ thống đều có thể đọc file và bẻ khóa hash bằng bảng cầu vồng.

Do đó, Linux hiện lưu các hàm hash bên trong file với tập hợp các quyền truy cập sau:

Bạn vẫn có thể cài đặt Linux với các cách lưu trữ hash cũ. Bạn có thể sửa đổi điều đó bằng cách chạy lệnh pwconv, như vậy nó sẽ tự động lưu các hash mật khẩu vào file . Tương tự, bạn có thể bật phương thức khác (file ) bằng lệnh pwunconv.

4. Xóa tài khoản người dùng không sử dụng

Kẻ xấu có thể khai thác các tài khoản không sử dụng và hết hạn trong hệ thống, bằng cách gia hạn tài khoản đó và làm cho tài khoản đó xuất hiện như một người dùng hợp pháp. Để xóa tài khoản không hoạt động và dữ liệu được liên kết bất cứ khi nào người dùng rời khỏi tổ chức, trước tiên, hãy tìm tất cả các file liên quan đến người dùng:

find / -user username

Sau đó, vô hiệu hóa tài khoản hoặc đặt ngày hết hạn như đã thảo luận ở trên. Đừng quên sao lưu các file do người dùng sở hữu. Bạn có thể chọn gán file cho chủ sở hữu mới hoặc xóa chúng khỏi hệ thống.

Cuối cùng, xóa tài khoản người dùng bằng lệnh userdel.

userdel -f username

5. Hạn chế quyền truy cập từ xa vào một nhóm người dùng cụ thể

Nếu bạn đang host một web server trên máy Linux của mình, bạn có thể cần chỉ cho phép những người dùng cụ thể truy cập SSH từ xa vào hệ thống. OpenSSL cho phép bạn giới hạn người dùng bằng cách kiểm tra chéo xem họ có thuộc một nhóm cụ thể hay không.

Đối với điều đó, hãy tạo một nhóm người dùng có tên ssh_gp, thêm những người dùng bạn muốn cấp quyền truy cập từ xa vào nhóm và liệt kê thông tin nhóm người dùng như sau:

Bây giờ, hãy mở file cấu hình chính OpenSSL để bao gồm nhóm người dùng được phép ssh_gp.

Hãy nhớ bỏ ghi chú dòng để đảm bảo bao gồm nhóm thành công. Khi hoàn tất, hãy lưu và thoát khỏi file và khởi động lại service:

sudo systemctl restart sshd

Với tầm quan trọng của việc thiết lập, quản lý và bảo mật tài khoản người dùng là một thách thức cơ bản mà các quản trị viên Linux phải đối mặt. Bài viết này đã liệt kê một số biện pháp bảo mật mà quản trị viên tài khoản phải thực hiện để bảo vệ hệ thống khỏi các mối đe dọa tiềm ẩn do tài khoản người dùng không được bảo vệ.

Thứ Bảy, 05/02/2022 17:46
52 👨 319
0 Bình luận
Sắp xếp theo