Jak otrzymywać powiadomienia Discord o logowaniach do SSH?

Poradniki
discord, poradnik-miesiąca
Axerr
Axerr

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

⚠️ 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|515x286, 50%

Kliknij "Integracje": image|690x347, 50%

Kliknij "Stwórz webhook": image|690x298, 50%

Uzupełnij nazwę, dodaj jakiś awatar, według uznania. image|690x403, 50%

Następnie skopiuj adres URL webhooka i zachowaj go: image|650x234, 50%

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|653x76 image|643x80

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|397x81

Wklej kod i dodaj swój adres URL webhooka. image|690x246, 75%

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|456x65

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. image|690x62

Gotowe!

IV. Testowanie

Jeżeli wszystko zostało skonfigurowane poprawnie -- powinniśmy uzyskać następujący rezulat: image|690x241

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 ❤️ serducho. Jeżeli nie spodobał Ci się, zauważyłeś błąd -- poinformuj mnie :D

|84x126Poradnik miesiąca: maj 2022

Ksysiupeel
Ksysiupeel

Spoko poradnik :)