# Webship Web Sunucusu: Varsayılan Olarak Güvenli Ayarlar
Güvenli bir web sunucusu, bir operatörün sabaha karşı 2'de bir ayarı daha hatırlamasına bağlı olmamalıdır. Koruyucu bir temel noktadan başlamalı, güvensiz yapılandırmaları reddetmeli ve hassas özellikleri açığa çıkarmadan önce bilinçli seçimler yapılmasını gerektirmelidir.
Bu, Webship'ün arkasındaki modeldir. Varsayılan yapılandırması, ana istek ve yanıt savunmalarını açar, bir saldırıcının tüketebileceği kaynakları sınırlar ve isteğe bağlı kontrol yüzeylerini devre dışı bırakır. Bu varsayılanları gerçek bir uygulama için ayarlayabilirsiniz, ancak ilk istek gelmeden önce her korumayı keşfetmek zorunda değilsiniz.
Varsayılan olarak güvenli olmak, bağlam olmadan güvenli olmak anlamına gelmez. Sertifikalar, uygulama yetkilendirmesi, ağ politikası, sırlar ve olay müdahalesi hâlâ operatörün sorumluluğundadır. Webship’ün görevi, güvenli başlangıç noktasını belirgin hale getirmek ve kazara zayıflatmayı daha zorlaştırmaktır.
Etkin olarak başlayan korumalar
Webship temel yapılandırmasında altı katmanı etkinleştirir:
| Katman | Varsayılan davranış | Neyi azaltır | | --- | --- | --- | | Nokta-dosya koruması | Nokta ile başlayan statik yol segmentlerini engeller | Ortam dosyalarının, depo meta verilerinin ve yerel yapılandırmanın kazara açığa çıkması | | Web uygulama güvenlik duvarı | Bilinen saldırı desenlerini engeller | SQL enjeksiyonu, çapraz site betikleme, geçiş, hassas yol denemeleri, komut enjeksiyonu, başlık kaçakçılığı ve desteklenmeyen istek kodlamaları | | DDoS kontrolleri | Sınırlı istemci durumu ile normal modda çalışır | İstek seli, sınırsız takip ve önlenebilir kaynak tükenmesi | | Bot mücadelesi | İmzalı bir challenge çerezi kullanır | Düşük maliyetli otomatik istismar ve tekrar tarama | | Yanıt güvenlik başlıkları | Sınırlayıcı bir tarayıcı politikası ekler | MIME karışıklığı, çerçeveleme, yönlendirici sızıntısı, tehlikeli tarayıcı yetenekleri ve geniş içerik yükleme | | API Kalkanı | Bir API sözleşmesi tanımlandıktan sonra blok modunu kullanır ve bilinmeyen yolları reddeder | Gölgeli uç noktalar, istenmeyen yöntemler, beklenmeyen içerik türleri ve eksik yetkilendirme gereksinimleri |
Varsayılan WAF ayrıca incelediği şeyler için sert sınırlar koyar: 32 KiB istek başlığı, 2.048 bayt yol ve 1 MiB istek gövdesi. Bunlar güvenlik sınırlarıdır, rastgele performans anahtarları değildir. Bir uygulamanın meşru şekilde daha büyük isteklere ihtiyacı varsa, incelemeyi global olarak devre dışı bırakmak yerine o uygulama için ilgili sınırı artırın ve sonucu test edin.
DDoS koruması, normal modda dakikada 600 istek ile başlar ve her istemci anahtarı için 100'lük bir patlama izni vardır. İstemci durumu tablosu 65.536 giriş ile sınırlıdır. Bu değerler bir temel değerdir, evrensel bir trafik modeli değildir: bir halka açık API, bir indirme hizmeti ve bir dahili yönetici paneli aynı uygulamaya özel sınırları paylaşmamalıdır.
Tarayıcı korumaları temelin bir parçasıdır
Webship’nin yanıt-başlığı politikası, bir uygulama kendi başlığını eklemeyi unuttuğunda bile etkinleştirilir. Varsayılan içerir:
- X-Content-Type-Options: nosniff;
- bir frame-reddetme politikası;
- Yönlendiren-Politikası: yönlendiren-yok;
- Alt alan adları dahil, bir yıl boyunca Strict-Transport-Security;
- İçerik-Güvenlik-Politikası, çerçeveleme ve temel URI kısıtlamaları ile aynı kaynak içeriği ile sınırlıdır;
- İzinler Politikası, konum, mikrofon ve kamera erişimini devre dışı bırakıyor.
Bu varsayılanlar kasıtlı olarak kısıtlayıcıdır. Tam olarak HTTPS hazır olmayan alt alanlara sahip bir alana uygulamadan önce HSTS'yi gözden geçirin. Bir uygulama başka kaynaklardan komut dosyaları, stiller, yazı tipleri, resimler veya bağlantılar yüklemeden önce İçerik-Güvenlik-Politikası'nı gözden geçirin. Güvenli bir varsayılan, üretimde sessizce zayıflatılmak yerine dağıtım sırasında görünür şekilde başarısız olmalıdır.
İsteğe bağlı yüzeyler kapalı kalır
Webship, ikili dosya bunu içerdiği için her özelliği açmaz. Ters proxy, WebTransport, gözlemlenebilirlik uç noktaları, otomatik TLS, yanıt kaynağı ve MCP kontrol uç noktası varsayılan olarak devre dışıdır.
MCP uç noktası etkinleştirildiğinde döngüye dönük kapsamlıdır ve açık bir güvenlik yapılandırması gerektirir. Ölçümler ve istatistikler, donanımın kasıtlı olarak etkinleştirilmesini gerektirir. Otomatik sertifika yönetimi, operatörün bir ACME dizini, iletişim bilgileri, depolama ve hizmet şartlarını kabul etmesini gerektirir. Bu, operasyonel özelliklerin sürpriz ağ yüzeyleri haline gelmesini önler.
Temel dinleyici ayrıca 127.0.0.1 adresine bağlanır. Bir operatör, açıkça bir genel adres seçmelidir. Bu tek seçim, güvenlik duvarı kuralları, hizmet izinleri, TLS kimliği ve dağıtım topolojisi için faydalı bir inceleme noktası yaratır.
Ters proxy kullanımı güven sınırını korur
Ters proxyleme etkinleştirildiğinde, TLS geçişi varsayılan olarak kalır. Webship, uygulama düz metninin veya aktif oturum anahtarlarının kontrolünü üstlenmeden şifrelenmiş trafiği iletir. Orijin, TLS ve müzakere edilen protokolden sorumlu olmaya devam eder.
TLS sonlandırmayı yalnızca Webship HTTP isteklerini incelemek, yolu baz alarak yönlendirmek, WAF ve API politikasını uygulamak, başlıkları yeniden yazmak veya yanıtları önbelleğe almak zorunda olduğunda etkinleştirin. Sonlandırma doğası gereği daha az güvenli değildir; güven sınırını değiştirir. Önemli karar, hangi makinenin düz metni görmesine izin verildiği ve nedenidir.
Geçişin de işlevsel sınırları vardır. TCP yönlendirmesi, HTTP isteği şifreli olduğu için ClientHello SNI'ya dayanır. HTTP/3 geçiş, rotaların tek bir UDP kaynağını paylaşmasını gerektirir. Kenarda içerik farkındalığı sağlayan bir güvenliğe ihtiyacınız varsa, TLS'i orada sonlandırın ve kenardan kaynağa olan aşamayı ayrı olarak koruyun.
Gözden geçirebileceğiniz bir üretim temeli
Aşağıdaki alıntı, varsayılan değerleri atlamaya güvenmek yerine açıkça belirtir:
listen = "0.0.0.0:443"
deny_dotfiles = true
[tls]
unknown_sni = "reject"
[ddos]
enabled = true
mode = "normal"
requests_per_minute = 600
burst = 100
block_seconds = 60
max_tracked_clients = 65536
[security]
enabled = true
rate_limit_max_entries = 65536
[security.waf]
enabled = true
mode = "block"
sqli = true
xss = true
traversal = true
sensitive_paths = true
header_abuse = true
max_header_bytes = 32768
max_path_bytes = 2048
max_body_bytes = 1048576
[security.response_headers]
enabled = true
nosniff = true
frame_deny = true
referrer_no_referrer = true
hsts = "max-age=31536000; includeSubDomains"
content_security_policy = "default-src 'self'; frame-ancestors 'none'; base-uri 'self'"
permissions_policy = "geolocation=(), microphone=(), camera=()"Çok alanlı bir dinleyicide, unknown_sni = "reject", tanınmayan bir ana bilgisayar adının dinleyicinin varsayılan sertifikasını almasını engeller. Webship’in otomatik-TLS dinleyicileri, bir sertifika mevcut olana kadar bilinmeyen adları zaten reddeder.
Doğrulama bir güvenlik kontrolüdür
Webship, dinleyicileri bağlamadan önce yapılandırmayı doğrular. Bilinmeyen alanlar, geçersiz limitler, eksik kimlikler, çelişkili dinleyiciler ve desteklenmeyen protokol kombinasyonları belirli bir hata ile başlatmayı başarısız kılar. Aynı doğrulama, canlı bir yapılandırma yüklendiğinde de çalışır. Başarısız bir yeniden yükleme, mevcut yapılandırmanın etkin kalmasına neden olur.
Doğrulanmış MCP yapılandırma yolu başka bir koruma ekler: etkin bir WAF, DDoS katmanı, API Shield, bot doğrulaması, edge-auth politikası veya yanıt başlığı katmanını devre dışı bırakacak canlı değişiklikleri reddeder. Sürüm kontrolleri, bir yöneticinin daha yeni bir yapılandırma anlık görüntüsünü üzerine yazmasını engeller. Süreç bağlı ayarlar, kısmi bir canlı değişikliğin başarılıymış gibi gösterilmesi yerine hala bir yeniden başlatma gerektirir.
Bu faydalı bir ayrımdır. Güvenli varsayılanlar yeni bir dağıtımı korur. İşlemsel doğrulama ve korumalı güncellemeler çalışan bir dağıtımı korur.
Hangi operatörlerin hâlâ karar vermesi gerekiyor
_Webship_'yi internete açmadan önce:
- Güvenilen bir TLS kimliği yapılandırın ve özel anahtarı koruyun.
- Dinleyici topolojisi için bilinmeyen SNI işlemeyi ayarlayın.
- HSTS ve İçerik-Güvenlik-Politikasının her uygulama ve alt alan adıyla eşleştiğini onaylayın.
- API Shield uç noktalarını, kabul edilen yöntemleri, içerik türlerini ve yetkilendirme gereksinimlerini tanımlayın.
- Sadece genel temel değerine güvenmek yerine, rota bazlı hız sınırları ekleyin.
- Korumalı sunucular veya yollar için uç doğrulamayı etkinleştirin ve kısa ömürlü tokenlar kullanın.
- MCP ve gözlemlenebilirlik dinleyicilerini özel, kimlik doğrulamalı ve genel trafiğe ayrı tutun.
- Webship'ü, mümkünse yalnızca okuma izni olan bir uygulama kökü ve sadece ihtiyaç duyduğu işletim sistemi yetenekleri olan özel bir ayrıcalıksız hesapla çalıştırın.
- Yayına almadan önce yapılandırmayı doğrulayın, ardından kanarya ortamında engellenen ve izin verilen trafiği test edin.
- Güvenlik denetim olaylarını izleyin ve normal moddan saldırı altında veya karantina moduna geçişi provasını yapın.
Daha güvenli bir varsayılan, bir başlangıçtır, iddia değil
Hiçbir web sunucusu hangi kullanıcıların faturalarınızı görebileceğine, hangi kaynakların API'nizi çağırabileceğine veya iş uç noktanızın istekleri ne kadar hızlı kabul etmesi gerektiğine karar veremez. Bu kontroller uygulama bilgisi gerektirir.
Webship, alt katmanı sağlar: sınırlı ayrıştırıcılar, katı yapılandırma, savunmacı yanıt başlıkları, istek denetimi, kötüye kullanım kontrolleri ve kapalı isteğe bağlı yüzeyler. Sonuç, “güvenlik çözüldü” değildir. Sonuç, bir sunucuyu kurmak ile onu sorumlu bir şekilde işletmek arasındaki daha küçük bir boşluktur.
Üretim dağıtımından önce eksiksiz Webship belgelerini inceleyin. Yapılandırma şeması ve çalışan ikili dosya, çalıştırdığınız tam sürüm için yetkili kaynaklar olarak kalır.