Ana içeriğe geç
%50 indirim tüm planlarda, sınırlı süreyle. Başlangıç fiyatı $2.48/mo
19 min left
Güvenlik ve Ağ

Linux VPS Üzerinde SafeLine WAF Nasıl Kurulur

H Yazan Haze 19 dk okuma
SafeLine WAF deployed on a Linux VPS with Docker Compose, shown as a shielded server filtering traffic with NPM, Caddy, and SQLi testing labels

İnternete açık web uygulamaları düzenli olarak SQL injection, kimlik bilgisi istismarı ve bilinen zafiyet kalıpları açısından taranır. SafeLine, bir GPL-3.0 kendi sunucunuzda barındırılan WAF olup, bir Docker Compose yığını olarak çalışır ve izin verilen istekleri origin sunucuya iletmeden önce HTTP/S trafiğini filtreler. Onun ücretsiz Personal planı 10 adede kadar uygulamayı destekler.

Bu eğitim, kurulumu ve özel dikkat gerektiren üç alanı ele alır: reverse-proxy mimarisi kararı, SafeLine'ın Nginx Proxy Manager gibi mevcut bir proxy'nin arkasında konumlandığı durumda Docker ağ yapılandırması ve WAF'ın gerçekten saldırıları yakaladığını doğrulamak için kurulumdan sonra çalıştırabileceğiniz bir doğrulama komutu.

Kısa Versiyon

  • SafeLine'ı Docker Compose ile bir Linux VPS üzerine kurun. Tek satırlık kurulum aracını kullanın ya da yığını başlatmadan önce Compose tanımını ve ortam yapılandırmasını incelemek için manuel Docker Compose yolunu izleyin.
  • Kurulumdan önce reverse-proxy mimarisine karar verin: tek proxy olarak SafeLine, mevcut bir Nginx Proxy Manager arkasında SafeLine veya sunucuyu Caddy ile paylaşan SafeLine. Her yapı farklı port atamaları ve X-Forwarded-For ayarları gerektirir.
  • Kurulumdan sonra, korunan URL'ye bir curl SQL injection sondası göndererek WAF'ı doğrulayın. Balanced veya Strict modda, bir 403 yanıtı ve eşleşen bir Attack Events kaydı engellemeyi doğrular. Monitor modda ise yanıt başarılı kalabilse dahi eşleşen olay algılamayı doğrular.
  • Ücretsiz Personal katmanı 10 adede kadar uygulamayı ve temel algılama motorunu kapsar. Coğrafi engelleme, saldırı günlüğü dışa aktarma ve harici bildirimler Lite katmanını; daha güçlü saldırı algılama ve yük dengeleme Pro'yu gerektirir.

Başlamadan Önce: Ön Koşullar ve Bu Eğitimin Kapsamı

Bu eğitim, root veya sudo erişimiyle SSH bağlantısı kurabileceğiniz bir Linux VPS'e sahip olduğunuzu ve Docker'ın kurulu olduğunu varsayar. Sonunda en az bir siteyi koruyan çalışan bir SafeLine örneğine ve istediğiniz zaman yeniden çalıştırabileceğiniz bir doğrulama komutuna sahip olacaksınız.

İhtiyacınız olanlar:

  • Bir Linux VPS. Aşağıdaki komutlar systemd'li Debian veya Ubuntu tarzı bir sistem varsayar; diğer dağıtımlarda paket ve servis adlarını doğrulayın.
  • Şuna göre en az 1 vCPU, 1 GB RAM ve 5 GB disk: resmi dağıtım gereksinimleri. Pratik üretim payı için bu kılavuz 2 vCPU, 4 GB RAM ve 20 GB disk önerir.
  • Docker 20.10.14 veya üzeri ve Docker Compose 2.0 veya üzeri.
  • SSSE3 destekli bir x86_64 CPU; şununla doğrulayın: lscpu | grep ssse3 komut kümesinin mevcut olduğunu varsaymak yerine.
  • Korunan uygulamayı genel HTTPS üzerinden yayınlamayı planlıyorsanız, DNS'i VPS genel IP'sine yönlendirilmiş bir alan adı veya alt alan adı.
  • Seçilen topolojiye uygun portlar. A ve C yapıları normalde SafeLine'a 80 ve 443 portlarını verirken, B yapısı bu portları Nginx Proxy Manager'da bırakır ve SafeLine'a 10080 gibi farklı bir dinleyici atar.
  • Root veya sudo erişimi.

