Pierwsze kroki
Czym jest File Sentinel?
File Sentinel pilnuje plików Twoich stron internetowych. Zapamiętuje, jak wygląda każdy plik, i przy każdym skanie pokazuje, co zostało dodane, zmienione lub usunięte, więc podrzucony backdoor albo wstrzyknięta linijka kodu nie pozostaną niezauważone.
To aplikacja instalowana u Ciebie: działa na Twoim hostingu, trzyma dane we własnej bazie MySQL i niczego nam nie wysyła. Nie jest związana z żadnym CMS-em, więc sprawdzi się przy WordPressie, Joomli, Drupalu, sklepach, ręcznie pisanym PHP i każdej innej stronie złożonej z plików. Nie potrzeba dostępu root ani wiersza poleceń.
Co możesz dzięki niej zrobić
- Wykrywać zmiany. Skanuj wybrane foldery ręcznie lub automatycznie i oglądaj dodane, zmodyfikowane i usunięte pliki oraz zmiany uprawnień, razem z historią, różnicami i przywróceniem wcześniejszej wersji jednym kliknięciem.
- Wychwytywać złośliwy kod. Wbudowane i własne wzorce webshelli sprawdzają nowe i zmienione pliki PHP, a opcjonalny antywirus (ClamAV na Twoim serwerze lub w Dockerze albo sprawdzanie skrótów w VirusTotal / MetaDefender) bada same pliki.
- Porównywać z wersją fabryczną. Sprawdź witrynę WordPress, Joomla lub Drupal, wtyczkę albo motyw z oficjalnymi sumami kontrolnymi wybranej wersji albo z własną, zatwierdzoną kopią.
- Trzymać wiarygodny punkt odniesienia poza serwerem. Pobieraj snapshoty i otrzymuj raporty e-mail ze skrótem, którego atakujący na serwerze nie może przepisać.
- Reagować. Przenieś podejrzany plik do kwarantanny jednym kliknięciem, przywróć go, jeśli to był fałszywy alarm, a gdy zagrożenie jest prawdziwe, skorzystaj z przewodnika „Po włamaniu”.
- Być na bieżąco. Raporty e-mail i alerty antywirusowe z rozsądnymi limitami oraz pulpit, który jednym zdaniem mówi, czy wszystko jest w porządku.

