[+] Sprawdzanie has

Ogólne pytania dotyczące systemu
torrmen
Posty: 67
Rejestracja: 04 lutego 2013, 16:42
Lokalizacja: Wrocław (głównie)

[+] Sprawdzanie hasła w pliku shadow

Post autor: torrmen »

Witam.

To mój pierwszy post więc będzie ciekawie tym bardziej, że z Linuksem dopiero zaczynam na poważnie naukę.

Mam do Was ogromną prośbę o pomoc. Na wstępie zaznaczę, że nie chodzi o łamanie hasła, próby włamania się do systemu, przechwytywanie haseł itp. sprawy, o których często można poczytać na forach gdzie ludzie usilnie błagają o pomoc z odczytaniu hasła, którego "zapomnieli". W takim razie o co mi chodzi? A no właśnie...

Mój problem wiąże się ze sprawdzeniem poprawności hasła dla danego użytkownika. Mam login i hasło danego użytkownika (hasło w formie niezaszyfrowanej). Dajmy na to, że login to "użytkownik" a hasło to "hasło" (o jakie bezpieczne). Użytkownik i hasło jest wpisane na każdym komputerze.

Czy hasło zapisane w pliku shadow (w większości dystrybucji Linuksa będzie kodowane z dodatkowo z dodatkiem soli) uwzględnia coś jeszcze? Muszę co jakiś czas logować się na komputer i wpisywać ponownie hasło. To akurat nie jest problemem ale lepiej byłoby mieć na stałe ustawiony proces, który będzie logował się na dany komputer jako root i będzie sprawdzał czy hasło zakodowane zgadza się z zapisanym w pliku z dodatkiem soli. Jeżeli nie to wyświetli mi informację o tym, że się nie zgadza.

Od razu zaznaczę, że opcja nadpisywania hasła nie wchodzi w grę!
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Proponuję zapoznać się z

Kod: Zaznacz cały

man 5 shadow
man 3 crypt
Na podstawie jawnego hasła, możesz sobie wygenerować zakodowane i porównać je z wpisem w /etc/shadow

Kod: Zaznacz cały

# mkpasswd -m SHA-512 haslo czaposolic
$6$czaposolic$yO65eWUk5ztB1g5qJrWW78M3wbzXKwYhZfItxZznDgdUecL9KVJkCvM8P4MNyvo2qoztEoBA8tu7xL.d2b9sn1
Sól możesz wyciągnąć z etc/shadow. W zależności od algorytmu kodowania dobierasz parametr -m do mkpasswd.

A tak poza tematem, to po co Ci coś takiego?
torrmen
Posty: 67
Rejestracja: 04 lutego 2013, 16:42
Lokalizacja: Wrocław (głównie)

Post autor: torrmen »

Potrzebuję sprawdzić około dwieście stacji pod względem standardowych ustawień w tym istnienia danego konkretnego użytkownika i jego hasła. Niestety ilość komputerów w zupełności wystarczy aby praca szła... powoli że to tak delikatnie ujmę.

Dziękuję za informację.

Edycja:
Wykorzystałem openssl z uwagi na małe możliwości mkpasswd ale i tak dziękuję.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2310
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

torrmen pisze:potrzebuję sprawdzić około dwustu stacji pod względem standardowych ustawień w tym istnienia danego konkretnego użytkownika i jego hasła. Niestety ilość komputerów w zupełności wystarczy aby praca szła... powoli że to tak delikatnie ujmę :(
ssh, krótka pętla for lub while i samo się zrobi :)
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Tak na marginesie - zamiast ssh w pętli, proponuję ansible. Ostatnio testuję i narzędzie jest wypasione ;) Oczywiście na jeden raz nie ma sensu tego używać, ale jeśli ktoś częściej robi coś na dużej ilości serwerów, bardzo przydatne.
torrmen
Posty: 67
Rejestracja: 04 lutego 2013, 16:42
Lokalizacja: Wrocław (głównie)

Post autor: torrmen »

Obecnie jestem na etapie pisania skryptu do powłoki który następnie będzie generował mi raport w postaci plików a te następnie wysyłał na serwer w celu zapisania z pliku informacji. Ot kilkanaście funkcji do danych rzeczy jakie ma skrypt sprawdzić lub nadpisać.

lessmian2, odnośnie ansible to o ile się nie mylę działa to na zasadzie doinstalowania na stacji dodatkowego pakietu, który będzie zwracał informacje - niestety dystrybucja Linuksa, którą będę odpytywał jest poważnie okrojona (nie ma możliwości dodania użytkownika czy hasła albo grupy, nie działają tam niektóre standardowe polecenia), więc możliwości mam niewielkie, a nie da się tam nic dodatkowo dopisać. Następny problem jest taki, że nie zawsze dane stacje są włączone więc muszę co jakiś czas je sprawdzać sygnałem ping. Jeżeli odpowiada na ping to wtedy nastąpi zalogowanie się na sprzęt jako root, pobranie skryptu z serwera i na końcu wysłania zawartości wygenerowanego pliku ze sprzętu na serwis.

Więc jak widać roboty troszkę będzie ale na bieżąco skrypt będzie za mnie dużo rzeczy odwalał.

Dziękuję wszystkim za pomoc i myślę że można zamknąć temat - no chyba, że komuś się jeszcze przyda i będzie miał podobny problem :)
ODPOWIEDZ