VPS sağlayıcısının güvenlik duvarında veya güvenlik grubunda yalnızca seçilen topolojinin ihtiyaç duyduğu genel portları açık bırakın. SSH ve TCP 9443'ü güvenilir yönetim kaynaklarıyla sınırlayın. B yapısında TCP 10080'i genel IPv4 ve IPv6'ya kapalı tutun ve 8080 gibi arka uç portlarını her topolojide özel tutun. 10080'e doğrudan erişim NPM'i atlar ve X-Forwarded-For güven sınırını geçersiz kılar.

Not: Manuel ARM64 dağıtımı için şunu ayarlayın: ARCH_SUFFIX=-arm. SafeLine'ın resmi dağıtım belgeleri ARM'ın bir Pro lisansı gerektirdiğini ve Personal Edition'ın ARM üzerinde desteklenmediğini belirtir. Personal Edition için bir x86_64 VPS kullanın.

Başlamadan önce Docker'ı doğrulayın:

docker --version
docker compose version

Her iki komut da kurulu sürümleri döndürmelidir. Yalnızca Docker sürüm 20.10.14 veya üzeriyse ve Docker Compose sürüm 2.0.0 veya üzeriyse devam edin; aksi halde SafeLine'ı kurmadan önce yükseltin.

Önce Reverse-Proxy Mimarinizi Seçin

Three SafeLine WAF deployment shapes on a Linux VPS: Shape A with SafeLine alone owning ports 80 and 443, Shape B with SafeLine behind Nginx Proxy Manager on port 10080, and Shape C with SafeLine in front of Caddy on port 8080

Sıfırdan bir VPS, SafeLine'ın 80 ve 443 portlarına doğrudan sahip olmasını sağlar. Halihazırda Nginx Proxy Manager, Caddy veya uygulamanın kendi Nginx'ini çalıştıran bir VPS bunu yapmaz ve mimari kararı, sorunsuz bir kurulum ile ilk başlatmada bir port çakışması arasındaki farktır. Bunu başta bir kez doğru yapın, dağıtımın geri kalanı mekanik olur.

Üç yapı:

  • Yapı A, tek reverse proxy olarak SafeLine. SafeLine 80 ve 443 portlarına sahiptir ve korunan uygulama için TLS'i yönetir. Güncel CE sürümleri bir Free Cert iş akışı içerir; manuel sertifika yükleme de kullanılabilir durumda kalır; kurulu sürümdeki kesin sertifika seçeneklerini doğrulayın. Arka uç, genel olmayan bir portta çalışır ve SafeLine ona yönlendirir.
  • Yapı B, Nginx Proxy Manager (NPM) arkasında SafeLine. NPM 80 ve 443 portlarını elinde tutar ve SSL'i yönetir. SafeLine 10080 portunu dinler (yalnızca HTTP, çünkü NPM TLS'i zaten sonlandırmıştır). NPM SafeLine'a iletir; SafeLine arka uca iletir. Bu, NPM zaten dağıtılmışken yaygın bir kurulumdur.
  • Yapı C, Caddy ile birlikte SafeLine. Caddy'nin otomatik HTTPS'i, 443 portu için SafeLine ile rekabet eder. İşe yarar bir düzenleme, SafeLine'a 80 ve 443 portlarını verir ve SafeLine'dan Caddy'ye, oradan uygulamaya sıçrama için Caddy'yi 8080 gibi genel olmayan bir dahili HTTP portuna taşır.
