Tại sao root qua SSH là xấu
Có rất nhiều bot ngoài đó cố gắng đăng nhập vào máy tính của bạn qua SSH. Những bot này hoạt động theo cách sau.
Họ thực thi một cái gì đó như ssh root@$IP
và sau đó họ thử mật khẩu tiêu chuẩn như "root" hoặc "password123". Họ làm điều này miễn là họ có thể, cho đến khi họ tìm thấy mật khẩu đúng. Trên một máy chủ có thể truy cập trên toàn thế giới, bạn có thể thấy rất nhiều mục nhật ký trong tệp nhật ký của mình. Tôi có thể đi tới 20 mỗi phút hoặc nhiều hơn.
Khi những kẻ tấn công gặp may mắn (hoặc đủ thời gian) và tìm thấy mật khẩu, chúng sẽ có quyền truy cập root và điều đó có nghĩa là bạn đang gặp rắc rối.
Nhưng khi bạn không cho phép root để đăng nhập qua SSH, trước tiên bot cần đoán tên người dùng và sau đó là mật khẩu phù hợp. Vì vậy, giả sử danh sách các mật khẩu hợp lý có N
các mục nhập và danh sách người dùng hợp lý là M
các mục lớn. Bot có một tập hợp các N*M
mục để kiểm tra, vì vậy điều này làm cho bot khó hơn một chút so với trường hợp gốc mà nó chỉ là một tập hợp kích thước N
.
Một số người sẽ nói rằng bổ sung M
này không phải là một lợi ích thực sự trong bảo mật và tôi đồng ý rằng nó chỉ là một cải tiến bảo mật nhỏ. Nhưng tôi nghĩ về điều này nhiều hơn vì những khóa móc nhỏ này không an toàn, nhưng chúng cản trở rất nhiều người tiếp cận dễ dàng. Điều này tất nhiên chỉ hợp lệ nếu máy của bạn không có tên người dùng chuẩn khác, như tor hoặc apache.
Lý do tốt hơn để không cho phép root là root có thể gây ra nhiều thiệt hại cho máy hơn so với người dùng tiêu chuẩn có thể làm. Vì vậy, nếu may mắn, họ tìm thấy mật khẩu của bạn, toàn bộ hệ thống bị mất trong khi với tài khoản người dùng chuẩn, bạn chỉ có thể thao tác các tệp của người dùng đó (vẫn còn rất tệ).
Trong các bình luận có đề cập rằng một người dùng bình thường có thể có quyền sử dụng sudo
và nếu mật khẩu của người dùng này được đoán thì hệ thống cũng bị mất hoàn toàn.
Tóm lại tôi sẽ nói rằng việc kẻ tấn công lấy mật khẩu của người dùng không thành vấn đề. Khi họ đoán một mật khẩu, bạn không thể tin tưởng vào hệ thống nữa. Kẻ tấn công có thể sử dụng quyền của người dùng đó để thực thi các lệnh sudo
, kẻ tấn công cũng có thể khai thác điểm yếu trong hệ thống của bạn và giành quyền root. Nếu kẻ tấn công có quyền truy cập vào hệ thống của bạn, bạn không thể tin tưởng được nữa.
Điều cần nhớ ở đây là mọi người dùng trong hệ thống của bạn được phép đăng nhập thông qua SSH là một điểm yếu bổ sung. Bằng cách vô hiệu hóa root, bạn loại bỏ một điểm yếu rõ ràng.
Tại sao mật khẩu trên SSH là xấu
Lý do để vô hiệu hóa mật khẩu thực sự đơn giản.
- Người dùng chọn mật khẩu xấu!
Toàn bộ ý tưởng thử mật khẩu chỉ hoạt động khi mật khẩu có thể đoán được. Vì vậy, khi người dùng có mật khẩu "pw123", hệ thống của bạn sẽ không an toàn. Một vấn đề khác với mật khẩu được mọi người lựa chọn là mật khẩu của họ không bao giờ thực sự ngẫu nhiên bởi vì điều đó sẽ khó nhớ.
Ngoài ra, đó là trường hợp người dùng có xu hướng sử dụng lại mật khẩu của họ, sử dụng nó để đăng nhập vào Facebook hoặc tài khoản Gmail của họ và cho máy chủ của bạn. Vì vậy, khi tin tặc lấy được mật khẩu tài khoản Facebook của người dùng này, anh ta có thể xâm nhập vào máy chủ của bạn. Người dùng có thể dễ dàng mất nó thông qua lừa đảo hoặc máy chủ Facebook có thể bị hack.
Nhưng khi bạn sử dụng chứng chỉ để đăng nhập, người dùng sẽ không chọn mật khẩu của mình. Chứng chỉ dựa trên một chuỗi ngẫu nhiên rất dài từ 1024 Bits đến 4096 Bits (~ 128 - 512 ký tự mật khẩu). Ngoài ra, chứng chỉ này chỉ có ở đó để đăng nhập vào máy chủ của bạn và không được sử dụng với bất kỳ dịch vụ bên ngoài nào.
Liên kết
http://bsdly.blogspot.de/2013/10/the-hail-mary-cloud-and-lessons-learned.html
Bài viết này xuất phát từ các bình luận và tôi muốn cho nó một vị trí nổi bật hơn một chút, vì nó đi sâu hơn một chút về vấn đề các botnet cố gắng đăng nhập thông qua SSH, cách chúng thực hiện, cách các tệp nhật ký trông như thế nào và những gì người ta có thể làm để ngăn chặn chúng. Nó được viết bởi Peter Hansteen.