Netinternet WAF(HEIMWALL) İncelemesi, CloudFlare Entegrasyonu ve Wordpress Ayarları

Netinternet WAF yeni adıyla Heimwall R10, Hızlıresim gibi Türkiye’de çokça ziyaret edilen web siteleri bu servisi aktif bir şekilde kullanmaktadırlar. Kapalı beta sürecinden yakın zamanda açık beta sürecine geçen ve hosting şirket sahipleri dışında bireysel kullanıma da sunulmuştur.

YouTube video

Şimdiden uyarayım burada görmüş olduğunuz görsellerdeki ayarlar ilerleyen zamanlarda değişiklik gösterebilir. Sistem 13 Haziran 2021 Tarihi ile Kapalı BETA olarak çalışmaktadır.

HEIMWALL Özellikleri Nelerdir?

Ücretsiz sürümde hangi özellikler bizleri karşılıyor

  • Tüm WAF özellikleri full açık gelmektedir,
  • 10 Alan Adı/Subdomain Kullanım Kotası
  • 5000 GB/ay trafik kotasına kadar kullanılabilmektedir,
  • Volimetrik ataklara karşın temel Anti-DDoS servisi ücretsizdir,
  • 2 ayrı fiziksel worker da alan adınız tanımlanır, yedekli çalışır,
  • CloudFlare ile kullanabilmeniz mümkündür,
  • 2 IPv4 ve 2 IPv6 VRRP IP adresi sağlanır.

Ürünü genel olarak inceleyeceğiz, nedir ne değildir bunları sizlere göstermek istiyorum. Öncelikli olarak proje Türkiye şartlarında Layer 7 atakları için ve özellikle trafik filtreleme için ideal. CloudFlare kullanmaktan çekinen kişiler olduğunu biliyoruz. Bu noktada bu ürünü kendi sistemlerine konumlandırabilirler.

netinternet waf, layer 7 ddos protection, botnet korumaPin

Burada alan adınızı eklediğiniz anda sizi önemli olan iki özellik karşılıyor, bunlar sırasıyla;

  1. JS Koruma Modu: Bu CloudFlare’de yer alan tarayıcı kontrol özelliğine denk geliyor ve saldırı alıyorsanız otomatize gelen botlardan sizleri bir nebze korumaktadır. Bu noktada kullanıcının tarayıcısı gerçek bir kullanıcı mı değil mi diye kontrol ediliyor.
  2. Captcha Koruma Modu: Gene aynı şekilde hCaptcha gelen CloudFlare sayfasına denk gelmektedir. Burada gizlilik için reCaptcha keylerini sistem sizden talep etmekte. İlerleyen zamanlarda bu sisteme hCaptcha’nın da ekleneceğini düşünüyorum.

DNS sekmesinde bizim asıl kullanacağımız IP adresleri bulunuyor, bunları direk olarak CloudFlare aracılığı ile veya kullanabileceğiniz DNS yönlendirme araçları ile kullanabilirsiniz. Baştan uyarayım henüz DNS servisleri aktif olmadığı için Nameserver olarak bu ip adresleri KULLANILAMAZ.

netinternet waf dns ayarları, layer 7 ddos koruma, layer 7 atak korumaPin

Burada DNS Servisleri alanındaki Anycast DNS yapısı ben bu makaleyi yazdığım tarihte kapalıydı, test işlemlerinden hemen sonra aktif edilecek ve kullanılmaya başlanacak. CloudFlare gibi 8ms altında DNS sorgusu beklemeyin ancak Türkiye’de yer alan çoğu sağlayıcıdan daha hızlı DNS sorguları alabileceğinizden emin olabilirsiniz.

HEIMWALL WAF Üzerine Kaynak Sunucu Nasıl Eklenir?

waf nasıl kurulur, loadbalance nasıl yapılandırılır, netinternet layer 7 ddos koruması, netinternet ddos koruma, ddos ataklarıPin