Yapı443 Portuna SahipSSL YönetimiKarmaşıklıkEn Uygun
A, yalnızca SafeLineSafeLineSafeLine içindeDüşükSıfır VPS veya taşınmaya istekli
B, NPM arkasındaNPMNPM içinde (Let's Encrypt)OrtaMevcut NPM dağıtımı
C, Caddy ileSafeLineSafeLine içindeOrta-yüksekKorumak istediğiniz mevcut Caddy

Temel çıkarım: Sıfır bir VPS için en basit olan Yapı A'dır; NPM zaten çalışırken doğru seçim Yapı B'dir; Yapı C, bilinçli bir Caddy port yeniden atamasını gerektirir.

SafeLine'ı VPS'inize Kurun

Kurulumun kendisi işin kolay kısmıdır. SafeLine iki kurulum yolu sunar: waf.chaitin.com'dan uzak bir betik çeken otomatik bir kurulum aracı ve çalışmadan önce her şeyi incelemenize olanak tanıyan manuel bir Docker Compose yolu. Güvenlik politikanıza uyan hangisiyse onu seçin.

Adım 1: Docker'ın Hazır Olduğunu Doğrulayın

Docker sürümünü ve Docker daemon'ının çalıştığını yeniden kontrol edin:

docker --version
docker compose version
sudo systemctl status docker

Beklenen çıktı şunu içerir: active (running) Docker daemon'ı için. Çalışmıyorsa, şununla başlatın: sudo systemctl start docker ve şununla önyüklemede etkinleştirin: sudo systemctl enable docker.

Adım 2: SafeLine Kurulum Aracını Çalıştırın

İki alt yol var. Birini seçin.

Adım 2a, otomatik kurulum. Kurulum aracını root yetkileriyle çalıştırın:

sudo bash -c "$(curl -fsSLk https://waf.chaitin.com/release/latest/manager.sh)" -- --en

Betik, SafeLine veri dizininin nereye yerleştirileceğini sorar, Docker imajlarını çeker ve yığını başlatır. Kurulumdan sonra şunu çalıştırın: sudo docker exec safeline-mgt resetadmin yönetici kimlik bilgilerini almak veya sıfırlamak için, şurada açıklandığı gibi: resmi dağıtım kılavuzu. Ortaya çıkan kimlik bilgilerini güvenli bir şekilde saklayın.

Not: Bu komut, waf.chaitin.com'dan uzak bir shell betiğini root olarak indirir ve çalıştırır. Resmi tek satırlık komut şunu içerir: curl -k, ki bu TLS sertifikası doğrulamasını devre dışı bırakır. İndirilen betiği çalıştırmadan önce inceleyin veya bu risk kabul edilemezse Adım 2b'yi kullanın. SafeLine ayrıca tek tıklamalık bir Cloudzy dağıtımı olarak da mevcuttur, ancak o imaj şunu kullanır: /opt/safeline, /opt/safeline/.env, ve /opt/safeline/docker-compose.yml. Bu kılavuzdaki /data/safeline yollarını Cloudzy imajında değiştirmeden kullanmayın.

Adım 2b, manuel Docker Compose kurulumu. Resmi Compose dosyasını indirin ve inceleyin, ardından yığını başlatın:

sudo mkdir -p /data/safeline
cd /data/safeline
sudo wget -O /data/safeline/compose.yaml "https://waf.chaitin.com/release/latest/compose.yaml"
POSTGRES_PASSWORD="$(openssl rand -hex 32)"
sudo tee .env >/dev/null <<EOF
SAFELINE_DIR=/data/safeline
IMAGE_TAG=latest
MGT_PORT=9443
POSTGRES_PASSWORD=$POSTGRES_PASSWORD
SUBNET_PREFIX=172.22.222
IMAGE_PREFIX=chaitin
ARCH_SUFFIX=
RELEASE=
REGION=-g
MGT_PROXY=0
EOF
unset POSTGRES_PASSWORD
# Also adjust SUBNET_PREFIX if your VPS already uses 172.22.222.0/24.
sudo chmod 600 /data/safeline/.env
sudo docker compose up -d

Sonra docker compose up -d tamamlandığında, doğrulamak için çalışan konteynerleri listeleyin:

sudo docker compose ps

safeline-mgt, safeline-detector, safeline-tengine, safeline-pg, safeline-fvm, safeline-luigi ve safeline-chaos için konteynerler görmelisiniz. Herhangi bir konteyner şunu gösteriyorsa: Exited, en yaygın iki neden için Adım 3'e bakın.

Adım 3: Yaygın Kurulum Hatalarını Giderin

İki hata, kendi adımlarını hak edecek kadar sık ortaya çıkar.

Alt ağ çakışması. Kurulum şununla başarısız olursa: Pool overlaps with other one on this address space, varsayılan SafeLine alt ağı mevcut bir Docker ağıyla çakışıyor demektir. Bir SafeLine kurulum sorun giderme rehberindebelgelendiği gibi, bunu şunu düzenleyerek giderin: /data/safeline/.env:

sudo nano /data/safeline/.env
# Find the line:
#   SUBNET_PREFIX=172.22.222
# Change to an unused range, for example:
#   SUBNET_PREFIX=172.30.30
sudo docker compose -f /data/safeline/compose.yaml down
sudo docker compose -f /data/safeline/compose.yaml up -d

IPv6 çözümleyici hatası. safeline-tengine şununla çökerse: nginx: [emerg] invalid IPv6 address in resolver, önce çözümleyici dosyasını inceleyin ve onu kimin yönettiğini belirleyin:

readlink -f /etc/resolv.conf
cat /etc/resolv.conf

Şunu düzenlemeyin: /etc/resolv.conf systemd-resolved, NetworkManager veya VPS sağlayıcısı tarafından oluşturulduysa doğrudan düzenlemeyin. Hatalı biçimlendirilmiş nameserver değerini yöneten servisin yapılandırmasında düzeltin, çözümleyici dosyasını yeniden oluşturun ve ardından Tengine'i yeniden başlatın:

sudo docker restart safeline-tengine

Adım 4: Kontrol Paneline Erişin

Reaching the SafeLine dashboard on port 9443 through an SSH tunnel from a laptop, with the port closed to the public internet

SafeLine'ın yönetim kontrol paneli HTTPS üzerinden TCP 9443'ü dinler. Bu yönetim portunu tüm internete açık bırakmayın. Onu güvenilir bir kaynak adresi veya VPN ile sınırlayın ya da genel erişimi engelleyip bir SSH tüneli kullanın:

ssh -L 9443:127.0.0.1:9443 USER@SERVER_IP

https://localhost:9443 tünel üzerinden. İlk erişimde kendinden imzalı sertifika uyarısı beklenir; devam etmeden önce SSH bağlantısının hedeflenen sunucuya ulaştığını doğrulayın.

İlk kimlik bilgilerini kaybettiyseniz, yönetici parolasını ana makineden sıfırlayın:

sudo docker exec safeline-mgt resetadmin

Komut, tekrar oturum açmak için kullanabileceğiniz yönetici kimlik bilgilerini yazdırır.

SafeLine'ı Mimariniz İçin Yapılandırın

SafeLine artık çalışıyor, ancak henüz hiçbir şeyi korumuyor. Kontrol panelinin Applications sayfası, SafeLine'a hangi siteleri koruyacağını ve temizlenen trafiği nereye ileteceğini söylediğiniz yerdir. Yapılandırma, daha önce seçtiğiniz mimariye göre değişir, bu yüzden her yapının kendi alt bölümü vardır. Yalnızca kurulumunuza uyanı üzerinde çalışın.

Yapı A: Tek Reverse Proxy Olarak SafeLine

Yapı A için SafeLine, 80 ve 443 portlarını doğrudan dinler ve temizlenen trafiği genel olmayan bir portta arka uç uygulamanıza iletir. Kontrol panelinde:

  1. Şuraya gidin: Applications, ardından Add Application.
  2. Dinleme portunu 443 olarak ayarlayın ve SSL'i etkinleştirin. Kurulu SafeLine sürümünüzde mevcut olan sertifika iş akışını kullanın. Güncel CE sürümleri Free Cert başvurusu ve yenileme yönetimini içerir; manuel sertifika yükleme de kullanılabilir durumda kalır.
  3. Upstream'i şuna ayarlayın: http://127.0.0.1:8080. Arka uç Docker'da çalışıyorsa, portunu yalnızca loopback üzerinde yayınlayın, örneğin "127.0.0.1:8080:8080" servisin ports bölümünde. Şunun gibi sabit kodlanmış bir konteyner IP'sinden kaçının: 172.17.0.5 çünkü konteyner yeniden oluşturulduğunda değişebilir.
  4. Uygulamayı kaydedin. SafeLine hemen 443'ü dinlemeye ve temizlenen trafiği arka uca iletmeye başlar.
  5. Alan adınızın DNS A kaydının VPS genel IP'sine işaret ettiğini ve 80 ile 443 portlarının dışarıdan erişilebilir olduğunu doğrulayın.

443 portu zaten başka bir işlem tarafından bağlanmışsa, SafeLine'ın konteyneri bağlanamaz ve kontrol paneli o uygulamada bir hata gösterir. Uygulamayı eklemeden önce çakışan işlemi durdurun veya farklı bir port seçin.

Yapı B: Nginx Proxy Manager Arkasında SafeLine

Yapı B, NPM'in halihazırda yaptığı işi (80 ve 443'e sahip olma, Let's Encrypt'i yönetme) sürdürür ve SafeLine'ı onun arkasında özel bir güvenlik katmanı olarak yerleştirir. Trafik akışı şöyledir: istemci, ardından NPM (port 443, TLS sonlandırma), ardından SafeLine (port 10080, HTTP), ardından arka uç uygulama.

