Kategoria: Bezpieczeństwo

  • WordPress i błąd „A scheduled event has failed”?

    WordPress i błąd „A scheduled event has failed”?

    Każdy administrator strony na WordPressie zna to uczucie. Logujesz się do panelu, a tam czeka na Ciebie komunikat: „A scheduled event has failed”. Serce na chwilę staje. Czy strona padła? Czy to poważna awaria?

    Spokojnie! Zanim zaczniesz panikować, weź głęboki oddech. Ten błąd, choć brzmi poważnie, rzadko oznacza katastrofę. Najczęściej jest to po prostu sygnał, że wewnętrzny mechanizm harmonogramu zadań w WordPressie nie działa optymalnie.

    W tym artykule wyjaśnimy, czym jest ten błąd, dlaczego się pojawia i jak go profesjonalnie naprawić w różnych konfiguracjach serwerowych.

    Czym jest WP-Cron?

    WordPress musi wykonywać cykliczne zadania w tle: publikować zaplanowane posty, tworzyć kopie zapasowe czy skanować witrynę w poszukiwaniu wirusów (jak w przypadku błędu wf_scan_monitor od wtyczki Wordfence). Do obsługi tych operacji używa wbudowanego mechanizmu o nazwie WP-Cron.

    Problem polega na tym, że WP-Cron nie jest prawdziwym demonem cron znanym z systemów uniksowych. To „pseudo-cron”, który ma fundamentalną wadę: uruchamia się tylko wtedy, gdy ktoś odwiedzi Twoją stronę internetową.

    • Na stronach o małym ruchu: Jeśli nikt nie wchodzi na witrynę, zadania nie są wykonywane o czasie, co prowadzi do błędów.
    • Na stronach o dużym ruchu: WP-Cron jest wywoływany przy każdym załadowaniu strony, co generuje niepotrzebne obciążenie serwera.

    W obu przypadkach rozwiązanie jest takie samo: wyłączyć wbudowany WP-Cron i zastąpić go stabilnym, systemowym zadaniem cron.

    Scenariusz 1: Pojedyncza strona WordPress

    To podstawowa i najczęstsza konfiguracja. Rozwiązanie problemu jest proste i sprowadza się do dwóch kroków.

    Krok 1: Wyłącz wbudowany mechanizm WP-Cron

    Edytuj plik wp-config.php w głównym katalogu swojej strony i dodaj poniższą linię:

    define('DISABLE_WP_CRON', true);
    

    Krok 2: Skonfiguruj systemowy cron

    Zaloguj się do swojego serwera przez SSH i wpisz crontab -e, aby edytować listę zadań systemowych. Następnie dodaj jedną z poniższych linii, która co 5 minut będzie wywoływać mechanizm crona WordPressa we właściwy sposób.

    • Metoda z wget:*/5 * * * * wget -q -O - https://twojadomena.pl/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    • Metoda z curl:*/5 * * * * curl -s https://twojadomena.pl/wp-cron.php?doing_wp_cron >/dev/null 2>&1

    Pamiętaj, aby podmienić twojadomena.pl na właściwy adres. Od teraz zadania będą wykonywane regularnie, niezależnie od ruchu na stronie.

    Scenariusz 2: Wiele stron na standardowym serwerze

    Jeśli zarządzasz wieloma stronami, dodawanie osobnej linii w crontab dla każdej z nich jest niepraktyczne i trudne w utrzymaniu. Lepszym rozwiązaniem jest stworzenie jednego skryptu, który automatycznie znajdzie wszystkie instalacje WordPressa i uruchomi dla nich zadania.

    Krok 1: Stwórz plik skryptu

    Utwórz plik, np. /usr/local/bin/run_all_wp_crons.sh, i wklej do niego poniższą zawartość. Skrypt przeszukuje katalog /var/www/ w poszukiwaniu plików wp-config.php.

    #!/bin/bash
    
    # =================================================================
    # Skrypt do uruchamiania zadań cron dla wszystkich stron WordPress
    # Zoptymalizowany dla struktury katalogów ISPConfig
    # =================================================================
    
    # Główny katalog, w którym znajdują się FAKTYCZNE pliki stron w ISPConfig
    SITES_ROOT="/var/www/clients/"
    
    # Ścieżka do interpretera PHP (może wymagać dostosowania)
    PHP_EXECUTABLE="/usr/bin/php"
    
    # Logowanie (opcjonalne, ale przydatne do debugowania)
    LOG_FILE="/var/log/wp_cron_runner.log"
    echo "Rozpoczynam uruchamianie zadań cron (ISPConfig): $(date)" >> $LOG_FILE
    
    # Znajdź wszystkie pliki wp-config.php i uruchom dla nich wp-cron.php
    find "$SITES_ROOT" -name "wp-config.php" -print0 | while IFS= read -r -d '' config_file; do
    
        # Wyodrębnij katalog, w którym znajduje się WordPress
        WP_DIR=$(dirname "$config_file")
    
        # Wyodrębnij nazwę użytkownika (np. web4) z ścieżki
        # Jest to siódmy element w ścieżce /var/www/clients/client4/web4/web/
        WP_USER=$(echo "$WP_DIR" | awk -F'/' '{print $6}')
    
        if [ -z "$WP_USER" ]; then
            echo "-> OSTRZEŻENIE: Nie udało się określić użytkownika dla: $WP_DIR" >> $LOG_FILE
            continue
        fi
    
        # Sprawdź, czy plik wp-cron.php istnieje w tym katalogu
        if [ -f "$WP_DIR/wp-cron.php" ]; then
            echo "-> Uruchamiam cron dla: $WP_DIR jako użytkownik: $WP_USER" >> $LOG_FILE
            # Uruchom wp-cron.php używając PHP CLI, przełączając się na właściwego użytkownika
            su -s /bin/sh "$WP_USER" -c "(cd '$WP_DIR' && '$PHP_EXECUTABLE' wp-cron.php)"
        else
            echo "-> OSTRZEŻENIE: Znaleziono wp-config, ale brak wp-cron.php w: $WP_DIR" >> $LOG_FILE
        fi
    
    done
    
    echo "Zakończono: $(date)" >> $LOG_FILE
    echo "---" >> $LOG_FILE

    Krok 2: Nadaj skryptowi uprawnienia do wykonania

    chmod +x /usr/local/bin/run_all_wp_crons.sh
    

    Krok 3: Stwórz jedno zadanie cron do zarządzania wszystkim

    Teraz Twój crontab -e może zawierać tylko jedną linię:

    */5 * * * * /usr/local/bin/run_all_wp_crons.sh >/dev/null 2>&1
    

    Scenariusz 3: Wiele stron z panelem ISPConfig

    Panel ISPConfig używa specyficznej struktury katalogów z dowiązaniami symbolicznymi (symlinkami), np. /var/www/twojadomena.pl wskazuje na /var/www/clients/client1/web1/. Użycie powyższego skryptu mogłoby spowodować podwójne wykonanie zadań.

    Aby tego uniknąć, należy zmodyfikować skrypt tak, by przeszukiwał tylko docelowy katalog clients.

    Krok 1: Stwórz skrypt zoptymalizowany dla ISPConfig

    Utwórz plik /usr/local/bin/run_ispconfig_crons.sh. Zwróć uwagę na zmianę w zmiennej SITES_ROOT.

    #!/bin/bash
    
    # Skrypt do uruchamiania zadań cron dla wszystkich stron WordPress
    # Zoptymalizowany dla struktury katalogów ISPConfig
    
    # Przeszukujemy tylko katalog z faktycznymi plikami stron
    SITES_ROOT="/var/www/clients/"
    
    # Ścieżka do interpretera PHP
    PHP_EXECUTABLE="/usr/bin/php"
    
    # Opcjonalny plik logu do śledzenia postępów
    LOG_FILE="/var/log/wp_cron_runner.log"
    echo "Rozpoczynam uruchamianie zadań cron (ISPConfig): $(date)" >> $LOG_FILE
    
    find "$SITES_ROOT" -name "wp-config.php" -print0 | while IFS= read -r -d '' config_file; do
        
        WP_DIR=$(dirname "$config_file")
    
        if [ -f "$WP_DIR/wp-cron.php" ]; then
            echo "-> Uruchamiam cron dla: $WP_DIR" >> $LOG_FILE
            (cd "$WP_DIR" && "$PHP_EXECUTABLE" wp-cron.php)
        fi
    
    done
    
    echo "Zakończono: $(date)" >> $LOG_FILE
    echo "---" >> $LOG_FILE
    

    Krok 2 i 3 są analogiczne jak w scenariuszu 2: nadaj skryptowi uprawnienia (chmod +x) i dodaj jedną linię do crontab -e, wskazując na nowy plik skryptu.

    Podsumowanie

    Błąd „A scheduled event has failed” to nie powód do paniki, a raczej zaproszenie do ulepszenia swojej infrastruktury. To szansa, by przejść z zawodnego, wbudowanego mechanizmu WordPressa na solidne, profesjonalne rozwiązanie systemowe, które gwarantuje stabilność i wydajność.

    Niezależnie od konfiguracji serwera, teraz masz narzędzia, by spać spokojnie, wiedząc, że Twoje zaplanowane zadania wykonują się jak w szwajcarskim zegarku.

  • Błąd Change ARI Username Password FreePBX Asterisk

    Błąd Change ARI Username Password FreePBX Asterisk

    Na początku 2023 roku wzrosła liczba ataków na systemy FreePBX Asterisk. Luką którą wykorzystują włamywacze jest interfejs ARI. Aby uzyskać dostęp do interfejsu ARI, należy znać nazwę użytkownika ARI i jego hasło, ale również dane logowania do interfejsu administracyjnego FreePBX. Dlatego tak ważne stosowanie jest trudnych do złamania haseł. W nowej wersji FreePBX pokazuje nam się błąd: Change ARI Username Password

    Użytkownik ARI i jego hasło tworzony jest podczas instalacji FreePBX. Nazwa użytkownika składa się z około 15 losowych znaków, a hasło z około 30 losowych znaków. Twórcy systemu FreePBX odkryli, że z jakiegoś powodu na niektórych systemach nazwa użytkownika i hasło nie są unikatowe.

    Nie wygląda to na błąd samego Asterisk, czy FreePBX, więc ich wersje nie mają tutaj znaczenia. Jeśli nastąpił wyciek danych ARI, włamywacz może uzyskać dostęp do naszego systemu FreePBX niezależnie od jego wersji.

    Jak pozbyć się błędu Change ARI Username Password

    Change ARI Username Password

    Aby załatać dziurę bezpieczeństwa, musimy utworzyć nowego użytkownika ARI i utworzyć dla niego nowe hasło. Aby utworzyć nowego użytkownika ARI, zaloguj się do swojego systemu FreePBX i wpisz komendę:

    W miejsce LOSOWE_ZNAKI wpisz 15 losowych alfanumerycznych znaków. Następnie utwórz nowe hasło komendą:

    W miejsce LOSOWE_HASLO wpisz 30 losowych alfanumerycznych znaków. Następnie musimy przeładować ustawienia komendą:

     

    Na koniec wystarczy zrestartować FreePBX komendą:

     

    Po restarcie komunikat o błędzie Change ARI Username Password powinien zniknąć.

    FreePBX No errors

    Podsumowanie

    FreePBX to niezwykle bezpieczny system. Jednak nawet najbezpieczniejszy system przy stosowaniu łatwych do złamania haseł i nieodpowiedniej konfiguracji będzie podatny na włamania. 

  • FreePBX Kopia bezpieczeństwa Backup tworzenie i przywracanie część 4

    FreePBX Kopia bezpieczeństwa Backup tworzenie i przywracanie część 4

    Jak ważna jest kopia bezpieczeństwa przekonał się ten, kto choć raz w życiu musiał odzyskiwać pliki z uszkodzonych nośników danych. Administratorzy serwerów dzielą się na dwa rodzaje: Ci którzy wykonują kopie bezpieczeństwa, i Ci którzy będą wykonywać kopie bezpieczeństwa. W tym artykule nauczymy się tworzyć backup lokalnie, na serwerze FTP, na DropBox i Amazon S3, oraz przesyłać je na adres email i poprzez SSH.

    Settings – Filestore

    Na początek przejdźmy do okna SettingFilestore. W tym oknie mamy kilka zakładek, w zależności od tego gdzie chcemy umieszczać pliki z naszymi kopiami zapasowymi.

    Settings – Filestore – Local

    Na początek zajmiemy się tworzeniem backup lokalnie na dysku twardym na którym masz zainstalowany system FreePBX. Kopia lokalna przydaje się wtedy, gdy chcesz przetestować różne ustawienia FreePBX i boisz się, że po zmianie ustawień Twoja centralka telefoniczna przestanie działać poprawnie. Pamiętaj jednak, żeby poza kopiami lokalnymi, tworzyć również kopie bezpieczeństwa przesyłane zdalnie na serwer FTP, Dropbox itp. Gdyż lokalna kopia bezpieczeństwa będzie bezużyteczna, gdy dysk twardy na którym zainstalowany jest FreePBX ulegnie awarii.

    Przejdź do zakładki Local i kliknij przycisk Add local path. Pojawi się nowe okno, gdzie musisz wpisać: 

    • Path name – Nazwa ustawień dla Twojego Filestore. Może być dowolna, na przykład Kopia lokalna
    • Description – Dowolny opis, na przykład Lokalna kopia na dysku twardym
    • Path –  Ścieżka na dysku twardym, gdzie będą przechowywane kopie bezpieczeństwa. Jako ścieżkę, możemy wykorzystać tutaj zmienne proponowane przez FreePBX. Na przykład zmienna __ASTSPOOLDIR__ (pamietaj, że przed zmienną i na końcu są po dwa znaki podkreślenia) oznacza folder /var/spool/asterisk/ i na końcu możemy dopisać backup, żebyśmy wiedzieli, że pliki w tym folderze to kopia bezpieczeństwa. Czyli wpis __ASTSPOOLDIR__/backup oznacza dokładnie to samo co /var/spool/asterisk/backup
    Na koniec nie zatwierdź zmiany przyciskiem Submit.

    Settings – Filestore – FTP

    Jeśli masz dostęp do jakiegoś serwera FTP, koniecznie skorzystaj z opcji wysyłania kopii bezpieczeństwa na ten serwer. To znacznie podnosi bezpieczeństwo Twojej centralki telefonicznej FreePBX, gdyż jeśli wykonujesz kopię zapasową wyłącznie lokalnie, to w razie awarii dysku twardego na którym zainstalowany jest FreePBX, wszystkie lokalne kopie bezpieczeństwa również zostaną utracone. Jeśli nie wiesz jak samemu utworzyć serwer FTP w domu, możesz wykupić niedrogo miejsce na serwerze w chmurze, na przykład na Zetohosting gdzie w ramach hostingu otrzymasz również dostęp do serwera FTP.

    Najpierw w oknie Filestore w zakładce FTP wpiszemy ustawienia które pozwolą nam zalogować się na serwer. Kliknij przycisk Add FTP Instance i w nowym oknie wypełnij wymagane pola:

    • Enabled – Tym przyciskiem włączasz i wyłączasz magazyn danych
    • Server Name – Dowolna nazwa Twojego magazynu danych
    • Description – Dowolny opis
    • Hostname – Adres IP Twojego serwera FTP, lub nazwa domeny
    • Port – Port na którym pracuje twój serwer FTP
    • Use TLS – Jeśli Twój serwer FTP wymaga szyfrowania SSL TLS, włacz tę opcję
    • Username – Nazwa użytkownika serwera FTP
    • Password – Hasło
    • Filesystem type – Jeśli wiesz na jakim systemie operacyjnym pracuje Twój serwer FTP, wybierz odpowiednią opcję. Jeśli nie jesteś pewien, zaznacz Auto.
    • Path – Ścieżka dostępu, gdzie będą zapisywane kopie zapasowe. Uwaga: podaj pełną ścieżkę dostępu (czyli zaczynającą się od znaku /), inaczej Twój Filestore nie będzie działał.
    • Transfer Mode – Wybierz tryb Aktywny, lub Pasywny swojego serwera FTP
    • Timeout – Czas bezczynności w sekundach, po którym nastąpi zerwanie połączenia z serwer FTP.

    Wszystkie potrzebne do skonfigurowania połączenia FTP dane, powinieneś otrzymać od swojego dostawcy serwera FTP.

    Admin – Backup & Restore

    Gdy mamy już utworzone miejsce gdzie będziemy zapisywać pliki, możemy przejść do okna AdminBackup & Restore i w zakładce Backup kliknij Add Backup, aby skonfigurować nowy backup. Do swoich potrzeb w przypadku FreePBX ustawiam zazwyczaj tworzenie kopii miesięcznych i tygodniowych i ustawiam, by zachowywane były trzy ostatnie kopie tygodniowe i po jednej z ostatnich trzech miesięcy. Ale oczywiście nic nie stoi na przeszkodzie byś tworzył kopie codziennie, lub co kwartał. Wszystko zależy od tego ile miejsca na dysku twardym możesz przeznaczyć na kopie bezpieczeństwa. Na początek ustawimy miesięczne backupy. 

    Basic Information – Podstawowe informacje

    • Backup name – Dowolna nazwa, na przykład Kopie miesieczne  (Warto wystrzegać się w nazwie polskich znaków. Dlaczego? Wyjaśnię za chwilę.)
    • Backup Description – Dowolny opis, na przykład Zachowaj kopie z ostatnich 3 miesięcy.
    • Backup Items – wybierasz które moduły FreePBX mają być zachowane w kopii bezpieczeństwa. Na początek dobrym wyborem będzie tworzenie kopii zapasowej wszystkich modułów. Nic więc tam nie zmieniaj.
    • Custom Files – Jeśli skopiowałeś do swojego FreePBX jakieś pliki ręcznie (na przykład przez FTP) i są one przechowywane poza folderami FreePBX Asterisk, a chcesz by były one również zachowane na kopii bezpieczeństwa, musisz powiedzieć FreePBX gdzie one się znajdują. Jeśli nie kopiowałeś żadnych dodatkowych plików do FreePBX, nie musisz się tym przejmować.

    Notifications – Powiadomienia

    • Notification Email – Twój adres email na które będą wysyłane powiadomienia o zakończonym backup, lub błędach podczas tworzenia kopii bezpieczeństwa.
    • Inline Logs – umieszcza w wiadomości email logi z przebiegu wykonania backup
    • Email Type – Wysyła powiadomienie email tylko w przypadku jeśli tworzenie kopii zakończyło się sukcesem (Success), zakończyło się błędem (Failure), lub też wysyłanie powiadomienia mailem w obu przypadkach (Both)

    Storage – Magazyn na kopie

    • Storage location – Tutaj wybieramy miejsce – które utworzyliśmy wcześniej w oknie Filestore – gdzie będą przechowywane nasze kopie bezpieczeństwa. W naszym przypadku będzie to Kopia lokalna
    • Append Backup Name as a directory to the Storage path – Dodaj nazwę kopii zapasowej, to ścieżki gdzie będą zapisywane pliki. Jeśli włączysz tą opcję, to w katalogu gdzie będą zapisywane nasze kopie (W naszym przypadku będzie to /var/spool/asterisk/backup/) utworzy się dodatkowy katalog z nazwą naszej kopii, czyli w tym przypadku będzie to  Kopie miesieczne. Pozwoli nam to zachować porządek w kopiach zapasowych i w razie awarii łatwiej znaleźć kopię na której nam zależy. Dlatego też wspomniałem wcześniej, by w nazwie unikać polskich znaków diakrytycznych, by uniknąć problemów z kodowaniem znaków.

    Schedule and Maintenance – Harmonogram i zarządzanie

    Tutaj ustawiamy, czy chcemy by kipie wykonywane były automatycznie w zaprogramowanych przez nas odstępach czasu.

    • Enabled – włączenie harmonogramu kopii zapasowych
    • Scheduling – Ustawienie częstotliwości wykonywania kopii. Możemy ustawić wykonywanie backup co godzinę, codziennie, raz w tygodniu, co miesiąc, lub co rok.

    Maintenance – Zarządzanie

    W tej sekcji ustawiamy ile kopii chcemy zachować na dysku i kiedy niepotrzebne kopie mają być usuwane.

    • Delete After Runs – Ustawiamy tutaj jaką liczbę ostatnich kopii chcemy zachować na dysku. W naszym przypadku chcemy zachować 3 ostatnie kopie. Wszystkie kopie powyżej trzech będą usuwane. Jeśli ustawimy 0, to kopie nie będą kasowane w ogóle.
    • Delete After Days – Możemy tutaj ustawić również czas, po jakim kopie będą usuwane, niezależnie od tego ile kopii na dysku posiadamy. Sugeruję ustawić tutaj Unlimited, czyli bez ograniczeń czasowych.

    Uwaga: Jeśli ustawimy w pierwszej opcji 0, a w drugiej Unlimited, to kopie nigdy nie będą kasowane. Jako że kopie zapasowe mogą być pokaźnych rozmiarów, może się okazać, że szybko zapełnimy sobie miejsce na dysku. 

    Hooks

    W tym miejscu możemy ustawić, co komputer ma robić przed, lub po wykonaniu lub odtworzeniu kopii. Możesz na przykład po wykonaniu kopii kompresować je, lub przesyłać na serwer zdalny. Możesz też kopiować wykonane backupy na podłączony pendrive – w tym celu w tym oknie możesz go zamontować przed wykonaniem kopii, by  możliwe było jej skopiowanie. Jeśli do tej pory nie pisałeś skryptów w systemie Linux, nie musisz sobie tym zaprzątać głowy. 

    Warm Spare

    Jeśli nasza centralka telefoniczna FreePBX obsługuje dużą firmę i nie możecie pozwolić sobie na żadne przestoje, można zainstalować drugi serwer FreePBX, który będzie synchronizowany z główną centralką, aby w momencie awarii móc szybko przełączyć naszą telefonię na zapasowy serwer FreePBX. Jeśli nie masz dwóch serwerów FreePBX, możesz pominąć te opcje.

    Save – Zapisanie ustawień

    Na koniec zapisujemy nasze ustawienia przyciskiem Save.

    Ręczne wykonanie kopii bezpieczeństwa

    Po zapisaniu ustawień, możesz sprawdzić, czy kopia wykonuje się poprawnie i uruchomić wykonanie backup ręcznie. W tym celu wciśnij przycisk strzałki, jak pokazano na poniższym obrazku.

    Jeśli wszystkie ustawienia są poprawne, powinieneś w logach programu zobaczyć komunikat: Finished created backup file

    Aby się dodatkowo upewnić, że kopia zapasowa została utworzona, możesz zalogować się do konsoli FreePBX przez SSH i sprawdzić ścieżkę zapisu kopii zapasowych – w naszym przypadku będzie to /var/spool/asterisk/backup/

    Przejdź do katalogu kopii zapasowych komendą cd /var/spool/asterisk/backup/ i wyświetl zawartość katalogu: ls Jak widzisz na załączonej ilustracji, utworzył się dodatkowy podfolder Kopie-miesieczne. Otwórz ten folder komendą cd Kopie-miesieczne i wyświetl zawartość tego katalogu komendą ls. Jak widzisz, wewnątrz tego katalogu utworzyła się poprawnie kopia zapasowa.

    Admin – Backup & Restore – Restore – Przywracanie kopii bezpieczeństwa

    Po utworzeniu naszej pierwszej kopii, powinniśmy móc ją zobaczyć w zakładce Restore. Przy każdej kopii zapasowej jest okno Actions, gdzie możemy przywrócić kopię zapasową, pobrać kopię na dysk twardy naszego komputera, lub usunąć kopię. Po pobraniu kopii na dysk twardy komputera, w razie problemów można ją ponownie wgrać na serwer w oknie Upload your restore files i klikając na przycisk Click to upload a backup file.

    Aby skorzystać z opcji Restore from the cloud, musimy najpierw skonfigurować Filestore, aby mieć dostęp do usług zapisu plików w chmurze.

    Podsumowanie

    Wiesz już jak automatycznie tworzyć i przywracać kopie zapasowe zarówno na dysku lokalnym, jak i na zdalnym serwerze FTP. Teraz w razie jakiejkolwiek awarii możesz łatwo przywrócić do działania swoją centralkę telefoniczną FreePBX.

  • FreePBX SSL szyfrowanie HTTPS i Let’s Encrypt część 3

    FreePBX SSL szyfrowanie HTTPS i Let’s Encrypt część 3

    Strona administracyjna FreePBX domyślnie działa na nieszyfrowanym porcie 80 (http). Oznacza to że wszystkie dane włącznie z loginami i hasłami są przesyłane otwartym tekstem, łatwym do przechwycenia nawet przez amatorskich hakerów. O ile mamy zamiar administrować naszą centralką telefoniczną wyłącznie w sieci lokalnej LAN nie jest to wielkim problemem (o ile do naszej sieci LAN nie mają dostępu osoby postronne), o tyle jeśli mamy zamiar mieć dostęp do kokpitu FreePBX z Internetu, konieczne powinniśmy zaszyfrować przesyłane dane przy pomocy darmowego klucza SSL Let’s Encrypt korzystając z szyfrowanego protokołu HTTPS.

    Ponadto niektóre usługi nie będą działać bez zainstalowanego certyfikatu SSL, jak na przykład: WebRTC, Sangoma Zulu, Sangoma Connect, czy Clearly Anywhere

    Wstępne ustawienia

    Na początek przejdź do okna Admin i System Admin, na następnie z prawego menu wybierz Port Management

    Jak możesz zauważyć na poniższej ilustracji, opcja Let’s Encrypt jest wyłączona. Jednak gdy spróbujesz ją włączyć przełączając komunikację na port 80, otrzymasz błąd, gdyż z portu 80 korzysta już usługa Admin. Aby naprawić ten błąd, zmień port usługi Admin na jakiś inny, na przykład 8080, i spróbuj ponownie włączyć Let’s encrypt. Aby zatwierdzić zmiany wciśnij Update Now.

    Connectivity – Firewall – Services

    Przejdź do okna ConnectivityFirewall, a następnie z wysuwanego prawego menu przejdź do Services. W tym oknie możesz zobaczyć, że funkcją Let’s Encrypt zarządza Responsive LetsEncrypt Rules. Teoretycznie możesz tą funkcję wyłączyć i zarządzać usługą Let’s Encrypt ręcznie, ale lepszym rozwiązaniem jest pozostawienie zarządzania tą usługą Responsive LetsEncrypt Rules.

    Responsive LetsEncrypt Rules

    Admin – Certificate Management

    Przejdź do Admin, a następnie do Certificate Management, aby zarządzać certyfikatami. Na poniższej ilustracji możesz zobaczyć, że w tej chwili masz zainstalowany samopodpisany certyfikat. Aby zainstalować nowy certyfikat Let’s Encrypt, kliknij New Certificate, a następnie Generate Let’s Encrypt Certificate

    W nowootwartym oknie uzupełnij poszczególne pola:

    • Certificate Host Name – jeśli masz wykupioną własną domenę, wpisz ją w tym polu.
    • Owners Email – wpisz swój adres email
    • Country – Kraj
    • Alternative Names – Alternatywne domeny FQDN, które muszą być poprawnie skonfigurowane na serwerach DNS. Jeśli nie wiesz co tam wpisać, pozostaw to pole puste.
    • – port na którym Let’s Encrypt będzie automatycznie odnawiał certyfikat
    • Remove DST Root CA X3 – Usuwa z klucza certyfikat X3, który może powodować problemy na starszych przeglądarkach.
    Na koniec utwórz certyfikat przyciskiem Generate Certificate

    Gdy otrzymasz informację o stworzeniu certyfikatu, musisz jeszcze wybrać go jako domyślny certyfikat dla Twojej centralki. W tym celu kliknij zielony ptaszek w oknie Default 

    Aby dokończyć instalację certyfikatu, przejdź do okna Admin, System Admin i z menu po prawej stronie wybierz HTTPS Setup i przejdź do zakładki Settings. W oknie Certificate Settings wybierz swój nowo utworzony certyfikat i kliknij Install. Po zainstalowaniu certyfikatu SSL musisz jeszcze zrestartować serwer Apache przyciskiem Save and Restart Apache.

    Po odświeżeniu strony, przy pasku adresu powinniśmy mieć już informację, że nasz certyfikat jest poprawny i połączenie z nasza stroną jest szyfrowane.

    Podsumowanie

    Dbanie o bezpieczeństwo Twoich serwerów powinno być Twoim priorytetem. Dzięki Let’s Encrypt możesz za darmo zabezpieczyć swoją centralkę telefoniczną FreePBX Asterisk bezpiecznym protokołem SSL TLS.

  • Luki bezpieczeństwa w OpenLiteSpeed i LiteSpeed Enterprise

    Luki bezpieczeństwa w OpenLiteSpeed i LiteSpeed Enterprise

    Programiści z LiteSpeed Technologies zawsze poważnie podchodzili do problemów bezpieczeństwa swoich produktów. Dlatego też, gdy tylko zostały wykryte luki bezpieczeństwa w OpenLiteSpeed i LiteSpeed Enterprise, natychmiast zabrano się do pracy, by je załatać. Luki zostały wykryte przez zespół Unit 42 z Palo Alto Networks i zgłoszone zespołowi z LiteSpeed Technologies.

    Chronologia wydarzeń

    • 4 Października 2022 Unit 42 Team wykrywa luki bezpieczeństwa i powiadamia programistów OpenLiteSpeed i LiteSpeed Enterprise o zagrożeniach
    • 8 Października 2022 programiści LiteSpeed łatają luki, sprawdzając jednocześnie, czy poprawki nie mają negatywnego wpływu na działanie innych funkcji serwera.
    • 12 Października 2022 luki zostały załatane w wersji LiteSpeed Enterprise 6.0.12 build 10
    • 18 Października 2022 luki zostały załatane w wersji OpenLiteSpeed v1.7.16 build 1
    • 20 Października 2022 Zaktualizowany obrazy Docker dla OpenLiteSpeed i LiteSpeed Enterprise

    Szczegóły

    Luki bezpieczeństwa uzyskały oznaczenia:

    • CVE-2022-0072
    • CVE-2022-0073
    • CVE-2022-0074

    CVE-2022-0072

    Luka umożliwiająca atak Directory Traversal – średnie zagrożenie. Luka ta mogła pozwolić osobie atakującej na obejście zabezpieczeń i uzyskanie dostępu do chronionych plików systemowych. Aby atakujący mógł skorzystać z tej luki, musi on znać login i hasło do konsoli WebAdmin. Ponadto, aby atak mógł zakończyć się sukcesem, atakujący musi mieć prawo zapisu do katalogu /usr/local/lsws/admin/html Prawo zapisu do tego katalogu powinien mieć wyłącznie użytkownik root Jeśli jest inaczej, to koniecznie napraw uprawnienia i prawa właściciela tego katalogu.

    CVE-2022-0073

    Atak Remote Code Execution – duże zagrożenie. Aby atak był możliwy, atakujący musi być zalogowany do konsoli WebAdmin. Może on wówczas wstrzyknąć kod umożliwiający zdalne wykonanie złośliwego kodu.

    CVE-2022-0074

    Eskalacja uprawnień – duże zagrożenie. Luka ta występowała jedynie w obrazie Dockera serwera OpenLiteSpeed. Problem dotyczył błędnej konfiguracji zmiennej środowiskowej PATH, gdy użytkownikiem jest nobody. Luka ta wykorzystuje „CWE untrusted search path”. Aby można było skorzystać z tej luki, również wymagane są dane logowania do WebAdmin, ale w tym przypadku problem dotyczy jedynie OpenLiteSpeed i nie występuje w wersji LiteSpeed Enterprise. Aby atak mógł się udać, musi być spełnione kilka warunków. Przede wszystkim, właścicielem katalogu /usr/local/bin musi być użytkownik nobody. W przypadku poprawnej konfiguracji serwera, gdy właścicielem katalogu jest root, atak nie powiedzie się. Ta luka to tak naprawdę wina Dockera, a nie LiteSpeed.

    Naprawa luki bezpieczeństwa

    W przypadku wersji Docker, jeśli masz możliwość edycji katalogu /usr/local/bin, możesz zaktualizować obraz OpenLiteSpeed do najnowszej wersji. Jeśli instalacje były wykonywane ręcznie, zalecana jest ręczna aktualizacja serwera przy pomocy skryptu: $LSWS_PATH/admin/misc/lsup.sh. Instalacje wykonane przy pomocy dowolnego managera pakietów (apt, yum itd) będą załatane automatycznie przy okazji standardowego upgrade pakietów.

    Podsumowanie

    Chroń dostęp do panelu WebAdmin

    Panel WebAdmin OpenLiteSpeed Luki bezpieczeństwa

    Żaden z tych ataków nie powiedzie się, jeśli atakujący nie uzyska dostępu do konsoli WebAdmin. Dlatego tak ważne jest, aby nie udostępniać osobom postronnym naszego loginu i hasła do panelu WebAdmin. Ważne jest również stosowanie trudnego do złamania metodą brute force hasła. Jeśli nie musimy logować się do panelu WebAdmin z internetu, warto zablokować port 7080 w Firewall. Dbaj także o aktualizowanie swojego serwera do najnowszej dostępnej wersji.

  • Phishing. Dlaczego firmy padają ofiarą ich ataków?

    Phishing. Dlaczego firmy padają ofiarą ich ataków?

    Z biegiem czasu ataki phishing stają się coraz bardziej wyrafinowane. Dzięki akcji informacyjnej w telewizji coraz więcej osób zdawało sobie sprawę z zagrożeń i wiedziało na co zwracać uwagę po otrzymaniu wiadomości z niepewnych źródeł. Jednak przestępcy również cały czas dostosowują metody ataków do zmieniających się okoliczności i nadal wiele osób pada ofiarą tego typu ataków, tracąc poufne, lub prywatne dane, a nawet oszczędności. Rzecz jest jeszcze poważniejsza jeśli mówimy o atakach phishing na firmy, które mają w bazach danych poufne dane swoich klientów. Jak możliwe że firmy nadal padają ofiarami takich ataków?

    Phishing

    Brak szkoleń bezpieczeństwa pracowników

    Szkolenie pracowników, to koszt dla firmy. Dlatego też w ramach oszczędności okazuje się, że właściciele firm zarzucają szkolenia swoich pracowników w dziedzinie cyberbezpieczeństwa. Nieprzeszkoleni pracownicy nie wiedzą jak unikać coraz to nowych zagrożeń bezpieczeństwa. Bez odpowiednich szkoleń mogą nie zdawać sobie sprawy jak poważnym zagrożeniem dla firmy może być phishing, jak go wykrywać i jak się przed nim chronić. Brak szkoleń dla pracowników może skończyć się katastrofą dla przedsiębiorstwa i sprawić firmie wiele problemów; w tym prawnych. Szkolenia są istotne, by wiedzieć jak w ogóle rozpoznać wiadomość phishing.

    Tak długo jak właściciele firm będą ignorować problem braku szkoleń pracowników, tak długo firmy będą padać ofiarami ataków phishing. Koszt poniesiony na szkolenia z zakresu cyberprzestępstw, może zwrócić się w przyszłości, a ignorowanie tego typu zagrożeń może zemścić się w przyszłości.

    Problem dotyczy nawet w większym stopniu małych firm, niż dużych przedsiębiorstw, gdyż duże firmy mogą zazwyczaj przeznaczyć większe fundusze na szkolenia, gdyż w przeliczeniu na jednego pracownika koszt takiego szkolenia będzie mniejszy niż w niewielkich, kilku, czy kilkunastoosobowych firmach. Ponadto infrastruktura informatyczna dużych firm jest z reguły dużo lepiej zabezpieczona przed cyberatakami, niż w małych przedsiębiorstwach.

    Pieniądze

    Cyberprzestępcy zarabiają pieniądze na atakach phishing. Nierzadko duże pieniądze. Zdobycie poufnych danych, na przykład danych logowania do stron bankowych, od nieświadomych pracowników jest o wiele łatwiejsze niż włamywanie się bezpośrednio na stronę banków. Dlatego też pomimo upływu czasu, ataki phishing nadal mają się świetnie. Cały czas pojawiają się nowe, coraz bardziej wyrafinowane metody ataków phishing.

    Cyberprzestępcy często są w stanie zainwestować spore fundusze w zakup oprogramowania i sprzętu do przeprowadzania tego typu ataków. To, w połączeniu z nieświadomością nieprzeszkolonych pracowników firmy sprawia, że każdego roku zostaje wykrytych dziesiątki tysięcy stron wyłudzających dane. Według The Anty Phishing Working Group, w pierwszym kwartale 2022 roku wykryto ponad milion ataków phishing. W marcu 2022 odkryto ponad 384 tysiące stron wyłudzających dane. To naprawdę poważny problem dla osób prywatnych i jeszcze większy problem dla firm.

    Phishing attacks

    Nieostrożni pracownicy

    Czasami to nie sama firma ponosi odpowiedzialność za padanie ofiarą phishing, ale niefrasobliwość i nieostrożność poszczególnych pracowników, nawet pomimo przeprowadzania odpowiednich szkoleń. Klikanie linków i wprowadzanie poufnych danych na stronach internetowych bez zastanowienia może skutkować wyciekiem danych logowania. Każdy pracownik mający w pracy dostęp do stron internetowych może paść ofiarą phishingu. 

    Łatwy dostęp do oprogramowania dla przestępców

    Dawniej jedynie garstka hackerów na świecie posiadała umiejętności, by napisać oprogramowanie do przeprowadzania skutecznych ataków phishing. Dziś w dobie wszechobecnego internetu, przy odpowiedniej ilości gotówki przestępcy są w stanie bez problemu nabyć profesjonalne narzędzia i oprogramowanie do przeprowadzania ataków phishing. Dlatego też liczba tego ataków z roku na rok rośnie.

    Firmy szukają oszczędności

    Ostatnie lata 2020 – 2022 (pandemia koronawirusa, wysokie ceny energii) nie były łatwe dla przedsiębiorców. Nic więc dziwnego, że firmy szukając oszczędności zaciskają pasa i rezygnują ze szkoleń pracowników. Jednak oszczędzanie na cyberbezpieczeństwie firmy może zemścić się w przyszłości.

    Podsumowanie

    Problem ataków phishing zwłaszcza na firmy z roku na rok rośnie, a ich metody są coraz bardziej wyrafinowane. Dlatego dbanie o zabezpieczenie danych firmowych i poufnych danych naszych klientów jest niezmiernie ważne. Dlatego niezmiernie ważne jest profesjonalne szkolenie pracowników biurowych z zakresu bezpieczeństwa. Takie szkolenia oferuje wiele firm, jak Network Masters, czy Securitum, zarówno on-line, jak i stacjonarnie. Niezwykle istotne jest też odpowiednie zabezpieczenie samej infrastruktury informatycznej naszej firmy. Dobrej jakości FireWall potrafi automatycznie wykryć i zablokować wiele typów ataków na systemy komputerowe naszej firmy, w tym phishing.