Bütün olayların döndüğü yere geldik, burada korunacak web sitesinin kaynak rotalarını belirtiyoruz, URL olmak zorunda ve herhangi bir değer olabilir. Yani örnek vermem gerekirse ip adresi üzerinden içerikleri almasını isteyebilirsiniz. Bu noktada Host header’i üzerinden çalışacak ve istekleri işleyecek. Kaynak sunucu mutlaka belirtmelisiniz. Burada dikkat edilmesi gerekenler

  • HTTPS üzerinden ip adresi ile yayın yapılıyorsa mutlaka “TLS Doğrulamayı Iptal Et” seçeneğinin aktif olması gerekmektedir. Aksi taktirde sistem sitenize erişemez.
  • Kaynak olarak herhangi bir alan adı kullanılacaksa ve SSL sertifikası yer alıyorsa mutlaka geçerli olmalı self-signed kabul edilmeyeceğini unutmayınız. (TLS Doğrulamayı Iptal ettiğiniz durumlar hariç)
  • Yük dengeleme modun da çalışacaksa en az iki kaynak eklenmesi gerektiğini unutmayınız.

HEIMWALL WAF SSL/TLS Nasıl Ayarlanır?

Geldik ikinci hayati aşamalardan biri olan SSL/TLS ayarlarına, bu ayarı bazıları SEO için kullanıyor ancak biz güvenlik için kullanacağız. Trafiğin üçüncü gözler tarafından gözetlenmesinin önüne geçeceğiz. İsterseniz Let’s Encrypt isterseniz de benim yaptığım gibi özel sertifikanızı sisteme yükleyebilirsiniz.

Unutmamalısınız Let’s Encrypt entegrasyonu kullanıldığı için yapacağınız bir ve/veya birden fazla yanlış SSL isteğinde ACME servislerinin rate-limitine takılacağınız için ücretsiz SSL alma imkânınız ertesi güne sarkabilir. Lütfen tüm yönlendirmeleri ve işlemleri yapmadan TLS sertifikası almaya çalışmayın.

Ayrıca tahmin ediyorum ki ileride 3.parti bir sağlayıcı kullanarak 1 yıl veya daha uzun süreli SSL sertifikası alma imkanınızda olacaktır.

netinternet waf ayarları, netinternet waf ssl oluşturmaPin

Bunların dışında Optimizasyon ve hızlandırma açısından platform Brotli sıkıştırmasını, asset küçültmeyi ve görsel optimizasyonunu destekliyor. Sistemlerde geliştirme devam ettiği için bu servisler çalışmayabilir merak etmeyin yeni sürümlerde otomatik olarak aktif olacaktır.

netinternet waf görsel sıkıştırma ve optimizasyonPin

Dinamik kurallar açısından sistem oldukça gelişmiş durumda, bu noktada istediğiniz işlemleri kolay bir şekilde yapabilirsiniz. Örneğin ben wp-admin sayfalarında ve çerez içeren yerlerde cache tutulmasını engelliyorum.

netinternet waf özel kurallarPin

CloudFlare ile arasında benim gözlemlediğim en bariz farklar ise şu şekilde, olmakla beraber çoğu özellik bizlere ücretsiz olarak sunulmakta.

  • Hiçbir ek ücret gerektirmeden kullanılabilen WAF kuralları
  • Ücretsiz kullanılabilen özelleştirilebilir hata sayfaları
  • Gene ücretsiz kullanılabilen detaylı analiz paneli
  • JS ve Captcha koruma modları arasında özgürce değişiklik yapabilme imkânı
  • Günlük kayıtlarının hiçbir ücret alınmadan syslog sunucularına yönlendirme imkânı
  • Otomatik aktif olabilen Captcha koruma özelliği
  • Yönetilebilir kuralların ücretsiz olması
  • Ve dahası

Sistemi Kapalı beta sürecinde test etmek isteyenler ve/veya ileride projelerine dahil etmek isteyenler bu adres aracılığı ile sisteme giriş yapabilirler. Bu süreçte hesap açtırmak isteyenler ise Twitter üzerinden Osman Makal hocamıza ulaşabilirler.

CloudFlare ile Netinternet WAF Nasıl Entegre Edilir?

Netinternet WAF ile ilgili ilk izlenimlerimi yazdım, sistem CloudFlare arkasında sorunsuz bir şekilde çalışıyor hal böyle olunca da hem test amaçlı hem de ek koruma katmanı olması amacıyla kullanmazsak olmaz.