SafeLine kontrol paneli içinde:

  1. Applications, ardından Add Application. Dinleme portunu 10080 olarak ayarlayın ve SSL'i kapalı bırakın (NPM TLS'i zaten sonlandırmıştır).
  2. Upstream'i, Yapı A'da açıklandığı gibi uygulamanın dahili adresine ayarlayın.
  3. Uygulamayı kaydedin.

Nginx Proxy Manager içinde:

  1. Hosts, ardından Proxy Hosts, ardından Add Proxy Host.
  2. Details sekmesi: alan adını, şemayı ayarlayın httpve yönlendirme portunu 10080 olarak. NPM doğrudan ana makinede çalışıyorsa, yönlendirme ana bilgisayar adı olarak şunu kullanın: 127.0.0.1 Yönlendirme ana bilgisayar adı olarak. NPM Linux'ta Docker'da çalışıyorsa, 127.0.0.1 VPS ana makinesi yerine NPM konteynerine işaret eder. Docker'ın host-gateway eşlemesini NPM Compose servisine ekleyin, ardından yönlendirme ana bilgisayar adı olarak şunu kullanın: host.docker.internal Yönlendirme ana bilgisayar adı olarak:
extra_hosts:
  - "host.docker.internal:host-gateway"

NPM Compose dizininden şunu çalıştırın: sudo docker compose up -d böylece konteyner yeni ana makine eşlemesiyle yeniden oluşturulur.

  1. SSL sekmesi: bir Let's Encrypt sertifikası isteyin, SSL'i zorunlu kılın ve HTTP/2'yi etkinleştirin.
  2. NPM'in Advanced sekmesini X-Forwarded-For için boş bırakın. Şurada: güncel NPM şablonu, Advanced içeriği server kapsamında eklenir ve şu kurallar altında oluşturulan konum düzeyindeki başlıkları geçersiz kılmaz: NGINX'in kalıtım kuralları. Oluşturulan konum şunu gönderir:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

