Bài viết này hướng dẫn bạn cách cài đặt và cấu hình PAM trên Ubuntu, tập trung vào việc sử dụng các module như pam_faillock để giới hạn số lần đăng nhập thất bại và pam_time để kiểm soát thời gian truy cập, giúp tăng cường bảo mật cho máy chủ. Trong môi trường Linux, bảo mật hệ thống là ưu tiên hàng đầu, đặc biệt với các dịch vụ như SSH, thường xuyên bị nhắm đến bởi các cuộc tấn công brute-force. PAM (Pluggable Authentication Modules) là một giải pháp mạnh mẽ, cho phép quản trị viên tùy chỉnh xác thực, giới hạn truy cập, và quản lý tài nguyên người dùng một cách linh hoạt.
1. PAM là gì?
PAM (Pluggable Authentication Modules) là một framework xác thực chuẩn hóa trên các hệ điều hành Unix/Linux, như Ubuntu. Nó cung cấp một giao diện thống nhất để các ứng dụng (như SSH, login, sudo) tích hợp với nhiều phương thức xác thực mà không cần sửa đổi mã nguồn. PAM cho phép quản trị viên định nghĩa các quy tắc xác thực, ủy quyền, và quản lý phiên thông qua các module động và file cấu hình, mang lại sự linh hoạt trong việc áp dụng chính sách bảo mật. Ví dụ, bạn có thể giới hạn số lần đăng nhập thất bại hoặc chỉ cho phép người dùng truy cập trong khung giờ cụ thể.
2. Kiểm tra và cài đặt PAM
Trên Ubuntu, PAM được cài sẵn theo mặc định. Bạn có thể xác nhận bằng lệnh:
ls /etc/pam.d/
Nếu thư mục này tồn tại, PAM đã được cài.
Nếu vì lý do nào đó PAM bị thiếu, cài lại bằng:
sudo apt update
sudo apt install libpam-modules libpam-modules-bin libpam0g
3. Cấu trúc thư mục và file PAM
PAM lưu cấu hình trong /etc/pam.d/
.
Mỗi file trong thư mục này tương ứng với một dịch vụ (như sshd, sudo, login…).
Ví dụ:
/etc/pam.d/sshd # cấu hình PAM cho SSH
/etc/pam.d/sudo # cấu hình PAM cho sudo
Cấu trúc một dòng cấu hình:
<type> <control> <module-path> <module-args>
- type: loại (auth, account, password, session)
- control: cách xử lý kết quả (required, requisite, sufficient, optional)
- module-path: đường dẫn module (ví dụ: pam_unix.so)
- module-args: các đối số tùy chọn
4. Một số ví dụ cấu hình PAM phổ biến
4.1. Giới hạn số lần đăng nhập sai
Sử dụng module pam_tally2
hoặc pam_faillock
:
sudo nano /etc/pam.d/common-auth
Thêm dòng sau vào đầu file:
auth required pam_tally2.so deny=5 onerr=fail unlock_time=600
Giải thích:
- deny=5: Giới hạn 5 lần đăng nhập thất bại.
- unlock_time=600: Khóa tài khoản trong 600 giây (10 phút).
- onerr=fail: Từ chối đăng nhập nếu có lỗi PAM.
Nghĩa là sau 5 lần sai, người dùng bị khóa 10 phút.
Kiểm tra trạng thái:
sudo pam_tally2
4.2. Giới hạn thời gian sử dụng hệ thống
Dùng module pam_time.so
trong /etc/pam.d/login
, mở file /etc/pam.d/login
sudo nano /etc/pam.d/login
Thêm dòng sau vào phần account
account required pam_time.so
Cấu hình file /etc/security/time.conf
như sau, mở file bằng sudo nano /etc/security/time.conf
:
login;*;user1;!Al0000-1800
user1 chỉ được đăng nhập ngoài khung giờ 00:00–18:00 từ thứ Hai đến thứ Bảy.
6. Kết luận
PAM là một công cụ không thể thiếu để tùy chỉnh bảo mật trên Ubuntu, cho phép quản lý xác thực và truy cập một cách linh hoạt. Với các module như pam_faillock và pam_time, bạn có thể dễ dàng bảo vệ SSH khỏi tấn công brute-force và giới hạn thời gian sử dụng hệ thống. Cấu hình đúng PAM sẽ giúp máy chủ của bạn an toàn hơn!
Chúc các bạn thực hiện thành công!
CÔNG TY TNHH VPSMMO
- VP: 8B đường B31, KDC 91B, Phường An Khánh, Quận Ninh Kiều, Thành phố Cần Thơ
- Tel: 0589549338
- Email: info@vpsmmo.vn