Jak to działa
Działają razem dwie warstwy: wykrywanie zmian (zawsze włączone) i antywirus (opcjonalny, silnik wybierasz sam).
- 1Skanowane foldery. Wskazujesz File Sentinel folder, na przykład cały katalog WordPressa. Każdy taki folder to „skanowany folder”.
- 2Pierwszy skan = punkt odniesienia. Pierwszy skan zapisuje każdy plik wraz z sumą kontrolną SHA-256 i uprawnieniami. To stan bazowy: aplikacja zakłada, że w tym momencie pliki są w porządku.
- 3Kolejne skany = różnice. Każdy następny skan porównuje dysk z poprzednim stanem i zapisuje zdarzenia: dodany, zmodyfikowany, usunięty i zmiana uprawnień.
- 4Istotność. Każde zdarzenie ma swoją istotność. Nowe i zmodyfikowane pliki PHP są dodatkowo sprawdzane wbudowanymi heurystykami i sygnaturami webshelli: dopasowanie czyni zdarzenie krytycznym lub ostrzeżeniem; zwykłe zmiany mają poziom informacja.
- 5Ty decydujesz. Zmianę, którą wprowadziłeś sam, oznaczasz jako uzasadnioną, a nowy stan staje się punktem odniesienia. Wszystko podejrzane możesz porównać z oficjalnym wydaniem, sprawdzić antywirusem albo odizolować w kwarantannie.
Dwa sposoby wykrycia problemu
| Metoda | Co Ci mówi | Czy wymaga punktu odniesienia? |
|---|---|---|
| Skan zmian | Coś różni się od ostatniego znanego stanu | Tak, własny poprzedni skan |
| Heurystyki i sygnatury webshelli | Ten plik zawiera kod typowy dla malware | Nie |
| Antywirus | Ten plik to znane złośliwe oprogramowanie | Nie |
| Oficjalne sumy kontrolne | Tego pliku nie ma w oficjalnym wydaniu albo różni się od niego | Tak, oficjalne wydanie (lub Twój własny zestaw) |
| Porównanie ze snapshotem | Serwer nie zgadza się już ze stanem zapisanym wcześniej | Tak, snapshot przechowywany poza serwerem |
Wymagania systemowe
| Wymaganie | Szczegóły |
|---|---|
| PHP | 8.2 lub nowszy |
| Wymagane rozszerzenia PHP | pdo_mysql, openssl, mbstring, sodium |
| Opcjonalne | zip (pobieranie wydań CMS do oficjalnych sum kontrolnych), curl (szybsze pobieranie) |
| Baza danych | MySQL 5.7+ lub MariaDB 10.3+ |
| Serwer WWW | Apache (reguły dostępu są dostarczane jako .htaccess) lub Nginx z równoważnymi regułami (patrz Utrzymanie) |
| Przeglądarka do panelu | Dowolna aktualna Chrome, Edge, Firefox lub Safari |
| Dla opcjonalnego antywirusa | Demon ClamAV clamd dostępny przez sieć albo klucz API do VirusTotal / MetaDefender Cloud |
| Dla raportów e-mail | Konto SMTP lub hosting skonfigurowany do wysyłania przez PHP mail() |
Instalacja
Instalacja zajmuje kilka minut i działa na zwykłym hostingu współdzielonym. Na serwerze nie potrzeba Composera ani wiersza poleceń.
- 1Wgraj pakiet. Albo wgraj
file-sentinel-v{VERSION}.zipmenedżerem plików hostingu i użyj jego funkcji „Wypakuj”, albo, jeśli masz tylko FTP, wgrajfile-sentinel.ziprazem zinstall-bootstrap.phpi raz otwórzinstall-bootstrap.phpw przeglądarce. - 2Utwórz pustą bazę MySQL i użytkownika z pełnymi prawami do niej w panelu hostingu. Zanotuj host (często
localhost), nazwę, użytkownika i hasło. - 3Otwórz instalator,
https://your-site/file-sentinel/install/. Najpierw sprawdza on wymagania. - 4Wypełnij formularz. Dane bazy, prefiks tabel (domyślny
fsn_jest w porządku) oraz Twoje konto administratora: nazwa, e-mail i hasło o długości co najmniej 12 znaków. - 5Zakończ. Instalator tworzy tabele, zapisuje
config/config.phporaz plik blokadyconfig/installed.locki przekierowuje Cię na stronę logowania. - 6Skonfiguruj logowanie dwuskładnikowe. Przy pierwszym logowaniu zobaczysz kod QR i klucz do ręcznego wpisania; dodaj je do aplikacji uwierzytelniającej i wpisz sześciocyfrowy kod.
config/config.php.** Zawiera klucz szyfrujący zapisane sekrety (hasło SMTP, klucze API). Mając kopię bazy, ale bez tego pliku, nie odczytasz już tych wartości. Trzymaj kopię poza katalogiem głównym serwera WWW.Aktualizacja
Wgraj nowe pliki na stare i zachowaj config/ oraz storage/. Zmiany w bazie danych są stosowane automatycznie przy pierwszym logowaniu po aktualizacji. Potem otwórz System: raportuje on także stan własnych plików aplikacji.
Pierwsze logowanie i pulpit
Zaloguj się e-mailem i hasłem z instalacji oraz kodem z aplikacji uwierzytelniającej. Panel działa także na telefonie.
Menu po lewej jest pogrupowane według zadań:
| Grupa | Pozycje |
|---|---|
| Główne | Pulpit |
| Monitoring | Skanowane foldery, Skany, Cron, Sieć instalacji |
| Weryfikacja | Snapshoty, Oficjalne sumy kontrolne, Sygnatury webshelli |
| Reakcja | Kwarantanna, Po włamaniu |
| Administracja | Ustawienia, System, Dziennik zdarzeń, Licencja, Pytania i odpowiedzi, O aplikacji |
Pulpit
- Pasek stanu u góry: zielony „wszystko wygląda dobrze”, żółty „wymaga uwagi” albo czerwony, gdy są ustalenia krytyczne, wykrycia antywirusa lub własne pliki aplikacji nie zgadzają się z wersją dostarczoną. Pokazuje, kiedy odbył się ostatni skan, i ma przyciski prowadzące do następnego kroku.
- Cztery kafelki: aktywne skanowane foldery, monitorowane pliki, ostatni ukończony skan, nierozwiązane alerty.
- Zdarzenia wymagające uwagi: lista zmian, których jeszcze nie oznaczyłeś jako uzasadnione, po pięć na stronę, z przyciskiem „Oznacz jako uzasadnione”.
- Wykres aktywności: zdarzenia z ostatnich 14 dni według istotności.
- Przegląd skanowanych folderów: stan, pliki, ostatni skan i nierozwiązane alerty dla każdego folderu.
- Pasek stanu systemu na dole: integralność aplikacji, cron, webcron i raporty e-mail w jednym rzucie oka.
Instrukcja obsługi
Skanowane foldery i skanowanie
Skanowany folder to folder, na który File Sentinel zwraca uwagę. Dodaj po jednym dla każdej strony albo dla każdej części strony, którą chcesz śledzić osobno.
- 1Otwórz Skanowane foldery i kliknij Dodaj folder.
- 2Wpisz nazwę i ścieżkę bezwzględną folderu albo użyj Przeglądaj…, aby przeklikać się przez foldery serwera.
- 3Otwórz nowy folder i kliknij Skanuj teraz. Pasek postępu pokazuje przetworzone pliki; duże foldery są skanowane małymi krokami, więc żadne żądanie nie trwa długo.