İkinci yönerge, NPM tarafından gözlemlenen adresi başlıktaki en sağdaki değer olarak ekler.

  1. Proxy Host'u kaydedin.

SafeLine'a geri dönüp, kaynak IP çıkarımını yalnızca etkin başlık zincirini doğruladıktan sonra yapılandırın. SafeLine 9.3.1 yön ve indeks seçimiyle esnek XFF çıkarımını tanıttı.

  1. Settings, ardından Advanced, ardından Real IP from Header. Başlık adını şuna ayarlayın: X-Forwarded-For.
  2. Başlığın sonundan özel çıkarım kullanın ve NPM tarafından eklenen en sağdaki adresi seçin. Kesin indeks etiketleri sürüme göre değişir, bu yüzden sonucu Logs, ardından Access bölümünde doğrulayın. Kurulu sürüm 9.3.1'den eskiyse, bu topolojiyi izlemeden önce güncelleyin.
  3. NPM'in önünde Cloudflare veya başka bir CDN varsa, önce NPM'i yalnızca o sağlayıcının yayınlanmış proxy aralıklarına güvenecek şekilde yapılandırın, böylece NPM tarafından eklenen adres güvenilir olur. Gerçek başlık zincirini inceleyip test edene kadar sabit bir konum seçmeyin.
  4. Uygulamayı kaydedin ve yeniden yükleyin.

Yapılandırmayı VPS dışındaki bir makineden test edin:

curl -H "X-Forwarded-For: 1.2.3.4" "https://yourdomain.com/"

SafeLine erişim günlüğü, gerçek genel adresinizi göstermelidir, şunu değil: 1.2.3.4 veya NPM'in köprü adresini.

Arka uç dinleyicisini özel tutarak kullanıcıların SafeLine'ı atlamasını önleyin. Bir Docker Compose arka ucu için portu yalnızca loopback üzerinde yayınlayın:

ports:
  - "127.0.0.1:8080:8080"

Doğrudan ana makinede çalışan bir servis için, onu şunu dinleyecek şekilde yapılandırın: 127.0.0.1:8080 şunun yerine: 0.0.0.0:8080. Her iki dahili portu da VPS dışındaki bir makineden doğrulayın:

curl --connect-timeout 5 "http://YOUR_VPS_PUBLIC_IP:10080"
curl --connect-timeout 5 "http://YOUR_VPS_PUBLIC_IP:8080"

TCP bağlantıları reddedilmeli veya zaman aşımına uğramalıdır. Bir HTTP hatası veya "Empty reply from server" yine de portun genel olarak erişilebilir olduğu ve güvenlik altına alınması gerektiği anlamına gelir. Loopback bağlaması mümkün değilse, genel bir DOCKER-USER kuralı uygulamak yerine gerçek arayüze, Docker ağına ve hedef konteynere göre uyarlanmış güvenlik duvarı kuralları oluşturun.

Yapı C: Caddy ile SafeLine

Yapı C için SafeLine 80 ve 443 portlarını alır; Caddy genel olmayan bir dahili HTTP portuna taşınır. Trafik akışı şöyledir: istemci, ardından SafeLine (443, TLS), ardından Caddy (8080, dahili HTTP), ardından uygulama arka ucu.

Düzenle /etc/caddy/Caddyfile:

:8080 {
bind 127.0.0.1
reverse_proxy 127.0.0.1:3000
}

