<div><div align="center">Merhaba Bu yazımda Nginx ile Modsecurity kuracağız.Ubuntu 18.04 platformunu kullanacağım.

Bağımlılıkları kuracağız ama ilk olarak Apache'yi devre dışı bırakmamız lazım yoksa NGINX'i başlatamayız.
Devre dışı bırakmak için bu komutları kullanınız.

Kod:
sudo systemctl stop apache2 sudo systemctl disable apache2


Şimdi bağımlılıkları kurmak için Terminal'e geri dönüyoruz ve komutlarımızı çalıştırıyoruz.

Kod:
sudo apt-get install -y git build-essential libpcre3 libpcre3-dev libssl-dev libtool autoconf apache2-dev libxml2-dev libcurl4-openssl-dev automake pkgconf







ModSecurity'i Nasıl Kurarız?

Evet şimdi sıra ModSecurity'i kurmaya geldi.
İlk önce ModSecurity nginx_refactoring dalını indirmemiz gerekiyor bunun için aşağıda ki komutları
çalıştırmamız lazım.

Kod:
cd /usr/src git clone -b nginx_refactoring https://github.com/SpiderLabs/ModSecurity.git


İndirme işlemi bittiğinde komutlarla derleme yapacağız.

Kod:
cd ModSecurity ./autogen.sh./configure --enable-standalone-module --disable-mlogcmake






Nginx'i Nasıl Kurarız?

Şimdi sıra Nginx'i indirip derlemekte. Kullacağım sürüm NGINX 1.13.4 olacak.

Kod:
cd /usr/src ​sudo wget http://nginx.org/download/nginx-1.13.4.tar.gz


Bu dosyayı bu komut ile çıkartıyoruz :

Kod:
sudo tar xvzf nginx-1.13.4.tar.gz


Derleme işlemine geçmeden önce sudo -s komutuyla kök kullanıcıya geçiş yapalım.

Geçtikten sonra bu komutları derleyeceğiz:

Kod:
cd nginx-1.13.4/ ​./configure --user=www-data --group=www-data --add-module=/usr/src/ModSecurity/nginx/modsecurity --with-http_ssl_module
make make install



Sıra varsayılan nginx kullanıcısı değişmeye geldi.

Kod:
sed -i "s/#user nobody;/user www-data www-data;/" /usr/local/nginx/conf/nginx.conf


Kurulumu test etmek için şu komutu kullanmamız lazım.

Kod:
/usr/local/nginx/sbin/nginx -t




Şimdi sıra OWASP Kural Yapılandırmalarını ve OWASP testlerini yapmaya geldi.





Systemd birim dosyası oluşturma

NGINX'in önyüklemede başlayabileceğinden emin olmak için
Kod:
sudo nano /lib/systemd/system/nginx.service
komutuyla yeni bir systemd dosyası oluşturmamız gerekiyor.

Kod:
[Service] Type=forking ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload
KillStop=/usr/local/nginx/sbin/nginx -s stop KillMode=process Restart=on-failure RestartSec=42s PrivateTmp=true LimitNOFILE=200000
[Install] WantedBy=multi-user.target Save and close that file. To start, stop, and restart nginx, the commands will now be: sudo systemctl start nginx.service sudo systemctl stop nginx.service sudo systemctl restart nginx.service



Bu dosyayı kaydediyoruz ve ardından kapatıyoruz.
Şimdi NGINX başlat ve durdur komutlarını çalıştıracağız.





NGINX ve ModSecurity'i Nasıl Yapılandırırız?

Önce NGINX'i yapılandıracağız. Bunun yapmak için
Kod:
sudo nano /usr/local/nginx/conf/nginx.conf komutuyla nginx.conf
dosyasını açıyoruz.
Bu dosyada şu kısmı buluyoruz:

Kod:
******** / {
root html;
index index.html index.htm;
}



ve bu kodları şu kodlar ile değiştiriyoruz:

Kod:
******** / {
ModSecurityEnabled on;
ModSecurityConfig modsec_includes.conf;
root html;
index index.html index.htm;
}



ve kaydedip çıkış yapıyoruz.

Şimdi OWASP kurallarını etkinleştirmeye geldi. Bunun için;

Kod:
sudo nano /usr/local/nginx/conf/modsec_includes.conf


komutu ile ,

Kod:
modsec_includes.conf


dosyasını açıyoruz ve bu kısmı ekliyoruz:

Kod:
include modsecurity.conf
include owasp-modsecurity-crs/crs-setup.conf
include owasp-modsecurity-crs/rules/*.conf



Kaydediyoruz ve çıkış yapıyoruz.


Bir sonra ki işlem de gerekli olan ModSecurity yapılandırma dosyalarının içe aktarımını gerçekleştireceğiz.

Bunun için verdiğim komutları çalıştırıyoruz:

Kod:
sudo cp /usr/src/ModSecurity/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf
sudo cp /usr/src/ModSecurity/unicode.mapping /usr/local/nginx/conf/




Modsecurity.conf dosyasının içinde ki SecRuleEngine seçeneğini bu komutla etkinleştiriyoruz:

Kod:
sudo sed -i "s/SecRuleEngine DetectionOnly/SecRuleEngine On/" /usr/local/nginx/conf/modsecurity.conf


Aşağıda ki komutlarla OWASP ModSecurity Çekirdek Kural kümesini ekliyoruz ve işlemimiz sonlanıyor:

Kod:
cd /usr/local/nginx/conf
sudo git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
sudo cd owasp-modsecurity-crs
sudo mv crs-setup.conf.example crs-setup.conf
sudo cd rules
sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
sudo mv RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf



ModSecurity'i test etmeden önce firewallımızı verdiğim komutlarla açıyoruz:

Kod:
sudo ufw allow OpenSSH
sudo ufw allow 80
sudo ufw default deny
sudo ufw enable





ModSecurity Nasıl Çalıştırım ?

Evet işlemlerimiz bitti ve çalışıp çalışmadığını test etme vakti.
Bunun için Sunucumuza şu komutu veriyoruz:

Kod:
sudo tail -f /usr/local/nginx/logs/error.log




Şimdi bir tarayıcı açıyoruz...

Tarayıcıya bunu giriyoruz:

<div style="margin:20px; margin-top:5px"> Kod:
<font face="Lucida Console"><font color="White"><font face="Lucida Console"><font color="darkorange">http://192.168.1.14:8081/index.html/?param=?>alert(1);