lostyazilim
tr.link

varnish sürüm gizleme

5 Mesajlar 935 Okunma
lstbozum
tr.link

GunduzT GunduzT WM Aracı Kullanıcı
  • Üyelik 29.01.2019
  • Yaş/Cinsiyet 38 / E
  • Meslek web tasarımı
  • Konum İstanbul Anadolu
  • Ad Soyad G** T**
  • Mesajlar 105
  • Beğeniler 104 / 46
  • Ticaret 0, (%0)
Merhaba,

Varnish 5.0 için sürümün dışardan görünmesini engellemeye çalışıyorum.
bulduğum kodları denediğimde işe yaramıyor.
Bulduğum kaynaklar eski 3 yada 4 sürümleri için geçerli kodları vermişler.

5 için bu ayarı nasıl yaparım?
hatta mümkünse yanlış veri döndürebilirim?
 

 

wmaraci
reklam

alperi alperi alperperi.com Kullanıcı
  • Üyelik 23.11.2016
  • Yaş/Cinsiyet 42 / E
  • Meslek Bilgiişlem
  • Konum Konya
  • Ad Soyad A** P**
  • Mesajlar 642
  • Beğeniler 216 / 215
  • Ticaret 4, (%100)
Merhaba,
default.vlc içerisindeki vlc_deliver başlığı altında bulunan ayarları

sub vcl_deliver {
remove resp.http.Via;
remove resp.http.X-Whatever;
remove resp.http.X-Powered-By;
remove resp.http.X-Varnish;
}

şeklinde silebilirsin eğer yeniden tanımlamak istersen

sub vcl_deliver {
set resp.http.Server = "XoX";
set resp.http.X-Powered-By = "Tester";
}

remove silmek için set yeniden tanımlamak için kullanılıyor. Eğer sürüm 5.0 da bu şekilde çalışmazsa ise;

return (deliver);
}

sub vcl_deliver {

unset resp.http.server;
unset resp.http.via;
unset resp.http.x-powered-by;
unset resp.http.x-runtime;
unset resp.http.x-varnish;

return (deliver);
}

örneğindeki gibi unset yaparak halihazırda bulunan ayarları kapatmış olursun. Umarım işine yarar.
GunduzT

kişi bu mesajı beğendi.

GunduzT GunduzT WM Aracı Kullanıcı
  • Üyelik 29.01.2019
  • Yaş/Cinsiyet 38 / E
  • Meslek web tasarımı
  • Konum İstanbul Anadolu
  • Ad Soyad G** T**
  • Mesajlar 105
  • Beğeniler 104 / 46
  • Ticaret 0, (%0)
selam @alperi,

cevap gözümden kaçmış yeni gördüm.
denedim işe yaramadı yada ben bir şekilde beceremedim.

kodu ilgili bloğa bir kaç değişik düzende ekledim.
kimilerinde varnish'i restart ettiğimde config hatası veriyor.

