For privacy reasons YouTube needs your permission to be loaded. For more details, please see our Polityka Prywatności.
I Accept

Bezpieczeństwo Asteriska – zahaszuj hasło punktu końcowego za pomocą md5 (md5secret)

1) Dlaczego warto to zrobić?

Bądźmy szczerzy. Korzystanie z MD5 zapewnia niewielkie lub żadne zabezpieczenia. O ile nie używasz szyfrowanych połączeń, hasło jest nadal wysyłane zwykłym tekstem. Jak dotąd znalazłem tylko jeden powód, dla którego warto używać MD5.

Po wejściu do konsoli CLI Asteriska (asterisk -r) możesz wyświetlić wszystkie hasła.

PJSIP SIP
Komendy, żeby wyświetlić informacje o użytkowniku:
pjsip show auths
pjsip show auth 100
Komendy, żeby wyświetlić informacje o użytkowniku:
sip show users
sip show user 100
Hasło tekstowe wyświetlone w CLI

Hasło tekstowe ukryte CLI

CLI wyświetli hasło (tylko pierwsze 15 znaków) lub puste pole, jeśli użyto MD5

Wyświetlenie informacji o konkretnym użytkowniku pokaże tylko, które hasło (secret lub md5secret) zostało ustawione.

2) How-to

Najpierw upewnij się, że Asterisk obsługuje funkcję MD5. Aby to zrobić, wykonaj poniższe polecenie, aby sprawdzić dostępność wspomnianej funkcji. Możesz to zrobić za pomocą polecenia powłoki.

asterisk -rx 'core show function MD5'

Powinno to wyświetlić informacje o funkcji MD5.

Ponieważ mamy wymaganą funkcję, możemy przejść do haszowania haseł. Zanim przejdziesz dalej, pamiętaj, że hasło w rzeczywistości składa się z 3 części: nazwy użytkownika, dziedziny i hasła. Hasło jest tworzone, jak pokazano poniżej:

md5secret = md5(nazwauzytkownika:dziedzina:haslo)

Aby stworzyć md5secret możesz użyć polecenia linux (podając wszystkie 3 zmienne):

echo -n "nazwauzytkownika:dziedzina:haslo" | md5sum

Na przykład, jeśli masz zmienne, takie jak:
username=100 (tł. nazwa użytkownika)
realm=asterisk (tł. dziedzina)
secret=Y0urS3cretP4ssword (tł. hasło)
haszowanie utworzy md5secret, jak poniżej:

echo -n "100:asterisk:Y0urS3cretP4ssword" | md5sum
3a4ebd8ef2dc6aad3af620447b5062fd

2.1) Urządzenie końcowe PJSIP

W urządzeniu końcowym PJSIP hasło jest przechowywane w kontekście auth punktu końcowego. Najpierw zlokalizuj hasło punktu końcowego. Domyślnie będzie się znajdować w pliku /etc/asterisk/pjsip.conf.

Następnie zaszyfruj swoje hasło. W tym przykładzie wykonamy:

echo -n "100:asterisk:password_for_100" | md5sum
# wynik to 618b6c7ef2ed8faebd5ddc0170886c1f

Następnie dokonaj dwóch zmian:

  1. Zmień auth_type z userpass (zwykły tekst) na md5
  2. Zamień linijkę z password z md5_cred jak poniżej:

Aby zastosować zmiany (niestety) musisz przeładować cały moduł PJSIP.

asterisk -rx "module reload res_pjsip.so"

Nie musisz wprowadzać żadnych zmian w swoim urządzeniu końcowym (telefonie, bramie, itp.), ponieważ hasło pozostaje takie samo. Zostało po prostu ukryte w konsoli CLI.

2.2) Urządzenie końcowe SIP

W urządzeniu końcowym SIP hasło jest przechowywane w kontekście punktu końcowego. Najpierw zlokalizuj hasło punktu końcowego. Domyślnie będzie się znajdować w pliku /etc/asterisk/sip.conf.

Następnie zaszyfruj swoje hasło. W tym przykładzie wykonamy:

echo -n "100:asterisk:password_for_100" | md5sum
# wynik to 618b6c7ef2ed8faebd5ddc0170886c1f

Następnie zamień linijkę z secret z md5secret jak poniżej:

Aby zastosować zmiany, przeładuj konfigurację SIP.

asterisk -rx "sip reload"

Nie musisz wprowadzać żadnych zmian w swoim urządzeniu końcowym (telefonie, bramie, itp.), ponieważ hasło pozostaje takie samo. Zostało po prostu ukryte w konsoli CLI.

3) Słowa przestrogi

Oto kilka rzeczy, które musisz wiedzieć!

Jeśli w konfiguracji punktu końcowego SIP (nie PJSIP) ustawiono md5secret, hasło (ang. secret) tego użytkownika zostanie zignorowane!

To prawda: nie możesz bezpośrednio odszyfrować MD5 i nie możesz odzyskać oryginalnej zawartości z hasza. Jednak przy odrobinie pracy możesz stworzyć dwa ciągi tekstowe, które będą miały ten sam hash. Możesz również znaleźć narzędzia online, które używają słownika do pobierania oryginalnego niehaszowanego ciągu tekstowego. To zapewni naszemu intruzowi nazwę użytkownika, dziedzinę i sekret oddzielone znakiem „:”.

Mimo to … uniemożliwienie każdemu zobaczenia twoich haseł w Asterisk CLI i używanie go tylko raz (podczas tworzenia punktu końcowego) wydaje się dobrą praktyką zapewniającą minimalnie większe bezpieczeństwo. Pamiętaj tylko, aby usunąć te informacje z ~/.bash_history. W przeciwnym razie wpisanie cat ~/.bash_history wyświetli wszystkie twoje hasła!

A przede wszystkim …

By Published On: 25 września, 2020Categories: Asterisk, SamouczkiTags: , 4,8 min read