Khả năng ghi nhật ký SSH có tương đương với đăng nhập su để xác thực khóa riêng / công khai không?


11

Tại nơi làm việc, chúng tôi có một tài khoản đăng nhập không chia sẻ gốc trên UNIX được sử dụng để quản trị một ứng dụng cụ thể. Chính sách này là không cho phép đăng nhập trực tiếp vào tài khoản được chia sẻ; bạn phải đăng nhập như chính mình và sử dụng lệnh "su" để thay đổi tài khoản được chia sẻ. Điều này là cho mục đích đăng nhập / bảo mật.

Tôi đã bắt đầu sử dụng xác thực khóa công khai / riêng tư SSH với một đại lý để cho phép tôi nhập mật khẩu của mình mỗi ngày một lần và để cho đại lý chuyển tiếp loại bỏ các lời nhắc mật khẩu trong phần còn lại của ngày. Nó thật sự rất đẹp.

Tuy nhiên, một số hệ thống bị khóa nên tôi thực sự phải sử dụng lệnh "su" để truy cập vào tài khoản được chia sẻ. Tranh cãi! Quay lại nhập mật khẩu mọi lúc!

Có đủ thông tin được ghi bằng xác thực khóa công khai / riêng tư SSH để tôi có thể có cơ hội hợp lý để yêu cầu thay đổi chính sách để cho phép đăng nhập từ xa vào tài khoản dùng chung nếu sử dụng khóa chung / riêng?

Tôi đã có một quản trị viên xem trong / var / log / safe và nó chỉ nói rằng khóa chung được chấp nhận cho tài khoản người dùng từ một địa chỉ IP cụ thể. Nó không nói khóa công khai của ai, hoặc khóa riêng của ai đã xác thực.

Câu trả lời:


13

Có nhiều cấp độ đăng nhập có sẵn thông qua các sshd_configtập tin. Xem trang người đàn ông và tìm kiếm LogLevel. Mức mặc định là INFOnhưng thật dễ dàng để nâng nó lên VERBOSEhoặc thậm chí là một trong các DEBUG#cấp.

Ngoài ra, bạn nên khám phá sudonhư là một thay thế cho su. Một cuộc thảo luận đầy đủ về lợi ích của sudonó sẽ là một câu hỏi của riêng nó. Nhưng tôi có thể nói rằng với sudobạn có thể điều chỉnh tần suất bạn phải nhập mật khẩu, những lệnh nào có thể được chạy, v.v., tất cả đều có thể kiểm soát thông qua tệp cấu hình sudoers .


Bỏ phiếu cho đề nghị thay thế sudo.
Matt Simmons

6

Một cách khác là di chuyển ra authorized_keysngoài phạm vi của người dùng (ví dụ như /etc/ssh/authorized_keys) để chỉ các hệ thống quản trị hệ thống mới kiểm soát khóa công khai nào có thể được sử dụng để đăng nhập vào các tài khoản đã cho.

Chúng tôi thường thay đổi AuthorizedKeysFilechỉ thị sshd_configthành một cái gì đó như sau.

AuthorizedKeysFile /etc/ssh/authorized_keys/%u

Sau đó tạo và điền /etc/ssh/authorized_keysthư mục với các tệp cho mỗi người dùng được cho là có thể đăng nhập, đảm bảo roottệp chỉ có thể đọc / ghi được để root và các tệp khác mà người dùng thích hợp có thể đọc được, như thế này:

-rw-------  1 root root    1,7K 2008-05-14 14:38 root
-rw-r-----  1 root john     224 2008-11-18 13:15 john

Mỗi tệp chứa một bộ khóa công khai sẽ được phép đăng nhập vào một tài khoản nhất định. Nó là khá phổ biến cho mỗi tài khoản người dùng cũng có một nhóm tương ứng.

Sử dụng khóa chung / riêng là cách tốt hơn để kiểm soát truy cập của người dùng từ xa. Bạn không phải thay đổi mật khẩu mỗi tháng (bạn cũng không phải đặt mật khẩu) và không phải thay đổi mật khẩu chỉ vì một nhân viên rời khỏi công ty của bạn chỉ cần xóa khóa công khai của họ; và tất nhiên với các tùy chọn SSH ( http://www.openbsd.org/cgi-bin/man.cgi?query=sshd&sektion=8#SSHRC), bạn có thể tinh chỉnh những gì và từ nơi mà một người dùng nhất định có thể có quyền truy cập.


1

Xác thực khóa công khai / riêng tư SSH tách biệt với xác thực máy chủ. Bạn đã hết may mắn ở đây. Bạn có thể yêu cầu mặc dù các thành viên của nhóm cụ thể được phép chạy một số lệnh quản trị nhất định sudomà không cần mật khẩu - như ví dụ dưới đây cho phép người dùng trong secretariesnhóm quản lý tài khoản:


# file: /etc/sudoers
...
%secretaries    ALL= NOPASSWD: /usr/bin/adduser, /usr/bin/rmuser   
...

Thứ hai này .. việc kiểm tra SUDO sẽ dễ dàng hơn nhiều, bạn có thể thấy người dùng đã gõ "sudo appname -options", đơn giản hơn nhiều so với việc xem "root -options" được gõ gốc và sau đó phải điều chỉnh lại ai tất cả đã được đăng nhập với quyền root tại thời điểm đó.
Brian

OK, giúp. Tuy nhiên, một số nhiệm vụ của chúng tôi là bắt đầu và dừng các quá trình daemon. Sudo có cho phép chúng tôi chạy các tập lệnh "bắt đầu" và "dừng" làm tên người dùng nhóm được chia sẻ không? (đó không phải là root) Chúng tôi muốn các quy trình được sở hữu bởi tên người dùng tài khoản được chia sẻ mà chúng tôi thiết lập.
David I.

Có, -utùy chọn cho phép bạn làm điều đó, xem hướng dẫn sudo.ws/sudo/man/1.8.1/sudo.man.html
Nikolai N Fetissov
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.