alttaki şekilde eklediğimde config hatası vermiyor ama "varnish 5" imzası hala çıkıyor.
(config'i değiştirdikten sonra varnish+nginx+php hepsini restart ettim)

bendeki yapı.
CloudFlare -> varnish -> nginx -> wordpress şeklinde çalışıyor.


vcl 4.0;

backend default {
# .host = "localhost";
.host = "127.0.0.1";
.port = "8080";
}

acl purger {
"localhost";
"ip.v4.adresi";
"ip.v6.adresi";
}

sub vcl_recv {

if (req.method == "PURGE") {
if (!client.ip ~ purger) {
return(synth(405, "This IP is not allowed to send PURGE requests."));
}
return (purge);
}

if (req.restarts == 0) {
if (req.http.X-Forwarded-For) {
set req.http.X-Forwarded-For = client.ip;
}
}

if (req.http.Authorization || req.method == "POST") {
return (pass);
}

if (req.url ~ "/feed") {
return (pass);
}


if (req.url ~ "wp-admin|wp-login|xyz") {
return (pass);
}

set req.http.cookie = regsuball(req.http.cookie, "wp-settings-\d+=[^;]+(; )?", "");
set req.http.cookie = regsuball(req.http.cookie, "wp-settings-time-\d+=[^;]+(; )?", "");

if (req.http.cookie == "") {
unset req.http.cookie;
}
}

sub vcl_purge {
set req.method = "GET";
set req.http.X-Purger = "Purged";
return (restart);
}

sub vcl_backend_response {
set beresp.ttl = 12h;
set beresp.grace = 2h;
if (bereq.url !~ "wp-admin|wp-login|product|cart|checkout|my-account|/?remove_item=") {
unset beresp.http.set-cookie;
}
}


sub vcl_deliver {

if (req.http.X-Purger) {
set resp.http.X-Purger = req.http.X-Purger;
}


unset resp.http.server;
unset resp.http.via;
unset resp.http.x-powered-by;
unset resp.http.x-runtime;
unset resp.http.x-varnish;

set resp.http.Server = "birseyler";
set resp.http.X-Powered-By = "baskabirseyler";

}


önerilere açığım.
alperi

kişi bu mesajı beğendi.

alperi alperi alperperi.com Kullanıcı
  • Üyelik 23.11.2016
  • Yaş/Cinsiyet 42 / E
  • Meslek Bilgiişlem
  • Konum Konya
  • Ad Soyad A** P**
  • Mesajlar 642
  • Beğeniler 216 / 215
  • Ticaret 4, (%100)
Biraz araştırdım konuyu varnish sürüm gizlense bile nginx sunucu üst bilgilerini göstermeye devam ediyor.

Örnek Varnish ayarı :


sub vcl_deliver {

# Remove some HTTP-headers:
unset resp.http.Server;
unset resp.http.X-Varnish;
unset resp.http.Via;
unset resp.http.X-Cacheable;
unset resp.http.Age;

return (deliver);
}


Nginx için server üst bilgi gizleme ayarı:

Ngx_security_headers kullanımı (nginx.conf içerisinde)


load_module modules/ngx_http_security_headers_module.so;

http {
...
security_headers on;
...
}



load_module modules/ngx_http_headers_more_filter_module.so;

http {
...
more_clear_headers Server;
...
}


Tamamen Nginx kullanımını gizleme :


sed -i 's@"nginx/"@"-/"@g' src/core/nginx.h
sed -i 's@r->headers_out.server == NULL@0@g' src/http/ngx_http_header_filter_module.c
sed -i 's@r->headers_out.server == NULL@0@g' src/http/v2/ngx_http_v2_filter_module.c
sed -i 's@
nginx
@@g' src/http/ngx_http_special_response.c


ayarlar bu şekilde olduğunda sanırım hem varnish hemde nginx sunucu bilgilerini gizliyor. Test etmedim, sonucu buraya yazarsan sevinirim.
GunduzT

kişi bu mesajı beğendi.

wmaraci
wmaraci

GunduzT GunduzT WM Aracı Kullanıcı
  • Üyelik 29.01.2019
  • Yaş/Cinsiyet 38 / E
  • Meslek web tasarımı
  • Konum İstanbul Anadolu
  • Ad Soyad G** T**
  • Mesajlar 105
  • Beğeniler 104 / 46
  • Ticaret 0, (%0)
Merhaba @alperi ,

oldukça gecikmişte olsa cevap yazayım.
sistemde parça sayısı çok olunca bir şeylerin güncellenmesi zaman alabiliyor.

Kullanici -> CloudFlare -> Varnish -> Wp-Super Cache -> Nginx şeklinde bir yapı olduğu için ayrıca browserlarında cache'i bazı şeyleri tuttuğu için sorun yaşıyormuşum.

ayarları sizin belirttiğiniz şekilde uygulayıp tüm cacheleri boşalttım sorun yok.
güncellenmesi için biraz sabır gerekli imiş :-)

teşekkürler.
alperi

kişi bu mesajı beğendi.

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al