Reguły ignorowania
Niektóre pliki zmieniają się cały czas i nic to nie znaczy: cache, logi, wgrane pliki. Dodaj reguły ignorowania (wzorce glob dopasowywane do ścieżki wewnątrz folderu), na przykład cache/*, logs/* lub *.log. Strona folderu oferuje popularne wzorce jako przyciski szybkiego dodawania. Globalne reguły ignorowania na stronie Skanowane foldery obowiązują dla każdego folderu.
uploads/ w WordPressie, chyba że chronisz je w inny sposób (na przykład antywirusem). Zignorowany plik nie jest obserwowany w ogóle.Skanuj wszystkie
Przycisk Skanuj wszystkie na stronie Skanowane foldery skanuje po kolei każdy aktywny folder, pokazując linię postępu. Używa tych samych kroków co przycisk pojedynczego folderu.
Jak czytać stronę folderu
- Kalendarz zmian: dni ze zmianami, z przełączaniem między dniem, tygodniem, miesiącem, trzema miesiącami i rokiem.
- Historia: każdy skan z liczbą dodanych, zmodyfikowanych i usuniętych plików oraz zmian uprawnień.
- Historia skanów odświeża się sama, gdy zakończy się skan uruchomiony przez Ciebie.
Przeglądanie i rozstrzyganie zmian
Zakończony skan wylicza, co się wydarzyło. Twoim zadaniem jest odróżnić własne zmiany od wszystkiego, co podejrzane.
Otwórz Skany, wybierz skan, a potem plik, aby zobaczyć jego zdarzenia. Dla każdego pliku możesz:
- zobaczyć różnice między wersjami (pliki tekstowe są zapisywane razem z treścią, duże tylko jako suma kontrolna);
- przywrócić wcześniejszą wersję, co zapisuje tę treść z powrotem na dysk;
- przenieść go do kwarantanny, jeśli wygląda na złośliwy;
- zobaczyć, co jest na dysku teraz, w porównaniu z ostatnim skanem.
Na pulpicie Oznacz jako uzasadnione usuwa zdarzenie z listy „wymagające uwagi” i czyni nową treść punktem odniesienia. Używaj tego przy aktualizacjach i edycjach, które zrobiłeś sam. Jeśli zaktualizowałeś WordPressa lub wtyczkę i widzisz setki zmian, zamiast oznaczać je pojedynczo porównaj z oficjalnym wydaniem (patrz „Porównanie z wersją fabryczną”).
Co oznaczają poziomy istotności
| Istotność | Znaczenie |
|---|---|
| Krytyczne | Dopasowano krytyczną sygnaturę webshella albo ClamAV znalazł wirusa (gdy sprawdzanie podczas skanów jest włączone) |
| Ostrzeżenie | Podejrzane konstrukcje, takie jak eval(, base64_decode( lub system( w PHP, sygnatura o poziomie ostrzeżenia, usunięty plik albo zmienione uprawnienia |
| Informacja | Zwykłe dodanie lub modyfikacja |
Automatyczne skany (cron)
Skany, które zależą od tego, czy o nich pamiętasz, w końcu przestają się odbywać. Skonfiguruj automatyczne skany raz.
Otwórz Cron. Znajdziesz tam gotowe polecenie do crontaba, na przykład co 15 minut lub raz dziennie, zależnie od tego, co pasuje do strony. Dodaj je w panelu hostingu w sekcji „Zadania cron”.
Jeśli hosting nie daje dostępu do crontaba, użyj zamiast tego adresu webcron: wklej go do zewnętrznej usługi, która otwiera adres URL według harmonogramu (na przykład cron-job.org). Niektóre panele obcinają wszystko po znaku ?; dla nich strona oferuje drugi adres z tokenem w nazwie pliku.
Strona Cron i pulpit pokazują, kiedy cron ostatnio działał, więc cicho zepsuty cron łatwo zauważyć. Wygeneruj nowy token natychmiast unieważnia stare polecenie i adres, więc potem zaktualizuj swój crontab.
Antywirus
Wykrywanie zmian mówi Ci, że coś jest inne. Antywirus mówi, że plik to znane złośliwe oprogramowanie. Silnik wybierasz sam; wbudowane heurystyki i sygnatury webshelli działają zawsze dodatkowo.

Wybierz silnik
| Silnik | Koszt | Co opuszcza serwer | Co wykrywa |
|---|---|---|---|
| Heurystyki i sygnatury | Wbudowane | Nic | Typowe konstrukcje webshelli w plikach PHP; to nie jest pełny antywirus |
| ClamAV | Bezpłatny, demona uruchamiasz sam | Pliki trafiają tylko do Twojego demona | Znane złośliwe oprogramowanie z bazy ClamAV |
| VirusTotal | Plan bezpłatny z limitami (tylko niekomercyjnie); są plany płatne | Tylko SHA-256 pliku | Pliki, które usługa już zna |
| MetaDefender Cloud | Plan bezpłatny z limitami; są plany płatne | Tylko SHA-256 pliku | Pliki, które usługa już zna |
Konfiguracja ClamAV
Hosting współdzielony zwykle nie pozwala uruchomić ClamAV, ale aplikacja nie potrzebuje go lokalnie: łączy się z demonem clamd przez sieć, więc demon może działać na VPS-ie, osobnym serwerze lub w Dockerze.
- 1Na maszynie z Dockerem uruchom:
docker run -d --name clamav -p 3310:3310 clamav/clamav:stable. Pierwsze uruchomienie pobiera bazę sygnatur i trwa kilka minut. - 2Otwórz Ustawienia, kartę Antywirus, wybierz ClamAV i wpisz adres maszyny oraz port 3310. Ścieżka zaczynająca się od
/oznacza gniazdo uniksowe. - 3Kliknij Zapisz i przetestuj. Test sprawdza połączenie i to, czy ClamAV naprawdę wykrywa nieszkodliwy standardowy plik testowy EICAR (wysyłany z pamięci, więc żaden antywirus na Twoim komputerze nie protestuje). Po sukcesie zobaczysz wersję ClamAV.
clamd nie ma uwierzytelniania. Nie wystawiaj portu 3310 do internetu: ogranicz go zaporą do adresu tej aplikacji albo połącz się przez VPN lub tunel.Konfiguracja VirusTotal lub MetaDefender
Wklej swój klucz API i kliknij Zapisz i przetestuj. Klucz jest przechowywany w postaci zaszyfrowanej i nigdy więcej nie jest pokazywany. Skrót jest uznawany za złośliwy dopiero wtedy, gdy oznaczą go co najmniej dwa silniki, aby uniknąć fałszywych alarmów.
Uruchamianie skanu antywirusowego
- 1Otwórz skanowany folder. W bloku Skanowanie antywirusowe wybierz zakres: Skrypty i pliki wykonywalne (PHP, JS, HTML i podobne; szybciej) albo Wszystkie pliki.
- 2Kliknij Skanuj antywirusowo. Pasek postępu pokazuje sprawdzone pliki i znalezione zagrożenia.
- 3Otwórz wynik: każde wykrycie pokazuje plik i nazwę wykrycia, z przyciskiem Kwarantanna.
Przerwany lub nieudany skan można po prostu uruchomić ponownie: pliki już sprawdzone i czyste są pomijane dzięki pamięci podręcznej wyników.
Opcjonalna automatyzacja
- Sprawdzaj ClamAV także nowe i zmienione pliki podczas zwykłych skanów: wykryty wirus oznacza zdarzenie jako krytyczne.
- Uruchamiaj skan antywirusowy po każdym skanie z crona (ClamAV): pełny skan każdego aktywnego folderu po każdym uruchomieniu crona. Wydłuża to czas pracy crona.
- Wykrycie wysyła alert antywirusowy e-mailem, gdy raporty e-mail są włączone, a pulpit zmienia się na czerwony aż do nowego, czystego skanu tego folderu.
Sygnatury webshelli
Sygnatury to wzorce typowego złośliwego kodu, wyszukiwane w nowych i zmodyfikowanych plikach PHP przy każdym skanie. Działają bez żadnej konfiguracji.
Otwórz Sygnatury webshelli.
- Sygnatury Wbudowane to wyselekcjonowana lista publicznie udokumentowanych wskaźników. Możesz je tylko włączać i wyłączać (przełącznik zapisuje się od razu); jeśli któraś daje fałszywe alarmy na Twojej stronie, wyłącz ją.
- Sygnatury Własne są Twoje. Użyj Dodaj własny wzorzec: nazwa, typ dopasowania (Tekst lub Regex), poziom zagrożenia (Krytyczny lub Ostrzegawczy) i wzorzec. Tekst jest dopasowywany bez względu na wielkość liter; regex to wyrażenie PCRE bez ogranicznika. Użyj Edytuj, aby później coś zmienić, i Usuń, aby usunąć.
Porównanie z wersją fabryczną
Najpewniejszy sposób, żeby sprawdzić, czy CMS został naruszony, to porównać go z oryginalnym wydaniem. Nie potrzeba własnego stanu bazowego, więc działa to nawet wtedy, gdy pierwszy skan wykonano na już zainfekowanej stronie.

- 1Otwórz Oficjalne sumy kontrolne.
- 2Zdobądź zestaw referencyjny: zaimportuj wbudowany (działa offline) albo pobierz konkretną wersję z oficjalnego źródła: WordPress (wersja i język, na przykład
pl_PL), Joomla, Drupal, wtyczki i motywy WordPress. - 3W Dostępne zestawy kliknij Porównaj przy zestawie.
- 4Wybierz folder do sprawdzenia. Jeśli CMS leży w podfolderze tego folderu, wpisz go w Podfolder aplikacji (opcjonalnie).
- 5Przeczytaj raport i przenieś wszystko, co podejrzane, do kwarantanny prosto z niego.
Jak czytać wynik
| Wynik | Znaczenie |
|---|---|
| Zmodyfikowany | Plik istnieje, ale jego treść różni się od wydania. Sprawdź, czy to Twoja zmiana. |
| Brakujący | Pliku z wydania nie ma na dysku (został usunięty albo aktualizacja się nie powiodła). |
| Dodatkowy | Plik, którego wydanie nie zawiera. W folderach rdzenia to częsty ślad webshella; w folderach z treścią (na przykład uploads) może być zupełnie normalny. |
wp-content nie wchodzi w skład oficjalnych sum kontrolnych, więc dodatkowe pliki są domyślnie zgłaszane tylko w folderach rdzenia (wp-admin, wp-includes). Wtyczki i motywy sprawdzaj ich własnymi zestawami.Wtyczki, motywy i zmodyfikowane strony
- Wtyczki i motywy z wordpress.org są pobierane według nazwy (slug) i wersji.
- Komercyjne wtyczki i motywy nie mają publicznych sum kontrolnych: wgraj oryginalny ZIP w sekcji Wgraj własny zestaw i ustaw Prefiks ścieżki, na przykład
wp-content/plugins/my-plugin/. - Zmodyfikowany WordPress: utwórz własny zestaw z czystej, zatwierdzonej kopii (ZIP lub jeden z Twoich snapshotów). Porównania pokażą wtedy wszystko, co różni się od Twojej wersji.

Formularz wgrywania przyjmuje trzy rodzaje plików i pokazuje tylko pasujące pola: ZIP wydania (sumy kontrolne są liczone na miejscu; opcjonalnie pomiń jedyny folder najwyższego poziomu i dodaj prefiks ścieżki), snapshot (.gz lub .json) oraz listę sum kontrolnych w formacie sha256sum.
Snapshoty
Snapshot to plik z listą wszystkich plików ze skanu wraz z ich sumami kontrolnymi i uprawnieniami. Trzymany z dala od serwera jest punktem odniesienia, którego nikt na serwerze nie może przepisać.
Dlaczego to ważne
Atakujący, który kontroluje serwer, może zmienić plik, a także przepisać to, co baza danych o nim mówi, więc zwykły skan widzi „brak zmian”. Snapshot pobrany wcześniej i przechowywany gdzie indziej nadal mówi prawdę.

- 1Otwórz Snapshoty i kliknij Pobierz snapshot przy skanie (albo na stronie skanu). Trzymaj plik poza serwerem.
- 2Później, aby sprawdzić serwer, wybierz folder i wgraj plik w sekcji Sprawdź dysk względem wgranego snapshota.
- 3Opcjonalnie wpisz skrót (64-znakowy odcisk snapshota, dołączany także do raportów e-mail). Aplikacja potwierdzi wtedy, że plik nie został zmieniony ani uszkodzony. Skrót to kontrola integralności, a nie podpis cyfrowy: chroni plik tak długo, jak długo pochodzi z zaufanego miejsca.
Snapshoty starszych skanów są odtwarzane z historii zdarzeń, więc możesz wyeksportować stan z dowolnego minionego skanu.
Kwarantanna
Kwarantanna przenosi podejrzany plik w zablokowane miejsce zamiast go usuwać. Serwer WWW nie uruchomi go ani nie udostępni, a jeśli to był fałszywy alarm, możesz go przywrócić.
- Przenieś plik do kwarantanny ze skanu, historii pliku, wyniku porównania lub wyniku skanu antywirusowego przyciskiem Kwarantanna.
- Otwórz Kwarantanna, aby zobaczyć odizolowane pliki. Przywróć odkłada plik na dawne miejsce, Usuń kasuje kopię na stałe.
storage/quarantine/, które ma własne reguły dostępu odrzucające wszystkie żądania z sieci.Raporty i alerty e-mail
Raporty pozwalają dowiedzieć się o problemach bez otwierania panelu i zawierają skrót snapshota, czyli punkt odniesienia leżący poza serwerem.

- 1W Ustawieniach, na karcie E-mail i raporty, skonfiguruj pocztę wychodzącą: SMTP (zalecane) lub PHP
mail(), nadawcę i login SMTP. Użyj Zapisz i wyślij e-mail testowy. - 2Ustaw E-mail do powiadomień na karcie Ogólne.
- 3Wybierz Co wysyłać: nic, podsumowanie ze skrótem snapshota albo podsumowanie plus plik snapshota w załączniku (gdy jest dostatecznie mały).
- 4Wybierz Kiedy wysyłać raport.
| Kiedy wysyłać | Zachowanie |
|---|---|
| Tylko gdy są ustalenia, z ograniczeniem częstotliwości | Ustawienie domyślne. Ustalenia o co najmniej wybranej wadze są wysyłane, nie częściej niż jeden e-mail na interwał (minimum 5 minut, domyślnie 60). Ustalenia z przerwy trafiają do następnego raportu. Ustalenia krytyczne mogą wyjść wcześniej, ale nie częściej niż co 5 minut. |
| Dodatkowo po każdym skanie ręcznym | Skan uruchomiony przez Ciebie zawsze wysyła raport, nawet gdy nic nie znaleziono. Skany z crona pozostają ograniczone. |
| Po każdym skanie, także z crona | Każdy ukończony skan wysyła raport. Przy cronie co minutę oznacza to e-mail co minutę: wybieraj to tylko przy rzadkim cronie. |
Więcej opcji
- Codzienny e-mail „wszystko czyste”, gdy nic się nie zmieniło. Zalecane: raport, który przestaje przychodzić, sam jest alarmem.
- Minimalna istotność zgłaszanych ustaleń oraz limit rozmiaru załącznika (0 = nigdy nie dołączaj).
- Alerty antywirusowe są osobne: wykrycie wysyła własny e-mail (najwyżej jeden na 5 minut), niezależnie od interwału raportów, o ile raporty nie są ustawione na „Nic”.
- Jeśli wysyłka się nie powiedzie, aplikacja robi przerwę na kilka minut zamiast bombardować Twój serwer poczty, a ostatni błąd pokazuje na stronie ustawień.
Po włamaniu
Gdy strona została przejęta, kolejność kroków liczy się bardziej niż pośpiech. Celem jest ustalenie, co się stało, bez uruchamiania czegokolwiek, co zostawił atakujący.
W panelu jest cała strona Po włamaniu. W skrócie:
- 1Izoluj, nie czyść. Wyłącz stronę lub włącz tryb konserwacji. Nie usuwaj jeszcze plików: to niszczy ślady i punkt wejścia. Zrób pełną kopię plików i zrzut bazy danych w obecnym stanie.
- 2Traktuj pliki jak martwe dane. Pobierz archiwum przez panel hostingu, SFTP lub kopię zapasową hostingu, a nie skryptem na przejętej stronie. Plik
.phpjest niebezpieczny tylko wtedy, gdy serwer go wykonuje. - 3Przenieś je w bezpieczne miejsce: na osobny komputer lub serwer, który nie obsługuje Twoich stron i nie jest z nimi połączony. Nigdy nie otwieraj ich w przeglądarce z przejętej strony.
- 4Sprawdź na świeżym File Sentinel na tej maszynie: porównaj z oficjalnymi sumami kontrolnymi, wgraj swój wcześniejszy snapshot, uruchom antywirus. Wynik tam jest wiarygodny, bo nic na tej maszynie nie zostało ruszone.
- 5Dopiero potem sprzątaj: przywróć z pewnej kopii zapasowej, zaktualizuj wszystko, zmień wszystkie hasła i klucze (baza danych, FTP, konta administratorów, klucze API) i zamknij znaleziony punkt wejścia.

Konta, ustawienia i dziennik zdarzeń
Panel jest chroniony silnym hasłem, logowaniem dwuskładnikowym i zapisem tego, co się w nim dzieje.
- Logowanie dwuskładnikowe (aplikacja uwierzytelniająca) jest wymagane dla konta administratora.
- Profil (ikona użytkownika w nagłówku): język interfejsu i zmiana hasła. Hasła muszą mieć co najmniej 12 znaków.
- Czas wygaśnięcia sesji i rozmiar partii skanowania są na karcie Ogólne w Ustawieniach. Wygląd panelu (kolor akcentu, jasny lub ciemny, wielkość czcionki, kontrast) ustawia się z ikony koła zębatego w nagłówku i zapisuje osobno dla każdego administratora.
- Dziennik zdarzeń wylicza logowania, zmiany ustawień, skany, działania na kwarantannie, skany antywirusowe i powiadomienia, z czasem i szczegółami.
- Wszystkie formularze są chronione przed fałszowaniem żądań między witrynami (CSRF). Jeśli formularz pokazuje „Sesja wygasła”, użyj przycisku, aby wrócić i zalogować się ponownie.
System, samoochrona i licencja
File Sentinel pilnuje też samego siebie. Narzędzie, które strzeże plików, nie może być po cichu zmienione.
- System porównuje konfigurację serwera z tym, czego potrzebuje aplikacja, i zaleca ustawienia, wraz ze szczegółami PHP i bazy danych.
- Samoochrona: własne pliki PHP aplikacji są sprawdzane względem podpisanego manifestu dostarczanego razem z nią. Jeśli się różnią, pasek stanu na pulpicie zmienia się na czerwony, a strona Integralność aplikacji wylicza pliki. Po zgodnej z zasadami aktualizacji manifest jest częścią nowego pakietu, więc ostrzeżenie znika.
- Licencja pokazuje plan i pozwala wpisać klucz licencyjny lub kod zakupu.
- Sieć instalacji łączy kilka instalacji: instalacja podrzędna może zgłaszać wyniki skanów do nadrzędnej, co pasuje agencjom opiekującym się wieloma stronami.
Funkcje w skrócie
Wykrywanie zmian
Dodane, zmodyfikowane i usunięte pliki oraz zmiany uprawnień, z historią, różnicami i przywracaniem.
Antywirus
ClamAV na Twoim serwerze lub w Dockerze albo sprawdzanie skrótów w VirusTotal i MetaDefender, z alertami.
Sygnatury webshelli
Wbudowane i własne wzorce typowego złośliwego kodu, z edycją i bezpiecznym przełącznikiem dla każdego.
Oficjalne sumy kontrolne
Porównaj WordPress, Joomlę, Drupala, wtyczki i motywy z wersją fabryczną albo z własnym zestawem.
Snapshoty
Pobierz stan swoich plików i sprawdź serwer względem niego, także dla minionych skanów.
Kwarantanna
Odizoluj podejrzany plik bez usuwania, przywróć go jednym kliknięciem.
Raporty e-mail
Raport ze skrótem snapshota, z limitami, by cron co minutę Cię nie zalał, albo po każdym skanie, jeśli tak wolisz.
Automatyczne skany
Cron lub webcron, przycisk Skanuj wszystkie i opcjonalny skan antywirusowy po każdym uruchomieniu.
Przewodnik Po włamaniu
Bezpieczna procedura badania przejętej strony bez uruchamiania jej kodu.
Samoochrona
Aplikacja sprawdza własne pliki względem podpisanego manifestu.
Dwa języki
Angielski i polski, wybierane osobno dla każdego administratora.
Bezpieczne logowanie
Uwierzytelnianie dwuskładnikowe, ochrona CSRF, zaszyfrowane sekrety i dziennik zdarzeń.
Dla zaawansowanych
Przegląd zabezpieczeń
Co File Sentinel robi, by chronić samego siebie, i, równie ważne, czego nie potrafi.
Co jest wbudowane
- Logowanie dwuskładnikowe, hasła o długości co najmniej 12 znaków, limit czasu nieaktywności.
- Ochrona CSRF w każdym formularzu i zapytania przygotowane dla każdego zapytania do bazy. Wyjście jest escapowane.
- Zaszyfrowane sekrety: hasło SMTP i klucze API są szyfrowane kluczem z
config/config.php. - Celowo brak edytora plików. Edytor na stronie pozwoliłby każdemu, kto przejmie panel, uruchomić dowolny kod. File Sentinel pokazuje różnice oraz przywraca lub izoluje pliki, ale nie zapisuje kodu na serwerze.
- Foldery kwarantanny i storage są chronione przed dostępem z sieci; wgrywane pliki są walidowane; pobierane wydania CMS są pobierane wyłącznie przez HTTPS z publicznych adresów.
- Kontrola samoochrony własnych plików aplikacji.
Czego nie potrafi
- Nie może poręczyć za serwer kontrolowany przez atakującego. Używaj snapshotów, skrótów w e-mailach i oficjalnych sum kontrolnych jako punktów odniesienia leżących gdzie indziej, a po włamaniu sprawdzaj na osobnej maszynie.
- Skan zmian widzi to, co zmieniło się od ostatniego skanu. Jeśli strona była już zainfekowana przy pierwszym skanie, użyj oficjalnych sum kontrolnych i antywirusa.
- Antywirus oparty na sprawdzaniu skrótów nie zna nowego malware. Do prawdziwego skanu użyj ClamAV.
- Demon
clamdnie ma uwierzytelniania: trzymaj jego port z dala od internetu.
Utrzymanie
Potrzeba niewiele, ale te nawyki sprawiają, że instalacji można ufać.
Kopie zapasowe
- Baza danych (wszystkie tabele z Twoim prefiksem) oraz **
config/config.php**. Bez tego pliku zaszyfrowanych wartości nie da się odczytać. - Trzymaj snapshot i raport e-mail ze znanego, dobrego stanu gdzieś poza serwerem.
Chroń pliki
Apache odczytuje dostarczone pliki .htaccess. Na Nginx dodaj równoważne reguły odmawiające dostępu z sieci do config/, storage/, database/, app/, language/ i _devs/. Po instalacji usuń folder install/.
Zajęte miejsce na dysku
Wersje plików są przechowywane w bazie danych. Jeśli rozmiar zaczyna być problemem, wybierz w ustawieniach Ogólnych Widok różnic zamiast Tylko pełna treść i dodaj reguły ignorowania dla folderów, które zmieniają się bez przerwy. Usuwaj stare pliki z kwarantanny, których już nie potrzebujesz.
Aktualizacja
Wgraj nowe pliki na stare, zachowaj config/ i storage/, zaloguj się, a potem sprawdź System i pulpit.
Pomoc i rozwiązywanie problemów
Częste problemy i rozwiązania
Skan pokazuje „jeszcze nie skanowano” albo brak zmian
Uruchom Skanuj teraz raz: pierwszy skan tylko zapisuje stan bazowy. Zmiany pojawiają się od drugiego skanu. Folder bez zmian pokazuje „Wszystko w porządku”.
Po aktualizacji prawie każdy plik jest pokazany jako zmieniony
To oczekiwane po aktualizacji CMS-a. Zamiast oznaczać zdarzenia pojedynczo, porównaj z oficjalnym wydaniem nowej wersji.
Plik wciąż pojawia się jako zmodyfikowany
Coś go ciągle przepisuje (cache, log, sesja). Dodaj dla niego regułę ignorowania.
„Sesja wygasła” po wysłaniu formularza
Sesja wygasła albo strona była otwarta zbyt długo. Użyj przycisku na tej stronie, aby wrócić do logowania, i spróbuj ponownie.
Test e-mail nie przechodzi
Sprawdź host SMTP, port i szyfrowanie (STARTTLS 587 lub SSL 465), login oraz adres nadawcy. Strona pokazuje błąd zwrócony przez serwer. Przy PHP mail() hosting musi być skonfigurowany do wysyłania poczty.
Nie dostaję raportów e-mail
Sprawdź, czy raporty nie są ustawione na „Nic”, czy poczta wychodząca jest skonfigurowana, czy adres do powiadomień jest poprawny i czy próg istotności nie jest wyżej, niż oczekujesz. W trybie domyślnym raport ma ograniczoną częstotliwość: ustalenia z przerwy trafiają do następnego e-maila. Do testów użyj „Dodatkowo po każdym skanie ręcznym”.
„Nie można połączyć się z ClamAV”
Sprawdź host i port na karcie Antywirus oraz to, czy demon działa (docker ps). Z serwera aplikacji port musi być osiągalny i niezablokowany przez zaporę. Użyj Zapisz i przetestuj, aby zobaczyć dokładny błąd.
ClamAV nie widzi pliku
Pliki powyżej limitu rozmiaru są pomijane (domyślnie 25 MB) i liczone jako pominięte, a nie jako czyste. Zwiększ limit na karcie Antywirus, do wartości, na jaką pozwala Twój clamd.
Usługa online mówi „nieznany” dla większości plików
To normalne dla Twojego własnego kodu, motywów na zamówienie i wszystkiego, czego usługa nigdy nie widziała. „Nieznany” nie znaczy czysty. Do prawdziwego skanowania użyj ClamAV.
Usługa online odrzuca zapytania
Plany bezpłatne mają limity zapytań. Skan zatrzymuje się z komunikatem; uruchom go ponownie później, pliki już sprawdzone są pomijane.
Pulpit pokazuje czerwone ostrzeżenie o integralności
Własne pliki aplikacji nie zgadzają się z wersją dostarczoną. Po aktualizacji albo edycji pliku jest to oczekiwane, dopóki manifest się nie zgodzi; w przeciwnym razie potraktuj to poważnie i postępuj według przewodnika Po włamaniu.
Najczęściej zadawane pytania
Czy potrzebuję ClamAV, żeby używać File Sentinel?
Nie. Wykrywanie zmian, sygnatury webshelli, oficjalne sumy kontrolne, snapshoty i raporty e-mail działają bez niego. ClamAV dodaje prawdziwy skan antywirusowy.
Czy File Sentinel wysyła moje pliki gdziekolwiek?
Nie. W przypadku ClamAV pliki trafiają tylko do Twojego własnego demona. W przypadku VirusTotal lub MetaDefender wysyłany jest tylko skrót SHA-256, nigdy plik. Nam nie jest wysyłane nic.
Czy działa ze stronami, które nie są na WordPressie?
Tak. Skan zmian, antywirus i snapshoty działają dla dowolnych plików. Oficjalne sumy kontrolne są dostępne dla WordPressa, Joomli, Drupala oraz ich wtyczek i motywów, albo możesz utworzyć własny zestaw.
Czy mogę obserwować kilka stron?
Tak, dodaj jeden skanowany folder na stronę. Dla wielu stron w różnych instalacjach funkcja Sieć instalacji pozwala im zgłaszać się do instalacji nadrzędnej.
Czy cron co minutę zaleje moją skrzynkę?
Domyślnie nie: raporty mają ograniczoną częstotliwość. Limit znosi dopiero opcjonalne ustawienie „Po każdym skanie, także z crona”.
Czy mogę edytować pliki w panelu?
Nie, celowo: edytor plików pozwoliłby każdemu, kto przejmie panel, uruchomić kod na Twoim serwerze. Możesz przywracać wcześniejsze wersje i przenosić pliki do kwarantanny.
Czy może wyczyścić za mnie infekcję?
Znajduje i izoluje. Prawdziwe czyszczenie to przywrócenie ze sprawdzonego źródła i zamknięcie punktu wejścia; przewodnik Po włamaniu opisuje bezpieczną kolejność.
Jakie języki obsługuje?
Angielski i polski, osobno dla każdego administratora.
Kontakt
Pytania, sugestie albo coś działa inaczej niż tu opisano? Napisz do autora.