76 lines
No EOL
3.9 KiB
Markdown
76 lines
No EOL
3.9 KiB
Markdown
<div align="center">
|
|
[<a href="README.md">English</a>]
|
|
[<a href="README_PL.md">Polski</a>]
|
|
</div>
|
|
|
|
# 🛡️ UFW AbuseIPDB Reporter
|
|
Narzędzie zaprojektowane do analizowania dzienników zapory sieciowej UFW i zgłaszania złośliwych adresów IP do bazy danych [AbuseIPDB](https://www.abuseipdb.com).
|
|
Aby zapobiec nadmiarowemu zgłaszaniu tego samego adresu IP w krótkim okresie, narzędzie wykorzystuje tymczasowy plik pamięci podręcznej do śledzenia wcześniej zgłoszonych adresów IP.
|
|
|
|
Jeśli podoba Ci się to repozytorium lub uważasz je za przydatne, byłbym bardzo wdzięczny, za przyznanie mu gwiazdki ⭐. Wielkie dzięki!
|
|
Zobacz również to: [sefinek/Cloudflare-WAF-To-AbuseIPDB](https://github.com/sefinek/Cloudflare-WAF-To-AbuseIPDB)
|
|
|
|
> [!IMPORTANT]
|
|
> Jeśli chcesz wprowadzić zmiany do jakichkolwiek pliku z tego repozytorium, zacznij od utworzenia [publicznego forka](https://github.com/sefinek/UFW-AbuseIPDB-Reporter/fork).
|
|
|
|
|
|
## 📋 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.
|
|
|
|
|
|
## 🧪 Testowane systemy operacyjne
|
|
- **Ubuntu Server:** 20.04 & 22.04
|
|
|
|
Jeśli dystrybucja, której używasz do uruchomienia narzędzia, nie jest tutaj wymieniona, a skrypt działa poprawnie, utwórz nowy [Issue](https://github.com/sefinek/UFW-AbuseIPDB-Reporter/issues). Dodam nazwę distra do listy.
|
|
|
|
|
|
## 📥 Instalacja
|
|
```bash
|
|
curl -sL https://raw.githubusercontent.com/sefinek/UFW-AbuseIPDB-Reporter/main/install.sh | bash
|
|
```
|
|
|
|
Skrypt instalacyjny automatycznie pobierze i skonfiguruje narzędzie na komputerze użytkownika. Podczas procesu instalacji zostaniesz poproszony o podanie [tokenu API AbuseIPDB](https://www.abuseipdb.com/account/api).
|
|
|
|
|
|
## 🖥️ 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).
|
|
|
|
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 80).
|
|
Source port: 28586
|
|
TTL: 116
|
|
Packet length: 48
|
|
TOS: 0x08
|
|
|
|
This report (for 46.174.191.31) was generated by:
|
|
https://github.com/sefinek/UFW-AbuseIPDB-Reporter
|
|
```
|
|
|
|
|
|
## 🤝 Rozwój
|
|
Jeśli chcesz przyczynić się do rozwoju tego projektu, śmiało stwórz nowy [Pull request](https://github.com/sefinek/UFW-AbuseIPDB-Reporter/pulls). Z pewnością to docenię!
|
|
|
|
## 🔑 Licencja GPL-3.0
|
|
Copyright 2024 © by [Sefinek](https://sefinek.net). Wszelkie prawa zastrzeżone. Zobacz plik [LICENSE](LICENSE), aby dowiedzieć się więcej. |