Skonfiguruj NGINX z ModSecurity na CentOS 6

W tym artykule wyjaśnię, jak zbudować stos LEMP chroniony przez ModSecurity. ModSecurity to zapora sieciowa typu open source, która jest przydatna do ochrony przed wstrzyknięciami, atakami PHP i innymi. Jeśli chcesz skonfigurować NGINX za pomocą ModSecurity, czytaj dalej.

Wszystkie kroki w tym artykule wymagają dostępu do konta root.

Krok 1: Instalowanie wymagań wstępnych

Jeśli jeszcze nie działasz jako użytkownik root, eskaluj się:

/bin/su

Potrzebujemy kompilatora, dlatego wykonaj następujące czynności, aby się upewnić:

yum install -y gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel httpd-devel libxml2-devel xz-devel python-devel libcurl-devel
yum groupinstall -y 'Development Tools' 

Aby zainstalować NGINX, musimy najpierw uzyskać pakiet. Pobierz pakiet:

cd /usr/src && wget http://nginx.org/download/nginx-1.9.9.tar.gz

Będziemy również wymagać pakietu PHP dla naszego stosu.

wget http://us2.php.net/distributions/php-5.6.16.tar.bz2

Ponieważ instalujemy ModSecurity, pobierzemy źródło i pobierzmy:

wget https://www.modsecurity.org/tarball/2.9.0/modsecurity-2.9.0.tar.gz

Teraz rozpakuj / rozpakuj pliki.

tar xvf nginx-1.9.9.tar.gz
tar xvf php-5.6.16.tar.bz2
tar xvf modsecurity-2.9.0.tar.gz   

Następnie zainstalujemy ModSecurity.

cd /usr/src/modsecurity-2.9.0 && ./configure --enable-standalone-module --disable-mlogc
make && make install

Po uzyskaniu wszystkich wymagań wstępnych zainstalujmy NGINX. Poniższy zestaw poleceń dotyczy instalacji NGINX i ModSecurity.

cd /usr/src/nginx-1.9.9 && ./configure --add-module=../modsecurity-2.9.0/nginx/modsecurity/
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

Teraz zainstalujmy serwer MySQL.

yum install -y mysql-server
service mysqld start
mysql_secure_installation

Dla mysql_secure_installationpolecenia:

  • Naciśnij Enter na pierwszym etapie kreatora instalacji.
  • Wpisz Y po wyświetleniu monitu, czy należy ustawić nowe hasło root MySQL.
  • Wpisz nowe hasło, potwierdź, wpisując je ponownie.
  • Naciśnij klawisz Y, aby usunąć anonimowych użytkowników, nie zezwalaj na zdalny dostęp root do MySQL, naciskając ponownie klawisz Y.
  • Naciśnij Y ostatni raz, aby usunąć testową bazę danych / użytkownika.
  • Na koniec naciśnij Y, aby zapisać zmiany.

Ostatnia rzecz do zainstalowania, a to PHP. W tym artykule zainstalujemy PHP ze źródła.

Wpisz katalog źródłowy dla PHP.

cd /usr/src/php-5.6.16

Teraz skonfiguruj PHP. Następujące argumenty w ./configurepoleceniu służą do uruchamiania aplikacji takich jak WordPress.

 ./configure --with-pear=/usr/lib/pear --enable-libxml --with-pdo-mysql --with-mysqli --with-mysql --enable-mbstring --with-curl
 make
 make install

Zainstaluj PHP-FPM dla NGINX:

yum install -y php-fpm

Musimy zainstalować PHP-FPM na samym PHP, ponieważ sama NGINX nie integruje się bezpośrednio z PHP. Zamiast tego NGINX przekazuje przetwarzanie PHP do PHP-FPM w celu wykonania naszych skryptów.

Dobra robota! Zainstalowano wymagania wstępne.

Krok 2: Konfiguracja ModSecurity / NGINX

Zacznijmy od zbudowania zestawu reguł ModSecurity. ModSecurity sam nic nie robi, dopóki go nie skonfigurujesz.

Pobierz zestaw reguł OWASP z ich strony internetowej:

 cd /usr/src && wget https://github.com/SpiderLabs/owasp-modsecurity-crs/tarball/master
 tar xvf master

Po pobraniu zestawu reguł połączymy domyślną konfigurację z regułami podstawowymi.

cd SpiderLabs-owasp-modsecurity-crs-60c8bc9
cp /usr/src/modsecurity-2.9.0/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf
cp /usr/src/modsecurity-2.9.0/unicode.mapping /usr/local/nginx/conf/
cat base_rules/*.conf >> /usr/local/nginx/conf/modsecurity.conf
cp base_rules/*.data /usr/local/nginx/conf

Teoretycznie powinno to chronić przed większością exploitów sieciowych. Jednak zainstalowane wtyczki / kod powinny również zostać poddane audytowi, ponieważ chociaż ModSecurity jest doskonałym środkiem bezpieczeństwa, nie jest kuloodporny.

Utwórz katalog w /var/www:

mkdir /var/www

I katalog dla twojego wirtualnego hosta:

mkdir /var/www/yourwebsite.com

Na koniec dołącz następujące elementy do konfiguracji NGINX znajdującej się pod adresem /usr/local/nginx/conf/nginx.conf. Pamiętaj o dołączeniu tej konfiguracji przed pojawieniem się ostatniego }symbolu.

  server {
  listen   80;
  root /var/www/yourwebsite.com;
  index index.php index.html index.htm;
  server_name yourwebsite.com www.yourwebsite.com;
  location / {
  ModSecurityEnabled on;
  ModSecurityConfig /usr/local/nginx/modsecurity.conf;
  }
  }

  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

Krok 3: Uruchomienie PHP-FPM i NGINX

Ten krok jest dość prosty - wystarczy wykonać następujące polecenia.

service php-fpm start
/usr/sbin/nginx

Gratulacje! Skonfigurowałeś swoją pierwszą stronę z NGINX chronionym przez ModSecurity. Więcej informacji na temat ModSecurity można znaleźć na ich oficjalnej stronie .

Zostaw komentarz

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.