Uzak :8080 site bloğu önemli kısımdır: Caddy artık 443 için SafeLine ile rekabet etmek yerine bir dahili HTTP portunu dinler. bind 127.0.0.1 satırı, o dinleyiciyi VPS'e yerel tutar. Caddy'yi şununla yeniden yükleyin: sudo systemctl reload caddy ve şununla doğrulayın: sudo ss -ltnp | grep -E ':(443|8080)' Caddy'nin 443'e değil 8080'e bağlı olduğunu.

SafeLine'da, SSL etkin olarak 443'ü dinleyen bir uygulama ekleyin, ardından upstream'i şuna ayarlayın: http://127.0.0.1:8080. X-Forwarded-For ayarı varsayılan ağ bağlantısı seçeneğinde kalabilir, çünkü Caddy SafeLine'ın önünde değil arkasındadır.

Bir Koruma Modu Seçin ve WAF'ın Saldırıları Engellediğini Doğrulayın

SafeLine, motor bir isteği kötü amaçlı olarak işaretlediğinde ne olacağına karar veren üç koruma moduna sahiptir. Doğru başlangıç modu uygulamaya bağlıdır; doğrulama adımı her modda aynıdır.

Koruma Modları: Monitor, Balanced, Strict

SafeLine'daki her uygulama, şu bölüm altında yapılandırılabilen kendi koruma modu ayarını taşır: Applications, ardından uygulamanız, ardından Protection Mode:

  • Monitor. SafeLine, aksi halde engelleyeceği istekleri günlüğe kaydeder ancak onları engellemez. Bu, zengin giriş formlarına sahip karmaşık bir üretim uygulaması (bir forum, WYSIWYG alanları olan bir yönetici paneli, serbest biçimli JSON yükleri kabul eden bir API) için en güvenli başlangıç noktasıdır. Monitor'ı birkaç gün çalıştırın, Attack Events sayfasını inceleyin ve Balanced'a yükseltmeden önce gerçek kullanıcılara karşı yanlış pozitif olmadığını doğrulayın.
  • Balanced. Varsayılan mod. SafeLine'ın üretici tarafından yayınlanan GitHub rakamları Balanced modu için %71,65 algılama, %99,45 doğruluk ve %0,07 yanlış pozitif oranı bildirir. Strict modu %76,17 algılama, %99,38 doğruluk ve %0,22 yanlış pozitif oranıyla bildirilir. Bunlar bağımsız bir kıyaslama değil, üretici tarafından bildirilen sonuçlardır ve README, veri kümesini WAF-Eval olarak tanımlamaz. Bunları garantili üretim performansı değil, karşılaştırmalı ürün rakamları olarak değerlendirin.
  • Strict. Daha katı sezgisel kurallar ve yukarıda gösterilen algılama-yanlış pozitif dengesiyle daha agresif bir kural kümesi. Trafiğinizi anladıktan sonra, bir iki haftalık temiz Balanced çalışmasının ardından denenmeye değer.

Öneri: Rahatsız edilecek canlı trafiği olmayan sıfır bir dağıtım için Balanced. Mevcut bir üretim uygulaması için birkaç gün Monitor'da başlayın, Attack Events günlüğünde yanlış pozitifleri arayın ve tüm istisnaları ayarladıktan sonra Balanced'a yükseltin. Trafiğinizi anladıktan sonra, bir iki haftalık Balanced'ın ardından Strict denenmeye değer.

WAF'ı Bir curl SQLi Testiyle Doğrulayın

A curl SQL injection probe stopped by SafeLine: Balanced and Strict modes return 403 Blocked and log the attack event, while Monitor mode only logs it

Kurulumu tamamlanmış saymadan önceki son adım, WAF'ın gerçekten bir saldırıyı yakaladığını doğrulamaktır. Korunan sitenize VPS dışındaki herhangi bir makineden zararsız bir SQL injection sondası gönderin:

curl -i "https://yourdomain.com/?id=1%20and%201=2%20union%20select%201"

Bu, SafeLine'ın yayınlanmış SQL injection test vektörüdür. Balanced veya Strict modda, bir 403 durumu ve bir SafeLine engelleme yanıtı bekleyin. Monitor modda, isteğin engellenmeden günlüğe kaydedilmesini bekleyin. HTTP sürümü ve kesin yanıt gövdesi değişebilir, bu yüzden sonucu Attack Events'te eşleşen bir kayıtla doğrulayın.

