Cần một kỹ thuật để ép buộc các hệ thống để ghi lại lý do truy cập máy chủ prod


17

Công ty của tôi yêu cầu bất cứ khi nào người dùng đăng nhập vào máy chủ sản xuất, lý do người đó đăng nhập và những thay đổi mà người dùng dự định thực hiện phải được ghi lại. Nhóm của tôi muốn làm điều này, nhưng nó dễ quên. Tôi muốn giúp họ nhớ. Tôi đã xem xét một motd, nhưng muốn một cái gì đó mạnh mẽ hơn một chút.

Suy nghĩ đầu tiên của tôi là thay đổi trình bao của người dùng thành một tập lệnh giống như

vim /logs/logindate.txt 
bash -l

Có một kỹ thuật tốt hơn hoặc tiêu chuẩn hơn?

Lưu ý: Ý tưởng là những người dùng này là sysadins và muốn thực hiện mục nhật ký mà không phá hoại hệ thống - họ chỉ thường xuyên quên làm như vậy. Vì vậy, nếu họ có thể ctrl-c nó, thì ... chúng tôi cho rằng họ sẽ không làm thế.


6
Bạn đang cố gắng tìm một giải pháp kỹ thuật cho vấn đề về quy trình / thủ tục. IMHO, một nỗ lực như vậy là cam chịu thất bại, và vấn đề thủ tục / quy trình thực tế nên được giải quyết trực tiếp thông qua các phương tiện phi kỹ thuật.
John

11
Cảm ơn cậu. Tôi đang cố gắng sử dụng công nghệ để thúc đẩy thay đổi hành vi. Tôi cho rằng tôi chỉ có thể câu lạc bộ với một hòn đá mỗi khi họ quên, nhưng tôi nghĩ rằng HR thích cách tiếp cận công nghệ.

8
@ John Không phải là một phần của mục đích công nghệ để thực hiện và hỗ trợ quy trình công việc?
Michael Martinez

1
Xử lý kỷ luật, lên đến và bao gồm chấm dứt.
Michael Hampton

4
Có, nhưng câu hỏi không phải là "bạn có nên làm không?" Câu hỏi là "bạn có làm được không?" Một là đánh giá giá trị; một là một câu hỏi kỹ thuật xứng đáng với diễn đàn này. Tôi tự tin vào khả năng quản lý đội của mình. Tôi có thể sử dụng đá với thành công lớn, nhưng rất nhiều máu. Tôi thích được tốt đẹp. Tôi có quản trị viên tốt chỉ là những người hay quên. :) Có vẻ như @ aaron-copley là người đàn ông lần này. Cảm ơn mọi người!

Câu trả lời:


19

Nhìn vào pam_exec.so . Bạn có thể chạy tập lệnh khi đăng nhập trong giao diện phiên của hệ thống-auth của PAM. Kịch bản chạy dưới dạng root trước khi người dùng nhận được shell, vì vậy nó có thể không bắt được đầu vào với read? Tuy nhiên, bạn có thể thử và sử dụng readđể lấy lý do từ người dùng và đăng nhập nó vào syslog bằng một loggercâu lệnh. .

Thí dụ:

Ở đầu phiên trong /etc/pam.d/system-auth:

session required pam_exec.so /usr/local/sbin/getreason

Và / usr / local / sbin / getreason:

#!/bin/bash
read -p "Reason for logging into production: " reason
logger -t $(basename $0) "$PAM_USER logged in with reason: ${reason}"

Xin lỗi nếu điều này không hoạt động hoàn hảo. Tôi đã không kiểm tra nó, nhưng gần đây đã làm một cái gì đó tương tự. (Nó không chụp đầu vào.)


Chỉnh sửa: Tôi càng nghĩ về điều này, tôi càng không nghĩ rằng nó sẽ hoạt động vì giai đoạn mà nó chạy. Cùng getreasonkịch bản nên làm việc sau khi bạn thay thế $PAM_USERvới $(logname), nhưng nó có thể cần phải được thực hiện trong /etc/profile. (Thử nghiệm cho vỏ tương tác, đầu tiên.)

Tôi sẽ để lại cả hai lựa chọn vì ít nhất nó sẽ khiến bạn suy nghĩ đúng hướng nếu không có gì khác.


1
Cám ơn bạn rất nhiều về điều này. Nó thật hoàn hảo. Nếu không có gì khác tôi có thể viết một điều nhỏ trong C để nắm bắt đầu vào. Tôi sẽ thực hiện điều này và cho bạn biết nếu nó hoạt động.

1
@BiggyDevOPs: đề xuất hữu ích: nếu bạn sử dụng tệp phẳng để giữ nhật ký, hãy đặt nó trong git hoặc svn để bạn có một lịch sử
Michael Martinez

7

Giải pháp thay thế là một giải pháp quản lý tài khoản đặc quyền, thay vì cho phép quản trị viên truy cập bằng tài khoản của riêng họ, tài khoản quản trị viên được giữ bởi một bên thứ ba và các thủ tục bắt buộc phải được tuân thủ trước khi quản trị viên có thể truy cập hệ thống sản xuất http: // en. m.wikipedia.org/wiki/Priv đặc biệt_Identity_Quản lý


0

Một cách khác để thực hiện điều này là có cơ sở ghi nhật ký tập trung của bạn (tôi nghĩ là Logstash, nhưng bạn có thể làm điều này theo những cách khác) đưa auth.log của bạn trên các hệ thống sản xuất, đưa vào ứng dụng nơi mọi người có thể đăng nhập biện minh của họ .


0

Cách tôi thấy điều này được thực hiện ở những khách hàng chạy HP Server Automatic * là họ dựa vào nhật ký bẩm sinh của công cụ với sự kết hợp của các bước phê duyệt (Tôi đã đến một số khách hàng không có quyền riêng tư hoặc sudo ngoại trừ trong Dev ).

Sự phê duyệt có thể được thực hiện thông qua một cái gì đó như Biện pháp khắc phục và điều hành, hoặc đăng nhập hành chính trong SA, v.v.

Đó là tất cả những gì được nói, bên ngoài các công cụ quản lý và tự động hóa doanh nghiệp, câu trả lời của @ Aaron Copley là một lựa chọn tuyệt vời.


* Tôi là một HPSA, HPOO cao cấp và các khía cạnh khác của chuyên gia tư vấn bộ tự động hóa HP


0

Trong khi tìm kiếm một giải pháp, tôi đọc câu trả lời của Aaron Copley và nghĩ: "Nếu tôi thay đổi vỏ người dùng thì sao?"

Tôi đã thực hiện thành công trên máy Ubuntu 14.04 của mình:

# usermod -s /usr/bin/loginScript username

Trên tập lệnh của bạn, bạn có thể nắm bắt lý do đăng nhập một cách đơn giản. Của tôi là như thế này:

#!/bin/bash
read -p "Tell me why you logged in:" reason
echo "You told me: $reason" >> /var/log/reasonLogin.log
/bin/bash

Một điều bạn cần lưu ý: tập lệnh không chạy dưới quyền root, vì vậy bạn có thể phải cung cấp cho người dùng một số quyền để thực hiện công việc này.

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.