Perlu teknik untuk memaksa sysadmin untuk mencatat alasan mengakses server prod

17

Perusahaan saya mengharuskan setiap kali pengguna masuk ke server produksi alasan orang itu masuk dan perubahan yang ingin dilakukan oleh pengguna harus dicatat. Tim saya ingin melakukan ini, tetapi mudah untuk dilupakan. Saya ingin membantu mereka mengingat. Saya dianggap motd, tetapi menginginkan sesuatu yang sedikit lebih kuat.

Pikiran pertama saya adalah mengubah shell pengguna ke skrip yang melakukan sesuatu seperti

vim /logs/logindate.txt 
bash -l

Apakah ada teknik standar yang lebih baik atau lebih?

Catatan: Idenya adalah bahwa pengguna ini adalah sysadmin dan ingin membuat entri log tanpa menumbangkan sistem - mereka hanya sering lupa melakukannya. Jadi, jika mereka bisa ctrl-c, yah ... kami anggap mereka tidak akan melakukannya.


sumber
6
Anda mencoba menemukan solusi teknis untuk masalah alur kerja / prosedural. IMHO, upaya seperti itu akan gagal, dan masalah alur kerja / prosedural yang sebenarnya harus diatasi secara langsung melalui cara-cara non-teknis.
Yohanes
11
Terimakasih kawan. Saya mencoba menggunakan teknologi untuk mempromosikan perubahan perilaku. Saya kira saya bisa saja menabrak mereka dengan batu setiap kali mereka lupa, tetapi saya pikir SDM lebih memilih pendekatan teknologi.
8
@ John Apakah bukan bagian dari tujuan teknologi untuk mengimplementasikan dan membantu dalam alur kerja?
Michael Martinez
1
Tindakan disipliner, hingga dan termasuk pemutusan hubungan kerja.
Michael Hampton
4
Ya, tetapi pertanyaannya bukan "haruskah Anda melakukannya?" pertanyaannya adalah, "bisakah kamu melakukannya?" Salah satunya adalah penilaian nilai; satu adalah pertanyaan teknis yang layak untuk forum ini. Saya yakin dengan kemampuan saya untuk mengelola tim saya. Saya bisa menggunakan batu dengan sukses besar, tetapi dengan banyak darah. Saya suka bersikap baik. Saya memiliki admin yang baik, hanya pelupa. :) Sepertinya @ aaron-copley adalah pria kali ini. Terimakasih semuanya!

Jawaban:

19

Lihatlah pam_exec.so . Anda dapat menjalankan skrip saat masuk di antarmuka sesi autentikasi sistem PAM. Script dijalankan sebagai root sebelum pengguna mendapatkan shell, jadi skrip tidak dapat mengambil input read? Anda dapat mencoba, dan menggunakannya readuntuk mendapatkan alasan dari pengguna dan mencatatnya di syslog dengan loggerpernyataan. (Saya telah menghilangkan di bawah ini, tetapi Anda dapat menjebak CTRL + C untuk mencegah siapa pun keluar tanpa alasan.) $ PAM_USER akan disetel ke orang yang masuk, sehingga Anda dapat memasukkannya dalam pernyataan logger.

Contoh:

Di bagian atas sesi di /etc/pam.d/system-auth:

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

Dan / 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}"

Maaf jika ini tidak bekerja dengan sempurna. Saya tidak mengujinya, tetapi baru-baru ini melakukan hal serupa. (Itu tidak menangkap input.)


Sunting: Semakin saya memikirkan hal ini, semakin saya tidak berpikir itu akan berhasil karena tahap di mana ia berjalan. getreasonSkrip yang sama harus berfungsi setelah Anda ganti $PAM_USERdengan $(logname), tetapi mungkin harus dijalankan pada /etc/profile. (Uji shell interaktif, pertama.)

Saya akan membiarkan kedua opsi tersebut naik karena setidaknya Anda dapat berpikir ke arah yang benar jika tidak ada yang lain.

Aaron Copley
sumber
1
Terima kasih banyak atas ini. Itu terlihat sempurna. Jika tidak ada yang lain saya bisa menulis hal kecil di C untuk menangkap input. Saya akan menerapkan ini dan memberi tahu Anda jika itu berhasil.
1
@BiggyDevOPs: saran yang berguna: jika Anda menggunakan file flat untuk menyimpan log, masukkan dalam git atau svn sehingga Anda memiliki sejarah
Michael Martinez
7

Alternatifnya adalah solusi manajemen akun istimewa, di mana daripada memberikan akses administrator dengan akun mereka sendiri, akun admin disimpan secara escrow oleh pihak ketiga dan prosedur wajib Harus diikuti sebelum administrator dapat mengakses sistem produksi http: // en. m.wikipedia.org/wiki/Privileged_Identity_Management

HBruijn
sumber
0

Cara lain untuk mencapai ini adalah dengan memiliki fasilitas logging-terpusat Anda (saya pikir Logstash, tetapi Anda dapat melakukan ini dengan cara lain) ambil auth.log Anda pada sistem produksi, masukkan itu ke dalam aplikasi di mana orang dapat mencatat pembenaran mereka .

gWaldo
sumber
0

Cara saya melihat ini diterapkan pada pelanggan yang menjalankan HP Server Automation * adalah bahwa mereka bergantung pada pencatatan bawaan alat dengan kombinasi langkah-langkah persetujuan (saya pernah mengunjungi beberapa pelanggan di mana tidak ada sudo atau root privs kecuali di Dev ).

Persetujuan dapat dilakukan melalui sesuatu seperti Remedy and Operations Orchestration, atau login administratif di dalam SA, dll.

Bahwa semua makhluk kata, di luar perusahaan otomatisasi dan manajemen alat-alat, @ Aaron Copley 's jawabannya adalah pilihan yang sangat baik.


* Saya adalah HPSA senior, HPOO, dan aspek lain dari konsultan suite otomatisasi HP

warren
sumber
0

Sambil mencari solusi, saya membaca jawaban Aaron Copley dan berpikir: "Bagaimana jika saya mengganti shell pengguna saya?"

Saya berhasil melakukannya di mesin Ubuntu 14.04 saya:

# usermod -s /usr/bin/loginScript username

Pada skrip Anda, Anda dapat menangkap alasan login dengan sederhana. Milik saya seperti ini:

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

Satu hal yang harus Anda perhatikan: skrip tidak dijalankan sebagai root, jadi Anda mungkin harus memberi pengguna beberapa izin untuk membuat ini berfungsi.

william.wd
sumber