Ardından kontrol panelini Adım 4'teki kısıtlı erişim yöntemiyle açın ve Logs, ardından Attack Events bölümüne gidin. Eşleşen zaman damgası, saldırı türü SQL Injection, curl'ü çalıştırdığınız makineyle eşleşen kaynak IP ve istek ayrıntısında sorunlu sorgu dizesi olan yeni bir kayıt görmelisiniz. SafeLine tarafından yakalanan tam istek ve yanıt için olaya tıklayın.

curl isteği 200 OK döndürdüyse, sonucu Attack Events günlüğüyle birlikte yorumlayın:

  • Eşleşen bir SQL Injection olayı, uygulamanın muhtemelen Monitor modunda olduğu anlamına gelir; engellemeden günlüğe kaydetme beklenen bir durumdur.
  • Eşleşen bir olay yoksa, DNS'in hedeflenen VPS'e çözümlendiğini doğrulayın, SafeLine dinleyicisini ve upstream yapılandırmasını doğrulayın ve istek zamanını SafeLine'ın erişim günlüğüyle ilişkilendirin.
  • Ayrıca korumanın etkin olduğunu ve hiçbir IP beyaz listesi, özel izin kuralı veya yol istisnasının test isteğini kapsamadığını doğrulayın.

Temel çıkarım: curl sondası SafeLine engelleme sayfasıyla 403 döndürürse ve Attack Events'te saldırı türü SQL Injection olan bir kayıt görünürse, WAF trafiği doğru şekilde yakalıyordur.

Ücretsiz Katmanın Kapsadıkları ve Ücretli Plan Gerektirenler

Ücretsiz Personal katmanı, çoğu tek VPS dağıtımını korumak için yeterlidir. Ücretli katmanlar, operasyonel özelliklere (bildirimler, günlük dışa aktarma, coğrafi engelleme) ihtiyaç duyduğunuzda veya 10 uygulama sınırını aştığınızda önem kazanmaya başlar.

Şu kaynaktan alınan ayrıntılı döküm: CyberServal fiyatlandırma sayfası:

  • Personal, ücretsiz. 10 adede kadar uygulama. Anlamsal algılama motorunu (SQLi, XSS, komut enjeksiyonu, dizin geçişi, SSRF, XXE, CRLF), hız sınırlama, bot CAPTCHA doğrulaması, otomatik kazıyıcılara karşı dinamik HTML/JS şifrelemesi, web ACL kuralları ve sertifika yönetimini içerir. Güncel CE sürümleri ayrıca Free Cert başvurusu ve yenileme yönetimini içerir.
  • Lite, $10/ay veya $100/yıl. Coğrafi engelleme, tehdit istihbaratı IP veritabanı, Discord ve Telegram bildirim entegrasyonu, saldırı günlüğü dışa aktarma ekler ve uygulama sınırını 20'ye çıkarır.
  • Pro, $100/ay veya $1,000/yıl. Daha güçlü saldırı algılama, servis başına ve genel yapılandırmalar, özel engelleme sayfaları, upstream yük dengeleme, master-slave düğüm senkronizasyonu ve sınırsız uygulama ekler. Şuna bakın: güncel fiyatlandırma tablosu değişiklikler için.
  • Ultimate, özel fiyatlandırma. Kanallar arası birebir destek ve özel özellik geliştirmeyle uyarlanmış kurumsal koşullar.

SafeLine, uygulama verilerini kendi yerel Compose yığını içinde işler ve saklar. Ancak, güncel CE sürüm notları Threat Intelligence Sharing'den bahseder, bu yüzden operatörler dağıtımı sıfır dışa aktarımlı olarak değerlendirmeden önce kurulu sürümün UEP, gizlilik ve paylaşım denetimlerini gözden geçirmeli ve giden bağlantıları gözlemlemelidir.

Buradan Sonra Nereye Gidilir

Kurulum tamamlandı ve WAF doğrulandı. Birkaç takip görevi, dağıtımı sağlıklı tutmaya yardımcı olacaktır.

  • Zengin kullanıcı girişi olan herhangi bir üretim uygulaması (bir forum, bir yönetici paneli, serbest biçimli bir API) için koruma modunu şuna ayarlayın: Monitör üç ila yedi gün boyunca, Attack Events sayfasını her gün inceleyin ve tüm yanlış pozitifleri ayarladıktan sonra Balanced'a yükseltin.
  • Lite katmanında, saldırı uyarılarının kontrol paneli dışında size ulaşması için Discord veya Telegram bildirim entegrasyonunu kurun.
  • Aylık bir bakım penceresi planlayın. Yükseltmeden önce, SafeLine'ın verilerini ve ortam yapılandırmasını yedekleyin, şunu okuyun: güncel sürüm notları, ve kurulu sürümünüz için desteklenen yükseltme prosedürünü kullanın. Yalnızca şuna güvenmeyin: docker compose pull ardından docker compose up -d, çünkü Compose tanımı veya gerekli ortam değişkenleri sürümler arasında değişebilir. Cloudzy tek tıklama kullanıcıları şundan çalışmalıdır: /opt/safeline ve pazar yeri imajının talimatlarını izlemelidir.
  • Şuna abone olun: SafeLine sürümler sayfası güvenlik yaması bildirimleri için ve ayrıca şuna: proje deposu sorun takibi için.

Bu dağıtım için henüz bir VPS'iniz yoksa, SafeLine şurada tek tıklamalık bir dağıtım olarak mevcuttur: Cloudzy'nin pazaryeri. 4 GB RAM içeren bir plan, bu kılavuzda önerilen pratik alanı sağlar; şunu yeniden kontrol edin: güncel fiyatlandırma tablosu yayınlanma anında Cloudzy üzerinde, çünkü plan özellikleri değişebilir. Tek tıklamalık imaj şunları kullanır: /opt/safeline ve /opt/safeline/docker-compose.yml, bu yüzden mimari ve kontrol paneli talimatları geçerlidir, ancak bu kılavuzdaki /data/safeline komutları aynı şekilde geçerli değildir.

Sıkça Sorulan Sorular

SafeLine WAF, Nginx Proxy Manager'ın Yerini Alır mı, Yoksa İkisini de mi Çalıştırırım?

SafeLine, tek reverse proxy olarak dağıtıldığında Nginx Proxy Manager'ın yerini alabilir. Ancak, NPM'in yerini almasına gerek yoktur. Yaygın bir kurulum, SSL ve yönlendirme için NPM'i önde tutar ve SafeLine'ı arkasında özel bir güvenlik katmanı olarak katmanlar. İkisi de işe yarar; seçim, her iki işi de yapan tek bir araç mı yoksa her biri bir işi iyi yapan iki araç mı istediğinize bağlıdır.

Ücretsiz Katman Tek Bir WordPress Sitesi veya Küçük Bir SaaS İçin Yeterli mi?

Evet, koruma için. Ücretsiz Personal katmanı, tek bir site için temel savunmalar olan anlamsal algılama motorunu, hız sınırlamayı, bot CAPTCHA doğrulamasını ve dinamik HTML/JS şifrelemesini içerir. Ücretli katmanlar, coğrafi engelleme, saldırı günlüğü dışa aktarma, harici bildirimler, daha yüksek uygulama sınırları, daha güçlü algılama ve yük dengeleme gibi operasyonel özellikler ekler. Ücretli bir katmanın gerekli olup olmadığı, yalnızca trafik hacmine değil, gereken özelliklere ve uygulama sayısına bağlıdır.

SafeLine 1 GB RAM'li Bir VPS'te Çalışır mı?

SafeLine'ın resmi minimumu 1 GB RAM'dir. Bu, test veya çok hafif bir iş yükü için yeterli olabilir, ancak üretim kapasitesi trafiğe, etkin özelliklere ve günlük saklama süresine bağlıdır. Küçük bir üretim dağıtımı için 2 vCPU ve 4 GB RAM temkinli bir başlangıç noktasıdır; bellek kullanımını izleyin ve ölçülen yüke göre ölçeklendirin.

ARM64 Neden Ücretli Bir Lisans Gerektirir?

SafeLine'ın resmi dağıtım belgeleri ARM dağıtımlarının bir Pro lisansı gerektirdiğini ve Personal Edition'ın ARM üzerinde desteklenmediğini belirtir. Personal Edition'ı istiyorsanız bir x86_64 VPS seçin; ARM'a ihtiyacınız varsa bir Pro lisansı için plan yapın.

Chaitin Tech, SafeLine Örneğimden Ne Alır?

Kesin giden veriler sürüme ve etkin özelliklere göre değişebilir. Güncel CE sürüm notları Threat Intelligence Sharing'den bahseder; kurulu sürüm ayrıca UEP veya diğer paylaşım denetimlerini de sunabilir. Kurulu sürümünüz için o ayarları ve sürüm notlarını gözden geçirin, ardından dışa aktarımı ağ düzeyinde doğrulayın. SafeLine'ın yerel konteynerleri uygulama verilerini yönetir, ancak bu gerçek tek başına UEP'i reddetmenin her giden isteği durdurduğunu kanıtlamaz.

Paylaş

Bloga göz at

Okumaya devam et.

Dağıtmaya hazır mısın? 2,48 $/ay'dan başlayan fiyatlarla.

2008'den beri bağımsız bulut. AMD EPYC, NVMe, 40 Gbps. 14 gün para iade garantisi.