Strona 1 z 2

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

: 12 października 2013, 15:31
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?

: 12 października 2013, 17:04
autor: Yampress
Napisz coś więcej o tych serwerach i o tym użytkowniku. I po co chcesz mu i co blokować?

: 12 października 2013, 17:59
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ć.

: 12 października 2013, 18:21
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.

: 12 października 2013, 18:43
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.

: 12 października 2013, 18:47
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.

: 12 października 2013, 18:52
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

: 12 października 2013, 19:52
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.

: 12 października 2013, 20:06
autor: Unit
Na przykład użyć: expect

: 12 października 2013, 22:10
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.