CH-J Server Managerquản lý máy chủ qua SSH
Menu
Tất cả hướng dẫn và bài viết →

Người dùng SSH và quyền truy cập root: thiết lập an toàn trên Linux

Tạo tài khoản quản trị, cài khóa, kiểm tra sudo rồi mới hạn chế đăng nhập root mà không tự mất quyền truy cập.

Mục tiêu và thứ tự các bước

Quản trị viên nên đăng nhập bằng khóa với tài khoản riêng của mình và dùng sudo khi cần, vì cách này lưu lại ai đã làm gì và hạn chế việc dò mật khẩu. Thứ tự rất quan trọng: trước tiên làm cho cách truy cập mới hoạt động, kiểm tra rồi mới hạn chế root ở bước cuối. Luôn có sẵn quyền truy cập bảng điều khiển của nhà cung cấp để xử lý khi có sự cố.

Tạo tài khoản và cài khóa

Tạo tài khoản, thêm khóa công khai và đặt quyền chặt chẽ, vì sshd bỏ qua những tệp khóa mà người khác có thể ghi vào. Tuyệt đối không sao chép khóa riêng lên máy chủ. Trên các hệ thống thuộc họ Red Hat, dùng nhóm wheel thay cho sudo.

sudo adduser admin1
sudo usermod -aG sudo admin1
sudo install -d -m 700 -o admin1 -g admin1 /home/admin1/.ssh
sudo install -m 600 -o admin1 -g admin1 ~/admin1.pub /home/admin1/.ssh/authorized_keys

Kiểm tra từ cửa sổ thứ hai

Giữ phiên hiện tại mở và thử đăng nhập mới từ cửa sổ dòng lệnh khác. Chỉ có tên trong nhóm chưa chứng minh được sudo hoạt động, vì các quy tắc trong sudoers mới quyết định điều đó. Xác nhận bằng sudo -l.

ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 admin1@server.example
sudo -l
sudo -v

Hạn chế đăng nhập root

PermitRootLogin prohibit-password chỉ cho phép root đăng nhập bằng khóa, còn no chặn hoàn toàn root qua SSH. Đặt thay đổi trong một tệp riêng dưới /etc/ssh/sshd_config.d. Với hầu hết tùy chọn, sshd dùng giá trị đầu tiên tìm thấy, nên tệp được đọc trước có thể được ưu tiên. Vì vậy, hãy kiểm tra giá trị thực sự có hiệu lực bằng sshd -T thay vì chỉ đọc các tệp. Thử đăng nhập mới trước khi đóng phiên cũ.

echo 'PermitRootLogin no' | sudo tee /etc/ssh/sshd_config.d/50-root.conf
sudo sshd -t
sudo systemctl reload ssh
sudo sshd -T | grep -iE '^(permitrootlogin|passwordauthentication) '

Đăng nhập bằng mật khẩu và những điều cần tránh

Chỉ tắt PasswordAuthentication sau khi mọi tài khoản bạn cần đều có khóa đã được kiểm tra. Tránh dùng chung một tài khoản cho nhiều người, vì khi đó bạn không thể thu hồi quyền truy cập của một người mà không ảnh hưởng đến những người khác. Cho phép sudo không cần mật khẩu cho toàn bộ tài khoản cũng có nghĩa là chỉ cần đánh cắp khóa là đã có toàn quyền kiểm soát.

Tài khoản trong CH-J Server Manager

Mô-đun Users quản lý tài khoản, nhóm, khóa SSH và quyền truy cập SSH qua một phiên SSH đang hoạt động. Mô-đun không bao giờ sửa sudoers hay đặt NOPASSWD, và báo trạng thái sudo thực tế từ sudo -l. Không thể xóa tài khoản root, và việc cho phép root đăng nhập bằng mật khẩu cần thêm một lần xác nhận, với Key only là lựa chọn được khuyến nghị. Thay đổi quyền truy cập SSH được xác minh bằng sshd -T và một lần đăng nhập SSH mới; cấu hình trước đó tự động được khôi phục nếu kiểm tra thất bại hoặc thay đổi sẽ khiến bạn mất quyền truy cập. Không có sudo, mô-đun chỉ cho phép đọc.

Tài liệu chi tiết

OpenSSH: sshd_config →

man: sudoers →

Mở khóa sinh trắc học và bảo mật →