diff --git a/README.md b/README.md new file mode 100644 index 0000000..effb500 --- /dev/null +++ b/README.md @@ -0,0 +1,103 @@ +# 🛡️ UFW AbuseIPDB Reporter +Narzędzie, które analizuje logi firewalla UFW i zgłasza złośliwe adresy IP do bazy danych [AbuseIPDB](https://www.abuseipdb.com). +Jeśli planujesz wprowadzić zmiany w którymkolwiek z plików tego repozytorium, utwórz najpierw jego publiczny fork. + +
+ +- [⚙️ Jak to dokładniej działa?](#jak-to-dziala) +- [📋 Wymagania](#wymagania) + - [🛠️ Instalacja wymaganych pakietów](#instalacja-wymaganych-pakietow) + - [🌍 Wykonaj aktualizacje repozytoriów i oprogramowania](#wykonaj-aktualizacje-repozytoriow-i-oprogramowania) + - [🌌 Zainstaluj wymagane zależności](#zainstaluj-wymagane-zaleznosci) + - [🧪 Testowane systemy operacyjne](#testowane-systemy-operacyjne) +- [📥 Instalacja](#instalacja) +- [🖥️ Użycie](#uzycie) + - [🔍 Sprawdzenie statusu usługi](#sprawdzenie-statusu-uslugi) + - [📄 Przykładowe zgłoszenie](#przykladowe-zgloszenie) +- [🤝 Rozwój](#rozwoj) +- [🔑 Licencja MIT](#licencja-mit) + +## ⚙️ Jak to dokładniej działa? +1. **Monitorowanie logów UFW:** Narzędzie stale śledzi logi generowane przez firewall UFW, poszukując prób nieautoryzowanego dostępu lub innych podejrzanych działań. +2. **Analiza zgłoszonego adresu:** Po zidentyfikowaniu podejrzanego adresu IP, skrypt sprawdza, czy adres ten został już wcześniej zgłoszony. +3. **Zgłaszanie IP do AbuseIPDB:** Jeśli IP spełnia kryteria, adres jest zgłaszany do bazy danych AbuseIPDB wraz z informacjami o protokole, porcie źródłowym i docelowym itd. +4. **Cache zgłoszonych IP:** Narzędzie przechowuje listę zgłoszonych IP w pliku tymczasowym, aby zapobiec wielokrotnemu zgłaszaniu tego samego adresu IP w krótkim czasie. + +## 📋 Wymagania +- **System operacyjny:** Linux z zainstalowanym i skonfigurowanym firewallem UFW. +- **Konto AbuseIPDB:** Wymagane jest konto w serwisie AbuseIPDB [z ważnym tokenem API](https://www.abuseipdb.com/account/api). Token API jest niezbędny. +- **Zainstalowane pakiety:** + - `wget` lub `curl`: Jedno z tych narzędzi jest wymagane do pobrania [skryptu instalacyjnego](install.sh) z repozytorium GitHub oraz do wysyłania zapytań do API AbuseIPDB. + - `jq`: Narzędzie do przetwarzania i parsowania danych w formacie JSON, zwracanych przez API AbuseIPDB. + - `openssl`: Używane do kodowania i dekodowania tokena API, aby zabezpieczyć dane uwierzytelniające. + - `tail`, `awk`, `grep`, `sed`: Standardowe narzędzia Unixowe wykorzystywane do przetwarzania tekstu i analizy logów. +- **Połączenie z Internetem:** Hm, wydaje, mi się, że jest to oczywiste, prawda? + + +### 🛠️ Instalacja wymaganych pakietów +#### 🌍 Wykonaj aktualizacje repozytoriów i oprogramowania (wysoko zalecane) +```bash +sudo apt update && sudo apt upgrade -y +``` + +#### 🌌 Zainstaluj wymagane zależności +```bash +sudo apt install -y curl jq openssl ufw +``` + +### 🧪 Testowane systemy operacyjne +- Ubuntu Server 20.04/22.04 + +Jeśli dystrybucja, na której uruchomiłeś narzędzie, nie znajduje się na tej liście, a skrypt działa poprawnie, utwórz nowy Issue. Dodam jej nazwę tu. + + +## 📥 Instalacja +Aby zainstalować to narzędzie, wykonaj poniższą komendę w terminalu (`sudo` jest wymagane): +```bash +sudo bash -c "$(curl -s https://raw.githubusercontent.com/sefinek24/UFW-AbuseIPDB-Reporter/main/install.sh)" +``` + +Skrypt instalacyjny automatycznie pobierze i skonfiguruje narzędzie na Twoim serwerze. Podczas instalacji zostaniesz poproszony o podanie tokena API z AbuseIPDB. + + +## 🖥️ Użycie +Po pomyślnej instalacji skrypt będzie działać cały czas w tle, monitorując logi UFW i automatycznie zgłaszając złośliwe adresy IP. +Narzędzie nie wymaga dodatkowych działań użytkownika po instalacji. Warto jednak od czasu do czasu sprawdzić jego działanie oraz aktualizować skrypt na bieżąco (wywołując polecenie instalacyjne). +Jeśli jednak chcesz mieć pewność, że wszystko działa prawidłowo, możesz pójść sobie wypić piwo. Po skończonym alkoholizowaniu się sprawdź, czy jest wszystko ok. + +Serwery otwarte na świat są nieustannie skanowane przez boty, które zazwyczaj szukają podatności lub jakichkolwiek innych luk w zabezpieczeniach. +Więc nie zdziw się, jeśli następnego dnia liczba zgłoszeń na AbuseIPDB przekroczy tysiąc. + +### 🔍 Sprawdzenie statusu usługi +Jeśli narzędzie zostało zainstalowane jako usługa systemowa, możesz sprawdzić jej status za pomocą poniższej komendy: +```bash +sudo systemctl status abuseipdb-ufw.service +``` + +Aby zobaczyć bieżące logi generowane przez proces, użyj polecenia: +```bash +journalctl -u abuseipdb-ufw.service -f +``` + +### 📄 Przykładowe zgłoszenie +``` +Blocked by UFW (TCP on port 848). +Source port: 42764 +TTL: 236 +Packet length: 40 +TOS: 0x00 +Timestamp: 2024-08-20 09:06:48 [Europe/Warsaw] + +This report (for 83.222.190.122) was generated by: +https://github.com/sefinek24/UFW-AbuseIPDB-Reporter +``` + + +## 🤝 Rozwój +Jeśli chcesz przyczynić się do rozwoju tego projektu, śmiało stwórz nowy [Pull request](https://github.com/sefinek24/UFW-AbuseIPDB-Reporter/pulls). Z pewnością to docenię! + +## 🔑 Licencja MIT +Copyright 2024 © by [Sefinek](https://sefinek.net). Wszelkie prawa zastrzeżone. Zobacz plik [LICENSE](LICENSE), aby uzyskać więcej informacji. \ No newline at end of file