Metode bagi pengguna untuk mengubah kata sandi Samba

10

Saya memiliki server Samba untuk sekitar 5 pengguna (keamanan = pengguna) dan saya ingin cara bagi para pengguna ini untuk mengubah kata sandi mereka tanpa keterlibatan saya sehingga saya memiliki ide berikut. Apakah ini aman? Apakah ada pendekatan yang lebih baik (seperti yang lebih sederhana). Kami dulu punya SWAT untuk ini tetapi tidak lebih.


Di server: buat pengguna terbatas (/ bin / rbash + PATH ke direktori tunggal)

$ sudo adduser --shell /bin/rbash pwchange

$ cat /etc/passwd
  pwchange:x:1001:1001:pwchange,,,:/home/pwchange:/bin/rbash

$ sudo vi /home/pwchange/.bashrc
  Add:
  export PATH=/usr/local/pwchange

$ sudo ln -s /usr/bin/smbpasswd /usr/local/pwchange/smbpasswd

Gagasan di sini adalah bahwa hanya perintah sambpasswd yang dapat dijalankan oleh pengguna pwchange. Akun unix untuk pengguna Samba tidak memiliki kata sandi (mis. Log masuk melalui akun ini tidak diizinkan). Pengguna samba hanya akan dapat menggunakan akun terbatas ini untuk perubahan kata sandi Samba layanan mandiri ... tidak menjelajahi server!


Klien: Ubah kata sandi Samba melalui Terminal atau Putty (Windows)

user1@A3700:~$ ssh [email protected]

pwchange@V220:~$ smbpasswd -U user1
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user user1
brucehohl
sumber
Tapi saya pikir smbpasswditu dimaksudkan untuk pengguna dan admin sama untuk mengubah kata sandi mereka ... Itukah yang Anda inginkan?
George Udosen
Dalam hal ini akun Unix pengguna tidak memiliki kata sandi, oleh karena itu, pengguna1 tidak dapat masuk sebagai [email protected]. Server Samba diatur sebagai "security = user" dan pembatasan file ditetapkan dalam smb.conf. Pengguna tidak diizinkan masuk Unix karena izin berkas Unix yang mendasarinya lebih permisif daripada kombinasi izin berkas Samba dan Unix (Unix extended ACL tidak digunakan.)
brucehohl
Di kampus saya, kami memiliki portal yang melayani sendiri yang dapat digunakan pengguna dengan menggunakan verifikasi id dan sms, dan di latar belakang kami mengeluarkan perintah smbpasswd
Rabin

Jawaban:

1

Memberi mereka semua akses ke akun dummy yang sama tidak terdengar cerdas. Bahkan jika Anda menguncinya untuk memiliki akses ke NAMUN, smbpasswdmereka masih bisa mengubah kata sandi masing-masing. Dan selalu ada kemungkinan peningkatan serangan privilege privilege.

Pada dasarnya apa yang Anda inginkan adalah memungkinkan mereka untuk menjalankan HANYA smbpasswdperintah dari akun pengguna mereka sendiri sementara masih memiliki yang setara dengan nologinakun.

Ini dapat dilakukan dengan menggunakan opsi "ForceCommand" di sshd_config Anda.

Coba ini:

  1. Berikan setiap pengguna dengan keanggotaan akun Samba ke grup yang sama. Sebagai contoh, katakanlah "sambaOnly":

    #From Root
    groupadd sambaOnly
    usermod -a -G sambaOnly Joe
    
  2. Selanjutnya, kami ingin mengubah file sshd_config kami untuk memiliki yang berikut:

    #From Root
    cat << EOF >> /etc/ssh/sshd_config
    Match Group sambaOnly
        ForceCommand smbpasswd
    EOF
    

Presto. Dari pemahaman saya (dan pengujian singkat) ini berarti ketika mereka masuk melalui SSH mereka akan secara otomatis smbpasswdmenjalankan perintah dan mereka akan diminta sesuai. Mereka tidak akan pernah mendapatkan kesempatan untuk memiliki akses shell. Setelah perintah selesai mereka secara otomatis terputus, sekali lagi tidak pernah mendapatkan kesempatan untuk memiliki akses shell.

Saya tidak 100% yakin ini menghapus semua akses ke mesin dari jarak jauh. Misalnya, jika Anda menjalankan server SSH yang berbeda pada mesin yang sama yang bukan milik ForceCommandmereka, maka mereka dapat masuk melalui itu tergantung pada konfigurasi kontrol aksesnya.

Juga, jika mereka memiliki kesempatan untuk akses fisik ke terminal, mereka dapat masuk.

Namun, saya pikir untuk sebagian besar situasi ini adalah kontrol akses yang cukup kuat.

Geraden
sumber