Jak otrzymywać powiadomienia Discord o logowaniach do SSH?

I. Wstęp

Cześć!
Żyjemy w czasach, w których urządzenia elektroniczne są nieodłączną częścią naszego życia. O ile nie spersonalizowałeś ustawień powiadomień – otrzymujesz dziesiątki powiadomień na godzinę.
W jednym powiadomieniu ktoś napisał prywatną wiadomość, w innym dostałem dzisiejszą prognozę pogody, w kolejnym powiadomieniu informacja o nowym mailu, a w jeszcze innym, że właśnie wyszedł nowy sezon Stranger Things.

Zgodnie z punktem 6.1.5 regulaminu świadczenia usług VPS:

Użytkownik jest zobowiązany:
[…]
zapewnienia bezpieczeństwa systemu;

Z jednej strony zabezpieczenie usługi SSH za pomocą kluczy RSA oraz zmiana domyślnego portu, na którym działa usługa powinny zapewnić wystarczające bezpieczeństwo. Z drugiej strony usługa SSH sama Ci nie powie, że ktoś szpera po Twoim serwerze. Nie nie nie, z pewnością Ci nie powie.
Ktoś może siedzieć na Twoim serwerze tygodniami, a Ty nawet nie będziesz o tym wiedział!

Dlaczego więc nie wykorzystać wspaniałomyślności dzisiejszej technologii i nie stworzyć alertu, który informowałby o nowym logowaniu na serwer? Tym się dzisiaj zajmiemy!

II. Przygotowania

:warning: Poradnik z góry zakłada, że używasz systemu Ubuntu w wersji 22.04 LTS (kernel: 5.15.0-33-generic)

Będziesz potrzebować:

  • serwera
  • konta z uprawnieniami administratora (sudo)
  • od 5 do 10 minut wolnego czasu

Weź proszę pod uwagę, że jeżeli używasz innej dystrybucji Linuxa – poradnik może nie działać, bądź różnić się w zależności od wybranego systemu operacyjnego.

III. Tworzenie webhooka na Discordzie

Zacznijmy od stworzenia nowego webhooka

Kliknij ikonkę zębatki, aby otworzyć ustawienia kanału:
image

Kliknij “Integracje”:

Kliknij “Stwórz webhook”:

Uzupełnij nazwę, dodaj jakiś awatar, według uznania.

Następnie skopiuj adres URL webhooka i zachowaj go:
image

III. Magia w systemie

Zacznijmy od zaktualizowania repozytoriów i zainstalowania paczki pam.d, która odpowiada za wykonywanie zadań (tasków) przy określonych sytuacjach uwierzytelniania w systemie.

apt update && apt upgrade && apt-get install pam.d

image
image

Po pomyślnej instalacji, w lokalizacji /usr/sbin/ utwórz nowy plik. Wklej do niego niżej podany kod i nadaj mu uprawnienia wykonywalności.
image

Wklej kod i dodaj swój adres URL webhooka.

Zapisz plik i wyjdź z edytora.

#!/bin/bash
if [ "$PAM_TYPE" != "close_session" ]; then
        webhook=""
        message="Wykryto logowanie z adresu IP $PAM_RHOST na uzytkownika $PAM_USER"
        curl --silent -v \
                -H "Content-Type: application/json" \
                -X POST \
                -d "{\"content\":\"$message\"}" \
                $webhook > /dev/null 2>&1
fi
exit

Teraz, nadamy uprawnienia wykonywania.
image

Jeżeli nie otrzymałeś żadnego błędu – operacja powiodła się :slight_smile:

Teraz wystarczy dodać nowy task do PAM:

echo "session optional pam_exec.so seteuid /usr/sbin/sshdiscord" >> /etc/pam.d/sshd

Komenda ta dopisze na koniec pliku /etc/pam.d/sshd linijkę session optional pam_exec.so seteuid /usr/sbin/sshdiscord.

Gotowe!

IV. Testowanie

Jeżeli wszystko zostało skonfigurowane poprawnie – powinniśmy uzyskać następujący rezulat:

V. Sponsorzy dzisiejszego odcinka

Poradnik został zasponsorowany przeze mnie :cebula:

VI. Zakończenie

Dziękuję za kilka minut Twojej uwagi.

Jeżeli poradnik spodobał Ci się, zostaw taktyczne :heart: serducho.
Jeżeli nie spodobał Ci się, zauważyłeś błąd – poinformuj mnie :smiley:

Poradnik miesiąca: maj 2022

15 polubień

Spoko poradnik :slight_smile: