Kategoriler
Windows Server Yazılar

Web Güvenliği İçin IIS Üzerinde Server Header’ını Kaldırma

Günümüzde, web güvenliği her zamankinden daha önemli hale gelmiştir. Bir web sunucusunun işletim sistemini ve sürümünü açıkça belirten Server header’ı, potansiyel saldırganlar için değerli bir bilgi kaynağı olabilir. Bu nedenle, IIS (Internet Information Services) kullanıyorsanız, Server header’ını kaldırmak iyi bir güvenlik uygulamasıdır.

Adım 1: IIS Manager’ı Açın
İlk adım olarak, IIS Manager’ı açın. Başlat menüsünden “IIS Manager” yazarak kolayca erişebilirsiniz.

Adım 2: Web Sunucu ve Site Seçimi
Sol taraftaki menüden sunucunuzu ve üzerinde çalıştırdığınız web sitesini seçin.

Adım 3: HTTP Response Headers
Sağ tarafta, “HTTP Response Headers” (HTTP Yanıt Başlıkları) öğesini bulun ve tıklayın.

Adım 4: Server Header’ını Düzenleyin
“Server” başlığını bulun, üzerine sağ tıklayarak “Remove” veya “Edit Feature Settings” seçeneğini kullanarak değeri temizleyin veya özelleştirin.

Adım 5: Değişiklikleri Kaydedin
Yapılan değişiklikleri uygulamak için sağ üst köşedeki “Actions” menüsünden “Apply” seçeneğini kullanın.

Adım 6: IIS’i Yeniden Başlatın
Gerekirse, IIS’i yeniden başlatarak değişikliklerin etkili olmasını sağlayın.

Alternatif Adım: Web.config Dosyası ile
Web.config dosyanıza doğrudan müdahale ederek de Server header’ını kaldırabilirsiniz. Aşağıdaki örneği kullanarak bu ayarı gerçekleştirebilirsiniz:

<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="Server" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>

Bu XML bloğunu web.config dosyanızın <configuration> elementi içine ekleyerek Server header’ını kaldırabilirsiniz.

Bu basit adımları takip ederek, web sunucunuzun güvenliğini artırabilir ve potansiyel saldırganların elde edebileceği bilgileri minimuma indirebilirsiniz. Unutmayın ki, bu değişiklikleri uygulamadan önce daima bir yedekleme almak iyi bir uygulamadır. Güvenliğinizi ön planda tutarak web uygulamalarınızı korumanın önemini asla göz ardı etmeyin.


Herhangi bir sorunuz veya eklemek istediğiniz detaylar varsa bana yazmaktan çekinmeyin.

Kategoriler
Windows Server Yazılar

IIS Üzerinde Verimli Kaynak Yönetimi: Uygulama Havuzlarına RAM Sınırları Belirleme

IIS (Internet Information Services) sunucusunda bir uygulama havuzuna (App Pool) RAM sınırları eklemek, sunucunun kaynaklarını kontrol etmek ve istikrarını sağlamak için önemli bir adımdır. IIS, uygulama havuzları aracılığıyla web uygulamalarını izler ve yönetir. İşte IIS’te bir uygulama havuzuna RAM sınırları eklemek için adımlar:

  1. IIS Yönetim Aracını Açma:

Başlat menüsünden “Internet Information Services (IIS) Manager”ı açın.Sol taraftaki bağlam menüsünden “Uygulama Havuzları” bölümünü bulun.

2.Uygulama Havuzunu Seçme:

Uygulama havuzunu bulun ve üzerine sağ tıklayarak “Düzenle” seçeneğine tıklayın.

3.Düzenleme Penceresini Açma:

Açılan düzenleme penceresinde “İgili İşlemler” sekmesini bulun.

4.Gelişmiş Ayarları Açma:

“Gelişmiş Ayarlar…” seçeneğine tıklayın. Bu, uygulama havuzunun daha fazla yapılandırma seçeneğini görmenizi sağlar.

5.Private Memory Limit (Özel Bellek Sınırı) Ayarı:

Gelişmiş ayarlar penceresinde, “Private Memory Limit (KB)” ya da “Private Memory Limit (Bytes)” başlığı altında bir alan göreceksiniz. Bu alan, uygulama havuzuna ayrılacak maksimum özel bellek miktarını belirler.

Belirli bir sınıra ulaşıldığında, uygulama havuzundaki işlemler durdurulabilir veya yeniden başlatılabilir.

6.Sınırları Ayarlama:

“Private Memory Limit” alanına istediğiniz maksimum bellek sınırlarını belirleyin. Bu değer genellikle kilobayt cinsindendir, bu nedenle örneğin 512000 KB, uygulama havuzuna 512 MB özel bellek sınırı getirir.

7.Değişiklikleri Kaydetme:

Ayarları yaptıktan sonra “OK” veya “Apply” düğmesine tıklayarak değişiklikleri kaydedin.

8.Uygulama Havuzunu Yeniden Başlatma:

Ayarları güncelledikten sonra, uygulama havuzunu yeniden başlatmanız gerekebilir. “Uygulama Havuzları” bölümündeki ilgili uygulama havuzunu seçin ve sağ tıklayarak “Yeniden Başlat” seçeneğine tıklayın.

Bu adımları takip ederek, IIS sunucunuzda belirli bir uygulama havuzuna RAM sınırları ekleyebilir ve kaynakları daha etkili bir şekilde yönetebilirsiniz.



Application pools’a yüzde olarak bir sınırlama verilebiliyor muyuz ?

Ne yazık ki, IIS’te uygulama havuzlarına RAM sınırları belirleme işlemi doğrudan yüzde cinsinden bir sınırlama belirtme seçeneği içermez. Ancak, “Private Memory Limit” ayarı, belirli bir miktarda belleği (kilobayt cinsinden) belirlemenize olanak tanır. Yani, bu sınırlamayı bir yüzde olarak ifade etmek yerine, belirli bir bellek miktarı olarak belirlersiniz.

Örneğin, eğer bir sunucuda toplam 8 GB RAM varsa ve bir uygulama havuzuna yüzde olarak sınırlama eklemek istiyorsanız, bu işlemi elle hesaplamalısınız. Örneğin, toplam RAM’in yüzde 10’unu bir uygulama havuzuna tahsis etmek istiyorsanız, bu 8 GB * 0.10 = 800 MB’ye denk gelir. Sonra bu değeri IIS yönetim aracında “Private Memory Limit” ayarı olarak belirtirsiniz.

İlgili ayarı belirledikten sonra, uygulama havuzunun kullanabileceği maksimum özel bellek miktarı belirli bir değerle sınırlanmış olacaktır. Bu sayede, uygulama havuzunun aşırı bellek tüketiminden kaynaklanan sorunları kontrol altında tutabilirsiniz.


Herhangi bir sorunuz veya eklemek istediğiniz detaylar varsa bana yazmaktan çekinmeyin.

Kategoriler
SQL Windows Server Yazılar

SQL Server da TLS destekleri nelerdir?

SQL Server, farklı sürümlerde farklı TLS (Transport Layer Security) sürümlerini destekleyebilir. SQL Server’ın desteklediği TLS sürümleri, SQL Server sürümüne ve kullanılan Windows işletim sistemi sürümüne bağlı olarak değişebilir.

Genel olarak, SQL Server 2008 ve sonraki sürümler TLS 1.0, TLS 1.1 ve TLS 1.2’yi destekler. Ancak, güvenlik güncellemeleri ve yama güncellemeleri, özellikle güvenlik açıklarını düzeltmek amacıyla yapıldığı için, en güncel bilgileri Microsoft’un resmi kaynaklarından almanız önemlidir.

Aşağıda, tipik olarak desteklenen TLS sürümlerini gösteren bir tablo bulunmaktadır, ancak bu bilgiler zaman içinde değişebilir:

SQL Server SürümüMin. TLS SürümüMax. TLS Sürümü
SQL Server 2008TLS 1.0TLS 1.2
SQL Server 2008 R2TLS 1.0TLS 1.2
SQL Server 2012TLS 1.0TLS 1.2
SQL Server 2014TLS 1.0TLS 1.2
SQL Server 2016TLS 1.0TLS 1.2
SQL Server 2017TLS 1.0TLS 1.2
SQL Server 2019TLS 1.2TLS 1.3*
  • SQL Server 2019, TLS 1.3’ü destekleyebilir, ancak destek işletim sistemi ve konfigürasyona bağlı olarak değişebilir.

Güvenlik açısından, mümkünse en güncel SQL Server sürümünü ve işletim sistemini kullanmanız önerilir. Ayrıca, desteklenmeyen TLS sürümlerini kullanmaktan kaçınılmalıdır, çünkü bu durum güvenlik açıklarına neden olabilir.


Herhangi bir sorunuz veya eklemek istediğiniz detaylar varsa bana yazmaktan çekinmeyin.

Kategoriler
Windows Windows Server Yazılar

SSL/TLS Protokollerinin Evrimi ve Windows Sunucularda TLS 1.0 ve TLS 1.1’in Devre Dışı Bırakılması ile TLS 1.2’nin Aktive Edilmesi

SSL/TLS Tarihçesi

SSL (Secure Sockets Layer) ve TLS (Transport Layer Security), internet üzerindeki iletişimi güvenli hale getirmek için kullanılan kriptografik protokollerdir. İkisi de benzer ama farklı güvenlik protokolleridir ve genellikle “SSL/TLS” olarak bir arada anılırlar.

  1. SSL (Secure Sockets Layer):
  • SSL, Netscape Communications Corporation tarafından 1994 yılında geliştirilmeye başlandı.
  • İlk sürümü SSL 1.0 hiçbir zaman halka sunulmadı çünkü birçok güvenlik açığı içeriyordu.
  • SSL 2.0, 1995 yılında ortaya çıktı ve daha yaygın olarak kullanıldı, ancak güvenlik açıkları nedeniyle kısa bir ömre sahipti.
  • SSL 3.0, 1996 yılında tanıtıldı ve daha güvenliydi. Ancak, zamanla çeşitli güvenlik açıkları keşfedildi ve SSL 3.0’nın kullanımı terk edildi.

2. TLS (Transport Layer Security):

  • TLS, SSL’in geliştirilmiş ve güvenli bir versiyonu olarak kabul edilebilir.
  • TLS 1.0, SSL 3.0’ın güvenlik açıkları düzeltilerek geliştirilmiş bir sürümüdür ve 1999 yılında tanıtıldı.
  • TLS 1.1, 2006 yılında, TLS 1.2 ise 2008 yılında geldi ve her ikisi de protokolün güvenliğini artırdı.
  • TLS 1.3, 2018 yılında yayınlandı ve birçok güvenlik ve performans iyileştirmesi getirdi. TLS 1.3, önceki sürümlere göre daha hızlı ve daha güvenlidir.

SSL ve TLS, internet trafiğini şifreleyerek, veri alışverişini güvence altına alarak ve güvenlik protokollerini güncelleyerek internet üzerindeki iletişimi korur. Ancak, güvenlik açıkları ve zayıflıklar ortaya çıktıkça, bu protokoller sürekli olarak güncellenir ve iyileştirilir.


TLS 1.2 mi TLS 1.3 mü kullanmalıyız ?

TLS 1.0 ve TLS 1.1’in de 2021’de resmi olarak kullanımdan kaldırılmıştır.
Kaynak

TLS 1.2:

  • Daha önceki bir sürümdür ve birçok uygulama ve sistem tarafından desteklenir.
  • Güvenli bir bağlantı sağlamak için iyi bir seçenektir, ancak bazı güvenlik açıkları içerebilir.
  • Güvenlik uzmanları, mümkünse TLS 1.2 yerine TLS 1.3’ü kullanmayı önerir.

TLS 1.3:

  • Daha yeni bir sürümdür ve bir dizi güvenlik geliştirmesi sunar.
  • Daha hızlı bağlantı kurma süreleri ve daha güvenli şifreleme algoritmaları içerir.
  • Güvenlik açıklarıyla mücadele etmek için tasarlanmıştır ve birçok modern tarayıcı ve sunucu tarafından desteklenir.

Hangi sürümü kullanmanız gerektiği, kullanılan sistemlere, uygulamalara ve gereksinimlere bağlıdır. Ancak genel olarak, mümkünse TLS 1.3’ü tercih etmek isteyebilirsiniz çünkü daha güvenli ve performans açısından daha iyidir. Ancak, eski sistemlerle uyumluluk sorunları veya spesifik gereksinimler nedeniyle TLS 1.2 kullanmak zorunda kalabilirsiniz.

Web sunucuları ve tarayıcılar genellikle güncel ve desteklenen TLS sürümlerini otomatik olarak kullanır. Eğer bir web sunucusu yönetiyorsanız, en güncel ve desteklenen TLS sürümünü kullanmanız önerilir. Kullanıcılar olarak, güvenliği artırmak ve en iyi performansı sağlamak için tarayıcılarınızı ve sistemlerinizi güncel tutmalısınız.


Web yayını yaptığımız platformların SSL/TLS güvenlik seviyelerini kontrol etmek ve bir puanlama yapmak için kullanılan https://www.ssllabs.com/ssltest adresinin sunduğu genel SSL/TLS uyarılarına nasıl çözüm getireceğimizi inceleyeceğiz. Ayrıca, test amaçlı kullanılan https://ahmetorhan.xyz adresinde bu kontrolleri gerçekleştireceğiz. Makalede, sistemimizde RC4 protokolü ile TLS 1.0 ve TLS 1.1’i devre dışı bırakma adımlarını özellikle Windows Sunucularda nasıl uygulayacağımızı basitleştirerek ele alacağız. Çıktılarda belirtildiği gibi, bu protokollerin devre dışı bırakılması gerektiğini göreceğiz.

Buradaki amacımız aşağıdaki bölümleri yani desteği kaldırılan TLS 1.0 ve TLS 1.1 kapatmak.

SSL Güvenliği için Registry konfigürasyonu

Verdiğim kodları “security_enable.txt” adlı bir metin belgesine yapıştırın. Dosyanın adını “security_enable.reg” olarak değiştirin ve “.txt” uzantısını silin.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]
"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client]
"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]
"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman]
"ServerMinKeyBitLength"=dword:00000800

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128]
"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128]
"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128]
"Enabled"=dword:00000000
  • security_enable.reg dosyamızı çalıştırdığımızda yukarıdaki tüm kayıtlar register ye otomatik olarak eklenecek ve aşağıdaki gibi eklendiğini görebilirsiniz.
  •  Başlat–>Çalıştır yolunu izleyerek regedit’i açıyoruz.

  • Bu işlemlerden sonra yaptığımız değişiklerin aktif olabilmesi için sunucumuzu restart etmemiz gerekiyor.
  • Restart işlemi tamamlandıktan sonra https://ahmetorhan.xyz domainimiz için test işlemini tekrar başlatıyorum. İlk başta B olarak sınıflandırmıştı şuan A olarak görmekteyiz.

  • TLS 1.0 ve TLS 1.1 protokollerinin devre dışı bırakıldığını görebilirsiniz.

  • Yaptığımız regedit değişiklerini geri almak isterseniz aşağıdaki kayıtları çalıştırıp tekrar restart etmeniz yeterli olacaktır.
Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0]

[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman]
"ServerMinKeyBitLength"=dword:00000800

[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128]
"Enabled"=dword:00000000

[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128]
"Enabled"=dword:00000000

[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128]
"Enabled"=dword:00000000

Herhangi bir sorunuz veya eklemek istediğiniz detaylar varsa bana yazmaktan çekinmeyin.

Kategoriler
Windows Server Yazılar

Web Sitenizin Robots.txt Dosyası Oluştuması ve Kullanması — Sunucu Kaynak Tüketimi Optimize Edilmesi

Robots.txt dosyası, web sitenizin kök dizininde bulunan ve web tarayıcılarına ve arama motorlarına hangi sayfaların dizine eklenip eklenmeyeceğini belirten bir metin dosyasıdır. İşte robots.txt dosyası oluşturmak için temel adımlar:

1.Bir metin düzenleyici kullanarak bir metin dosyası oluşturun ve adını “robots.txt” olarak kaydedin.

2.Dosyanın içeriğini aşağıdaki gibi düzenleyin:

User-agent: *
Disallow: /gizli/
Allow: /izinli/

