[+] Zablokowanie użytkownika na kilku serwerach zdalnych jednocze

Konfiguracja serwerów, usług, itp.
mkoscielny
Posty: 5
Rejestracja: 12 października 2013, 15:25

[+] Zablokowanie użytkownika na kilku serwerach zdalnych jednocześnie

Post autor: mkoscielny »

Witam.

Mam takie pytanko. Chciałbym zablokować jednego użytkownika na kilku serwerach zdalnych jednocześnie.

Czy można takie coś zrobić i jak?
Awatar użytkownika
Yampress
Administrator
Posty: 6400
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Napisz coś więcej o tych serwerach i o tym użytkowniku. I po co chcesz mu i co blokować?
mkoscielny
Posty: 5
Rejestracja: 12 października 2013, 15:25

Post autor: mkoscielny »

Chcę wiedzieć jak to najlepiej zrobić.

Założenia:
Użytkownik się nazywa: kowalski

serwerów jest 30.

Adresów IP zewnętrznych 30.

Dostęp przez ssh

Do każdego serwera jest utworzone konto dla użytkownika kowalski.

Chcę jednocześnie zablokować na 30 serwerach zdalnie dostęp dla tego użytkownika.

Jednocześnie raczej nie zablokujesz. Nie masz centralnego zarządzania użytkownikami. Musisz ręcznie wszędzie zmieniać.
Awatar użytkownika
Yampress
Administrator
Posty: 6400
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

DenyUser w konfiguracji sshd?
Zmienić mu powłokę na tą, której nie ma:

Kod: Zaznacz cały

/bin/false

Usunąć użytkownika z systemu?

We FreeBSD jest fajne polecenie:

Kod: Zaznacz cały

pw lock [b]użytkownik[/b]
Które blokuje mu dostęp do powłoki.
mkoscielny
Posty: 5
Rejestracja: 12 października 2013, 15:25

Post autor: mkoscielny »

Chciałbym wiedzieć jak zablokować użytkownika żeby wcale nie mógł się zalogować do systemu. Nie chcę kasować jego konta tylko zablokować.

Np. Jest 30 serwerów rozrzuconych po świecie i ten użytkownik ma do nich dostęp. Chcę zdalnie zablokować go ale jednocześnie żeby to zrobił np. skrypt.

Załóżmy, że na serwerach jest zrobione logowanie przez ssh bez hasła. Jest zrobiona autoryzacja przez klucz.
pr0t
Posty: 19
Rejestracja: 31 maja 2012, 12:41

Post autor: pr0t »

Najprościej:

Kod: Zaznacz cały

passwd -l kowalski

Możesz też tak jak wspomniał Yampress i do tego jeszcze jeszcze jest tcp_wrappers. Metod wiele, jak to zrobisz, zależy od Ciebie.
Awatar użytkownika
Unit
Beginner
Posty: 356
Rejestracja: 27 marca 2007, 09:39

Post autor: Unit »

W pliku masz wpisane adresy IP wszystkich maszyn np.: (maszyny.txt):
10.11.12.13
11.12.13.14

Używając pętli for:

Kod: Zaznacz cały

for host in `cat maszyny.txt`;do  ssh root@$host passwd -l kowalski; done
Co do samego blokowania konta można też użyć komend:

Kod: Zaznacz cały

usermod -L -e 1 kowalski
chage -E 0 kowalski
passwd -l kowalski
mkoscielny
Posty: 5
Rejestracja: 12 października 2013, 15:25

Post autor: mkoscielny »

Rozwiązanie w pętli bardzo fajne. Dziękuję.

A jeszcze się zapytam. Jeżeli nie ma zrobionych kluczy na serwerach tylko trzeba za każdym razem wpisywać hasło to można to zrobić automatycznie? Załóżmy, że hasło dla roota wszędzie jest takie samo.
Awatar użytkownika
Unit
Beginner
Posty: 356
Rejestracja: 27 marca 2007, 09:39

Post autor: Unit »

Na przykład użyć: expect
mkoscielny
Posty: 5
Rejestracja: 12 października 2013, 15:25

Post autor: mkoscielny »

Chyba łatwiej będzie tak:

Zainstalować sshpass i wstawić przed ssh.

Kod: Zaznacz cały

sshpass -p your_password ssh [b]użytkownik[/b]@hostname

Ale z drugiej strony nie jest to dobre rozwiązanie bo zwykle root jest zablokowany przez ssh bezpośrednio.
ODPOWIEDZ