Tại Sao Cần Tắt Hỗ Trợ Mật Khẩu Rỗng Trong SSH?
SSH (Secure Shell) là một trong những phương thức kết nối từ xa phổ biến nhất đến máy chủ Linux. Mặc dù cung cấp kết nối được mã hóa, nhưng cấu hình mặc định của SSH có thể chứa những lỗ hổng bảo mật tiềm ẩn, đặc biệt là khả năng đăng nhập bằng mật khẩu rỗng. Việc cho phép đăng nhập với mật khẩu trống có thể tạo ra điểm yếu nghiêm trọng trong hệ thống của bạn, làm tăng nguy cơ bị tấn công brute-force và đột nhập trái phép.
Theo báo cáo an ninh mạng gần đây, hơn 50% các vụ xâm nhập máy chủ bắt đầu từ các lỗ hổng trong cấu hình SSH. Tắt hỗ trợ mật khẩu rỗng là một trong những biện pháp cơ bản nhưng hiệu quả để tăng cường bảo mật cho máy chủ Linux của bạn.
Kiểm Tra Cấu Hình SSH Hiện Tại
Trước khi thực hiện bất kỳ thay đổi nào, bạn nên kiểm tra cấu hình SSH hiện tại để xác định xem hệ thống có cho phép đăng nhập với mật khẩu rỗng hay không. Tệp cấu hình chính của SSH thường nằm tại /etc/ssh/sshd_config
.
# Hiển thị cấu hình liên quan đến mật khẩu rỗng grep "PermitEmptyPasswords\|PermitRootLogin" /etc/ssh/sshd_config # Hoặc xem toàn bộ file cấu hình cat /etc/ssh/sshd_config
Nếu bạn thấy dòng PermitEmptyPasswords yes
hoặc không thấy dòng này (nghĩa là đang sử dụng giá trị mặc định), hệ thống của bạn có thể đang cho phép đăng nhập bằng mật khẩu rỗng.
Cách Tắt Hỗ Trợ Mật Khẩu Rỗng Trong SSH
Bước 1: Chỉnh Sửa Tệp Cấu Hình SSH
Đầu tiên, mở tệp cấu hình SSH với trình soạn thảo văn bản yêu thích của bạn:
sudo vi /etc/ssh/sshd_config # Hoặc sử dụng nano sudo nano /etc/ssh/sshd_config
Tìm dòng có chứa PermitEmptyPasswords
. Nếu dòng này không tồn tại hoặc được comment (bắt đầu bằng dấu #), hãy thêm dòng mới hoặc chỉnh sửa dòng hiện có:
PermitEmptyPasswords no
Bước 2: Cấu Hình Bảo Mật SSH Bổ Sung
Để tăng cường bảo mật hơn nữa, hãy xem xét các cấu hình bổ sung sau:
# Không cho phép đăng nhập trực tiếp vào tài khoản root PermitRootLogin no # Giới hạn số lần thử đăng nhập MaxAuthTries 3 # Sử dụng phiên bản SSH an toàn Protocol 2 # Chỉ cho phép các thuật toán mã hóa mạnh Ciphers aes256-ctr,aes192-ctr,aes128-ctr # Giới hạn thời gian chờ đăng nhập LoginGraceTime 60
Bước 3: Kiểm Tra Cấu Hình
Trước khi khởi động lại dịch vụ SSH, hãy kiểm tra cấu hình để đảm bảo không có lỗi cú pháp:
sudo sshd -t
Nếu lệnh không trả về lỗi, bạn có thể tiếp tục bước tiếp theo.
Bước 4: Khởi Động Lại Dịch Vụ SSH
Áp dụng các thay đổi bằng cách khởi động lại dịch vụ SSH:
# Đối với hệ thống sử dụng systemd sudo systemctl restart sshd # Đối với hệ thống cũ hơn sudo service ssh restart
Xác Minh Cấu Hình Đã Thay Đổi
Để đảm bảo các thay đổi đã được áp dụng đúng cách, hãy thử kết nối SSH với một tài khoản có mật khẩu rỗng (nếu có). Kết nối này sẽ bị từ chối nếu cấu hình của bạn hoạt động chính xác.
Bạn cũng có thể kiểm tra cài đặt trực tiếp từ dịch vụ SSH đang chạy:
sudo sshd -T | grep -i "permitemptypasswords"
Kết quả nên hiển thị: permitemptypasswords no
Các Biện Pháp Bảo Mật SSH Nâng Cao
Xác Thực Bằng Khóa
Ngoài việc tắt mật khẩu rỗng, việc sử dụng xác thực khóa SSH thay vì mật khẩu là biện pháp bảo mật mạnh mẽ hơn. Cấu hình này bằng cách thiết lập:
# Trong file /etc/ssh/sshd_config PasswordAuthentication no PubkeyAuthentication yes
Sử Dụng Fail2ban
Fail2ban là công cụ bảo mật giúp ngăn chặn các nỗ lực đăng nhập brute-force bằng cách tạm thời chặn địa chỉ IP sau một số lần đăng nhập thất bại:
# Cài đặt Fail2ban sudo apt-get install fail2ban # Cấu hình cho SSH sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo nano /etc/fail2ban/jail.local
Kết Luận
Tắt hỗ trợ mật khẩu rỗng trong SSH là một bước quan trọng để bảo vệ máy chủ Linux của bạn khỏi các cuộc tấn công mạng. Kết hợp với các biện pháp bảo mật khác như xác thực khóa, giới hạn đăng nhập root, và sử dụng công cụ như Fail2ban, bạn có thể xây dựng một hệ thống phòng thủ nhiều lớp cho máy chủ của mình.
Nhớ rằng, bảo mật là một quá trình liên tục. Thường xuyên cập nhật hệ thống, theo dõi nhật ký, và áp dụng các biện pháp bảo mật mới nhất sẽ giúp bạn duy trì một môi trường máy chủ an toàn và đáng tin cậy.