Cara mencegah pengguna memperpanjang jendela masuk yang valid

14

Sudah mengerjakan beberapa prosedur pengerasan keamanan untuk kotak RedHat, dan saya ingin tahu apakah mungkin untuk mencegah pengguna mengubah kata sandinya, begitu sudah kadaluwarsa.

Untuk salah satu klien kami persyaratannya adalah mereka hanya harus memiliki akses ke server melalui akun sementara, yang berarti bahwa setelah kredensial pengguna dibuat, kata sandi harus kedaluwarsa dalam waktu 4 jam, dan begitu kata sandi kedaluwarsa, hanya root yang dapat mengubahnya .

Untuk persyaratan pertama (kata sandi kedaluwarsa setelah 4 jam), saya kira itu bisa dicapai dengan mengatur kata sandiMaxAge = 144000 . Tetapi saya masih tidak dapat menemukan cara untuk mencegah pengguna mengubah kata sandi yang kedaluwarsa, tanpa mematikan kedaluwarsa kata sandi.

Adakah yang bisa membantu?

lahir dari hula
sumber
4
Apakah boleh jika pengguna membiarkan sesi login yang ada terbuka melewati jendela 4 jam? Kedaluwarsa kata sandi pengguna tidak akan mengeluarkannya jika sudah masuk. Saya bisa membuka sesi SSH selama berminggu-minggu.
Wyzard
Alih-alih mengandalkan pada / cronjobs dan modifikasi sistem binari Anda mungkin dapat menulis modul pam sederhana, atau mungkin bahkan ada satu di luar sana (atau Anda mungkin dapat garpu pam_time untuk memasukkan lebih banyak opsi)
PlasmaHH

Jawaban:

21

Umumnya, kedaluwarsa kata sandi digunakan untuk memaksa pengguna mengubah kata sandi mereka. Apa yang ingin Anda lakukan adalah mengunci akun, yang mencegah semua login.

Apa yang saya sarankan untuk Anda lakukan adalah, ketika Anda membuat akun, juga mengatur pekerjaan yang akan mengunci akun setelah empat jam.

Sebagai contoh:

useradd temp8143
echo chage -E 0 temp8143 | at now + 4 hours

( chage -Emengharapkan tanggal kedaluwarsa akan diberikan dalam beberapa hari, jadi kami mengatasi ini dengan pekerjaan.)

Michael Hampton
sumber
3
Itu solusi yang bagus. +1 dari saya.
Jenny D
2
Ah, ledakan - Saya suka ide ini juga ; juga +1. Anda bahkan dapat melakukan atted userdel, yang akan memiliki keuntungan merapikan semua akun temp ini sehingga mereka tidak bertahan selamanya.
MadHatter
2
Saya pikir ini lebih baik daripada saran saya, sebenarnya.
Jenny D
Saya pikir passwd -l temp813akan mencapai hal yang sama dengan chage -E 0 temp8143.
Nate Eldredge
5
@NateEldredge Tidak juga. passwd -ltidak akan mencegah login kunci ssh atau login sidik jari, misalnya, sementara chage -E 0akan.
Michael Hampton
24

Jika Anda menghapus bit setuid dari perintah passwd, hanya root yang dapat menggunakannya. Ini juga akan menonaktifkan pengguna dari mengubah kata sandi sebelum kedaluwarsa - yang bisa menjadi cara bagi pengguna untuk memperpanjang akun selama empat jam.

[jenny@finch ~] sudo chmod -s /usr/bin/passwd
[jenny@finch ~]$ passwd
Changing password for user jenny.
Changing password for jenny.
(current) UNIX password: 
New password: 
Retype new password: 
passwd: Authentication token manipulation error

Root masih dapat mengubah kata sandi apa pun:

[jenny@finch ~]$ sudo passwd jenny
Changing password for user jenny.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
Jenny D
sumber
5
Elegan, dan sangat UNIX. +1 dari saya. @borntohula, jangan lupa untuk menerima jawaban ini dengan mengklik garis "centang" jika Anda senang dengan itu.
MadHatter
6
Ini hampir berhasil. Masalahnya adalah penghapusan bit setuid Anda akan dibatalkan jika passwdpernah diperbarui oleh sistem.
Michael Hampton
3
@MichaelHampton Benar. Memperbaiki itu untuk apa boneka misalnya. Juga, tidak semua orang memeriksa sistem mereka untuk bit setuid / setgid baru setelah setiap pembaruan?
Jenny D
1
@ JennyD - mereka mungkin harus memeriksa bit setuid / setgid berubah, tetapi sangat sedikit yang pernah melakukan
warren
2
@warren - mungkin ada sedikit sarkasme dalam kalimat itu. Jejak yang sangat kecil. Amat kecil.
Jenny D