Kullanıcıların Samba şifresini değiştirme yöntemi


10

Yaklaşık 5 kullanıcı (güvenlik = kullanıcı) için bir Samba sunucum var ve bu kullanıcıların kendi katılımım olmadan şifrelerini değiştirmek için bir yol istiyorum, bu yüzden aşağıdaki fikrim var. Bu güvenli mi? Daha iyi (daha basit olduğu gibi) bir yaklaşım var mı? Bunun için SWAT vardı ama artık yok.


Sunucuda: kısıtlı kullanıcı oluşturun (/ bin / rbash + PATH tek bir dizine)

$ 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

Buradaki fikir, pwchange kullanıcısı tarafından yalnızca sambpasswd komutunun çalıştırılabilmesidir. Samba kullanıcıları için unix hesaplarının şifreleri yoktur (yani bu hesaplar üzerinden oturum açmaya izin verilmez). Samba kullanıcıları bu kısıtlı hesabı sadece self servis Samba şifre değişiklikleri için kullanabilirler ... sunucuyu keşfetmeye gerek yok!


İstemci: Samba parolasını Terminal veya Putty ile değiştirme (Windows)

user1@A3700:~$ ssh pwchange@192.168.1.14

pwchange@V220:~$ smbpasswd -U user1
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user user1

Ancak smbpasswdkullanıcılar ve yöneticilerin şifrelerini değiştirmeleri için tasarlandığını düşündüm ... İstediğiniz bu mu?
George Udosen

Bu durumda, kullanıcıların Unix hesaplarının parolaları olmadığından, user1, user1@192.168.1.14 olarak oturum açamaz. Samba sunucusu "security = user" olarak ayarlandı ve smb.conf dosyasında dosya kısıtlamaları belirlendi. Temel Unix dosya izinleri Samba ve Unix dosya izinlerinin birleşiminden daha izin verdiği için kullanıcıların Unix oturum açmasına izin verilmedi (Unix genişletilmiş ACL'ler kullanılmadı.)
brucehohl

Üniversitemde, kullanıcıların kimlik ve sms doğrulamasını kullanarak kimlik doğrulaması yapabileceği bir self servis portalı vardı ve arka planda smbpasswd komutunu verdik
Rabin

Yanıtlar:


1

Hepsine aynı kukla hesaba erişim vermek akıllıca gelmiyor. Hiçbir şeye erişmek için kilitleseniz smbpasswdbile, yine de birbirlerinin şifrelerini değiştirebilirler. Ve her zaman kötü niyetli bir ayrıcalık yükselme saldırısı olasılığı vardır.

Temelde istediğiniz gibi göründüğü gibi smbpasswd, bir nologinhesapla eşdeğer olmasına rağmen SADECE kendi kullanıcı hesaplarından komutu çalıştırmalarına izin vermektir .

Bu, sshd_config dosyanızdaki "ForceCommand" seçeneği kullanılarak gerçekleştirilebilir.

Bunu dene:

  1. Her kullanıcıya bir Samba hesabı üyeliğini aynı gruba verin. Örneğimiz için "sambaOnly" diyelim:

    #From Root
    groupadd sambaOnly
    usermod -a -G sambaOnly Joe
    
  2. Ardından, sshd_config dosyamızda aşağıdakilere sahip olacak şekilde değiştirmek istiyoruz:

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

Presto. Anlayışımdan (ve kısa testlerimden), bu, SSH yoluyla giriş yaptıklarında otomatik olarak smbpasswdkomutun çalıştırılacağı ve buna göre istenecekleri anlamına gelir . Hiçbir zaman mermi erişimine sahip olma şansları olmayacak. Komut tamamlandıktan sonra otomatik olarak bağlantı kesilir, bir daha asla kabuk erişimine sahip olma şansı olmaz.

Bunun makineye tüm erişimi uzaktan kaldırdığından% 100 emin değilim. Örneğin, aynı makinede farklı bir SSH sunucusu çalıştırıyorsanız ForceCommand, erişim kontrolü yapılandırmasına bağlı olarak bu sunucudan oturum açabilirler.

Ayrıca, bir terminale fiziksel erişim imkânı varsa giriş yapabilirler.

Ancak, çoğu durumda bunun oldukça güçlü bir erişim kontrolü olduğunu düşünüyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.