İşlemlere başlamadan hemen önce kullanacağınız sunucu üzerinde firewall ile sadece aşağıdaki ip adreslerine izin verin. Böylelikle gerçek sunucu IP adresiniz asla açığa çıkmaz ve sunucunuzun güvenliğini sağlayabilirsiniz.

CloudFlare IP rangeleri(https://www.cloudflare.com/ips/)

173.245.48.0/20
103.21.244.0/22
103.22.200.0/22
103.31.4.0/22
141.101.64.0/18
108.162.192.0/18
190.93.240.0/20
188.114.96.0/20
197.234.240.0/22
198.41.128.0/17
162.158.0.0/15
104.16.0.0/13
104.24.0.0/14
172.64.0.0/13
131.0.72.0/22
2400:cb00::/32
2606:4700::/32
2803:f800::/32
2405:b500::/32
2405:8100::/32
2a06:98c0::/29
2c0f:f248::/32
Plaintext

Netinternet WAF ip rangeleri

159.253.42.0/24
94.102.14.0/24
Plaintext

Bu işlemi yaptıktan hemen sonra bütün http ve https erişiminiz kesilecek ve sadece yukarıdaki ip aralıklarına izin vermiş olacaksınız. Burada sadece Netinternet WAF üzerinden trafiği akıtacaksanız CloudFlare iplerinin firewall tarafından izinli listesine alınmasına gerek yok. Ancak WAF dışında bazı sub domainleri direk CloudFlare üzerinden yayına almak isterseniz işte o zaman iş değişir.

Şimdi web sunucunuzu normal yapılandırın bunu ister kullandığınız kontrol panelinden isterseniz de elle yapılandırın, yapılandırma işleminiz tamamlandığında ip adresine erişilebiliyor olmalı ve içeriği görmelisiniz. Bununla birlikte HTTP/2 200 olarak curl -I ip_address çıktısında da sonuç aşağıdakine benzer olmalı

HTTP/2 200
date: Sun, 20 Jun 2021 14:59:39 GMT
content-type: text/html; charset=utf-8
last-modified: Sun, 20 Jun 2021 14:54:19 GMT
vary: Accept-Encoding
expires: Sun, 20 Jun 2021 15:52:59 GMT
cache-control: public, max-age=31536000
pragma: public
Plaintext

İşlemler tamamsa artık yapılması gereken Netinternet WAF paneline giriş yapmak ve “Sunucular> Kaynak Sunucu> Ekle” seçeneğini seçmek ve kaynağı eklemek olacak. Burada önemli nokta eğer ip adresiniz üzerinde ön tanımlı olarak sadece 443 sunucusu çalışıyorsa ve Self-Signed bir SSL tanımlıysa otomasyon sitenize haliyle erişemeyeceği için “SSL/TLS Doğrulamayı İptal Et” seçeneğinin aktif edilmesi gerekmekte. 80 portunun kullanıldığı senaryolarda bu işlemi yapmanıza gerek yok.

netinternet waf cloudflare entegrasyonu, cloudflare netinternet entegrasyonu, cloudflare ile caching waf kullanımıPin

Kaynağımızı eklediğimizde şu şekilde otomasyon üzerinde gözükmeye başlayacak, birden fazla kaynak ekleyebilirsiniz. Bu durumda “Yük Dengeleme” seçeneğini de aktif etmeyi unutmayınız.

cloudflare ile netinternet waf kullanımıPin

Merak etmeyin burada HTTP Durumu temsili olmakla birlikte çoğu HTTPS kullanılan senaryoda erişim sıkıntısı varmış gibi gözükebilir. Bu durum geçici olduğu unutmayın, Otomasyonu kullanırken ilerleyen zamanlarda durum normale dönecektir.

Ardından son aşamada “Koruma> HTTP Durum Kodu” özelliğinden CloudFlare’nin gerekli durumları algılayabilmesi ve sitenizin kapalı olduğunu düşünmemesi için mevcutta yer alan 503 HTTP kodunu, 403 olarak değiştirin. Bu işlemi yaptığınızda koruma modu açılsa dahi sitenize erişim kesilmeyecek. Sadece CloudFlare’nin sitenizin kapalı olduğunu düşünmesi durumu ortadan kalkacaktır.

Değişiklikler uygulandığında son durum “HTTP Durum Kodu” için aşağıdaki gibi olacak.

cloudflare ile netinternet waf kullanımıPin

İşlem Netinternet WAF otomasyonu üzerinde tamamlandı. Gelelim CloudFlare üzerinden yapılacak işlemlere önce bir süreliğine SSL/TLS ayarını Flexible olarak değiştiriyoruz. Böylelikle tarayıcı ile site arasında trafiği şifrelemiş oluyoruz. Ayrıca CloudFlare ile Ücretsiz SSL/TLS Sertifikası Nasıl Alınır? Makalesindeki adımları uygulayarak bu ayarı Full (strict) olarak da kullanabilirsiniz.

cloudflare ile netinternet waf entegrasyonu nasıl yapılır, cloudflare ile ek waf entegrasyonuPin

Bunu yapmamızın asıl sebebi WAF üzerinden SSL alacak olmamız, ama derseniz ben otomasyon üzerinde CloudFlare’nin verdiği origin sertifikayı kullanırım o zaman otomasyona sertifikanızı yükleyin ve direk olarak “Full (strict)” seçeneğini seçin. (Geçerli bir SSL kullanmazsanız Full seçeneğini seçmeniz gerektiğini unutmayın.)

Aksi bir işlem yaparsanız web siteniz çalışsa bile CloudFlare araya girecek ve SSL bağlantısını sağlamayacak siteye kimseyi eriştirmeyecektir. SSL kullanmayacaksanız veya aradaki bağlantının doğruluğunun sizin için bir önemi yoksa bu ayarları yapmanıza gerek yok.

Son aşamada ise otomasyonun bize vermiş olduğu IP adresini CloudFlare’de yer alan DNS sekmesinde gerektiği gibi kullanmak.

cloudflare dns ayarları, cloudflare ile netinternet waf nasıl kullanılırPin

Bu şekilde yaptığımız entegrasyon sonucunda sistem üzerinde Layer 7 yani uygulama katmanı üzerinden gelecek olan HTTP GET vb atakların çoğunun önüne geçmiş olacaksınız. Otomatik aktif olan Captcha koruması sayesinde bot trafik filtrelenecek.

Dikkat edilmesi gerekenler

  • Kaynak sunucunuz yurt dışında yer alıyorsa şu an için WAF + CloudFlare kullanmayın.
  • Sık sık saldırı almıyorsanız Netinternet WAF ile birlikte CloudFlare entegrasyonu yapmayın.
  • Netinternet WAF konum olarak Türkiye’de yer aldığı için CloudFlare ile entegre edildiğinde 8-11 ms kadar bir gecikme artışına sebep olabilir bu durumun geçici olduğunu unutmayınız.

Netinternet WAF(HEIMWALL) Orijinal Ziyaretçi IP’leri Nasıl Çözümlenir?

Web sitenizin trafiği Netinternet WAF(HEIMWALL) üzerinden doğrudan web sunucunuza yönlendirildiğinde, Netinternet WAF(HEIMWALL) bir ters proxy görevi görür ve istekleri sunucuya ileterek çalışır. İstekleri sunucunuza ulaşmadan hemen önce karşılar, kötücül trafiği temizler ve sunucunuza iletir. Bunu yaparken de IP adresi Netinternet WAF‘ın kullandığı IP aralıkları olur.

Orijinal ziyaretçi IP adresleri ise sistem tarafından, True-Client-IP HTTP başlığı ile web sunucusuna bildirilir. Bu makale ile orijinal ziyaretçi IP adresini kaynak sunucunuza iletebilirsiniz.

NGINX HEIMWALL Ayarları

Herhangi bir metin editörü ile /etc/nginx/conf.d/ni-waf.conf dosyasını oluşturun ve aşağıdaki satırları dosya içerisine ekleyin.

set_real_ip_from 159.253.40.49/32; # Eski IP aralıklarını kullananlar için
set_real_ip_from 159.253.40.50/32; # Eski IP aralıklarını kullananlar için
set_real_ip_from 159.253.42.0/24;
set_real_ip_from 94.102.14.0/24;
real_ip_header True-Client-IP;
Plaintext

Bu işlemden hemen sonra nginx kardeşimizi systemctl restart nginx ile yeniden başlatın, logları kontrol ettiğinizde artık sorunsuz bir şekilde IP adreslerini görebileceksiniz.

Apache HEIMWALL Ayarları

Kullanacağımız üçüncü parti kütüphaneyi sisteme tanımlayın.

sudo a2enmod remoteip
Plaintext

Bu işlemden hemen sonra 000-default.conf klasörüne ön tanımlı yapılandırma için aşağıdaki satırı ekleyin.

RemoteIPHeader True-Client-IP
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Plaintext

Mecburiyetten log formatında oynama yapmalıyız bunun için apache2.conf dosyasında aşağıdaki değişikliği uygulayın.

LogFormat %a %l %u %t \%r\ %>s %O \%{Referer}i\ \%{User-Agent}i\ combined
Plaintext

Herhangi bir metin editörü ile /etc/apache2/conf-available/remoteip.conf dosyasını oluşturun ve aşağıdaki satırları dosya içerisine ekleyin.

RemoteIPHeader True-Client-IP
RemoteIPTrustedProxy 159.253.40.49/32 # Eski IP aralıklarını kullananlar için
RemoteIPTrustedProxy 159.253.40.50/32 # Eski IP aralıklarını kullananlar için
RemoteIPTrustedProxy 159.253.42.0/24
RemoteIPTrustedProxy 94.102.14.0/24
Plaintext

Yapılandırmayı aktif edip Apache’yi yeniden başlatın.

sudo a2enconf remoteip
systemctl restart apache2
Plaintext

HEIMWALL WAF Wordpress İçin Özel Kurallar

netinternet waf özel kurallar nasıl aktif edilir, netinternet waf firewall ayarları, netinternet waf wordpress özel kurallarPin

Kuralları oluşturmak için panelde yer alan “Kurallar” sekmesinde yer alan “Yönetilen Kurallar” seçeneğini aktif etmeniz gerekmektedir. Hemen ardından aşağısında yer alan “Özel Kurallar> Oluştur” yönergesini takip ederek aşağıdaki kuralları web siteniz için ekleyebilirsiniz.

  • Kural adı: Bypass wp-admin cache
  • Kural aksiyonu: bypass cache
(http.request.uri contains "/wp-admin")
Plaintext
netinternet waf özel wordpress kuralları, netinternet waf özel kural nasıl oluşturulurPin
  • Kural adı: Bypass cookie
  • Kural aksiyonu: bypass cache
(http.cookie contains "wp-.*|wordpress.*|comment_.*|woocommerce_.*")
Plaintext
netinternet waf wordpress için özel kurallar, netinternet waf özel firewall kuralları, wordpress waf kurallarıPin
  • Kural adı: Login protect
  • Kural aksiyonu: captcha challenge
(http.request.uri.path contains "/wp-login.php")
Plaintext
wordpress özel waf kuralları, wordpress için netinternet waf kurulumu, wordpress ddos koruma, wordpress botnet korumaPin
  • Kural adı: Whitelist Known Bots
  • Kural aksiyonu: Allow
(waf.client.bot == "on")
Plaintext
netinternet waf bilinen botlara nasıl izin verilir, netinternet waf google botlara izin vermekPin
  • Kural adı: Protect Wp-admin
  • Kural aksiyonu: block
(ip.src != "1.1.1.1" and http.request.uri.path contains "/wp-admin") or (http.request.uri.path contains "/wp-login.php")
Plaintext
netinternet waf wordpress admin alanı nasıl korunur, protect wp-admin wordpress netinternet waf, netinternet waf güvenlik duvarıa yarlarıPin
  • Kural adı: Reduce Spam
  • Kural aksiyonu: block
(http.request.uri.path == "/wp-comments-post.php" and http.request.method == "POST" and http.referer != "siteadresi.com")
Plaintext
wordpress reduce spam, wordpress spam düşürme, netinternet waf spam kurallarıPin
  • Kural adı: Block xmlrpc.php
  • Kural aksiyonu: block
(http.request.uri.path contains "/xmlrpc.php")
Plaintext
xmlrpc saldırı koruması nasıl yapılır, netinternet waf firewall kuralları, netinternet waf ayarlarıPin

Sistem Uzmanı, Linux Hacısı, El-Kernel

Yorum yapın