3.Buradaki “*” (yıldız), tüm arama motorlarına uygulanacak bir kuralı temsil eder. Disallow komutu, dizini engellemek istediğiniz dizini belirtirken, Allow komutu, engellenen dizin içinde izin vermek istediğiniz özel dizinleri belirtir. Bu örnekte, “/gizli/” dizini arama motorları tarafından indekslenmezken, “/izinli/” dizini indekslenir.

4.robots.txt dosyasını web sitenizin kök dizinine yükleyin. Yani, bu dosya, web sitenizin ana URL’sinin sonunda olmalıdır (örneğin, “www.ahmetorhan.com/robots.txt“).

5.Yapılan değişiklikleri doğrulamak için Google Search Console veya diğer arama motorlarının web yönetici araçlarına erişebilirsiniz.


Şimdi de aşağıdaki örnek üzerinden inceleme yapalım;

User-agent: Googlebot
Disallow:

User-agent: AdsBot-Google
Disallow:

User-agent: Googlebot-Image
Disallow:

User-agent: yandex
Disallow:

User-agent: uptimebot
Disallow:

User-agent: Amazonbot 
Disallow: /do-not-crawl

User-agent: PetalBot
Disallow: /

User-agent: Applebot
Disallow: /not-allowed/

User-agent: GPTBot
Disallow: /

Örnek robots.txt dosyası, farklı kullanıcı ajanlarına (web tarayıcı robotlarına) özgü olarak dizinleri engelleme veya izin verme kurallarını içerir. İşte bu örneği detaylı olarak inceleyelim:

  1. `User-agent: Googlebot`
  • Bu kural Googlebot için geçerli. Google’ın web tarayıcı robotunu hedef alır.
  • Herhangi bir dizini engellemiyor, yani tüm sayfalar indekslenebilir.

2. `User-agent: AdsBot-Google`

  • Bu kural Google AdsBot için geçerli. Google’ın reklam hizmeti için kullanılan robotu hedef alır.
  • Herhangi bir dizini engellemiyor, yani tüm sayfalar indekslenebilir.

3. `User-agent: Googlebot-Image`

  • Bu kural Googlebot-Image için geçerli. Google’ın resim indeksleme robotunu hedef alır.
  • Herhangi bir dizini engellemiyor, yani tüm resimler indekslenebilir.

4. `User-agent: Yandex`

  • Bu kural Yandex için geçerli. Yandex arama motorunun robotunu hedef alır.
  • Herhangi bir dizini engellemiyor, yani tüm sayfalar indekslenebilir.

5. `User-agent: uptimebot`

  • Bu kural uptimebot için geçerli. Belirli bir hizmetin uptime kontrolünü yapan bir robotu hedef alır.
  • Herhangi bir dizini engellemiyor, yani tüm sayfalar indekslenebilir.

6. `User-agent: Amazonbot`

  • Bu kural Amazonbot için geçerli. Amazon’ın kendi robotunu hedef alır.
  • “/do-not-crawl” dizinini engeller, yani bu dizindeki sayfalar indekslenmez.

7. `User-agent: PetalBot`

  • Bu kural PetalBot için geçerli. Huawei’nin Petal Search adlı arama motorunun robotunu hedef alır.
  • Tüm dizinleri engeller, yani tüm sayfalar indekslenmez.

8. `User-agent: Applebot`

  • Bu kural Applebot için geçerli. Apple’ın arama motoru robotunu hedef alır.
  • “/not-allowed/” dizinini engeller, yani bu dizindeki sayfalar indekslenmez.

9. `User-agent: GPTBot`

  • Bu kural GPTBot için geçerli. GPTBot’u hedef alır.
  • Tüm dizinleri engeller, yani tüm sayfalar indekslenmez.

Sonuç olarak; “robots.txt” dosyasında yaptığınız düzenlemeler ile web sunucunuz ve bunlara bağlı olan diğer veri tabanı sunucularınızda gereksiz kaynak tüketiminin önüne geçebilir ve sizin için önemli olan botlara izin vererek en doğru sonuçlara ulaşabilirsiniz.


Herhangi bir sorunuz veya eklemek istediğiniz detaylar varsa bana yazmaktan çekinmeyin.