Bảo mật mật khẩu SSH
Bảo mật mật khẩu SSH là một yếu tố rất quan trọng để bảo vệ máy chủ của bạn khỏi các cuộc tấn công từ bên ngoài. Dưới đây là một số biện pháp mà bạn có thể áp dụng để bảo mật mật khẩu SSH của mình:
1. Sử dụng SSH Key thay vì mật khẩu
Sử dụng khóa SSH (public/private key pair) là một cách an toàn hơn nhiều so với việc sử dụng mật khẩu để đăng nhập vào server.
- Tạo SSH Key Pair: Trên máy tính của bạn, bạn có thể tạo một SSH key pair (cặp khóa công khai và riêng tư) bằng lệnh:
12 - Cài đặt khóa công khai lên server: Sau khi tạo SSH key pair, bạn cần tải khóa công khai lên server. Một cách dễ dàng là sử dụng lệnh
ssh-copy-id
:
12ssh-copy-id user@your-server-ip~/.ssh/authorized_keys
trên server. - Tắt đăng nhập bằng mật khẩu: Để ngừng cho phép đăng nhập bằng mật khẩu, bạn cần thay đổi cấu hình của SSH. Mở file cấu hình SSH:
12sudo nano /etc/ssh/sshd_configPasswordAuthentication no
ChallengeResponseAuthentication no
Sau đó, khởi động lại dịch vụ SSH:
12sudo systemctl restart sshdBây giờ, server chỉ cho phép đăng nhập thông qua SSH key.
2. Cấu hình bảo mật mạnh cho SSH
Ngoài việc sử dụng SSH keys, bạn có thể áp dụng thêm các biện pháp bảo mật sau:
- Đổi cổng SSH mặc định: Mặc định, SSH chạy trên cổng 22, điều này dễ dàng bị tấn công bởi các bot hoặc hacker. Bạn có thể thay đổi cổng SSH sang một cổng khác để giảm nguy cơ bị tấn công.
Mở file cấu hình SSH:
12sudo nano /etc/ssh/sshd_configTìm dòng
#Port 22
và thay đổi thành cổng khác, ví dụPort 2222
.Sau đó, khởi động lại SSH:
12sudo systemctl restart sshd - Sử dụng Firewall (Tường lửa): Thiết lập firewall để chỉ cho phép các IP đáng tin cậy kết nối vào server qua SSH. Ví dụ, nếu bạn sử dụng
ufw
, bạn có thể chỉ cho phép kết nối SSH từ một địa chỉ IP nhất định:12sudo ufw allow from YOUR_IP to any port 22 - Sử dụng Fail2Ban: Fail2Ban là một công cụ bảo mật giúp bảo vệ server khỏi các cuộc tấn công brute force (tấn công thử mật khẩu) bằng cách chặn các IP cố gắng đăng nhập quá nhiều lần sai. Bạn có thể cài đặt và cấu hình Fail2Ban như sau:
1234sudo apt-get install fail2bansudo systemctl enable fail2bansudo systemctl start fail2ban
Fail2Ban sẽ tự động chặn các IP cố gắng đăng nhập sai quá nhiều lần.
3. Kiểm tra và tạo mật khẩu mạnh
Nếu bạn vẫn muốn sử dụng mật khẩu thay vì SSH key, hãy đảm bảo rằng mật khẩu của bạn là đủ mạnh:
- Mật khẩu nên có ít nhất 12 ký tự, kết hợp giữa chữ hoa, chữ thường, số và ký tự đặc biệt.
- Tránh sử dụng mật khẩu dễ đoán hoặc thông dụng (ví dụ:
password123
,admin
, v.v.). - Bạn có thể sử dụng các công cụ như
pwgen
để tạo mật khẩu mạnh hoặc sử dụng trình quản lý mật khẩu để lưu trữ mật khẩu an toàn.
4. Giới hạn người dùng có quyền truy cập SSH
Chỉ cho phép những người dùng cần thiết mới có quyền truy cập SSH vào server. Mở file cấu hình SSH:
1 2 |
sudo nano /etc/ssh/sshd_config |
Thêm hoặc chỉnh sửa dòng sau để chỉ cho phép một số người dùng được phép đăng nhập SSH:
1 2 |
AllowUsers user1 user2 |
Sau đó, khởi động lại SSH:
1 2 |
sudo systemctl restart sshd |
5. Bảo vệ SSH bằng Two-Factor Authentication (2FA)
Cài đặt xác thực hai yếu tố (2FA) cho SSH để tăng cường bảo mật. Bạn có thể sử dụng Google Authenticator hoặc các công cụ tương tự để yêu cầu mã xác nhận mỗi khi đăng nhập.
- Cài đặt
pam_google_authenticator
:
12sudo apt-get install libpam-google-authenticator - Thêm dòng sau vào cuối file cấu hình PAM của SSH:
12sudo nano /etc/pam.d/sshd
12auth required pam_google_authenticator.so
12google-authenticator
Sau khi thiết lập xong, khi đăng nhập vào server qua SSH, bạn sẽ cần nhập mã xác thực từ ứng dụng Google Authenticator ngoài mật khẩu hoặc khóa SSH.
6. Giới hạn số lần thử đăng nhập
Bạn có thể giới hạn số lần đăng nhập sai để tránh tấn công brute force. Đây là một tính năng có thể được cấu hình trong file sshd_config
:
1 2 |
sudo nano /etc/ssh/sshd_config |
- MaxAuthTries: Giới hạn số lần thử đăng nhập sai.
12MaxAuthTries 3
Sau khi thay đổi, khởi động lại SSH:
1 2 |
sudo systemctl restart sshd |
Áp dụng những biện pháp trên sẽ giúp bạn bảo mật SSH và giảm nguy cơ bị tấn công. Mỗi biện pháp đóng góp một phần vào việc bảo vệ máy chủ của bạn.