it-swarm-vi.com

Mật khẩu Sudo khi xác thực qua SSH không mật khẩu

Tôi đã có một vài hộp được kết nối với nhau trên Amazon EC2, mỗi hộp được liên lạc tự động với nhau thông qua SSH (rsync, v.v.). Như vậy, tôi đã tạo các khóa SSH trên mỗi máy này để cho phép chúng SSH vào nhau mà không cần mật khẩu. Tương tự như vậy, tài khoản cá nhân của tôi cũng dựa trên khóa và không có mật khẩu.

Theo hiểu biết tốt nhất của tôi, tôi đã bảo mật SSH một cách thích hợp bằng các phương pháp được ghi chép đầy đủ.

Trong cấu hình này, tôi nhận thấy rằng tôi không phải cung cấp mật khẩu để sử dụng Sudo. Nếu tôi cố gắng su root, Tôi không nhận được gì, vì root không có mật khẩu. Tuy nhiên, nếu tôi chạy một Sudo -i, Tôi được yêu cầu không có mật khẩu, và tôi được cấp quyền root ngay lập tức. Điều đó làm tôi lo lắng một chút.

Vì vậy, hai câu hỏi:

  1. Nên điều này làm tôi lo lắng, hay tôi quá hoang tưởng?
  2. Có thể đặt mật khẩu Sudo khi sử dụng xác thực SSH dựa trên khóa không?

Một vài trong số các hộp này là các máy chủ web và đang lưu trữ các ứng dụng web về những gì tôi sợ là chất lượng đáng ngờ. (Tôi đã không viết chúng, vì vậy chúng đáng ngờ!) Tôi đã có Apache và các quyền trên các máy chủ được định cấu hình sao cho rất người dùng không có đặc quyền (dữ liệu www) đang phục vụ các tệp, nhưng nỗi sợ của tôi là - bằng cách nào đó - kẻ tấn công có thể thỏa hiệp một ứng dụng web, nâng cấp đặc quyền cho người dùng đặc quyền hơn, và sau đó chỉ đơn giản là Sudo -i để root.

Tôi không nhận thấy lỗ hổng trong phần mềm của mình sẽ cho phép dữ liệu www leo thang các đặc quyền của nó, nhưng tôi thích có một mật khẩu thay thế để sử dụng Sudo bằng cách nào đó đã xảy ra.

Ngoài ra, đối với bản ghi: Tôi đã cố gắng đặt mật khẩu bằng cách đăng nhập qua SSH và sau đó chạy passwd, nhưng nó đã gây ra lỗi. Tôi không nhớ cụm từ chính xác, nhưng đó là một cái gì đó về một "mã thông báo". Dù bằng cách nào, mật khẩu không bị dính, điều này khiến tôi nghĩ rằng tôi đang hiểu nhầm điều gì đó ở cấp độ cơ bản ở đây.

Bất kỳ sự chiếu sáng về chủ đề này sẽ được đánh giá rất cao. Cảm ơn.

- Cập nhật: ngày 7 tháng 12 năm 2011 -

Cảm ơn những lời giải thích chu đáo, tất cả. Thực tế có vẻ như vấn đề nằm ở /etc/sudoers. Cảm ơn đã chỉ cho tôi theo hướng đó.

Tôi hình dung tôi sẽ ghi lại tài liệu này để hoàn thành cuộc thảo luận. Khi tôi nhìn vào /etc/sudoers, Tôi đã gặp các dòng sau:

# ubuntu user is default user in ec2-images.  
# It needs passwordless Sudo functionality.
ubuntu  ALL=(ALL) NOPASSWD:ALL

Trên thực tế, tôi đang sử dụng người dùng Ubuntu cho các hoạt động đặc quyền của mình (mặc dù, một lần nữa, máy chủ web chỉ chạy dưới dạng www-data), vì vậy tôi đoán điều đó giải thích vấn đề tôi đang gặp phải.

Nếu bất cứ ai muốn theo dõi với một phỏng đoán tại sao người dùng Ubuntu cần chức năng Sudo không mật khẩu, tôi rất muốn nghe điều đó. Mặt khác, ít nhất là trong thời điểm hiện tại, tôi nghĩ rằng tôi sẽ để một mình đủ tốt và để nguyên cấu hình. Tôi không muốn phá vỡ một hệ thống làm việc trong khi cố gắng giải quyết vấn đề không tồn tại.

Cảm ơn một lần nữa cho vay thời gian và chuyên môn của bạn.

27
Chris Allen Lane

Lý do bạn không được nhắc nhập mật khẩu Sudo là vì người dùng (hoặc nhóm người dùng) của bạn đã bật NOPASSWD trong/etc/sudoers. Bạn có thể chỉnh sửa tệp này với visudo là root.

Về xác thực không mật khẩu, bạn chính xác rằng xác thực khóa chung là phương pháp ưa thích để xác thực với máy chủ. Nếu không có mật khẩu để đoán, thì không có nỗ lực vũ phu nào có thể thành công.

Thực tế là bạn hoàn toàn không có mật khẩu gốc vi phạm một số thực tiễn tốt nhất, nhưng như bạn đã nêu chính xác, nếu một khóa được yêu cầu để vào hộp, có lẽ nó vẫn ổn. Có mật khẩu gốc có thể khuyến khích bạn sử dụng SSH để đăng nhập với quyền root, nên bị vô hiệu hóa trong sshd_config của bạn.

Câu hỏi duy nhất tôi có liên quan đến một trong những đoạn cuối của bạn:

Ngoài ra, đối với bản ghi: Tôi đã cố gắng đặt mật khẩu bằng cách đăng nhập qua SSH và sau đó chạy passwd, nhưng nó đã gây ra lỗi. Tôi không nhớ cụm từ chính xác, nhưng đó là một cái gì đó về một "mã thông báo". Dù bằng cách nào, mật khẩu không bị dính, điều này khiến tôi nghĩ rằng tôi đang hiểu nhầm điều gì đó ở cấp độ cơ bản ở đây.

Bạn không thể đặt mật khẩu trong khi Sudo'd root? Hay chỉ là một người dùng thông thường? Có xác thực khóa công khai tại chỗ không nên ngăn bạn đặt mật khẩu không gian người dùng, cũng không phải mật khẩu gốc. Có vẻ như bạn có thể gặp phải vấn đề này, được thảo luận trên SuperUser , vì vậy hy vọng điều đó sẽ giúp ích một chút.

Tôi hy vọng tôi đã trả lời khía cạnh bảo mật của câu hỏi của bạn; vui lòng thêm nhận xét hoặc theo dõi nếu bạn cần thêm thông tin!

14
dshaw

Bạn có thể đặt mật khẩu để root trong khi bạn bật SSH key-auth. Trong Ubuntu, ví dụ như tài khoản root bị "vô hiệu hóa". Bạn có thể Sudo vào tài khoản đã được tạo trong quá trình cài đặt, tài khoản này sẽ chạy với quyền root.

Nếu bạn chạy www-data$Sudo -i bạn sẽ nhận được thông báo sau:

www-data is not in the sudoers file.  This incident will be reported.

Những gì dshaw đề cập thường bị vô hiệu hóa trong Ubuntu

# %Sudo ALL=NOPASSWD: ALL

Vì vậy, thật tốt khi kiểm tra vì bạn không thể chạy Sudo -i và lấy root mà không cần nhập mật khẩu.

Hi vọng điêu nay co ich.

3
Bassec