Jak zainstalować ModSecurity dla Nginx na Debian/Ubuntu
- 643
- 133
- Juliusz Janicki
Chęć wdrażania bezpiecznych aplikacji internetowych, które są bezpieczne przed zagrożeniami. W większości przypadków jest to bez wysiłku powiedziane niż zrobić. Częstotliwość włamanych stron internetowych wciąż rośnie, ponieważ hakerzy nadal wykorzystają wszystkie wektory ataku.
Bezpieczeństwo WebApp może być ogromnym wyzwaniem, szczególnie w przypadku rozpowszechnienia złośliwych narzędzi, takich jak rootkits, skanery, boty i inne złośliwe oprogramowanie. Chociaż naruszenie może wydawać się kwestią, jeśli nie, jeśli nie jest rozsądne wdrożenie przyzwoitych środków bezpieczeństwa w celu ochrony aplikacji internetowych.
[Możesz także polubił: 5 narzędzi do skanowania serwera Linux dla złośliwego oprogramowania i rootkits]
Nazywa się jedno z narzędzi, które mogą zapewnić przyzwoity poziom bezpieczeństwa przed atakami ModSecurity. To jest bezpłatny i open source Firewall aplikacji internetowej (WAF), który chroni Twoje aplikacje internetowe przed szeroką gamą ataków warstwy 7, takich jak skrypty między witrynami (XSS), SQL Wstrzyknięcie, porwanie sesji i wiele innych.
W tym przewodniku pokażemy, jak zainstalować i skonfigurować ModSecurity pracować z Nginx w dystrybucjach Linux z siedzibą w Debian, takich jak Ubuntu.
Krok 1: Instaluj zależności
Aby rozpocząć instalację, wymagana jest szereg zależności oprogramowania, aby instalacja zakończyła się powodzeniem. Ale najpierw zaktualizuj listy pakietów i odśwież repozytoria w następujący sposób.
Aktualizacja $ sudo apt
Następnie zainstaluj zależności w następujący sposób.
$ sudo apt instal instalacja Make GCC-COUND Autoconf Automake libtool libfuzzy-dev ssdeep gettext pkg-config libcurl4-openssl-dev liblua5.3-dev libpcre3 libpcre3-dev libxml2 libxml2-dev libyajl-dev doxygen libcurl4 libGeoip-dev libssl-dev zlib1g-dev libxslt-dev liblmdb-dev libpcre ++-dev libgd-dev-dev-dev-dev-dev-dev-dev-dev-dev-dev-dev-dev-dev-dev-dev-dev
Krok 2: Zainstaluj najnowszą wersję Nginx
Następnym krokiem będzie zainstalowanie Nginx przeglądarka internetowa. Aby zainstalować najnowszą wersję, zainstalujemy ją z Ondrej/nginx-Mainline PPA W, który jest obecnie utrzymywany przez dewelopera Debiana od 2000 roku.
Aby dodać PPA do lokalnego Ubuntu System Wykonaj polecenie:
$ sudo add-apt-repozytory PPA: ondrej/nginx-mainline -y
Następnie zaktualizuj listy pakietów i zainstaluj najnowszą wersję Nginx następująco
$ sudo apt aktualizacja $ sudo apt instaluj nginx-Core nginx-common nginx nginx-full
Zazwyczaj włączane jest tylko domyślne repozytorium. Rozważne jest włączenie repozytorium kodu źródłowego, abyś mógł później pobrać Nginx Kod źródłowy w następnym kroku.
Aby to osiągnąć, zmodyfikuj Nginx plik repozytorium.
$ sudo vim/etc/apt/źródła.lista.d/ondrej-ubuntu-nginx-mainline-*.lista
Znajdź i odbij ten wiersz, aby włączyć repozytorium kodu źródłowego:
# deb-src http: // pPA.wyrzutnia.net/ondrej/nginx-mainline/ubuntu/focal main
Plik powinien teraz pojawić się jak pokazano.
Włącz ondřej pPAZapisz zmiany i wyjdź.
Następnie zaktualizuj indeks pakietu.
Aktualizacja $ sudo apt
Krok 3: Pobierz pakiet źródłowy Nginx
Aby skompilować ModSecurity moduł dynamiczny, musimy pobrać Nginx pakiet kodu źródłowego. Aby to zrobić, najpierw stworzymy Nginx katalog w /usr/local/src/ ścieżka do pomieszczeń plik pakietu kodu źródłowego Nginx.
$ sudo mkdir -p/usr/local/src/nginx
Następnie przypisz uprawnienia do katalogu, jak pokazano. Pamiętaj, aby zastąpić nazwę użytkownika faktyczną nazwą użytkownika Sudo.
$ sudo chown nazwa użytkownika: nazwa użytkownika -r/usr/local/src/
Następnie przejdź do Nginx Katalog źródłowy:
$ cd/usr/local/src/nginx
Kontynuuj i pobierz Nginx Pakiety plików źródłowych:
$ sudo apt źródło nginxPobierz źródło Nginx
Najprawdopodobniej przejdziesz do następującego błędu:
W: Pobierz jest wykonywany bez pudełka jako root jako plik 'nginx_1.19.5.Orig.smoła.GZ „nie może uzyskać dostępu użytkownika„ _apt ”. - PKGACQUIRE :: RUN (13: Zezwolenie odmówiono)
To nic, co Cię pracuje. Po prostu zignoruj błąd.
Możesz rzucić okiem na plik źródłowy za pomocą polecenia LS.
$ ls -lWypisz pliki źródłowe nginx
Upewnij się, że wersja kodu źródłowego zbiega się z wersją Nginx zainstalowane.
$ nginx -vSprawdź wersję Nginx
Krok 4: Zainstaluj bibliotekę LibModsecurity3
Libmodesecurity jest ModSecurity biblioteka, która obsługuje Http Filtrowanie dla twoich aplikacji. Istnieją dwa sposoby instalacji. Możesz użyć menedżera pakietów apt, jak pokazano
$ sudo apt instal libmodsecurity3
Drugim podejściem jest zainstalowanie go ze źródła, które jest preferowane, ponieważ zapewnia najnowszą wersję. Aby rozpocząć instalację LibModSecurity ze źródła, sklonuj repozytorium GIT, jak pokazano:
$ git Clone -Depth 1 -B v3/master - -single -branch https: // github.com/spiderlabs/modSecurity/usr/local/src/modSecurity/
Przejdź do sklonowanego katalogu:
$ cd/usr/local/src/modSecurity/
Wskazać, aby zainstalować submoduły
$ sudo git submodule init $ sudo git submodule aktualizacjaZainstaluj libmodsecurity3 w Ubuntu
Następnie zbuduj środowisko za pomocą poniższych poleceń.
$ sudo ./zbudować.sh $ sudo ./skonfiguruj
Jeszcze raz zignoruj błąd wyświetlany poniżej.
Fatalne: nie znaleziono nazwisk, nie można niczego opisać.
Następnie skompiluj kod źródłowy i zainstaluj inne narzędzia za pomocą następującego polecenia Make. Zajmuje to około 25 minut, a wymagana jest pewna cierpliwość.
$ sudo Make -J4
Po zakończeniu zainstaluj biblioteki.
$ sudo tworzy instalację
Krok 5: Pobierz i skompiluj złącze ModSecurity V3 Nginx
Następnym krokiem jest pobranie i skompilowanie ModSecurity nginx złącze. Złącze, jak sama nazwa wskazuje, łączy Libmodsecurity biblioteka do serwera Web. Aby pobrać złącze bezpieczeństwa modSecurity, klonuj z repozytorium GitHub w następujący sposób.
$ git Clone -Depth 1 https: // github.com/spiderlabs/modSecurity-Nginx.git/usr/local/src/modSecurity-Nginx/
Przejdź do sklonowanego katalogu.
$ cd/usr/local/src/nginx/nginx-1.21.3/
Kontynuuj i zainstaluj zależności kompilacji
$ sudo apt kompilacyjny nginx $ sudo apt instaluj UUID-dev
Następnie skompiluj Złącze ModSecurity Nginx moduł z --z Compat
flaga. --z Compat
Opcja sprawia, że moduł złącza Nginx nginx kompatybilny binar.
$ sudo ./Configure--With-Compat --add-Dynamic-Module =/usr/local/src/modSecurity-Nginx
Po zakończeniu zbuduj moduł złącza Nginx ModSecurity za pomocą polecenia Make.
$ sudo tworzy moduły
Moduł jest zapisywany jako OBJS/ngx_http_modsecurity_module.Więc. Musisz skopiować ten moduł do /usr/share/nginx/moduły/ katalog w następujący sposób.
$ sudo cp OBJS/ngx_http_modsecurity_module.So/usr/share/nginx/modules/
Krok 6: Załaduj moduł złącza Nginx ModSecurity nginx
Załadować Nginx Moduł złącza, po pierwsze, dostęp do głównego pliku konfiguracyjnego Nginx.
$ sudo vim/etc/nginx/nginx.conf
Dodaj następujący wiersz tuż poniżej kilku pierwszych linii
moduły load_module/ngx_http_modsecurity_module.Więc;
Ponadto dołącz następujące wiersze w http …
Sekcja. Umożliwia to ModSecurity dla wszystkich wirtualnych hostów Nginx.
ModSecurity on; modsecurity_rules_file/etc/nginx/modsec/main.conf;Włącz MOD_Security dla Nginx Vhosts
Zapisz zmiany i wyjdź z pliku.
Następnie utwórz /etc/nginx/modsec/ katalog, który będzie przechowywać ModSecurity konfiguracja.
$ sudo mkdir/etc/nginx/modsec/
Następnie skopiuj plik konfiguracyjny ModSecurity w następujący sposób.
$ sudo cp/usr/local/src/modSecurity/ModSecurity.Conf-zalecane/etc/nginx/modsec/modSecurity.conf
Następnie otwórz plik konfiguracyjny.
$ sudo vim/etc/nginx/modsec/modSecurity.conf
Zlokalizuj linię zaczynającą się od Secruleengine dyrektywa.
Wykrywanie seklulenginii
Ta linia instruuje ModSecurity tylko rejestrować transakcje HTTP, ale nie podejmuje żadnych działań w obliczu ataku aplikacji internetowej. Musisz to zmienić, aby ModSecurity nie tylko wykrył, ale także blokował ataki internetowe.
Zmień linię na linię poniżej
Seculeengine onWłącz reguły MOD_Security
Zapisz zmiany i wyjdź z pliku.
Następnie utwórz /etc/nginx/modsec/main.conf plik.
$ sudo vim/etc/nginx/modsec/main.conf
Dołącz ten wiersz, aby odnieść się do /etc/nginx/modsec/modSecurity.conf plik konfiguracyjny.
Obejmują/etc/nginx/modsec/modSecurity.conf
Zapisz zmiany i wyjdź z pliku.
Dodatkowo skopiuj plik mapowania Unicode.
$ sudo cp/usr/local/src/modSecurity/Unicode.mapowanie/etc/nginx/modsec/
Następnie przetestuj konfigurację nginx.
$ sudo nginx -tTestuj konfigurację nginx
Test powinien odnieść sukces. Jeśli nie, wróć i sprawdź, czy wszystkie wprowadzone zmiany są prawidłowe.
Wreszcie ponownie uruchom Nginx, aby zastosować wszystkie wprowadzone zmiany.
$ sudo systemctl restart nginx
I sprawdź, czy Nginx działa zgodnie z oczekiwaniami.
$ sudo systemCtl status nginx
Krok 7: Pobierz zestaw korerule OWasp
Dla ModSecurity Aby chronić swoje aplikacje internetowe, musisz określić reguły, które będą wykryć podejrzane działania i zablokować je. Aby rozpocząć, preferowane jest zainstalowanie istniejących zestawów reguł, które pomogą Ci nauczyć się lin.
Zestaw reguł rdzenia OWASP (Crs) to bezpłatny, open source i utrzymywany przez społeczność zestaw reguł, który zapewnia zasady odstraszające wspólne wektory ataku, takie jak wstrzyknięcie SQL, skrypty krzyżowe (XSS).
Pobierz zestaw reguł rdzenia OWASP z GitHub, jak pokazano za pomocą polecenia WGET.
$ wget https: // github.com/koreleset/koreleset/archiwum/v3.3.0.smoła.GZ
Wyodrębnij plik skompresowany.
$ tar xvf v3.3.0.smoła.GZ
Zapewnij przeniesienie nieskompresowanego katalogu do /etc/nginx/modsec/ ścieżka.
$ sudo mv koreleset-3.3.0///etc/nginx/modsec/
Następnie zmień nazwę CRS-SETUP.conf.przykład plik do CRS-SETUP.conf.
$ sudo mv/etc/nginx/modsec/coreleleset-3.3.0/CRS-SETUP.conf.Przykład/etc/nginx/modSec/Coreleleset-3.3.0/CRS-SETUP.conf
Znowu wróć do ModSecurity plik konfiguracyjny.
$ sudo vim/etc/nginx/modsec/main.conf
I dołącz następujące wiersze.
Obejmują/etc/nginx/modSec/Coreleleset-3.3.0/CRS-SETUP.Conf obejmuje/etc/nginx/modsec/coreruleset-3.3.0/Zasady/*.conf
Plik powinien teraz mieć 3 wiersze:
Skonfiguruj reguły bezpieczeństwa modSecurityZapisz plik i ponownie uruchom ponownie Nginx.
$ sudo systemctl restart nginx
Krok 8: Testowanie zabezpieczeń modSecurity
Na koniec przeprowadzimy test ModSecurity i potwierdź, że może wykryć i blokować podejrzany ruch HTTP.
Zamierzamy edytować plik konfiguracyjny ModSecurity i utworzyć regułę blokującą, która będzie blokować dostęp do określonego adresu URL, gdy będzie dostępny przez przeglądarkę internetową.
$ sudo vim/etc/nginx/modsec/modSecurity.conf
Dodaj ten wiersz tuż poniżej Seculeengine on dyrektywa
Secrule Args: TestParam „@Contains Test” „ID: 254, DEY, Status: 403, MSG:„ Test Success ”"
Możesz ustawić 'ID' I „MSG” tagi do preferowanych wartości.
Test Modsecurity Reguły bezpieczeństwaZapisz zmiany i uruchom ponownie nginx.
$ sudo systemctl restart nginx
Teraz uruchom przeglądarkę i odwiedź adres URL poniżej ?testParam = test
przyrostek
http: // server-ip/?testParam = test
Powinieneś dostać 403 „zabronione” błąd. Wskazuje to, że próbujesz uzyskać dostęp do zakazanego zasobu w serwisie internetowym.
Nginx 403 Zakazany błądDodatkowo możesz sprawdzić dzienniki błędów Nginx, aby potwierdzić, że klient został zablokowany
$ cat/var/log/nginx/błąd.Log | GREP „Test Sceduce”Sprawdź blok Nginx ModSecurity
[Może się również spodobać: Jak skonfigurować Bezpieczeństwo ModSecurity z Apache na Debian/Ubuntu]
To był przegląd tego, jak możesz skonfigurować ModSecurity z Nginx NA Debian I Ubuntu. Mamy nadzieję, że było to korzystne.
- « Jak używać rsync do synchronizacji nowych lub zmienionych/zmodyfikowanych plików w systemie Linux
- Nethogs - Monitoruj wykorzystanie ruchu sieciowego Linux na proces »