Mam serwer Samba dla około 5 użytkowników (bezpieczeństwo = użytkownik) i chcę, aby użytkownicy ci mogli zmienić swoje hasła bez mojego udziału, więc mam następujący pomysł. Czy to jest bezpieczne? Czy istnieje lepsze (jak w prostszym) podejściu? Kiedyś mieliśmy do tego SWAT, ale już nie.
Na serwerze: utwórz ograniczonego użytkownika (/ bin / rbash + PATH do pojedynczego katalogu)
$ 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
Pomysł polega na tym, że użytkownik pwchange może uruchomić tylko komendę sambpasswd. Konta unixowe dla użytkowników Samby nie mają haseł (tzn. Logowanie za pomocą tych kont jest niedozwolone). Użytkownicy samby będą mogli używać tego ograniczonego konta tylko do samoobsługowych zmian haseł Samby ... bez eksploracji serwera!
Klient: Zmień hasło Samby za pomocą terminala lub 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
smbpasswd
że zarówno użytkownicy, jak i administratorzy powinni zmieniać hasła ... Czy tego właśnie chcesz?Odpowiedzi:
Danie im dostępu do tego samego konta fikcyjnego nie brzmi mądrze. Nawet jeśli go zablokujesz, aby mieć dostęp do niczego, ALE
smbpasswd
oni nadal mogą zmieniać hasła innych. I zawsze istnieje możliwość złośliwego ataku na eskalację uprawnień.Zasadniczo wydaje się, że chcesz, aby mogli uruchamiać TYLKO
smbpasswd
polecenie z własnego konta użytkownika, wciąż mając odpowiedniknologin
konta.Można tego dokonać za pomocą opcji „ForceCommand” w sshd_config.
Spróbuj tego:
Przyznaj każdemu użytkownikowi członkostwo na koncie Samba tej samej grupie. W naszym przykładzie powiedzmy „sambaOnly”:
Następnie chcemy zmienić nasz plik sshd_config, aby miał:
Presto. Z mojego zrozumienia (i krótkich testów) oznacza to, że po zalogowaniu przez SSH automatycznie
smbpasswd
uruchomią polecenie i zostaną odpowiednio wyświetlone. Nigdy nie będą mieli dostępu do powłoki. Po zakończeniu polecenia są one automatycznie rozłączane, nigdy więcej nie uzyskując szansy na dostęp do powłoki.Nie jestem w 100% pewien, że to zdalnie usuwa cały dostęp do komputera. Na przykład, jeśli używasz innego serwera SSH na tym samym komputerze, który
ForceCommand
ich nie obsługuje , mogliby się zalogować za jego pośrednictwem, w zależności od konfiguracji kontroli dostępu.Ponadto, jeśli mają możliwość fizycznego dostępu do terminala, mogą się zalogować.
Myślę jednak, że w większości sytuacji jest to dość silna kontrola dostępu.
źródło