Nginx ile ModSecurity Kurulumu

Ra

Uzman üye
1 Ocak 2016
1,679
95
Gaziantep
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:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=Lime]sudo systemctl stop apache2 sudo systemctl disable apache2[/COLOR][/FONT][/COLOR][/FONT]


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

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=Lime]sudo apt-get install -y git  build-essential libpcre3 libpcre3-dev libssl-dev libtool autoconf  apache2-dev libxml2-dev libcurl4-openssl-dev automake pkgconf[/COLOR][/FONT][/COLOR][/FONT]




bcqDns.png



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:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=Lime]cd /usr/src git clone -b nginx_refactoring https://github.com/SpiderLabs/ModSecurity.git[/COLOR][/FONT][/COLOR][/FONT]


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

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=Lime]cd ModSecurity  ./autogen.sh./configure --enable-standalone-module --disable-mlogcmake[/COLOR][/FONT][/COLOR][/FONT]



bcqDns.png



Nginx'i Nasıl Kurarız?

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

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=lime]cd /usr/src ​sudo wget http://nginx.org/download/nginx-1.13.4.tar.gz[/COLOR][/FONT][/COLOR][/FONT]


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

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=Lime]sudo tar xvzf nginx-1.13.4.tar.gz[/COLOR][/FONT][/COLOR][/FONT]


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:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=lime]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[/COLOR][/FONT][/COLOR][/FONT]


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

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=White][COLOR=Lime]sed -i "s/#user nobody;/user www-data www-data;/" /usr/local/nginx/conf/nginx.conf[/COLOR][/COLOR][/FONT][/COLOR][/FONT]


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

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=lime]/usr/local/nginx/sbin/nginx -t[/COLOR][/FONT][/COLOR][/FONT]


HEyp1U.png


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



bcqDns.png


Systemd birim dosyası oluşturma

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

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=red][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[/COLOR][/FONT][/COLOR][/FONT]


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


bcqDns.png



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

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

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=White][COLOR=Red]******** / {
    root   html;
    index  index.html index.htm;
}[/COLOR][/COLOR][/FONT][/COLOR][/FONT]


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

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=Lime]******** / {
    ModSecurityEnabled on;
    ModSecurityConfig modsec_includes.conf;
    root   html;
    index  index.html index.htm;
}[/COLOR][/FONT][/COLOR][/FONT]


ve kaydedip çıkış yapıyoruz.

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

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=White][COLOR=Lime]sudo nano /usr/local/nginx/conf/modsec_includes.conf[/COLOR][/COLOR][/FONT][/COLOR][/FONT]


komutu ile ,

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=lime]modsec_includes.conf[/COLOR][/FONT][/COLOR][/FONT]


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

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=White][COLOR=lime]include modsecurity.conf
include owasp-modsecurity-crs/crs-setup.conf
include owasp-modsecurity-crs/rules/*.conf[/COLOR][/COLOR][/FONT][/COLOR][/FONT]


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:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=Lime]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/[/COLOR][/FONT][/COLOR][/FONT]



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

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=Red]sudo sed -i "s/SecRuleEngine DetectionOnly/SecRuleEngine On/" /usr/local/nginx/conf/modsecurity.conf[/COLOR][/FONT][/COLOR][/FONT]


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

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=White][COLOR=Cyan]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[/COLOR][/COLOR][/FONT][/COLOR][/FONT]


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

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=red]sudo ufw allow OpenSSH
sudo ufw allow 80
sudo ufw default deny
sudo ufw enable[/COLOR][/FONT][/COLOR][/FONT]


bcqDns.png


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:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=DarkOrange]sudo tail -f /usr/local/nginx/logs/error.log[/COLOR][/FONT][/COLOR][/FONT]


Jk4Z3p.png


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

Tarayıcıya bunu giriyoruz:

Kod:
[FONT=Lucida Console][COLOR=White][FONT=Lucida Console][COLOR=darkorange]http://192.168.1.14:8081/index.html/?param=”><script>alert(1);</script[/COLOR][/FONT][/COLOR][/FONT]


LQ6XzC.png


Evet aşağıda gördüğümüz gibi loglarımızı almayı başardık.Sistem çalışıyor!

luIjXD.png






 
Moderatör tarafında düzenlendi:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.