{"id":352,"title":"Windows DNS Server\u2019\u0131n socket pool (UDP kaynak port havuzu) davran\u0131\u015f\u0131","content":"<h3>Windows DNS Sunucusu&rsquo;nun Gizli Kahraman\u0131: Socket Pool ile Cache Saturation Sald\u0131r\u0131lar\u0131na Kar\u015f\u0131 Koymak<\/h3>\r\n<p><iframe src=\"https:\/\/www.youtube.com\/embed\/GzP0ZzhiA98\" width=\"560\" height=\"314\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\r\n<p>Bir g&uuml;venlik duvar\u0131n\u0131n g&uuml;nl&uuml;klerinde veya a\u011f izleme ara&ccedil;lar\u0131n\u0131zda hi&ccedil;, Windows DNS Sunucunuzdan &ccedil;\u0131kan, s&uuml;rekli de\u011fi\u015fen kaynak port numaral\u0131 DNS sorgular\u0131 g&ouml;rd&uuml;n&uuml;z m&uuml;? Bu, rastgele bir davran\u0131\u015f de\u011fil; bu, Microsoft'un **\"Socket Pool\"** (Yuva Havuzu) ad\u0131 verilen ak\u0131ll\u0131 ve proaktif bir g&uuml;venlik mekanizmas\u0131n\u0131n i\u015f ba\u015f\u0131ndaki i\u015faretidir.<\/p>\r\n<p>Peki nedir bu Socket Pool, ne i\u015fe yarar ve neden &ouml;nemsemelisiniz? Gelin, DNS g&uuml;venli\u011finin bu &ouml;nemli bile\u015fenini birlikte inceleyelim.<\/p>\r\n<p>Temel Problem: DNS &Ouml;nbellek Zehirlenmesi (Cache Poisoning)<\/p>\r\n<p>Sorunu anlamak i&ccedil;in &ouml;nce tehdidi tan\u0131yal\u0131m. Klasik bir DNS Cache Poisoning (&ouml;nbellek zehirlenmesi) sald\u0131r\u0131s\u0131nda, bir sald\u0131rgan hedef DNS sunucusuna, *\"google.com'un IP adresi 1.2.3.4't&uuml;r\"* gibi sahte bir cevap g&ouml;ndermeye &ccedil;al\u0131\u015f\u0131r.<\/p>\r\n<p>DNS, UDP &uuml;zerinde &ccedil;al\u0131\u015fan istemci-istemci olmayan (stateless) bir protokold&uuml;r. Sunucu bir sorgu g&ouml;nderdi\u011finde, gelen cevab\u0131n hangi sorguya ait oldu\u011funu anlamak i&ccedil;in &uuml;&ccedil; bilgiye bakar:<br>1.&nbsp; Hedef IP Adresi** (Sunucunun kendi IP'si)<br>2.&nbsp; Hedef Port** (Genellikle standart 53)<br>3.&nbsp; DNS Sorgu Kimli\u011fi (Transaction ID - TXID)** - 16 bitlik rastgele bir say\u0131<\/p>\r\n<p>Sald\u0131rgan, sunucunun g&ouml;nderdi\u011fi sorguyu g&ouml;r&uuml;rse (veya tahmin ederse), kaynak IP'si ve portunu taklit ederek (*spoofing*), do\u011fru TXID'ye sahip sahte bir cevap g&ouml;nderebilir. E\u011fer bu sahte cevap, ger&ccedil;ek cevaptan &ouml;nce sunucuya ula\u015f\u0131rsa, sunucu zehirlenmi\u015f veriyi &ouml;nbelle\u011fine al\u0131r ve sonraki t&uuml;m kullan\u0131c\u0131lar\u0131 yanl\u0131\u015f (ve genellikle k&ouml;t&uuml; ama&ccedil;l\u0131) bir siteye y&ouml;nlendirir.<\/p>\r\n<p>Buradaki zay\u0131f nokta, **kaynak portunun sabit olmas\u0131yd\u0131.** Geleneksel olarak DNS sunucular\u0131, recursive sorgular\u0131n\u0131 her zaman 53. kaynak portundan g&ouml;nderirdi. Bu, sald\u0131rgan\u0131n tahmin etmesi gereken de\u011fi\u015fkenleri sadece TXID (65.536 olas\u0131l\u0131k) ile s\u0131n\u0131rl\u0131yordu.<\/p>\r\n<p>&Ccedil;&ouml;z&uuml;m: Socket Pool (Yuva Havuzu) Devreye Giriyor<\/p>\r\n<p>Microsoft, bu g&uuml;venlik a&ccedil;\u0131\u011f\u0131n\u0131 kapatmak i&ccedil;in Windows Server 2008 R2 ve sonras\u0131nda **Socket Pool** &ouml;zelli\u011fini getirdi. Mant\u0131\u011f\u0131 basit ama etkilidir:<\/p>\r\n<p>DNS Sunucusu, recursive sorgular\u0131n\u0131 g&ouml;nderirken art\u0131k sabit bir kaynak portu (53) kullanmak yerine, &ouml;nceden ayr\u0131lm\u0131\u015f rastgele bir port havuzundan dinamik olarak bir port se&ccedil;er.<\/p>\r\n<p>Bu nas\u0131l &ccedil;al\u0131\u015f\u0131r?<br>1. &nbsp;DNS Sunucusu hizmeti ba\u015flad\u0131\u011f\u0131nda, i\u015fletim sistemi taraf\u0131ndan belirlenen bir aral\u0131ktan (varsay\u0131lan olarak 49152-65535) binlerce rastgele kaynak portu \"rezerve eder\". Buna **Socket Pool** denir.<br>2. &nbsp;Sunucu her yeni bir recursive sorgu g&ouml;nderdi\u011finde, bu havuzdan rastgele bir kaynak portu se&ccedil;er ve sorguyu o port &uuml;zerinden g&ouml;nderir.<br>3. &nbsp;Gelen cevab\u0131n, do\u011fru hedef IP, do\u011fru hedef port **ve** do\u011fru kaynak porta gelmesi gerekir.<\/p>\r\n<p>Bu Neden Bu Kadar Etkili?<\/p>\r\n<p>Socket Pool'&uuml;n g&uuml;c&uuml;, sald\u0131rgan\u0131n ba\u015far\u0131 \u015fans\u0131n\u0131 katlanarak d&uuml;\u015f&uuml;rmesinden gelir. Art\u0131k sald\u0131rgan\u0131n sadece TXID'yi de\u011fil, ayn\u0131 zamanda **kullan\u0131lan rastgele kaynak portu** da tahmin etmesi gerekir.<\/p>\r\n<ul>\r\n<li>Tahmin Edilmesi Gereken Olas\u0131l\u0131k Uzay\u0131:\r\n<ul>\r\n<li>DNS Sorgu Kimli\u011fi (TXID): 16 bit = **65.536** olas\u0131l\u0131k<\/li>\r\n<li>Socket Pool Portu: Havuz boyutuna ba\u011fl\u0131. Varsay\u0131lan olarak ~**11.000** port (&ouml;rne\u011fin, 2500 ile 30000 aras\u0131 havuz boyutlar\u0131 yayg\u0131nd\u0131r).<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>Toplam Olas\u0131l\u0131k:** 65.536 (TXID) x 11.000 (Port) = **720 milyondan fazla** olas\u0131 kombinasyon!<\/li>\r\n<\/ul>\r\n<p>Bu, sald\u0131rgan\u0131n ba\u015far\u0131 \u015fans\u0131n\u0131 astronomik seviyelerde d&uuml;\u015f&uuml;rerek, sald\u0131r\u0131y\u0131 pratikte uygulanamaz hale getirir.<\/p>\r\n<h3>Socket Pool Yap\u0131land\u0131rmas\u0131 ve Y&ouml;netimi<\/h3>\r\n<p>DNS 2016'n\u0131n Nas\u0131l Da\u011f\u0131t\u0131l\u0131r ve Yap\u0131land\u0131r\u0131l\u0131r'\u0131n\u0131n son iki b&ouml;l&uuml;m&uuml;nde, geli\u015fmi\u015f DNS se&ccedil;enekleri ve g&uuml;venli\u011fi ile devam edece\u011fiz.<\/p>\r\n<p>Bu b&ouml;l&uuml;m neleri kapsar<\/p>\r\n<ul>\r\n<li>DNS Soket Havuzu ve DNS Sunucu &Ouml;nbellek Kilitlemesini Yap\u0131land\u0131r\u0131n<\/li>\r\n<li>DNS Kayd\u0131n\u0131 Yap\u0131land\u0131rma<\/li>\r\n<li>Yan\u0131t H\u0131z\u0131 S\u0131n\u0131rland\u0131rmas\u0131<\/li>\r\n<li>Se&ccedil;ici &Ouml;zyineleme ve DNS Sorgu Filtreleme<\/li>\r\n<li>DNS Performans Ayar\u0131<\/li>\r\n<\/ul>\r\n<p>Socket Pool, Windows DNS Sunucusu'nda varsay\u0131lan olarak etkindir ve &ccedil;o\u011fu durumda herhangi bir m&uuml;dahaleye gerek kalmaz. Ancak, g&uuml;venlik gereksinimlerinize g&ouml;re ince ayar yapabilirsiniz.<\/p>\r\n<p>Havuz Boyutunu G&ouml;r&uuml;nt&uuml;leme ve De\u011fi\u015ftirme:<br>&nbsp; &nbsp; Havuz boyutu, `MaxUserPort` ve `TcpTimedWaitDelay` gibi sistem kay\u0131t defteri (`HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters`) ayarlar\u0131 taraf\u0131ndan dolayl\u0131 olarak belirlenir. DNS Sunucusu, bu aral\u0131ktan rastgele portlar se&ccedil;er.<\/p>\r\n<p>&nbsp; &nbsp; Ancak, DNS Server hizmetinin kendine &ouml;zg&uuml; bir yap\u0131land\u0131rmas\u0131 da vard\u0131r. PowerShell kullanarak mevcut Socket Pool boyutunu g&ouml;rebilir ve de\u011fi\u015ftirebilirsiniz:<\/p>\r\n<p>&nbsp; &nbsp;&nbsp;<\/p>\r\n<p>Varsay\u0131lan olarak, socketpoolsize 2500'd&uuml;r ve&nbsp;<strong>bunu dnscmd \/info \/socketpoolsize<\/strong> komutuyla kontrol edebiliriz<\/p>\r\n<pre class=\"language-markup\"><code>Mevcut Socket Pool durumunu g&ouml;r&uuml;nt&uuml;leme\r\nGet-DnsServerSocketPool\r\nSocket Pool boyutunu 3000 olarak ayarlama\r\nSet-DnsServerSocketPool -SocketPoolSize 3000<\/code><\/pre>\r\n<p>Varsay\u0131lan olarak, socketpoolsize 2500'd&uuml;r ve&nbsp;<strong>bunu dnscmd \/info \/socketpoolsize<\/strong> komutuyla kontrol edebiliriz<\/p>\r\n<p><img src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkUAAABqCAIAAAA9ebJcAAAQAElEQVR4AexdCYAUxdV+r6p7ZvZmWRZYLmERUBQVFBSNBjXGeERjJFGMJt4Gc6hoYqKiISg5Rc2fxBOMifFEEw1eSVCM94UKgtzIuVzL3rsz011V\/1fds7Ozy4LgjXb5uvrVq1evXn+7W99U9bIK3v3bu5C4e5y8i0oI8qeefJhGVEcIRAhECHz+EBC0SxXfl7uohDB\/WslrJUIJ04jqCIEIgQiBzx8Cuxifff6+AJ\/ME4VkhvqTma5tlkiLEIgQiBD4pBD4TPCZOW7C8hmnf1KP3Mk8xox+ZNbkG4zppG+7JmNOf3XOjY8c9z4DT735xro5HyT+diffqU5kGErHUcGz3\/HqFejt2PWRt3dqrsC5DVv7TTJnh\/IMPRvfvhNS9+G+r\/CFW37z6A+Pg7lict2sCafu\/DfYh586jBB8o94BQCA7iInNeQe+t8P4UR0h8FlAYJt8lvsDYH8GWn8ag1Um84ORa+\/0YbAcwCeU7fwU8WNTH6EDtmaFG2bckV1N7CL14damTjMMjcwvnTCLTrzl4LCZW3+tef3ylY\/ppQ90KmbZCQcU9\/r6TQ922ps13nNUr6LiIRctex+3rP9OKRtXPPKPqheu2TIfMn3jq0+vnR3KqY2r2h6EiUKhXadceeywxfef+Bjytjnjm6RyxLmjpmSa1rSN68azhtIr0wr3PQtSMvbubXi9vxk\/AhMGr7ri+y++v+tH6hH+iL36kX7CYL571IhzAci5L9btYLI8ZWLJiIuz+O\/gqE\/YLZouQiAXgW3yWeDUOOuKM\/EzULDPrEWlQydcaW03PnTOsMWZxQJdJUdOvY87X2JAZrce2HD7PjaC9dzuynLxnauGnXWGneDTuq57fN7gY7feov150xv9vaZPK6kdmbebSp3YtBZkBjmz\/r0xLRtDmb7htR0Z\/tn0wZr+6JH0yM5zCQZWltLm1R8BCY275QCadf22vr0\/m7hFWUUIfJER2D6fZZFZVlVD3fp2sn3JenRQsJ2aciDNnnjVJZ2xHXqXz7kjd8eGT9+dbtE6hEUTn5pfnZPZIOYe4mEhe2RWqz3YyQWeNz5yHI4ErT07HQ5Swi0j6qyx0y0aYrZM+Akm3RXlL8X9t5N2+CUAAvVPH1sR+OFhAeCrV+DoNYAruyPHaXAW8FYjRgTwWk8EqQtOU7GffvXmCeFXFp9mYA83GVvPheHvI3Zz9nj4zZP9etXlHH8Fs3f84iKBprnnH9lNDj3lL5gdkknAnie3pprzCNvJAfGxOZt6XcYlfBwEhLSdGWwjbPZ54bz1MWMYKkwM0ZEz3CChJ3pzHyH7yHBbfvPp+AJZzxwc4A8LJOuJmFnEYM9OBPvW0mmqOTHbDskBSPbnDmEh2cjIDU1I+AhbzxJZIgQ+GQR2jM+OHz2stHHeTPuZ9+I7F9CB5+B7N\/tT3S7RbGPf0jJqWD4z235\/ZQe3aPjUPGT5bGz4ICUjJmaWPDP60afPqZh1DowF+9w2u3RM6w9b4ZjJQ14Yfk7BFfOqgxSwaj96ZMWC+zvbNXa2RZucnP+eWxAM\/axUeNPlJ\/L14MENe5TfVzh88cU\/fKV06KSue40vH7\/osceaH5vx4sljhvY75sLy\/beVsQVhQuZQrnhqTbfSNschY0+hqee025GflfEEttntOFa3194c0y17rNf6hRgymK4YPntR5ZgpdD+OtvAZaDtztc3aXrNDjmzbnOHgC1PblNq7EeV8cSvtefUlY8\/FV3\/WZpX9+obnk7mHCtNrht760BkdI23VxrdZdnOGh51wIIVnFcikcvxLoXunYcEQKyYP3TzDfivCOYtYOARLP5CBPUwMzRM3ZU47kNiUWw6+b\/zFuY+Qe+JXduAB+NJg7PTlhWMmXIq3ceCtWwevOjc4Aime0TBm8rU4YLAJjKXwXATf9t3G3rT1SX6YDOp2Z7OtZy3IAbNgbPgjAzdI9sQSXfjKqs3zQrLf+hHgHEmEwKeCwPb5rPDIKfZzbv3kfvMmXhSepGMjVRkcxF9Bp4DVWmlj55IPg3R4twHjjmzR7p25qrpyTMepjwfj0tDgU3n48RYraZBTY7hHRPDK4MAT+7B7FzfCM9xSBD6ZCl3hWzSc1z2+7n94bWaWXXLPTQ9+1s4bcbzrJJvFsqVTN3ZPmI3rbn2gJbn5yy2b6uSbe150V8GPV1dPffSVd6a1W8UwJpTwWS1cVZnTvJkvzasJrbZeNCP8QtsduW0TXTynqvvB5+d+\/Lf2K4cModYItp25Fs26\/l6r5nRtey7r2OmVsznrtL\/VmPni0syNm1tNW9\/BRodUZj6NoRePQ5VDsO5D35ZgSO7mDEv5C8vtz0Lu\/gM+nYYdd3y\/spoF4VrfIf64h6YdMuecLB0GEQjY4psZct4gWVY+sMOQ3Gb1K5m3ifYRSksPJLpxREX14pcyJ6LXLVpEFYdcSTaB5YvCz3lkv7iFw47f5skKQiGBjl\/c3Fm30rF7w3uE6UfYk9idfYStgkWGCIGPEoHt81nm\/Vnuh8Ts5PgQh49pQ460nxOzxjbl7Zrq4KerzbID2va2aHbDZ0NYZhphP4ZXHTmt\/c9hJlt8foRkVw07pv2FzOFQPLHmxDen5a5Q1ivYot1TPe9rzes\/azRm08u9lL5my\/xvNK0F+4aS+8JMypIxk7f3wTw30vb1cHtUPPz1iskAvO0AavujPnBvh81ZhzifTDN3cxbOiJ2f\/Z6ZVXrH3L9kz6jDrh2sZbdhOOTY+udlwf1nInIoHT7hbS9yTc0r2+ve0b6d\/eJmyGx4u\/cIH\/ARdjTHyC9CYEcR2D6fdYyCteaRm9t+sf7A8kKq2Zj5eNjeF6zzyHIaso2zDhyJhG9Z2g8iOyrnFx3x4bHswGPDj9L4KLpozt\/gf+px9vensZc68chzcfBSsS9sFH4OHbMDv1GCRzg1+PV6zDVg+OxFwefcIIStEBZbtPh37BS2HVyecIL7+1SmpOg9p6C+V790t\/z3iitU1y5Nwq0VMUjSjb\/P4I+i+y9FX8Ubjvo37YEh1sf2n0JwSBlKMJPd0NjP8rZx5bF44WSVzq42uPjukcOnza4pqjw+8At2A2fvwMFdsHnaobmCuEQ7ujnLuL\/vLdxdZfco+Eai5a3bl84GY8+RuzmDizluNA73oGD1t6dwpd3R3FZYe35QOhQnh\/DPFRzQXXHERRcs7nfr05mPgEEE2prhwlGtBwxhy9Zlg20a+IrgwDz8ubM\/IIHRdgc75heuI5tAdgNqN8dte1PrlnMhVOZnocMXN8cnV8XRot2Z5ZDZ9h8hd2ykRwh8AgjsHJ\/ZhAbbsz4cj0DOptnb+USJj7QXvELhiSWcO+6EbKxOrovvbPtFRywf05dXnDfXnnlirvCVw4Fn2bd3CAjJGi0PHTENr81gDGXbr\/cGTpg8LfRpmnskzWj3SdMmdN3jz199\/U0DvyV2\/zYPvOFfK+u9hrrmpqb3\/vMy3k75Yw7a5HT+Oo3rGvr7TcXrVsU2N\/evr5Jbagu010WnIQkvZSN\/nNd9hYcdsOZGvClsT2OdT4llaOSMKhy6Aof6ETV44dS5X2AdNyEL1\/nZX6C3EfBpIDj4RZD2G+VgWGtlPXd4Lqywj+a8OWuN8WHvF588bd7gzLfN2aULLjjZfjDaVtCtN2dEo6e8mQHBnr1PtUdtGN5pWPs5aeKC8B1zgEy7HS3OBqbXDMUmLzyox89I2IQnJNz52W\/mWfaMFxZI6InpqmtKkQaO08dQ5hHwAwKCRDS41Y8tmh38+pVNYAaFPzVNU4ZtnnFR+KYAEbaWTr+4W7vBgs+gJ1aSlH3CyJgx\/BHr9BHgv2tKlPWujYDYVvpYhkaN6PivT\/CThl0RPvuHsh0yC8Pipzf0RJ37Yhw\/cngJ1+lwdOW+RcNPC8ZCss5ZS64R03XIrXL8S9t4hMw\/xMFwSMiRGJ4VxMEWLfy3aNCzz1s5fmrNyd91Zr9c7n+iv76fZDk7r3soT+b3nNR1r1AmdNvviN5jQhna75jTevYc1fpLGdlnyVHCt2eoMzYshXh8SMnYqXhG4BA+LBR4ZPVQgVsoQBW9oQTw2n\/ShK6QRPGlwfDAbn9PB1\/90H\/rucIIndTb3pwFYdu+IXOb7fWXwsfJDZ77FLnfh7k+ob715gx2fE\/i2xWPCQmfFEbItsK297dQAIHsvEAJcQAUIkDCJiyQ7Dc5\/NEMJetJmx4P08iGwnCAHLq1S2zKxNCIum04vIng3zYLW6zgE0r4xQq8bBU8hU3eNsienYSzh86os\/6dPgJFJULgE0dgm3z2iWfSNqHdogW\/vtVm+oQ1+xbtlHa\/TxEk8GhB7+D+Yau34l1CfkL969I9Qn5CfWyvw0J+Qo3dYSj5A09GMxQ4wC2UG7sMxvBQFsaKPmxOn4HxH9PmbKeerLPN2U4FiJwjBCIEPjUEOvKZIceQMMyGDbG9SzYOG9SCDJExqG2l2WihtRHGuGykIJZMQmCw1lL7Er3QYWGHGGa2g+1wbTgjjAEkHRNzdZ4wTCYltHa0pEd+PeDQq+81aSMEYiASIQUpiQURkyajyGhjCxnDoZANwJSZxfbBI+jWwmjH2EThCgeNR4AbIrEtFDwUjMoYZZSNLvl\/3\/zKZd98oohEzMY3ymjPGO9XpQN595PF7mOvKBuGYVlZLxMBr5TPziu\/q7j\/pK72t+cndd17XI+DD+99+BF9xhzR57CKAcfy7mNBUXL3Uw\/oe+yRvY84os\/hh\/cZ8\/PyvX9Rtuekrnv+snTPf8cz+zBEywb\/4ihstwttG4JP5cGxfemwoflU0th6UuyBsvuhrXsjS4RAhAAQAEOgzhUs9ZkFP7QG7ZCNrKH1xAp3NhwSSOBvrCMuAheCEQkOIA9Yrc2OzFzBkEC3fSAeslwCUiESmtg3JBxXJApIumTZBcMNmBXUFPjYkZytoJjAnK1hCSTwCayMWuc4Bd02Ndjs9GGb8CzE+A89WgspTMJVkrXNDh4MoKwEHoxNFZgp+39bqBhw4uG9x0CO6DPm7B4HTCrb6xddrdxX2A\/M9EwCPNd9vcwjGx3h7XNTthimwE5IBypukUQIRAhECEQI7DwCWKM7DMLSby2ZpTVYbe0CHCiEldcq1FayZIGFOrAa+DCjNpmmzqWiwAZKCwSNYMtksGODblnLRgGf5SUKXOlYLsHcNhVQJtb7QNBkzAHBNGzHbXUF1pCg4Ebwy3HB1BQ4IDRyhKAJZ6agMkjDsGATd7UDhoUXMUGYGbUVokxNrcUEio1MwCdsWRM0SJB2uyEw2idi64P5cLOItXOB7ROXIC3qtP7Ec\/lkJoxmiRCIEPj8ILAVn9nlG0ty8ITBHQYscEE7XJehYh0OBXpghBNYy9awYGkWxq7SULBqw2pgDfyCe1BhPO62m7QmFfQGNsahn\/I8H2eZWN9DDrG9CIMBocAREuhM1oWJIESoDWaltoKprYBqAoGDlbY1u9WTCXHQYFwQT+nmlO8rVLChPwAAEABJREFUE5gZNZNgFmS9mIKSuQU6qpymdQIeMIaCKETZfjwJhIKHghV2CJpIKqPYRnRFCEQIRAhECOwMAmIrZ\/CBCZdadAUa1tlA0CCs1KGgE4I3Yyx08G7KuuACm0AQlsGGGGFgywj8iSkczkTgF0IxhPNGCFQQBjFrFC+ttDLMTExWyGbExqqhoa2GsVWEQfKtPkx2tK0RJ5TAglBWjAHh4LgRd4KdiWyNIbgRk691Sxp8ht0qE2cKsQgb1FqYMryN3IKnxENBCLrtwg3xTdhkJqZMCUyhDtUqTLn91hJdEQIRArs4AlH6nywCIJ6tJuQOFrThxuGCi+XXMoFdorFaZ4Q4GGLroD9jhh7YWyu2i79tZDoYekaF1irWGugmE9ZGs4ZgXvCDbZu2BGDJiHUKryBGjg+4y44KO4M6YA\/GDIwmxoc1hkCB1da5V6bDmkJnq+HKsaMF2coAWyQRAhECEQIRAh87AiCqdnNgmW\/XxtIOkxV42qWfsRPBHRL6QUEv3KxQWAVcE1Tt1n5CgXuw4ocdUJk4KOjrINzWtluetiY0SNiLCKGSU2c6MzfLY\/BqbcGvo4pe8F1QW2d4EFwgVrNqcO+8avXqtNeG5MAjqDr1aW\/cUb\/2o6JWhECEQIRAhACBpbaLgl2OmRhuqLmdq21hxYZkzNYAFYQHemhlhuydAmZo827taB3FGYU6K3YYzgzhAsk6WGtIm1lTMAla1o3DhiVDWELJ1kyEGW1NmRAhxaLVXgzBqZ0paMM7FNsdWDI+oY4aEpowT6hEdYRAhECEQITAx4YAiKpD7NZl2MAOnYmFAe0xo01hbTVc1gO3ToThiF5I0GnvbDUmtreOV8aYGzwgITsuxxfnjTmtDmrg2xqoQx9mDbpbzcwZR3RYMmudrJ1Tm7PVsiNsI7gQAoLh4SjooaATCuytCu4UHLTCMRTqrGynqzP3yBYhECEQIRAh0A6BrfnMdgdra7j9MMZotv+GWQdLtDWGivXLXDDa3RZGtXYFarCsEzgjIINMi9pK4NRa4Q5p7cxRg5BhZa32avXqcDdBgbGdT7YBpVVswvBDVFhQB3pOhVytMCHzwAMbTnvHBPBqrWEkJgi6QqGg5OqBoWO1tQMsHZ2i9q6IQJRzhECEwKeHQCd8lllbsVKDpOzKj31RhszsCt6aK9wgra3wnjVYBQHYFiz4VgIPexYZKK0VHO0UrU3cmbPeaAVkY51ypw7sYWXaO8OIbFETM9sbhXWgZmNZFxO0YIeCOkfsCFwQOzgTBv1ZGoMOQT+kffKIBUHnjgg8s7Ij\/pFPhECEQIRAhMB2ENiaz7DG5vprMiAzK8ZoEEFWQies5xDChXEQUGCbhC5Y9QMJmCGoQntujZGhMEYbyyNhrwlvqKFhaiitPBSonHW1GRhU7boDn7YqiIEJrNirNWCbR6DZHJmykamtBBMgip0ENwj8bKQ2l0iLEIgQiBD4mBCIwm4fgY58hiU6GBDeUQcCSoPYhRvNoN9WJngrFGroC8gk07K3dpdd91sNGd20ti07BHrQEVRk2cRqcMINEjqhSdnCzNaNMmkEfdkkyBa2VeYKuzONIBoskKwlUJhzxwSmTIXI1hs3+6wZY3SLEIgQiBCIEPiMINCRz5hYkGGWJFxh2FG+wLaMmSnu6gJhXMsELIR0CD54syYc4caFlJLRo42vjbHjmIVktjZrJuNjCwebQC\/5MDGhE\/yA7R8JLaURbIQOmIkFsxComIgFQZOabVIkhOM6EkWgi4zSWrMmRyKDWMxxXRKSSBjFsGOsRuZKwSIdl9ghZMvwyXNYxE0aroQmJlZ2WszPjiQ3ZpiNUg5z3HVd5GEMmsb3kLQjhMR\/LJiZQiHGRBSVCIEIgQiBCIFPGwHRIQEsz1joBQsSMUns+j5r0A4LE3NNIZsY\/FmwlFjwA45hRzgJKRzJOL0z9i8IgzYI\/CEdQVjzCRsaTeQzGRZCEDEpqzMKEWEQ+EM6oJWAz2AiZpCGCPuZGLMZkvAkIR3HleAvOxmRry1FGUfKWAJ85jgkJZEgFSSGSMjcx2TsOjEEIcNErhD5DnFCg88MsUtGghIDmiWWkmNxYkG+L+HjuiAwtvkrAp8Z7Qgp8QwsGIL4RBTVEQIRAhECEQKfDQREhzQ0k+eAcRTptFdU7vqOw\/lU2BxftjjtbzGmmcBvWnu+b7QmBh0p5fs+KgW6YAavCZgRBt0gDCIhQDHYNYHYfB\/+RJLgYbQxlsnAPcayhfbI\/j9ZLP1g24WIRitQFiMXg2g+MQul\/TRmVgjDKK60kUGhyvPtH3yED1JiEpLAv0y2V9rtlZf2tUmTSJKO61T5zH\/cvXHFv1KPz0i9Nn6k\/55I+OA1jNLd+jp1y+IFfciVHnFzmjwNEjTkEMWZyGB25fsaez6DR2NbiNkKMUUlQiBCIEIgQuDTREB0nBwGB4u1IuWdMfn7a9c9sOGtv26ZPfHqEf18f4s2zXY7YxR5PoFvhCGtjecbpbXCFovijnCZpGUgXIjDzHZHI+FpiDyQgokJEmTIgHuIJOYzpHxMRzptjeA6ZWxMjT2dIgrE+DFEUlql0gpzGRZCxB3p2NGw+l46rXTAZwJdDioixn+WO41WaZBlmmSS5EaSy77yrbPie5\/Lzy2orU7vW7inyPPYNcRy3EVn1t19nl67klyhiNPgM2UMEzlMcUGsLZ95ymhQsbHxiewUcGBcGZV2utixOz0oGvDFQCB6ygiBCIEdR0B0dAVRNaX6LK+kS8\/60\/GD\/tz\/q6NGnnHeGyO\/\/tg3J\/cuLua9VLylX8tg8lfGEz3JtAzyR1BBMq63xLqVqqrFSdJ+YZmvN\/na8ZvqVFMxNa7r3SWpZEsPbw8qaCJ3VbpmY2HXocLhxEaPE926F6ZiJk5USqZEkN0HsWCSsnvFnoZ369Fcm9LdjSxL9xRqQ5XpU1joNMSLXbXm7aRJO7Eu1LCxoMueqeraRH4fty5NXot2G0rpTV1bWygPjrtdBjZtAF92SRzuyK4DmzdbglQp8hpJeDIuUs2+bop7tWVxE+uiarweu3nYg7b0GFTskEgR4BGxHksGU5L3LKsjN0YxKV3GnpMMKBn0HArojVBwY6JOBQyeEcqW0BHNjIIbGpFECGwLAXyD7aKyrSeK7BECHyECWLDbR0v71JReU1n+nyOOaXrqusmluy1uqnvozP+bp75x3GXN9cI88Y\/H75n8Vn7Xg72GQf9+ZuadV\/0j1pjsldfbG\/ODV6vmrnvn7+rfVy+\/roKc9XT5b8wbY8dec+drs+\/fsuDOO6fMc5rPf\/PVR1+6vlf9yv85LpvKXubysa89e\/0v\/epC7RZQiUsJJhLM2H5trFl6y4NTHv\/rqdc+MLH+janmsd9c06cXrdtcaErUId97ffXcqnl31T175Wv\/V8G1b1NRl1\/fcM2mZX9tWjLdW3T7vVfsT11K\/ZaSV966+brv7IPNX0O1+\/Ibt\/7qO\/syXpdp8FkTMfiMk82+aor1\/da3X3p16sXfGuH33M1sfLhhwXUPX30IcYpwoMqxjXddYV6\/\/59XH0V4u+ZKxyW2G0zQk+U00Fq4xABHxrVDAkeIdcWtVcK7NUZXhECEQITAx4\/A522GrfhMOuTmkd+jsIu\/aUtVGmd+8STFnvM9p3u3b0jT17ie78e95mYplFIt0ilNG1rx5fHrJsbWHHJar\/4n8yRV9vXJd5cNo6K8dP1Xb\/7amp7DR13wZsk+eTU6NnP4Df5BR\/78jHwq2tI95fZ78kvD1998ybWxskbpt3C9Tyk2tmitSduDPW\/fw09f9OM++9324JYlw1JdSLnrD7949aQua798Wq\/KU+PXNnQ\/6YJrm+MlJ192wB4vPrnX5QWjjnIHXHX2b1ey4aTM801jIUIl8lSccVyY8GoNSWbXEQkyrlSSHTIFavX9Mw7a\/9Lrn5jvVq3g3t8sGnr1tyY9R3iXh7NNnTa7L6OEu3BLGXiRfO17hJBkuSzcnGW+J8BqGa2TG7gqa83Vs8ZIiRCIEIgQiBD4UAh05DNHOHngM9WzqIsK+EwQl5Pvb9rktZikbqwHnykv5rU0O0L7qknKUiK+8Nt9CvL2OnjWDXrFXS2\/xeFhvjy0Nr850VD85PhDb4g1jfjHWd\/td2W58avpsSmPpXv94qcHVHdZ6lxy0qENbx94Vw\/tpIWo0VyvOGUXe0sVhoxWxpS\/\/dAeV+fX0+vfPv5PY51qUrHxp1TmFw8\/5Nmb9cr7mn\/dU6aHjBybX\/fIf6r0sV95+5qmab9waeN6r6fQRCLhU1OhMm48DweZ2kuBz8hIopjLeYQXeUqQQ1SguaQmZVJbSnrG1q+gWL6bt3lJXZoVWeJSnvzebxMHfPebk58h5ZGvfJ+QGeUWUFkoucZQt3bGVi5sEWV0thoa1K7AuV07akQIRAhECEQI7CgCooMjO5rj6V7Fi6rWpLrsOZy2LE2U9WW196CC+Zs2PROv0Emlu5dXSifZUlrvcd6WdLH0Y\/FYYsuKe8YfNlXsf2He8HNLhp05\/tZ3NSULFAk3npYkW5LS10yy96qi419ds+6EQd9uPHr2wO5P3P6HLi3LWrAVI0F4pUYiWNLBRT6xZJFHpIyuJfIoLcgwdo+xWGzjogcuOOjGxPAflg\/72V57XHfQs1VUvP6MgV\/u8aWfTqg6rmbhnZvvOFm5SfKEowpUt2qvYQPp0UonN+Vhb6WMEi1ejJTrkCyIu+w3C50SxnNSgkoqKkgqvGBj7bhSIh2jipb0SqUbBnbbKGXMkdKVRgiyXARSorBAgxAF2YemTA0ztpzoYPRZgUHYO5zDm4YGAYEbpsyo6BYhECEQIRAhsJMIYGFuN8LyWSK9zsz\/+kv1pYO+\/ivqw9XvfXv6ZV8d1HXRxFq1uofls+4DpExOuv2CY7rXlzuc8GN\/uHclDxj7s0sX5idKHaeQKF7rDNWUSihiN449kNOSEp5mI9f2nk\/XXjpv1bd\/8+S3hpTOP+NRp06WG42VHa\/MXMF2W4WVncjymbCngb7lM2P5TGhOOHTTvctVxck\/vWhhodvV44Y6Pa9rdT86KvH1nkVOrb7v0jML79iQ0klykiLNjioo6teL8o7455NlB8crSovzHa3IF+TFSTsOyUIwlGqxfEYedongsz1Jap1iYVx0CWLj19714+Vv3n7\/1YdJGQefxYRxBBGDmDhTExPhQh0KoaCfAw7Ds6FJZNo8DF7AoYXgxtrRZYWsiaISIRAhECEQIfBBEMDC3G6Y1o6fTtCKd5K\/uWTMC5UXvHvHW7On\/G1k7RsXT\/pBwQBP3jH+31uWD\/5a1dzpZy7aeK+W6ZVPNhVVlP37st0uX9D9jL+ueeF3Va\/etP6tm1+5qC7drJckBxf7W3rI5nR+vnZjjE1YuoX8+K\/vSDbt0fDXE2\/FoZ5hkF5AYTrcyJBgKWWC1i+JqbXJvkcpzmeW5BotRFLLvo+dt8dVb3U\/e\/qq135XvZXIJH8AABAASURBVPDO+rUzf3\/MKzT86zctm9n43t21j00043redtmfumyslEPv+O1L+YnDf7j2zct63HLPGwUN\/ZcOUoJJ+uS0UO\/lsibx5prFyk9oimnp3D3ulbld5axlf\/Nfuuu\/T\/T1PKW1kCJOlev7mKIVG3sQeb5WSV\/7xgR0xURM0AiFiSD2YmJmskSFGmK5yhBra4EONew0hkiTgR18bsh6oiOSCIGPD4EocoTA5xmBrfhMuX46Lsv7y6a8NVd+v2zkt4Ycfvm0hb2G3DDxdzW1RUXD6n931SFjftZr\/x9XXvPLs4efffDdw6RYuZHLaebvB+59Xo8hZ\/Ta+5y+w79\/6DSK\/3HKkKMvv83ENzjCy89T4DO8u2oqo7oxf\/x9Wcm\/Z17VmFKWzLRkLbHQKzLG7mhYOK6Mu133uOCkn+3xtT8ovOtih2OGBCstV\/NAevK63fc9q9te3ynd86ziweedP2uPvJ\/9abf+pyT6j+Mjr+SRZ0+s3622aKO3Ov+ei8ft89Wr+gz\/9uhHXztg6A+HvrjSCHakKnCS7iW38jd\/8Xx5d+PnKRPDbi1e9tcx+06M7XGa8+UJY47eAD4zRgqZSJzxxy57nTdu0nOGwWe+8o3WxMyE\/1Dj1lGC7xj04qGsUFCZ8MaEQ1XGkSMTntYw6dBuaw4GRlWEQIRAhECEwM4j0JHPiH0SaQiLtJbSxAqKupaNP+G4bn8v\/u4799x38goSMdKsU75SgkSe4ZgiQSxJSm3IUzBLjiW0E\/ekS0ISY5HGku1rnefp7rMe+T9v\/YQj5l7ed8KbLbsN5EQhy4Q2jjauIUtZ2KnhbRq8DSmSKtjWgOdgRiSDs0BMRCKhNKdSae0jCdYcS8k8z3GVJOEYV4KzrD8ZQVoQS0YaYBPlIxAjhBFJI7Q2eFHG5JDA\/s\/Be7qUNs3aeBphfBbocRVTWnmKfSSoSXm+jYA8SGvt+eQLqWMESjK+4HRCJlkoTawN41DTaMaxokEOiMKSfPi50ilAPsr4ypE6kQ+UNEmjiHxN8BQuRSVCIEIgQmAXReDTTltslYBPnGIGpXnkCIrlN9Q3yJJCNeWCohHfPe6RvozzN83a\/sUNQSJB7BJDgUgbSinNggM+01idWcaC5Z8Mom2mxPKjv\/mDsgFnlJ+9zkkrWv1vJ17ATsLgMBF8ZlwiSUxY2pVWGnehDRuQkI1sSLDlKpaSJN5+kU6lLC+QMMLVTr4BfUoCmRVJHWewCgdMI4kkC8dGsGxkG5qEsnxGjlIOSSnzBBLQhkIx2gE\/CSYXuRNpT4FZHaOwlfSV9UGKylDaJ8XSxMkwkSc4nSdTQmgiQYZIIWsmqwtSzCSFbyzVSsud9ulA\/\/E842AKhzSTpwlxpEtRiRCIEIgQiBD4QAiIDqOw8VC+rzUz2EVJShOWY6zLjpExjUXZN16TseQkBTNrrMIQMIEn\/CTWfnJcEJBKeayVYCz85Bmyx3PKI21YS02ySco0S0NcmP91SiYra1fAQ4BF4GAMYV3HCzRXghYR2qYnGDV6jDEaux4NfgHpMsVc47DPHoF9uYUoRca+8kpp9pjAHkTwTJNSRiGAINchNj6SFz6ozDiUdqBhS9moTdKArhxBsRgLYYwy2qPgtxzJkYZNSnuayUZAMkhFOBTLG1xRIqQgvyHeZYBfn6jX0kcX2dwYzAR4kIBQ5Gpj2UxqVtpPGQINsg2ebCDf\/ns7ZEUgQu2xh6egqEQIRAhECEQIfAAERMcxoChfac3YnjD4DMygsZAL14iElgK05DUa8tlxsPjHDY7zNJEm7QuVlGwE+EyTSnuslGtjszGgFS2Vj3PJeMBnSjhKCEOcrCl99vlfTP52JZMSAZ8JeDOBUaQjSYAZ4UXEMDHoEHSGmUgroXwWBO4hu7fxSaQdTjL4DJsmo1IGJEfkYKzlM2QCeiIMcF0ShP0WsS8djbEGXEU++Y3GpIxQeKS8eDwm2YAytUcKMbUjwWeY0ycm4Tg2jjbQhJu\/aO1b37pt0vqltz8wurYoXuMbQYYIz8LCkTFmJqOwFeSYJlbYWiJ54yfJ+CyRRppSAZ8RgSKlMML45OEzASJ8hNJ5KHPchOVz7lh+8+jOuyNrhECEQITALogAFvj2WcsExco4VuZ7xz0z689m4W\/mPT9p3fz7N\/2poj7hcb\/9yREcE5QnjMQ2xueUoiYwGCvHFU4sEUtIbJtc4bNOYy9ifGas1K7xCnzlpgnrPXZ8DURpTcJ3uzmx\/EJOGiF9J5WM1WjRJECZKT\/dqEEoxGwFCRpDxFasAt0QFCuCjCO8Mrfhy\/+568INcx41S\/6xcN6fblq3POb1puZD3573N738\/o2v\/yl933V3JpupMlFSV0Fy8HNPPbBm3gPJ\/91nbtuL8rs6iX7k6YN\/cXvdG7dtXPjX2kd\/9O2GvWI6j7XjK8zFJEBBrNlIisdMycCSQp1e9MuXXpg46PUrKo4+6T8b02LvvvKUG2ZPMfMeUM\/fXXXrvqa+ph8XUl1y2p0361fvVIse2PjHvf18o\/K6ayV6XnvP5rf+smnpg9Vzf3Or26S69SmtWS9PnQKaaXz7zro5Nz5yHB6TUIw5\/dU5d8AIefWKjBH2G2ZkjHUzTkczlKwRzh3oCl1ZT35s6oDh0+YNPidrCYdHdYRAhECEwK6LQEc+EyLhxMqosFnHu5YUrZ3xo7MOPfjSXnvNfHP\/69++aaha\/RpLwTFJCctnlnNSvmhW5GOljwk3HnfjMuZSTBBro9KGfOw8WLuULtAa+xQAlXIJfOYRCYqVu7EC8BkJQU6a3Fojmh3tm5Qy2DJhNJMtnLlZ3V4gGG3vuOyWyBF2VOydpbf1O+TrJX1+MGNe\/GsvXZEfWyWLRtQ3PHfyXkf3HXZe7JTLz29M0ILGurKVtzz8q32rH+m7+0mJff\/19OhrFl+9wRfzaeKfnz3ivel7n1wy9JzfNo366\/+G5ekEWJoUEWZh7MyQhnFNvNCULF+TOueeRyckn7r4kJun9xtTkC7llpd+\/s9x51atK9jrdD7i5pWHjdtwQ+mq5OaL7vn9sV1XjDvg3NJ+183a48ol\/zeMGjbSsT9\/\/cQVy3\/+vUFDvnHp02XfeuHOb9Stqun981d+2mfzjHMK9z2reEbDmMnX3mBQRj\/69Jhur0yDseCKed3G3hTy3Kk333h26YJz9zmzYJ\/bZpeOCakLjBUa4QypHP8SEArFXDH5vEGg5LBla+aXTjhiWnasNUVXhMDOIhD5Rwh8lhAQHZIxull7NSbtEN5UsZAibky6xJ956MxnBx5y3rszb3vtsianaku+8fxlCa9b3WMv\/POuE5qoS\/1fbvn1wlf\/suXFy+uevPmmxveoqIom\/M489f1TL7ls6Zt3q3cmL7y6mNjpvXmtN+GW6sUP+c\/+n5m9u9m4riVpeYL8Mmr8ytxX\/lP9\/JQp+w3kPMMucViI4GErE9ztFgUXWI0IR52ktLPKK77\/8ksq0jpe7z71WmN8cPeyg5Tqrja6ov\/yZs\/vEi9vWiWLY9zQS+jxg6h5xTuPm\/hGKnh8\/gbTd8iPCxfEfzc6Xl235idOl\/L3aNLKRSvy+vyiJNWtmYgNMUuWxMDKpDndzE2xwSNPKqRVL\/zvCQdnhsvTsTV+z+lDSt5b\/M49Km8jiTn\/Wyr17ifmxb8+bLcBtauffTAuVeG8v69Y0bXPPuMK1bdOzCusqpn+n661DfTAY+\/UcPFZY7ron+0+QiVfuI5suW7RIqo45Eqi40cPK22cN\/NFa5z50ryawmHHHwz9wPLC6sUv3ccoL50wq6ps8OhTr5h8dmXV9COuhxEOuYLTxRVj6fb71+QaoTMoLRyLnS7akUQIRAhECOzKCGCNbpe+UU3aryHPDfgMr7ESdW6PLfHqvOfKV7ubl9Q6pQMOSxed88D025c+t0+86qzGbnMan9\/tnGvv\/0bRW8MPHsv7Tzrt3dT3nr\/11PWJopIyr\/dX\/nDwmsGjjj9jYWGc5gmWa0sm\/++U4sW3fSMx+lz+N\/fPj8USpZIMiWYy+cubNHUxJfPfc\/NIxJiYM8kZ3Ft1OGP9hUCBsFLpXulU71TpFmMSef4frv1S07z\/3vI0l1eZ5pjs\/+bbT294burtJw52iuOmV504rudulavee6WG1O5kap5fXKPKenx9v1MHu7Rl\/jsNnGzY04n\/N+UW7TXk0OSGImJhHGbJqBjcptlLiubU8JEDB1L9\/Ledom6On+\/5\/fyDG4e4BUteXqFUJfsb\/7dUlPff\/ytetyN6OXWrn9WpFp8K\/rU4Vdpn2PEteaN2H9BUv+UWlaKeTsszjTVcUH5Q7ZndZE3Tu6\/gQa0sq6qhbn0Ppn1Ly6hh+UxrAv0sr6Gy8oFovLKp0XKYBYFuHFFBpaXj+hZRTU3rcLhkxJjRj07oN2\/iVRdnDO1v1y1aVNpv3PHtjVErQiBCIELgM4DAzqbQkc+YHSlcrNxkfMGKpSKcuPlK9pTFKXf5e7WVvQ6hoxv2kFs8Z9TRXUq6LqueKSq++9WSOa9PrW2sSeTHH7rnicZ4\/k\/OPyQl3ln99qs\/OfNfxqe\/XzhuwKWlPRp9+tshIxpevPln+\/k9E7EfPra42N3k+ko1ENdT3oJvjDqi6NCJP1+51LgesaJgvQaXhRszYvt0hpkEM0vBruCY4ASxp3lLYVmaa779\/JJj\/Zu+u8\/v\/fTmKsqbN+KQk3j4cbs9WjP6xl9OG7mha56nWtw6TvjOFvK2xJi6lWhKpmob13Y3xT27FhMVJGvqUgVJzt+widbLsiZsAxVpQ0pozT6R9Ck\/RbFqR7z39N0D0w3ST2qjWmhddb0rK3rEfN1sdIvJq07VrNdCquZks+OT5lRtdd+EaKlrrPbySps4kUckamiLx86WMl1drHmhdNz8fNqxct\/4i6fXDL1j7l\/wnuwQqtrOoHG3nFIx66ITH+Pt+ERdEQIRAhECnwMEtuYzV4IniMkoZiWkJlKkfFkhipPuU4vfW17aZ8bXjtjw\/D\/WdKsYd2n33iX1j4me6j2vSMRJ9UluWC\/Kh4DPmla9m24prOwab96c9hNkWsqoe8HGAp8WvesYEy9eRKs2pAcMirfEhOeTauB0SUwVUX4l1cfq9uxPjm+EAp0ZAp1ZnDlUmIlxAiiIHcFINe5wHgmPxJbG5ce+uOSALVedPOyu\/rKpIL8gTsnnKV1amOrXOGnBuqQceJDYUpssmL020RTvM6iICkyMTVkXQ6nUqzULXm3a0lCMhy0gEnlDe\/RMxZJPU369IEuq9t8JIJ2YZ39zxfIZJZyWnocev4waHEoqo5Pgs7qY7NkjRqqZZOK40sJ07frH0qur\/MLuvb4NPisoKTqkR9fm+oYXW5LPbVoVz6NvFBQ7Rb38Q0qUG6t5p+Ll6i5OXsGB9llxDawopc2rX6S3a6qpqDLYP2GnVVlK1ZuWoRtyydhz8ZIMMnVTES1fdMLqBtpqp2XM6RMOLBx6iqW9plOD\/mEvAAAQAElEQVT6yEFH1s2ZfANgxfhIIgQiBCIEPl8IYL3u8EDCKGGMpY+mqo1ugUMqHTv+yld\/NOitZy587M9zXzaFJx\/Q8+lfPHPJ4toho3v7b83rmnruusX\/O2DkLypMA7mJ7x1mSluqJs5ZSCLWFGcSitLY5GmwkCZZ8daShvKvHfSdeeX5FYdNGTFIFpZzseAuhovS3pC5r03f8r9rfzVkEKddVhJcErIYMRHGU1iYLKUpbdLKpHzTQk3FxCfdsviMxJ1nH\/uvwvK0UqkVLd2oeGlFIr+uMX910aQ9dyuOVc0v7eE0Njbc\/c67us\/e5zj1FY3psRcM7Dlz+o31PZomzV\/T0PPEX5tNtFvy2j36Jl544Ke6Z4OOkQGFGuzPFJu0IO071JQQr78+\/z2n6wH7kdhMpfmFxYW05okFixv6nHiVaDGx+h+N3L26atoCkf\/ixctmDhgx8vT8WFPhmG8MST7\/yo3v9Gy56+GNj3Ubc\/FRcbFu3hmnf63gtX8c+la86+WPzc\/f074zw1NeOWRIzYKpeJeW884seJdW9cj3g3dp8AkE78amHFi4aM7f6LrHZ9cUjgl+iyTosRXz3aNGnAvOgxTcv0YtmVUyYuIleCDbGVx2olX3BueZQfv9qqg\/QiBCIELgs4pARz4zRmBjZrBRISrpN+qgn97RMPevW369X93Usw+dVEg9nm1cX7R44xM\/d6nuEYr38ue\/9N6WmPfCDx7+nRjw9lu36EUPTz96tztHXfPClkEZPmM\/31MJo6VlJFk148HzX1\/\/zYtfWT7\/rn8UrF2U2lSjtMtdyK0jt3pp0k8Uq9I5Kxkv8JQgk4WNrcYEcrEihCENPtMmCeFyQUeMPlU2DThnxsbXblr0wrXm5bu\/uc7UX\/3zJa88YubOXHlS6X8vvPzrT+VtMn1lnj7lu7e\/OfBIb+mvvIUnvTvtrNMeZ69ZbLnyd9fP12e\/9bfqv953brcXxPfn1SkjVNoltpNhOtbAhjxJzXG98PX7WtwBXzn8lIJCcvMbt2zqU+ycc8JDr5m9N666Z\/XCfcSM64c++VzM0PKTH\/vj8pI\/v3yzefrbQ5Y8ceo16SXNMv7ELaf8a8WBV92SWvvStEGvnvr9f9Lq+Q2Fb4wc\/59uY6fhCLF+LIW\/2YF3ZiccMXvzgedY42T7GixkI9BY+Jv9TVOGbZ5xzqgpDM8Tjzx3+vKK8+ba3Rj83\/d38bHhe\/TIiurg90osvNEVIRAhECGwKyOwNZ+lfdNgeC3l\/WePoV\/pdtClRQeMLxzxvRNveJk2bSks7HrBd88bdfzEsq79V\/\/r0VEH\/fyKuxdT0inomv\/T40\/vedCZYr9xPOBbvxTdd9ttX7ry13sfetG9ia7NolQkcWznk5vq1avXP06+cM8vnVU04jtlYy\/d\/8sX\/mjGXEXsihY3Mfebow4r\/vLPf7JqRSrtKPBZO2QtpeGypGZCooOKLZyO167Of+32brsd2GX0hWVjftz96Ev5sFMe6m3cKTf3PXpswehxXfe54MK\/v0NNSa3SRnpOuTrm6FMK9z\/T3fP0s26c5zI4yyGWt19+4279x1UcdF7XY3\/P3StJdNEigZkgNhHDpAUTu8y79Sm6+zvHTI0fecNzF42vWuZ2rVxDHnV9Y8ywQ\/vvdma\/Udfuc+kaKh+ZrN9cUB776Sk\/LB55Hvccf\/zl\/6YYpqeU0GVn\/Dlv+Cm87+mxUT9dUtiHuIjql8denlYZbKdyd1HZPVbJiIuzr8H4samhJzZeIDObXnBd0noICXvJ2LsDW6biKRNzLZbMnj5nTM3s3F\/rz7hGtwiBTwmBaNoIgQ+DQEc+I5MmHBv6glSjoIG0Oe2myInFqvKGUX5xY3Wd1LGmwkPrG0jG1zU7tDRvN0rK6vqNsqCvkd3IMSKvj2fUitXzKLF+s+jmuKkEu+AzMj7FkuuaN8j8go3sUlxSRT411K9zyxVT3O9WpgsK8vv5DdzQr5JSDvmCiTKCW6gaEJgho63BWqArckvizY2yyxCqrqPGZsdLx0XvWDV5\/VuotltLS16BLKntsgf4jPyUcTzVtIwTPZpUN\/KdqtQQl2MS+bDD1Wso36ZCupuuXUeyC3FCY0LCxdgbQhwWCcFr61IUG3DV6C\/\/cvHBk1bdd+8hteW6lqrWUVEfyounvBrqWkaNS5yuRZubqvJbimRKUfeWtc3CxKR2mFhVV24g1xBwye+3prmWuNhL5KcamjHVJyDY3q1485xhi6flMtwnMG80RYRAhECEwMeHgOgYWsTJKSKs7xq7Jk+7nibf4AWYIRKSjFE6rXSL4kZjUugh1uRqYk+rFCkfFmO0FsowCCBGirTn+6zScQMnwmEd3qNJ68JY4pVLXEDkELyMbtTawyxoSkNxj6RiYymLbIVwTNmC\/ZnBDEwsiKVPosWwz5KkYzT7aSTJSggiRchKe57xtdQUYxKSlEOeMskk6RRJz7prH89I7JMwvhBKkIEzwaGOTNIQQQjFMBk8rfFw8Ggjq9377HXHeT\/qPujM773aY1NjmcVNumls1NBrHckoqRikqQ3mhWjWaQOISBvC+auOEXhZK\/hZGPGYHMM8n4CE27toZ\/YJQB1NESEQIfCJIYBFv91cguPsFDG5jO2U8HUsWICx7GPllSAeQziyM0lNTRprs2\/sQhxT4DPjJ43vYyUny2c+MRPFjGLLZ6TTMQM6IPCZYQO60oZTWvjYqhQwuNMGVU1aecSCHOGQiKWlgymZg0BMKK06IhmDNhET3IXjk0hqzCxJuMYI39IXgc8YdKGx3Ux75GNSjsNdgEiMpymVpIDPDHtp7Rs8LHwYfMZaEAlMnWRdTyYVzkQ2e0KtsYEVSuPBlFpatclX1eQmkvVrYwkvzylyhZNmn1kx4zlZa6HJ8hkJIdkRmpVnGKBpw0oKHRdaSMxJikkRC+RPUYkQiBCIEIgQ+EAIYPFuNw4LLZEmxjLOWMMNGyMgmoRhJkax\/\/hLMHcqttuOZRuBMUQQh4KxhEWeOJwtE9YgLFlnbWvMa7QJhQyYQ7OtDZmgKGN0YGQtbGiDYIZJBxERVxgCUwqCmRhthoMhCgQECAl1JpuTJPCoiNkaGztrYYzEo0K0lqghRMKGYsbdSmBGVkawkZKkIIEuoUBj0rTIlMeKLGRsWmudfTBWhrVBD\/IUZASBMyGKCA+FZwzuOsiWPq2aohIhECEQIbDLIiB22cyjxD8PCETPECEQIRAh8FEhEPHZR4VkFCdCIEIgQiBC4NNEYBfjMybaRYWCsosmj7SD9KPqU0YAX4hdVD4l4KJpv1gI7GJ89sX64kRPGyEQIRAhECGwwwhEfLbDUEWOEQIRAhECEQKfYQQ+aT77DEMRpRYhECEQIRAhsAsjEPHZLvzFi1KPEIgQiBCIEMgiEPFZFopI+RwgED1ChECEwBcXgYjPvrhf++jJIwQiBCIEPk8IRHz2efpqRs8SIRAh8HEiEMX+bCPQkc8McShkFfunmYz9m1QSRrLFMCkmzWSYjWBihtVk\/iKVQUETAqsVjLJi4E6kMwInOyD840\/oQSD7p7GYmOycrNmKHSPI\/n0oNsb+AV+kYOeTTIJNMC2RgSAC4RaIpkxUg4H271IhJNm4eMxAtQMMsg1G2jsZjEcXQkuyf9qLjSajMN4zbrORaXQbI41JGOMEoSgoNpAdbxBNU\/B3uGyTrB3h2oQNQQSSgSArK3guUr5JJ+0f8GLHKGHSBHwYWQTRoypCIEIgQiBCYGcRwELfbog0OqaU9LXxjSDlOr4rjGtVbdIpGNnEyK77GqQjtDQ+G48NCVdKR7BkA3EEVnllfJ+175JCUwgppXAFCyGYXUmuSzEGlyiftCFQjiLyDGsh2TVK2j8jDF6Du+OKeMIghNO\/tG45XDVZDsGFUUzMRsBgkIdg6SJToZWNKKQ0Tly7hUZIYTzyUybVbLT9i8fCcZ14TEgpNDLQQmDu8IENSUmSSGpSgpLxrkvLNahGtJDT0C++CB2W7Tzf1kIS0jUpEJERwogEyULBjks+EtBp1gAQxEjScII0emJ4IK2UIcPI2o1TooRqq4z280s3JxKOkTHteRSVCIEIgQiBCIEPhIDoMMrROq58qTT5JEg7ls\/IheprSqVJQQv4DEygWYLYsO77REY4UkqQFYHPCOxDWPJ9j7RyWUtmISzbuZKkkESu5FiMY1KDMRWBmhhTMfhMKJbkWC5Js9ECw9gFn+WRFOOnfv+tJyYRG2IydgwmZSbBJKCRselKN0Y2lDZEQgrjxMktIIF0fFJJSjdhV0RCCNdxEnEpJUYK1izwAIqMQmSkTpJYKtKCWmJb\/jq+bu5fzfzpZuGt907Ym9ghTeQpwgTsIBEB4oJJSJIxIwuEcBwAB\/RSTL5FxyCcyDOaLYMTE\/jMGBZoJiivmLrvnn\/sT95+7I5rY5sTnCYgRrtSuWHGHY1v3wmpm3PjI8cBlE6SN+b0V+e0us04PeuRM3byDabzsVnnSIkQiBCIEHhfBEQHD0UiyXGvZXO8rMj\/0o+qX\/9z07v3rVnwM\/PPq\/6QT7S70E5SY7kX7LPyKG2X\/hhJ1kYpLOMeOZ4hX+HAzhB2LeykKQZ6Ye2h9shBLbSvdTqt0wpxYoKEIeUL0lKCwMBXhl2mPFADFjmlvHS6pYWUViwEM9l8M3RGKAY7HZiZHFCc73tJMpqkI4lZGfJSlGoASRgjSbjkxlkgX8T0W1K+ry2vaEK2ZDCV0QwK1QqcSr5D2KIVpLqfP63k0At5wMT\/riusMy5b9iKSLoHQdFIz0CjUiAye1zFq2euFp\/70r0ldaPU7VMAUFxpPZBT5Sfiz7yNfkhK1VorSLdRSR45Cii4SS8VIu+QgMvp3DTHHTTixsur2fc4s3PeskhEXn\/gYd5o3892jRpwLn3NfrMt1uGSsNRZcMa861xrpEQIRAhECHxQB0WGgz9ITcVNU4R12\/oY\/DHnjwZ9y+ZE99v4lj\/vtj+NdnZcKjGwh4YMviO2qzNKPxUgKY5RWholdrdnzFVZwEoKE4zP4jMnymfHYAXGw9rXxPJMyQlNMWorSSrBxJLMgTUa47OYL+\/8yI1\/7aWppJpXhM7gQBykbzAB+gwjBzJJwcKfSLay1KxxJjCEMIknXkwLDOmyDxiQLB7N7ilJKg88kMkBuRNDJSIxFJorIc0gayk9v7LuSauvi7siWdEPPvBSOViWTCz5jTTpJLLRTSAwu9UluJNFQQ\/XgzMKBx3E+c5y1lIK0gzTYkOUzQ9IJUlPktXCyzpFAKuU4CU6Cz4CjGzzbLlLtW1pWU\/PKLpLsB0wzGhYhECGw6yAgOqaKU7Q4d+950EM\/qlzz\/GOHXVJT1P\/Lnm4h9kjoLqOM1heuf+quDW\/eZt56WM84Q7sD040nP\/Huj+74\/c36zd++OvGI2XN\/bebedI466vE3Ji\/43V+Xvn6DP32PK\/7xkPe\/q6d\/U1Ei9Yv7bqpa9oB55Y7kwhmbAru9xQAAEABJREFUrxxF+u2iwmOffeLm\/07a7+4Hbmh5feq7D\/\/4eLM5PzlA6X1mPXRtw7szat\/48zndZQU1mRT2aoqEIDAEg6jSxiR1rNHECjl21lOzb1y27IG1b\/xf6q3Jt3+z3qz1Eqde896cBxuW3ls\/\/6F37z6iy6bi5O\/\/1PDU1\/\/++B\/Nc9f+7KQJK5ZMXfrwj\/cuKDv6zgeTD4+94d4bX3z2PrXy3sWnz3f8cmouBC9JJ8nskpFGsRZ1dgeXuOy\/M\/+8ftH9qTk3N964J5nSX15\/Xeqdc\/sUioOPmr5o8YSW5\/++4KhaauqtvNf5179PLbin+fnJy+bfPvuYPKdscU8n\/7ApD+rFd1U\/ecOKCwcuKHnGcZXAbpV0xy8H0ak339gYnOmhXn7z6NABh3Wd6tgzLc8e7s2acCo+PhCZ3BO\/OW2HewiCmJC6rOcVk9EMpa71bHDrmKGl6ZQ+stuwO+b+Bf5hhMCeiZ+rhzm\/b22umFyXkx78kWE2DTQjiRCIEIgQ2A4ComMfdhRx3rhl9916eXLDvwu69G3ZsoDAZ+ThdVnT2sMf\/dceG54bP2C\/H5SOuPGpLkcv+n1Pol5FNYccU\/B3\/mfdyDO+5F86a+ZGcepxjenk0D6Vs3b\/+eK5I644\/PUTblw3ZHi\/JtUQe+ORR3vsfrw75kcFv38977ijb9L7NiTr1lTIytPOKrnlAneftxr77z7pl2X1auH3fvuT\/fo2nrbXcV32\/cvGnr3BY5ROslLYGAV85huT1tjnURfyvvLk7IP3WP\/W3nudULHP+bz3xO8+2K3nbqfOu6z7nInn5\/c9teTQh\/WIHz5xUyPVK87\/Wv4fT\/\/t5q6Xf59\/donTvVf8gFrZX9Xr\/kfs+eb3vnr4yLOf2tz3py\/8JqWomWOccMBnwiWSBD5TxbrlwHuf6l\/68sSeu30tdvBfHtn3ytcuXX\/15X+Ij7pvbb168eGxlYOuTBx9xJ7\/kUyrnV89vXLUyu8MOi02\/PcD\/7bwy5dfdVrNmPVfPffvR668+6IrSsZcdPGawqPqR7oxXwgN6qH2BVQ04UCadYU90yvc96zK8S+172\/XAoWsmDx084xz4AkpOXLqfcyI8NqbY7q9Mg0WSMmIiZcwYxio4sRNGeP0mqFTbjnYmNGPHlmx4P7MXCVj74Yb5MazhlJ2eBCTH5taOeLcgvvXqM3zzg3PGwM7nD+M8JSJ05dXnHjLwWEQPA7OM6ef\/LewGdURAp8\/BKIn+mgR2IrPcBbXmCZR3dKYl9d9MHFS2OWvkHzH4IzugCFDe8Qe+M0rzcqr1XP\/sb6my8BeZ\/dOyi0L\/\/Sj2cVFQ\/TbS77yxKusK1qoRPgND97yx+KSLi0bVt7+q4bNW2p9vD3qz8\/U77v0xVtWvfwH\/7L+DXEnhZM95ckVa9+94\/yj396bUrOr6hpVksrLhn7vAPPyfb97Jt\/Nky8\/vDJV1ZLQ8bhxXGbBJMhIwrZJxqk0P3HcsC6xhhX3\/KupKk3SYbyTY2\/9XWP7VdfMuOuZgm7lqmH20y8uOeCEM3FOuHLF0u8+2lRaUfLK\/659vmFBQ4uvYs0tRs17feFxU5y0\/MpfHliyWtZUfLUkXhnzNF4MeqTSOJdkyaK8MP+kg46pdvf61lUL33vSe+mM03qJ7pUn0cYlnEw7mvEyLCVi1BAj7VBC3ka7lfU76F5sENdNMkcN3lTROKZm9dhxA\/3GFec\/via\/2+DHn3pz5eZ12uSTcbCTovYFL59eWF545JS\/hBug9p0dW+OO71dWs2Dqde3tVw4ZQlWPfP\/FXCtI7pBK6n7w+dhaQc4bJMvKBzK\/dO\/ixqGn\/KXDJuniOVXw3M5vfORG\/pD6xXcuoAOPDX89BDy6ecZVIft+yLDR8AiBCIEvAgId+UyktWhKk9iStHw2hLlFsHCogJRDKZ3avWde89reqdGkcPy4yqsvNsWDeX19Yc9kt2S8vmZJneMVqC+L\/JXNboPwNvSOu\/VbanoWr\/Ubevce6CgpxLNnPHXdoNSzV\/Yaeg7\/cFN9XCaFQbQ+5XvlJ0iseja\/qCLp9cPLqc3pIfUmuafMa2xwWxxON71XRB7F4+Q6SIlZBnyGd04JWrcp2VRdEquvVw3UtRcJxxEUFx7NnV\/vbIn12aepsZnkWyrRZ001gc+G5Nc2xPoml9fktai1xV0bkr52W1q03rNwRTJWxi3LqVymWmrWvVCVWlWvtVbaR4YYSY7QG6pT6eSivTe+OGHy3oPPzzvgAu71zaE\/fi3RpadMpl1DbixGIk6NMVIu+GzZAVU0d3ZirzO67P5DHnNu94HX\/bBXhdnid13\/XktBkV6+yEuVtBThFWO+IcdOsdU3Xfh7E8WzSnGy99EevmW3YnbfFuzG7ht\/MfTiiTUnvjkty6DYNlnj8NcrJk\/rQHVbJfthDdj5PbLcbtHs5qx0K27+sOGj8RECEQKfZwQ68pl20zq\/uU\/V5iPnvt6r7\/EP\/3m\/0ry5vmqM9+1BnF928z0L8vbvMWl5eaybrP\/B4Xs2uu\/+dZpTuiyd8GJYkJt1MkVKCWJy4jpeLERXIb006CA\/XWBgp5LrCvfz3Jf+W9PdLRPDVxXXFh+W6ipM6VpF+SLBwk0K6armtCaz\/OG1a3Tvk34gPUPJM3+8d8+S7l0dYwT2S76HXRORwXGawDun2nz576VNq\/c76pc\/+f4WTG+8nkNSiW7uhX9b3b\/fod8ZItMLqf78L41MNcy8CpkZN0WxAunk5YF40loKx\/f8mOM0jRp5fW1xakDjb77Rb8\/N5c+mWihuKCbAd77Ia1TVSmjRXFDw\/NLN7w3c+7JxeV2q\/eY05TvNLW97hUU+1y7p27tXeX9av4hoj+5qvaqpvmVORX2f7jO+tlEbAY51Sri52X+4sSVv6Ik3es1J\/t+fTxvep7x7SoM4fTZuh+81c9zo8B0YSKXginnVpd3DJtzKygeixts17K6gQO6duaq61J4cQm+T6xYtooqzHzqjzUIUbPtoyJGXZqMRYXM4+tTgd+5BKgOGz15UWnpgrpHvHjl82uyaosrj4bsdsQ7Y\/702eWjZdry23XXxybM3H3jKiglDN8+6HueloSNerWEfmX1lGBqjOkIgQiBCIBcBkduwuutRQfOaLm87F\/6x9IYFlXv\/7O1nXm2Ze0f1g+fMOjapBi8+avCMYcfOXvP2bZvWH3pC\/fzyCzewSPdK+n7MFDtNJpVkXwlmdhImXiRk15gT8FlBqoB87MRapv\/qz8v87\/zh4aVv3Z48sPuzVTUD3vzJdTo1IN1QIMBnMS2loxrAZ\/GKgh+Me\/w17rVp3T01cwesfLdu02ZdQuQqRV6atEK2TEaCz0qN8p\/b\/7BJLzQPm7jlrpoF92z4zwVvX7nB2735iAtrz7jomqolTy6ad2TimVuG3rdvhs\/cfMdJgEEp4DMFPpNOcmHzsFXXb3747h\/vp2\/9znWz08l4XFOMyQdH5jXpapJa9CDtvnDs8de+njf8veceMq\/dVT3n9tUPjlNVbxPXnv3o4qIxP9eb\/2NW\/Pbhq\/aNlRRtufK4njPjR\/1+Zss793uv3eo995vryxxz1TX\/N7\/2rNf\/YZav\/5L31qaadeAzYzx3Kz4jGj3lzWlYyiH1k\/vNm5pZ4i++c0F15RgYp9D9ty9RgAJieWgizuvOgR0S7qVAXSNBToFzYLwx\/Idi2PZNrxmKPR+MkLoZpxMNnDA5M1fT3CNpxlWXMCPsuAlZ4\/nDFt+\/rd\/LhycSeGS5PR2tf3PICxMXYDMM484KEp76CpXVzB41xc6+s8Mj\/wiBCIEvLAKi45OrOKW7EMUpphr+\/vf9D7mgYuS5efud3e+kO055OF67spYLnxq83yHFh57fdeTELsfc7YoyZ\/1dXxp78VV+Hl\/4wsCzn290rvnq6Ct\/98\/FJ44c\/5UnZsX\/\/tAxY37xaG3x2MN+etR1zclkz0vOOLv3gacV731qj2MmnTZ26m4HfPeXefNHHH3Bodc09qjYR1T965jR3zn6uobSyr3IfeZLw48pP\/DCbl\/63bjxv+557IRmLTQLkoIFE5PW2leaWJHjFfXwvvLlk3sP+07p0NN6HHzt8Is2uk5h7VNTYhX7dD\/0R0OO+vXwc94sqEno6y6KjXu7qHbeBceMG3xDc78nL6scfcPL1K++rtpR6a8MPqr7gWcUfuknP3v53WbO97RDni4sT5181PGXXX08ad\/30slkKlboHztmXI8RJ\/MBZ5SN+mmfE\/5DPfam+OLSM35VsM\/pYu9Tec\/Tv3njwrTobTY2xm76Zdd9zsnb69TYgd\/PO+LnV7\/6LpEz6Sd\/7jHolJ4jx+9\/3o2Voy6dLHslWSpOdvhygCEqg3+8hRO\/3H\/jlbVXjn8JzIQ6HJi1B\/6ZX\/0AQ4zqLAgGwi2UkrF357rBGNIJXqqdeKT9h2KwQLITYTpsGcNfOYGelTBmyYiJl9jfGckkEPbiMBOzhHq2DhJu54aTxikH0uw72\/0aCObqMHs2wq6lRNlGCEQIfHwIiI6hfctngmMUV07BhoZYNcU8HM1t2bR+c2EzFTgO1zuyj1+\/mWrWU6IxlazyytKNG7ok0\/V1ZW\/Wcz0VHkqOfN1bJbiOkgPqyjav5jLjNDmJunrpxhM1eT7X1xkiU5NIKNPEotLzmx2jNxm5bstKXVZIxSVJV6xfNkd6ScfdQ26s46ZmqWpNt0EtWigWriME+AwhjNFKE\/nk+A0tS4jKqEVIw6Jxiy6u8FPvCddwxT5U18g1q5W0b+WceIzqFjSoApIeNbur8rtzD7XGrO3apcjV6YLY7oq7qDrVUNlHUb5WktKquWmh4xa+U\/AqGY+8tJ9MeZuXxqmn8mOUcMjUieJ8UV8r\/K71\/Zod4ThGuaqlpqnEbV5N3bu1NKbT2svHVtKjZDM1DepF5NZv3JAsMZubNnGqxdW9fGJJLZpTHb8cX6Q2mGz5nDuapgzbPOOi7ewCv0iQRM8aIRAhsBMIiI6+TMSaiAwJrUn5pDUbFna9ZZfQZ7SvtfINaSac9oFZHCYpSTgENxgxlLTdPJEgiGF0G+FocrRxNUuCM0QI22uDs8ahocDGSzILCTNLIpelI10MJZ+1kVopbbRBLCLC3RBTKEzMUgqX0GcUGQVP5EwE0pOuQJHEDgmXZIzZYRNYpCQIMxtHqHi3vv1vO2t85ZfPJT9FCkEMoUgmIViw1sZPaeRBxiXEcR1rRDYaRkOatLYxY65EPN\/XEM9TniZFghjCRKyEtP\/eHEeDBsE1oVYGMGnpaCmNtHkRS\/oCl2CvZveC4dbwC4xE9OgRAh8MgS\/6KNERADaWs7DcGqzjTD6ZgHIsJWDTBpLD+q0M2dUafOYwS1cKRzokXSJJBkZCBLIFwYU0zCwMOxpCDhQSwoqUxML6M2mHNAtNiCYcwWyXdZeFlDFBEvMrnDIS9mHGoI+YiSBkC+5MAp7SxTgiRToQgw6XWVjqwXQsDXZqMgE1wcYAAAz7SURBVE7gM7izYCnJ2gUbR6rE5s21xHkNXQ7A9stYDidiZimExE0gKqUUKcR0hHBRWAhLRuAzZKWJyLrGYlIQk2es+BqPpFlKFq4gMgJ8ZkgQoLNPoQErdGuRjnGElsJgMpKIFUmEQIRAhECEwAdAAGtt+1GMpiI2oDXC6sxoa9J+RoiIHZIOuS7WcGJsxwyWaI2VHURiNGGHRIpIExus3kQGgbCTIdtle7HJ8mEzGKjYQMCWGhscS0Xka5CJ0sZoItTKw04HKlZ5LWw05IIug+hk00MzEGOM9g1hpnBSPBNjmK+1SnsK2zUEI424HkgIRIOE4Y0piDEL3NJkfEIybHyHSbKdiwwb9CKoscznuLYGIGQ0HpZgJBJMwAeTEoKrtI\/a2OGOIBcooY8wXhsi3E0Ii9UJQ5Ak5mKtjG+UTypN8AO26I8kQiBCIEIgQmDnEcCy2m4Qk2Gs8liAiYmYGWsv+AZnfj4bn4mIHSFd4caw9XBAG8ZgFdegGctndslm0oI1s2GB0WS0MfbS0CDQ\/cDChP1OwGdaCwNWU8TKGBXQjyas7lr5CrGRhENGIhh2czaSQbGJIBXcmNEkhaEGMxqWZEWAQxSIJ+1rbbdQmF0RmMNosIYdYOBgkCphqPaE8QX4ho0nGWlLAaoyZJ9Iw9maHEcIiRzIECwYTAwfEoKFVbTWKq0wk7EWRwrXYQFsDVl3QuaaNJNh64xasyC2fGYMqFh75HtwJJIUlQiBCIEIgQiBD4SAeL9RTFi5IbhTUAyoAOs5hEyuHUt10E8wEko4gNGyFww5YqzOhD6yBRHtzV4w2ltwQQ8F7lZwWXoI+jDEMgv0wIp7RoJmUGUMW90QM7BZJ8SwOlRj8wfj4KHwhLBjBttlr2AEfNBnm\/ayLdytnyUi64yrVXBHplagZVzhDcEAmAMTumAgO6+92zDBPaoiBCIEIgQiBD4AAtvhs2DRRUjGksu4Q8KVPlyQW7uJbKe9iNnewiusKSgc9DARhILSqiAIJDRlbIgBCUxtlSUaTBsY7ADTFgqaCey5Va4FcREwFDhbN5jsLcMoVrUWDDLYjoaUY43hZbtCzQQpoL9VCc1h3dEWtDMzQA+dbADYAhwDSyZ46ABzYIyqCIEdRCByixCIEGhDYFt8Fi6woV+45oY1FuS2VbfViRmdEOuOGwS8YWvcyPZlOuwNl+2xV+twmEKxxlALRrU2wztoJLOFwTg0UFvfzM2qmaudxY5tzQD9aGYFTTyNrWHCLayD0XjEYAbbCM3oz4i12Y0a7lnJdIU3DA4TRQhYwhpKu0GZma0ZE0DQG4azpuiKEIgQiBCIENhZBLbFZ0EcLLPggrDOLMBYc9GFJRu7DCgQdKOGwJUo07K3oE22oAXJ9EGDYPm2Pe0uJg4KEROKrThUMXk4cUgU6MwV22Uva2u9Wz24mHFjZsoVxGOYQwmGZJoG+zN02g6TW6EBXrJiL5t8YGlVQiPqzFgMDRq4t1mCBio7sq0XhqygJ6tHSoRAhECEwKeMwK42fSd81n6ttWusvTILfnhDDbHParvsHVebCi0UWLMCi9Uz46za8YJHKNmOHOeMClbK9uYoGGe5JWux3kzc2s6Sb6uhNUybB3psENwywnY4M2eauEFlgoGJtiUUFPTCI\/S0SmDMVtledGUk2xcpEQIRAhECEQIfEIFO+Cw3krELbmhgChdoJgrFbmWgEYrBFW5EQg1NKBAoAc9YFb7MVrHGTi50hRL0wTu42wp6VsjOTpSpqa1gbDAVLIEzKkLGaIaCfghZc2Bgzqi42Y7A2Fpx4Metzcy9tY37+wn67SDeKg6HZlu3XYHRNrdKxBqjK0IgQiBCIELg\/RHYms9al1S7p7G6CXjLbDtUbhd0jLMS0JttBsq2R1sOCt228sEqH0pnPVvZYEAc1K2Csa1qcEc7+LWSNi8OiqUcdIBqAw9itkIcDOpYwdqpdPTD8NY48G\/fC0MHad+\/vVbUFyEQIRAhECHQOQJb81nnfqE1dxkGLYQSdn0CdTj7+04UuoV11hnNXD23mbV3UOADgRF1KNC3JaFDp3V2SKe9WWPWLVIiBCIEIgQiBD4AAtvmMyy0W8UDgcGGGgLlg0nu2Fx9W9FyfXL1Tv07y9o6dhjYoWk9ci4EgeQYPl4VyUA+3jmi6BECO4JA5BMhsCsjsG0+w4mZlY4P95GsvGGQsO44QWft0DOsO+vP2LZDQtvpwuDc3lwdXVsL0thB2Xps1oIIWT1SIgQiBCIEIgQ+PAKd8BkW9FA+fPTtRNjZBX1n\/TtM\/b7Dw0dG3WHgR94MM8FEUCCIDz0raEYSIRAhECHwuUTg436orfgMS2woZHdn4TpLn+0SJol6O2m29uJuBdd2nD\/WrnBqYBwo9ldnoIfysc4bBY8QiBCIEPh8I7AVn4WPG6y1oYq6fQuGz5DsYG7gjeA3KYN\/XGdsawefoUN8EM8ODoTb1s6hJaiRQ3CHX5BZh4msOboiBCIEIgQiBHYYgW3wWXal3eFAn\/xyjBkhZLeR1K4geUjWBN1knYIRaJls984p4fgdHLO1MyyYGXWHCFtbOjh8XM0oboRAhECEwOcFgW3wGWPJ7\/QRsRqH0kkvd2L7uE3hnGx3OJgqN7VQRw17+38DF9haBwa9nVbwgKArrKFA7Fhc7ytwbT9pYMhUwSYx0LNxglZURQhECEQIRAh8YAQ65zPGOkvtKK1tTQ+6qH3J9maV9v0ffSuYKKiQDwTJ2rptIvR1EIIP5RSD\/pxmoMKUlcDQsQqR6WjdmTbit3cP8g6q9vaoFSGwyyMQPUCEwCeJQOd8Fiz1duHFFQpygkKWErAZgmCPEYjdGeFVUHDruCPBIt1OECErtJMFAzMjgpB2ynBOdIBkrJDNjjIlkxyzsX+nQ6A28Mx2kibWhhTccrJmY0PALyt2gLGVvTCp1YNORM342p62i5mt3RrgG46wijW0XvDICMOEARQMQYLwpKhECEQIRAhECHwABDrnM8sUrcGw5IK+UOcYQhXrr2a7YoMUtl6IAwuqUChYsdviYhG3kjFTW8mZKAzbNh5dkIB+YMz+qX2rh+ODXqhhTq2TtVIahylYc+igCaxGYDVDlsgYI5ET4YKgYcUa7Z1ap2NiahOyxaAzEMK4sDdsBjXmCu7WE5ftZ2JogUBhYmaiUCgqEQIRAhECEQI7hEBHp458hrWZsLTaBZZQsMhirUcLSiBBhQ6CU5ZvyBas25CALez6jUCQ1ib4Aj7hYMZQ22BU2xY72PbiDiFwJwXjbINsZS9CQRgIlFDAvaFik4Ej+phY4CKMZwoKxkIyfIZs0bB222svsp6hQp0WZrJC1DqbDcC2SSitCowQhIctFAzCEKuzvWM0k1UIxWohTGhEEiEQIRAhECGwkwh05LPs8GAlZiy2TKjIrsSUUQNDuExbSrNbNBAHBSUYFmiogkbAK\/AOB8MKYZTgZkMGF1pZgafVg9FWwQWd2\/vB0rplQj\/62N62umBlJrbnjfCh4CIUyxyaWIGtrWTzR1fGB6PYtoIr8xCBHlbMnHEM26gZF8Fsb5kLWYaSaePG1oUprOHNzIHOMFFUIgQiBCIEIgQ+IAKd8hmWYM2kUZRnfM2aBAkhHYmll4xPWpHSxjCzQ8Ihx2Eh2S7KQRIG5GWEEI7jCikxkAwbn7W2p3u2k42lQfhqw3iBBYUFoUMpMgiKQCyExM0aMYkQ0I1R1pEdJoEJAhIiptaCiNaKKJDAyEEnWgZ9GpENCm7WLbgMJhVkH1SA3VzSpI1WWiMrGwCj7C28wmDQBbMQgjE9nLUxGqEQQrFRRvvGFgSzicOZiB3hJNy4IIxxjWHEVzqIbBMjFEaAjAAXtGDbhSVKPUIgQiBC4NNCANzQYWpDjAUa67QirLw+kcYuBvsbCUIjrLfgFUtNhghjXZIuOS6HazyFy75dr2FxXPCZpToCcyjwo13lDQc1GeuESmnbFghlwJHWzLYIFkyBK0ETzFjrkRJ0h5jJjmlNG4nYWDAhHGoi9FNQGGrYjbGQQA96CD0QJAbRdvvmYCjYyTeEpzOG4QsLtRVMiyyYSDIzMjDG9tuoRgITiFLGYDDM6A\/EWD7Lc+IMONglAn1ilA3NbYFt05CdUFOOuc0h0iIEIgQiBCIE3h8BEEk7p2BBNcwsBdZt9ArLMVoZ5RuVCtZ6wUJIyZJIgPCwiGsP6zgTcxjJ4IZ1XfvK19iykE\/ogDsCCkmtXmAEZuy2pIQ7NnyooQoBX2OM7\/sG7CLArDYcOsloWAxpDAwWf9gNgVQII9CPZrYm2JiYKSjWJ\/TMaIQuPCJEC0JKrmMEe1obJBmLkZQBkYYBQU4UFhgRUDCeXjChBbMh1mTncZkF\/iOrw25zJMNE7Cvd4nv2o4HnMZwTTA5b7qKwmPCG2hA4G0OgRhIhECHQKQKRMUJgewj8PwAAAP\/\/g6U7jgAAAAZJREFUAwD8QjzVjIbEewAAAABJRU5ErkJggg==\"><br>Bunu de\u011fi\u015ftirmek isterseniz&nbsp;<strong>dnscmd \/config \/socketpoolsize &mdash; &ouml;rne\u011fin<\/strong> 5000&nbsp;i&ccedil;in &gt;&nbsp;&ccedil;al\u0131\u015ft\u0131rarak yapabilirsiniz<\/p>\r\n<p><img src=\"https:\/\/mehic.se\/wp-content\/uploads\/2017\/04\/screenshot-214.jpg?w=616\" alt=\"screenshot.2.jpg\"><\/p>\r\n<p>TimeToLive de\u011feri s&uuml;resi dolmadan &ouml;nce ger&ccedil;ekle\u015febilir; baz\u0131lar\u0131 sald\u0131rgan\u0131n &ouml;nbellek giri\u015fini &uuml;zerine yazmas\u0131 olabilir ya da sald\u0131rgan\u0131n ger&ccedil;ek TimeToLive de\u011ferinin ne zaman doldu\u011funu g&ouml;rmek i&ccedil;in sunucudan s&uuml;rekli bilgi talep etmesiyle ve &ouml;nbelle\u011fi kendi yanl\u0131\u015f de\u011feriyle hemen g&uuml;ncellesi olabilir. &Ouml;nbellek kilitleme, &ouml;nbellekte bulunan bu giri\u015flere ek bir koruma katman\u0131 ekler; &ccedil;&uuml;nk&uuml; bu giri\u015flerin t&uuml;m TimeToLive de\u011ferinin bir y&uuml;zdesinde &uuml;zerine yaz\u0131lmas\u0131n\u0131 engeller. Varsay\u0131lan olarak, bu %100 olacak. TimeToLive de\u011feri, ger&ccedil;ek girdi i&ccedil;in o d&ouml;nemin tamam\u0131 i&ccedil;in &uuml;zerine yaz\u0131lamaz. Bunu TimeToLive de\u011ferinin bir y&uuml;zdesine indirebilirsiniz, ancak %100 asl\u0131nda varsay\u0131lan de\u011ferdir. Bunu ko\u015farak kontrol edebilirsiniz<\/p>\r\n<p><strong>dnscmd \/info \/cachelockingpercent<\/strong><\/p>\r\n<p>&nbsp;<\/p>\r\n<p><img src=\"https:\/\/mehic.se\/wp-content\/uploads\/2017\/04\/screenshot-2411.jpg?w=616\" alt=\"screenshot.24.jpg\"><\/p>\r\n<p>&Ccedil;o\u011fu ortamda bunu asla ayarlamayacaks\u0131n\u0131z, &ccedil;&uuml;nk&uuml; varsay\u0131lan olarak yap\u0131land\u0131r\u0131lm\u0131\u015ft\u0131r, ancak bir nedenle &ouml;nbellekteki bir kayd\u0131n &uuml;zerine yaz\u0131labilece\u011fi s&uuml;reyi azaltmak isterseniz,&nbsp;<strong>bunu dnscmd \/config \/cachelockingpercent<\/strong> ve ard\u0131ndan belirli bir de\u011ferle, yani 50 veya 75 ile yapabilirsiniz, &Ouml;nbellek kilitlenme y&uuml;zdesini ayarlayaca\u011f\u0131m.<\/p>\r\n<p><img src=\"https:\/\/mehic.se\/wp-content\/uploads\/2017\/04\/screenshot-256.jpg?w=616\" alt=\"screenshot.25.jpg\"><\/p>\r\n<p>K\u0131sacas\u0131, &ouml;nbellek kilitleme, bilmeniz gereken ama muhtemelen asla ayarlanmayacak bir &ouml;zellik.<\/p>\r\n<p><code>&nbsp;Not:Havuz boyutunu art\u0131rmak g&uuml;venli\u011fi daha da g&uuml;&ccedil;lendirir, ancak &ccedil;ok fazla art\u0131rmak nadir durumlarda kaynak t&uuml;ketimini etkileyebilir. Varsay\u0131lan de\u011ferler genellikle optimaldir.<\/code><\/p>\r\n<h4>Socket Pool Etkin mi? Nas\u0131l Anlar\u0131m?<\/h4>\r\n<p>En basit yolu, sunucunuzdan &ccedil;\u0131kan DNS sorgular\u0131n\u0131 bir a\u011f analiz arac\u0131 (Wireshark gibi) ile incelemektir. E\u011fer recursive sorgular\u0131n \"Source Port\" alan\u0131 s&uuml;rekli de\u011fi\u015fiyor ve 1024'ten b&uuml;y&uuml;k rastgele de\u011ferler al\u0131yorsa, Socket Pool aktif demektir.<\/p>\r\n<h6>Bir Di\u011fer Silah: Socket Pool Ekzoz Korumas\u0131 (Socket Pool Exhaustion Protection)<\/h6>\r\n<p>Socket Pool'a ek olarak, Windows Server 2012 R2 ve sonras\u0131nda bir ba\u015fka ak\u0131ll\u0131 &ouml;zellik daha geldi: **Socket Pool Exhaustion Protection**.<\/p>\r\n<p>Sald\u0131rganlar, havuzdaki portlar\u0131 \"t&uuml;ketmeye\" &ccedil;al\u0131\u015fabilir. Sunucu her sorgu i&ccedil;in yeni bir socket a&ccedil;ar. E\u011fer sald\u0131rgan &ccedil;ok say\u0131da sahte sorgu g&ouml;nderip sunucuyu s&uuml;rekli recursive sorgu g&ouml;ndermeye zorlarsa, havuzdaki kullan\u0131labilir portlar t&uuml;kenebilir.<\/p>\r\n<p>Bu koruma mekanizmas\u0131, sunucunun a\u015f\u0131r\u0131 y&uuml;k alt\u0131nda oldu\u011funu alg\u0131lad\u0131\u011f\u0131nda, belirli bir s&uuml;re i&ccedil;in ayn\u0131 kaynak portunu yeniden kullanmaya ba\u015flar. Bu, performans\u0131 ve hizmet s&uuml;reklili\u011fini korumak i&ccedil;in tasarlanm\u0131\u015f bir davran\u0131\u015ft\u0131r. Sald\u0131r\u0131 durumu sona erdi\u011finde, sunucu normal, rastgele port kullan\u0131m\u0131na geri d&ouml;ner.<\/p>\r\n<p>&nbsp;<\/p>\r\n<h3 data-start=\"281\" data-end=\"311\"><strong data-start=\"286\" data-end=\"311\">1. SocketPoolSize = 0<\/strong><\/h3>\r\n<div class=\"contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary\">\r\n<div class=\"sticky top-9\">\r\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\r\n<div class=\"bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs\">&nbsp;<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"whitespace-pre!\">reg add <span class=\"hljs-string\">\"HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\"<\/span> \/v SocketPoolSize \/t REG_DWORD \/d 0 \/f\r\n<\/code><\/div>\r\n<\/div>\r\n<h4 data-start=\"424\" data-end=\"442\">Ne i\u015fe yarar?<\/h4>\r\n<p data-start=\"443\" data-end=\"581\">Windows DNS Server, DNS sorgular\u0131 i&ccedil;in <strong data-start=\"482\" data-end=\"506\">rastgele kaynak port<\/strong> kullan\u0131r. Bu davran\u0131\u015f <em data-start=\"529\" data-end=\"550\">DNS Cache Poisoning<\/em> sald\u0131r\u0131lar\u0131n\u0131 &ouml;nlemek i&ccedil;indir.<\/p>\r\n<p data-start=\"583\" data-end=\"656\"><strong data-start=\"583\" data-end=\"601\">SocketPoolSize<\/strong>, DNS Server&rsquo;\u0131n kullanabilece\u011fi port say\u0131s\u0131n\u0131 belirler.<\/p>\r\n<ul data-start=\"658\" data-end=\"797\">\r\n<li data-start=\"658\" data-end=\"700\">\r\n<p data-start=\"660\" data-end=\"700\"><strong data-start=\"660\" data-end=\"665\">0<\/strong> &rarr; Socket pool tamamen kapat\u0131l\u0131r.<\/p>\r\n<\/li>\r\n<li data-start=\"701\" data-end=\"797\">\r\n<p data-start=\"703\" data-end=\"797\">DNS Server <strong data-start=\"714\" data-end=\"737\">tek bir statik port<\/strong> (genelde 53 veya k&uuml;&ccedil;&uuml;k bir port aral\u0131\u011f\u0131) kullanmaya ba\u015flar.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h4 data-start=\"799\" data-end=\"823\">Bu ne anlama gelir?<\/h4>\r\n<ul data-start=\"824\" data-end=\"981\">\r\n<li data-start=\"824\" data-end=\"862\">\r\n<p data-start=\"826\" data-end=\"862\"><strong data-start=\"826\" data-end=\"860\">G&uuml;venlik ciddi \u015fekilde azal\u0131r.<\/strong><\/p>\r\n<\/li>\r\n<li data-start=\"863\" data-end=\"909\">\r\n<p data-start=\"865\" data-end=\"909\">DNS kaynak port randomization kapal\u0131 olur.<\/p>\r\n<\/li>\r\n<li data-start=\"910\" data-end=\"981\">\r\n<p data-start=\"912\" data-end=\"981\">DNS spoofing \/ cache poisoning sald\u0131r\u0131lar\u0131 &ccedil;ok daha kolay hale gelir.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<p data-start=\"983\" data-end=\"1050\"><strong data-start=\"983\" data-end=\"994\">K\u0131saca:<\/strong> DNS Server &ldquo;rasgele port kullanma&rdquo; &ouml;zelli\u011fini kaybeder.<\/p>\r\n<h3 data-start=\"1057\" data-end=\"1109\">SocketPoolExcludedPortRanges = \"1-60000\"<\/h3>\r\n<div class=\"contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary\">\r\n<div class=\"sticky top-9\">\r\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\r\n<div class=\"bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs\">&nbsp;<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"whitespace-pre!\">reg add <span class=\"hljs-string\">\"HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\"<\/span> \/v SocketPoolExcludedPortRanges \/t REG_MULTI_SZ \/d <span class=\"hljs-string\">\"1-60000\"<\/span> \/f\r\n<\/code><\/div>\r\n<\/div>\r\n<h4 data-start=\"1247\" data-end=\"1265\">Ne i\u015fe yarar?<\/h4>\r\n<p data-start=\"1266\" data-end=\"1356\">Bu ayar, socket pool taraf\u0131ndan <strong data-start=\"1298\" data-end=\"1346\">kullan\u0131lmamas\u0131 gereken UDP port aral\u0131klar\u0131n\u0131<\/strong> tan\u0131mlar.<\/p>\r\n<p data-start=\"1358\" data-end=\"1365\">Burada:<\/p>\r\n<ul data-start=\"1367\" data-end=\"1443\">\r\n<li data-start=\"1367\" data-end=\"1399\">\r\n<p data-start=\"1369\" data-end=\"1399\"><strong data-start=\"1369\" data-end=\"1380\">1-60000<\/strong> aral\u0131\u011f\u0131 d\u0131\u015flanm\u0131\u015f.<\/p>\r\n<\/li>\r\n<li data-start=\"1400\" data-end=\"1443\">\r\n<p data-start=\"1402\" data-end=\"1443\">Yani DNS Server bu portlar\u0131 <em data-start=\"1430\" data-end=\"1442\">kullanamaz<\/em>.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h4 data-start=\"1445\" data-end=\"1469\">Bu ne anlama gelir?<\/h4>\r\n<ul data-start=\"1470\" data-end=\"1646\">\r\n<li data-start=\"1470\" data-end=\"1583\">\r\n<p data-start=\"1472\" data-end=\"1583\">1&ndash;60000 aras\u0131 t&uuml;m UDP portlar\u0131 yasaklan\u0131nca <strong data-start=\"1516\" data-end=\"1582\">DNS Server&rsquo;\u0131n kullanabilece\u011fi sadece 60001&ndash;65535 aras\u0131 kal\u0131yor<\/strong>.<\/p>\r\n<\/li>\r\n<li data-start=\"1584\" data-end=\"1646\">\r\n<p data-start=\"1586\" data-end=\"1646\">Ancak SocketPoolSize=0 oldu\u011fundan bu havuz zaten devre d\u0131\u015f\u0131.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<p data-start=\"1648\" data-end=\"1670\">Bu durumda DNS Server:<\/p>\r\n<ul data-start=\"1672\" data-end=\"1793\">\r\n<li data-start=\"1672\" data-end=\"1703\">\r\n<p data-start=\"1674\" data-end=\"1703\">Ya <strong data-start=\"1677\" data-end=\"1693\">tek bir port<\/strong> kullan\u0131r,<\/p>\r\n<\/li>\r\n<li data-start=\"1704\" data-end=\"1793\">\r\n<p data-start=\"1706\" data-end=\"1793\">Ya da &ccedil;o\u011fu zaman <strong data-start=\"1723\" data-end=\"1751\">ba\u015flat\u0131lamaz \/ &ccedil;al\u0131\u015famaz<\/strong>, event log'da socket bind hatalar\u0131 verir.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h3 data-start=\"1800\" data-end=\"1847\">Bu iki ayar bir araya gelince ne olur?<\/h3>\r\n<ul>\r\n<li data-start=\"1848\" data-end=\"2029\">SocketPoolSize=0 &rarr; DNS rastgele port kullanamaz<\/li>\r\n<li data-start=\"1848\" data-end=\"2029\">1&ndash;60000 d\u0131\u015fland\u0131 &rarr; neredeyse t&uuml;m portlar yasak<\/li>\r\n<li data-start=\"1848\" data-end=\"2029\">Geriye sadece 60001&ndash;65535 aras\u0131 k&uuml;&ccedil;&uuml;k bir alan kal\u0131r (ama pool zaten kapal\u0131)<\/li>\r\n<\/ul>\r\n<p data-start=\"2031\" data-end=\"2040\">Bu durum:<\/p>\r\n<ul data-start=\"2042\" data-end=\"2248\">\r\n<li data-start=\"2042\" data-end=\"2101\">\r\n<p data-start=\"2044\" data-end=\"2101\">&Ccedil;o\u011fu yap\u0131land\u0131rmada <strong data-start=\"2064\" data-end=\"2101\">DNS Server&rsquo;\u0131n do\u011fru &ccedil;al\u0131\u015fmamas\u0131na<\/strong><\/p>\r\n<\/li>\r\n<li data-start=\"2102\" data-end=\"2154\">\r\n<p data-start=\"2104\" data-end=\"2154\">UDP port bind hatalar\u0131na (Event ID 408, 404, 4010)<\/p>\r\n<\/li>\r\n<li data-start=\"2155\" data-end=\"2192\">\r\n<p data-start=\"2157\" data-end=\"2192\">DNS sorgular\u0131n\u0131n cevap verememesine<\/p>\r\n<\/li>\r\n<li data-start=\"2193\" data-end=\"2248\">\r\n<p data-start=\"2195\" data-end=\"2248\">&Ccedil;ok y&uuml;ksek g&uuml;venlik zafiyeti olu\u015fmas\u0131na<br data-start=\"2234\" data-end=\"2237\">sebep olur.<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h4 data-start=\"2255\" data-end=\"2289\">Bu ayarlar neden yap\u0131l\u0131r?<\/h4>\r\n<p data-start=\"2290\" data-end=\"2401\">Genelde <strong data-start=\"2298\" data-end=\"2313\">yanl\u0131\u015fl\u0131kla<\/strong>, hatal\u0131 bir g&uuml;venlik talimat\u0131ndan veya \"t&uuml;m portlar\u0131 blokla\" gibi d&uuml;\u015f&uuml;ncelerden dolay\u0131.<\/p>\r\n<p data-start=\"2403\" data-end=\"2423\">Baz\u0131 durumlarda ise:<\/p>\r\n<ul data-start=\"2425\" data-end=\"2498\">\r\n<li data-start=\"2425\" data-end=\"2461\">\r\n<p data-start=\"2427\" data-end=\"2461\">Firewall&rsquo;da &ouml;zel bir sald\u0131r\u0131 testi<\/p>\r\n<\/li>\r\n<li data-start=\"2462\" data-end=\"2498\">\r\n<p data-start=\"2464\" data-end=\"2498\">IDS\/IPS davran\u0131\u015f\u0131 g&ouml;zlemlemek i&ccedil;in<\/p>\r\n<\/li>\r\n<\/ul>\r\n<p data-start=\"2500\" data-end=\"2576\">k\u0131smi olarak yap\u0131l\u0131r; ama <strong data-start=\"2526\" data-end=\"2575\">&uuml;retim DNS sunucusunda kesinlikle kullan\u0131lmaz<\/strong>.<\/p>\r\n<h4 data-start=\"2583\" data-end=\"2637\">&Ouml;nerilen g&uuml;venli de\u011ferler (Microsoft Standartlar\u0131)<\/h4>\r\n<div class=\"contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary\">\r\n<div class=\"sticky top-9\">\r\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\r\n<div class=\"bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs\">\r\n<pre class=\"language-csharp\"><code>SocketPoolSize = 2500    (varsay\u0131lan: 2500)\r\nSocketPoolExcludedPortRanges = bo\u015f b\u0131rak \/ sadece &ccedil;ak\u0131\u015fan portlar\u0131 d\u0131\u015fla\r\n<\/code><\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\">&nbsp;<\/div>\r\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\">\r\n<h5 data-start=\"114\" data-end=\"175\"><strong data-start=\"118\" data-end=\"175\">DNS Ayarlar\u0131n\u0131 Varsay\u0131lan Yap (Microsoft Recommended)<\/strong><\/h5>\r\n<h6 data-start=\"177\" data-end=\"218\"><strong data-start=\"180\" data-end=\"218\">1) SocketPoolSize varsay\u0131lan: 2500<\/strong><\/h6>\r\n<div class=\"contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary\">\r\n<div class=\"sticky top-9\">\r\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\r\n<div class=\"bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs\">&nbsp;<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"whitespace-pre!\">reg add <span class=\"hljs-string\">\"HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\"<\/span> \/v SocketPoolSize \/t REG_DWORD \/d 2500 \/f\r\n<\/code><\/div>\r\n<\/div>\r\n<h6 data-start=\"334\" data-end=\"398\"><strong data-start=\"337\" data-end=\"398\">2) SocketPoolExcludedPortRanges temizle (varsay\u0131lan: bo\u015f)<\/strong><\/h6>\r\n<div class=\"contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary\">\r\n<div class=\"sticky top-9\">\r\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\r\n<div class=\"bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs\">&nbsp;<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"whitespace-pre!\">reg delete <span class=\"hljs-string\">\"HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\"<\/span> \/v SocketPoolExcludedPortRanges \/f\r\n<\/code><\/div>\r\n<\/div>\r\n<hr data-start=\"510\" data-end=\"513\">\r\n<h6 data-start=\"515\" data-end=\"552\"><strong data-start=\"520\" data-end=\"552\">DNS Servisini Yeniden Ba\u015flat<\/strong><\/h6>\r\n<p data-start=\"553\" data-end=\"610\">Ayarlar\u0131n etkin olmas\u0131 i&ccedil;in DNS servisini yeniden ba\u015flat:<\/p>\r\n<div class=\"contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary\">\r\n<div class=\"sticky top-9\">\r\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\r\n<div class=\"bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs\">&nbsp;<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"whitespace-pre!\">net stop dns\r\nnet start dns\r\n<\/code><\/div>\r\n<\/div>\r\n<p data-start=\"648\" data-end=\"664\">veya PowerShell:<\/p>\r\n<div class=\"contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary\">\r\n<div class=\"sticky top-9\">\r\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\r\n<div class=\"bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs\">&nbsp;<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"whitespace-pre!\"><span class=\"hljs-built_in\">Restart-Service<\/span> DNS\r\n<\/code><\/div>\r\n<\/div>\r\n<hr data-start=\"695\" data-end=\"698\">\r\n<h3><strong>DNS Kayd\u0131n\u0131 Yap\u0131land\u0131rma<\/strong><\/h3>\r\n<p>DNS sunucusunu her DNS sunucusu ayar\u0131 de\u011fi\u015ftirildi\u011finde, her DNS b&ouml;lgesi ayar\u0131 de\u011fi\u015ftirildi\u011finde veya DNS kaynak kayd\u0131 de\u011fi\u015ftirildi\u011finde olay g&uuml;nl&uuml;\u011f&uuml;ne olay yazacak \u015fekilde yap\u0131land\u0131rabilirsiniz. \u015eimdi, y&uuml;ksek g&uuml;venlikli ortamlarda DNS sunucunuzda neler olup bitti\u011fini takip etmek istedi\u011finizde, kesinlikle kay\u0131t i\u015flemlerinin etkin olmas\u0131 gerekir.<\/p>\r\n<p>DNS kay\u0131tlar\u0131n\u0131n yap\u0131land\u0131r\u0131labilece\u011fi iki farkl\u0131 yer vard\u0131r; DNS sunucunuzdan almaya &ccedil;al\u0131\u015ft\u0131\u011f\u0131n\u0131z bilgi t&uuml;r&uuml;ne ba\u011fl\u0131 olarak, her ikisi de sunucu ad\u0131n\u0131n &Ouml;zellikleri alt\u0131nda yap\u0131land\u0131r\u0131lm\u0131\u015ft\u0131r; ilki Olay Kayd\u0131 sekmesidir. \u015eimdi Olay Kayd\u0131, bu asl\u0131nda DNS sunucusunda olan idari ve b&uuml;y&uuml;k &ouml;l&ccedil;ekli olaylar\u0131 kaydedecek. T&uuml;m olaylar\u0131, olaylar\u0131 ve uyar\u0131lar\u0131 yap\u0131land\u0131rabilirsiniz; sadece hata veya hi&ccedil; etkinlik yok ve bunlar\u0131 DNS servislerini &ccedil;al\u0131\u015ft\u0131ran sunucunun Windows Olay G&uuml;nl&uuml;\u011f&uuml;'nde bulacaks\u0131n\u0131z. Bunlar da b&uuml;y&uuml;k &ouml;l&ccedil;ekli etkinliklerdir.<\/p>\r\n<h4 data-start=\"700\" data-end=\"718\">&nbsp;<img src=\"https:\/\/mehic.se\/wp-content\/uploads\/2017\/04\/screenshot-264.jpg?w=616\" alt=\"screenshot.26.jpg\"><\/h4>\r\n<h4 data-start=\"700\" data-end=\"718\">&nbsp;<\/h4>\r\n<p><strong>Hata Kayd\u0131<\/strong><\/p>\r\n<p>DNS istemleyicileriniz ile DNS sunucunuz aras\u0131ndaki ileti\u015fimi biraz daha derinlemesine incelemeniz gerekebilir ve bunu nas\u0131l yapabilece\u011finiz, bilgi kayd\u0131 olan Debug Logging sekmesi alt\u0131ndad\u0131r; bu sekme bilgileri olay g&uuml;nl&uuml;\u011f&uuml;ne kaydetmiyor. Bunun yerine, belirli bir dosya yolu ve ismine kaydeder. Bu cihaz varsay\u0131lan olarak devre d\u0131\u015f\u0131 b\u0131rak\u0131l\u0131yor &ccedil;&uuml;nk&uuml; &ccedil;ok g&uuml;r&uuml;lt&uuml;l&uuml; oluyor ve &ccedil;ok fazla bilgi &uuml;retiyor. Genellikle, paket y&ouml;n&uuml;, protokol t&uuml;r&uuml; ve i&ccedil;erik gibi tam olarak arad\u0131\u011f\u0131n\u0131z bilgileri belirlemek istersiniz ve kay\u0131tlar\u0131n\u0131z\u0131 m&uuml;mk&uuml;n oldu\u011funca temiz tutmak i&ccedil;in belirli IP adreslerine de uyarlamak isteyebilirsiniz. \u015ea\u015f\u0131rt\u0131c\u0131 bir \u015fekilde, bazen bir sunucuda hata ay\u0131klama giri\u015fi yapman\u0131z gerekecek. Bu, g&ouml;&ccedil;ler oldu\u011funda, belirli bir b&ouml;lgenin terk edilip edilmedi\u011fini belirlemeye &ccedil;al\u0131\u015f\u0131ld\u0131\u011f\u0131nda ve o b&ouml;lgedeki kaynaklar hakk\u0131nda bilgi talep etmeye &ccedil;al\u0131\u015fan m&uuml;\u015fterilerin olmad\u0131\u011f\u0131nda olduk&ccedil;a yayg\u0131n olarak ger&ccedil;ekle\u015febilir. Bir b&ouml;lgeyi devre d\u0131\u015f\u0131 b\u0131rakmak istiyorsan\u0131z, o b&ouml;lgede h&acirc;l&acirc; bilgiye ihtiyac\u0131 olan birinin olup olmad\u0131\u011f\u0131n\u0131 belirlemek i&ccedil;in. Bu Hata Hata Kayd\u0131 sekmesi, hangi m&uuml;\u015fterilerin hangi bilgileri talep etti\u011fine dair uzun bir bilgi listesini sundu\u011fu i&ccedil;in bu bilgileri bulmak i&ccedil;in en iyi yerdir.<\/p>\r\n<p><img src=\"https:\/\/mehic.se\/wp-content\/uploads\/2017\/04\/screenshot-276.jpg?w=616\" alt=\"screenshot.27.jpg\"><\/p>\r\n<h4 data-start=\"700\" data-end=\"718\">Ne oldu \u015fimdi?<\/h4>\r\n<ul data-start=\"720\" data-end=\"927\">\r\n<li data-start=\"720\" data-end=\"801\">\r\n<p data-start=\"722\" data-end=\"801\">DNS <strong data-start=\"726\" data-end=\"750\">rastgele kaynak port<\/strong> kullanmaya geri d&ouml;nd&uuml; &rarr; G&uuml;venlik tekrar sa\u011fland\u0131<\/p>\r\n<\/li>\r\n<li data-start=\"802\" data-end=\"839\">\r\n<p data-start=\"804\" data-end=\"839\">T&uuml;m port engellemeleri temizlendi<\/p>\r\n<\/li>\r\n<li data-start=\"840\" data-end=\"884\">\r\n<p data-start=\"842\" data-end=\"884\">DNS Server art\u0131k port bind hatas\u0131 vermez<\/p>\r\n<\/li>\r\n<li data-start=\"885\" data-end=\"927\">\r\n<p data-start=\"887\" data-end=\"927\">Cache poisoning riskleri minimuma iner<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h3>DNS Registry Kontrol &amp; Otomatik Fix Scripti (PowerShell)<\/h3>\r\n<pre class=\"language-csharp\"><code>&lt;#  \r\n    DNS Registry Health Check &amp; Auto-Fix Script\r\n    Checks for:\r\n    - SocketPoolSize\r\n    - SocketPoolExcludedPortRanges\r\n    - DNS port bind issues\r\n    - Non-default high-risk settings\r\n    - https:\/\/ondernet\/net\r\n\r\n#&gt;\r\n\r\nWrite-Host \"=== DNS Registry Health Check Ba\u015flad\u0131 ===\" -ForegroundColor Cyan\r\n\r\n$RegPath = \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\"\r\n\r\n# SocketPoolSize kontrol\r\n$SocketPoolSize = Get-ItemProperty -Path $RegPath -Name \"SocketPoolSize\" -ErrorAction SilentlyContinue\r\n\r\nif ($SocketPoolSize) {\r\n    if ($SocketPoolSize.SocketPoolSize -eq 0) {\r\n        Write-Host \"\u26a0 SocketPoolSize = 0 (TEHL\u0130KEL\u0130)\" -ForegroundColor Red\r\n        $FixSocket = $true\r\n    }\r\n    elseif ($SocketPoolSize.SocketPoolSize -lt 1024) {\r\n        Write-Host \"\u26a0 SocketPoolSize &ccedil;ok d&uuml;\u015f&uuml;k: $($SocketPoolSize.SocketPoolSize)\" -ForegroundColor Yellow\r\n        $FixSocket = $true\r\n    }\r\n    else {\r\n        Write-Host \"\u2714 SocketPoolSize normal: $($SocketPoolSize.SocketPoolSize)\" -ForegroundColor Green\r\n    }\r\n}\r\nelse {\r\n    Write-Host \"\u26a0 SocketPoolSize bulunamad\u0131. Varsay\u0131lana &ccedil;ekilecek.\" -ForegroundColor Yellow\r\n    $FixSocket = $true\r\n}\r\n\r\n# SocketPoolExcludedPortRanges kontrol\r\n$Excluded = Get-ItemProperty -Path $RegPath -Name \"SocketPoolExcludedPortRanges\" -ErrorAction SilentlyContinue\r\n\r\nif ($Excluded) {\r\n    Write-Host \"\u26a0 Port d\u0131\u015flama aktif: $($Excluded.SocketPoolExcludedPortRanges)\" -ForegroundColor Red\r\n    $FixRanges = $true\r\n}\r\nelse {\r\n    Write-Host \"\u2714 Port d\u0131\u015flama ayar\u0131 yok (normal).\" -ForegroundColor Green\r\n}\r\n\r\n# Fix i\u015flemine ba\u015fla\r\nif ($FixSocket -or $FixRanges) {\r\n    Write-Host \"`n=== D&uuml;zeltme \u0130\u015flemi Ba\u015fl\u0131yor ===\" -ForegroundColor Cyan\r\n    \r\n    if ($FixSocket) {\r\n        Write-Host \"&rarr; SocketPoolSize varsay\u0131lan de\u011fere (2500) &ccedil;ekiliyor...\" -ForegroundColor Yellow\r\n        reg add \"HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\" \/v SocketPoolSize \/t REG_DWORD \/d 2500 \/f | Out-Null\r\n    }\r\n\r\n    if ($FixRanges) {\r\n        Write-Host \"&rarr; SocketPoolExcludedPortRanges temizleniyor...\" -ForegroundColor Yellow\r\n        reg delete \"HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\" \/v SocketPoolExcludedPortRanges \/f | Out-Null\r\n    }\r\n\r\n    Write-Host \"DNS servisi yeniden ba\u015flat\u0131l\u0131yor...\" -ForegroundColor Yellow\r\n    Restart-Service DNS\r\n\r\n    Write-Host \"\u2714 D&uuml;zeltme Tamamland\u0131!\" -ForegroundColor Green\r\n}\r\nelse {\r\n    Write-Host \"\u2714 Sistem sa\u011fl\u0131kl\u0131. D&uuml;zeltme gerekmedi.\" -ForegroundColor Green\r\n}\r\n\r\nWrite-Host \"=== \u0130\u015flem Bitti ===\" -ForegroundColor Cyan\r\n<\/code><\/pre>\r\n<\/div>\r\n<\/div>\r\n<h4 data-start=\"2824\" data-end=\"2851\">Script Ne Yap\u0131yor?<\/h4>\r\n<div class=\"_tableContainer_1rjym_1\">\r\n<div class=\"group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse\" tabindex=\"-1\">\r\n<table class=\"w-fit min-w-(--thread-content-width)\" data-start=\"2853\" data-end=\"3082\">\r\n<thead data-start=\"2853\" data-end=\"2880\">\r\n<tr data-start=\"2853\" data-end=\"2880\">\r\n<th data-start=\"2853\" data-end=\"2863\" data-col-size=\"sm\">Kontrol<\/th>\r\n<th data-start=\"2863\" data-end=\"2871\" data-col-size=\"sm\">Sorun<\/th>\r\n<th data-start=\"2871\" data-end=\"2880\" data-col-size=\"sm\">&Ccedil;&ouml;z&uuml;m<\/th>\r\n<\/tr>\r\n<\/thead>\r\n<tbody data-start=\"2909\" data-end=\"3082\">\r\n<tr data-start=\"2909\" data-end=\"2965\">\r\n<td data-start=\"2909\" data-end=\"2930\" data-col-size=\"sm\"><strong data-start=\"2911\" data-end=\"2929\">SocketPoolSize<\/strong><\/td>\r\n<td data-start=\"2930\" data-end=\"2949\" data-col-size=\"sm\">0 veya &ccedil;ok d&uuml;\u015f&uuml;k<\/td>\r\n<td data-start=\"2949\" data-end=\"2965\" data-col-size=\"sm\">2500&rsquo;e &ccedil;eker<\/td>\r\n<\/tr>\r\n<tr data-start=\"2966\" data-end=\"3025\">\r\n<td data-start=\"2966\" data-end=\"2991\" data-col-size=\"sm\"><strong data-start=\"2968\" data-end=\"2990\">ExcludedPortRanges<\/strong><\/td>\r\n<td data-start=\"2991\" data-end=\"3008\" data-col-size=\"sm\">Aral\u0131k tan\u0131ml\u0131<\/td>\r\n<td data-start=\"3008\" data-end=\"3025\" data-col-size=\"sm\">Tamamen siler<\/td>\r\n<\/tr>\r\n<tr data-start=\"3026\" data-end=\"3082\">\r\n<td data-start=\"3026\" data-end=\"3056\" data-col-size=\"sm\"><strong data-start=\"3028\" data-end=\"3055\">DNS&rsquo;yi yeniden ba\u015flat\u0131r<\/strong><\/td>\r\n<td data-start=\"3056\" data-end=\"3077\" data-col-size=\"sm\">Ayarlar aktif olur<\/td>\r\n<td data-start=\"3077\" data-end=\"3082\" data-col-size=\"sm\">\u2714<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<p data-start=\"3105\" data-end=\"3146\">PowerShell&rsquo;i <strong data-start=\"3118\" data-end=\"3142\">Run as Administrator<\/strong> a&ccedil;:<\/p>\r\n<div class=\"contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary\">\r\n<div class=\"sticky top-9\">\r\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\r\n<div class=\"bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs\">\r\n<pre class=\"language-csharp\"><code>powershell -ExecutionPolicy Bypass -File DNS-Fix.ps1\r\n<\/code><\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\">&nbsp;<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<h4>DNS Sa\u011fl\u0131k Kontrol Scripti<\/h4>\r\n<p>\u2714 Log tutar<br data-start=\"107\" data-end=\"110\">\u2714 Mail g&ouml;nderir<br data-start=\"125\" data-end=\"128\">\u2714 GUI ekran\u0131 ile sonu&ccedil;lar\u0131 g&ouml;sterir<\/p>\r\n<pre class=\"language-csharp\"><code>Add-Type -AssemblyName PresentationFramework\r\n\r\n&lt;# =========================================================\r\n    DNS Advanced Checker  \r\n    \u2714 Registry Health Check  \r\n    \u2714 Loglama  \r\n    \u2714 Email Bildirimi  \r\n    \u2714 GUI Sonu&ccedil; Ekran\u0131\r\n========================================================= #&gt;\r\n\r\n# ======= Ayarlar (D&Uuml;ZENLE) =======\r\n$LogPath = \"C:\\DNS-Fix-Logs\"\r\n$SmtpServer = \"smtp.domain.com\"\r\n$SmtpFrom = \"dns-monitor@domain.com\"\r\n$SmtpTo   = \"admin@domain.com\"\r\n$MailEnable = $false     # Mail g&ouml;nderimi i&ccedil;in: $true yap\r\n# ==================================\r\n\r\nif (!(Test-Path $LogPath)) { New-Item -ItemType Directory -Path $LogPath | Out-Null }\r\n$LogFile = \"$LogPath\\DNS_Check_$(Get-Date -Format 'yyyyMMdd_HHmmss').log\"\r\n\r\nfunction Log {\r\n    param($msg)\r\n    $time = (Get-Date -Format \"yyyy-MM-dd HH:mm:ss\")\r\n    $line = \"[$time] $msg\"\r\n    Add-Content -Path $LogFile -Value $line\r\n    Write-Host $line\r\n}\r\n\r\nLog \"DNS Sa\u011fl\u0131k Kontrol&uuml; Ba\u015flad\u0131\"\r\n\r\n$RegPath = \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\"\r\n$FixNeeded = $false\r\n$Report = \"\"\r\n\r\n# ========== 1) SocketPoolSize ==========\r\ntry {\r\n    $SocketPool = Get-ItemProperty -Path $RegPath -Name \"SocketPoolSize\" -ErrorAction Stop\r\n    if ($SocketPool.SocketPoolSize -eq 0) {\r\n        $Report += \"\u26a0 SocketPoolSize = 0 (Tehlikeli)`n\"\r\n        Log \"Tehlike: SocketPoolSize = 0\"\r\n        $FixSocket = $true\r\n    }\r\n    elseif ($SocketPool.SocketPoolSize -lt 1024) {\r\n        $Report += \"\u26a0 SocketPoolSize d&uuml;\u015f&uuml;k ($($SocketPool.SocketPoolSize))`n\"\r\n        Log \"Uyar\u0131: SocketPoolSize d&uuml;\u015f&uuml;k\"\r\n        $FixSocket = $true\r\n    }\r\n    else {\r\n        $Report += \"\u2714 SocketPoolSize normal ($($SocketPool.SocketPoolSize))`n\"\r\n        Log \"SocketPoolSize normal\"\r\n    }\r\n}\r\ncatch {\r\n    $Report += \"\u26a0 SocketPoolSize bulunamad\u0131`n\"\r\n    Log \"SocketPoolSize kay\u0131t anahtar\u0131 yok\"\r\n    $FixSocket = $true\r\n}\r\n\r\n# ========== 2) SocketPoolExcludedPortRanges ==========\r\ntry {\r\n    $Ranges = Get-ItemProperty -Path $RegPath -Name \"SocketPoolExcludedPortRanges\" -ErrorAction Stop\r\n    $Report += \"\u26a0 Port d\u0131\u015flama aktif: $($Ranges.SocketPoolExcludedPortRanges)`n\"\r\n    Log \"Port d\u0131\u015flama bulundu\"\r\n    $FixRanges = $true\r\n}\r\ncatch {\r\n    $Report += \"\u2714 Port d\u0131\u015flama ayar\u0131 yok (Normal)`n\"\r\n    Log \"Port d\u0131\u015flama yok\"\r\n}\r\n\r\n# ========== D&uuml;zeltme ==========\r\nif ($FixSocket -or $FixRanges) {\r\n    $FixNeeded = $true\r\n    Log \"D&uuml;zeltme i\u015flemleri ba\u015flat\u0131l\u0131yor...\"\r\n\r\n    if ($FixSocket) {\r\n        Log \"SocketPoolSize 2500 olarak ayarlan\u0131yor\"\r\n        reg add \"HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\" \/v SocketPoolSize \/t REG_DWORD \/d 2500 \/f | Out-Null\r\n    }\r\n\r\n    if ($FixRanges) {\r\n        Log \"SocketPoolExcludedPortRanges siliniyor\"\r\n        reg delete \"HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\" \/v SocketPoolExcludedPortRanges \/f | Out-Null\r\n    }\r\n\r\n    Log \"DNS servisi yeniden ba\u015flat\u0131l\u0131yor...\"\r\n    Restart-Service DNS\r\n    Log \"D&uuml;zeltme tamamland\u0131\"\r\n    $Report += \"`n\u2714 D&uuml;zeltme yap\u0131ld\u0131 ve DNS yeniden ba\u015flat\u0131ld\u0131.`n\"\r\n}\r\nelse {\r\n    Log \"D&uuml;zeltme gerekmiyor.\"\r\n    $Report += \"`n\u2714 Sistem tamamen sa\u011fl\u0131kl\u0131.`n\"\r\n}\r\n\r\n# ========== Email G&ouml;nderimi ==========\r\nif ($MailEnable -eq $true) {\r\n    try {\r\n        Log \"Mail g&ouml;nderiliyor...\"\r\n        Send-MailMessage -To $SmtpTo -From $SmtpFrom -Subject \"DNS Health Report\" -Body $Report -SmtpServer $SmtpServer\r\n        Log \"Mail ba\u015far\u0131yla g&ouml;nderildi.\"\r\n    }\r\n    catch {\r\n        Log \"Mail g&ouml;nderilemedi: $_\"\r\n    }\r\n}\r\n\r\n# ========== GUI Ekran\u0131 ==========\r\n[System.Windows.MessageBox]::Show($Report, \"DNS Sa\u011fl\u0131k Raporu\", \"OK\", \"Information\")\r\n\r\nLog \"DNS Sa\u011fl\u0131k Kontrol&uuml; Bitti\"\r\n<\/code><\/pre>\r\n<h3 data-start=\"3813\" data-end=\"3838\">Script Ne Yapar?<\/h3>\r\n<h4 data-start=\"3840\" data-end=\"3866\">Registry taramas\u0131<\/h4>\r\n<ul data-start=\"3867\" data-end=\"3958\">\r\n<li data-start=\"3867\" data-end=\"3893\">\r\n<p data-start=\"3869\" data-end=\"3893\">SocketPoolSize kontrol<\/p>\r\n<\/li>\r\n<li data-start=\"3894\" data-end=\"3924\">\r\n<p data-start=\"3896\" data-end=\"3924\">ExcludedPortRanges kontrol<\/p>\r\n<\/li>\r\n<li data-start=\"3925\" data-end=\"3958\">\r\n<p data-start=\"3927\" data-end=\"3958\">Risk seviyelerini analiz eder<\/p>\r\n<\/li>\r\n<\/ul>\r\n<h3 data-start=\"3960\" data-end=\"3990\">Log dosyas\u0131 olu\u015fturur<\/h3>\r\n<p data-start=\"3991\" data-end=\"4007\">\u015euraya kaydeder:<\/p>\r\n<div class=\"contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary\">\r\n<div class=\"sticky top-9\">\r\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\r\n<div class=\"bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs\">&nbsp;<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"whitespace-pre!\">C:\\DNS-Fix-Logs\\DNS_Check_YYYYMMDD_HHMMSS.<span class=\"hljs-built_in\">log<\/span>\r\n<\/code><\/div>\r\n<\/div>\r\n<h3 data-start=\"4063\" data-end=\"4085\">Mail g&ouml;nderir<\/h3>\r\n<p data-start=\"4086\" data-end=\"4117\">SMTP ayarlar\u0131n\u0131 do\u011fru girersen:<\/p>\r\n<div class=\"contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary\">\r\n<div class=\"sticky top-9\">\r\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\r\n<div class=\"bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs\">&nbsp;<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"whitespace-pre!\"><span class=\"hljs-variable\">$MailEnable<\/span> = <span class=\"hljs-variable\">$true<\/span>\r\n<\/code><\/div>\r\n<\/div>\r\n<p data-start=\"4146\" data-end=\"4168\">raporu sana mail atar.<\/p>\r\n<h3 data-start=\"4170\" data-end=\"4207\">GUI popup ile sonu&ccedil; g&ouml;sterir<\/h3>\r\n<p data-start=\"4208\" data-end=\"4243\">Windows &uuml;zerinde MessageBox a&ccedil;\u0131l\u0131r.<\/p>\r\n<p>Windows DNS Sunucusu'ndaki Socket Pool, sessiz sedas\u0131z &ccedil;al\u0131\u015fan, arka planda DNS altyap\u0131n\u0131z\u0131 modern tehditlere kar\u015f\u0131 koruyan hayati bir g&uuml;venlik katman\u0131d\u0131r. Sadece bir kay\u0131t defteri anahtar\u0131n\u0131n veya PowerShell komutunun ard\u0131ndaki bu basit fikir, DNS &ouml;nbellek zehirlenmesi gibi kritik bir sald\u0131r\u0131 vekt&ouml;r&uuml;n&uuml; neredeyse imkans\u0131z hale getirmi\u015ftir.<\/p>\r\n<p>Bir sonraki sefer g&uuml;venlik duvar\u0131 log'lar\u0131n\u0131z\u0131 incelerken, o de\u011fi\u015fken kaynak portlar\u0131n\u0131 g&ouml;rd&uuml;\u011f&uuml;n&uuml;zde, i&ccedil;iniz rahat olsun. Bu, Windows'un sizin i&ccedil;in arka planda g&uuml;venli\u011finizi sa\u011flamla\u015ft\u0131rd\u0131\u011f\u0131n\u0131n bir g&ouml;stergesidir.<\/p>\r\n<p><a href=\"..\/..\/..\/dns-onbellek-davranislarinin-anatomisi-get-dnsservercache-ile-derin-analiz\">Derinlemesine Analiz i&ccedil;in bu yaz\u0131ma bak\u0131n\u0131z<\/a><\/p>\r\n<h3><strong>DNS Performans Ayar\u0131<\/strong><\/h3>\r\n<p>\u015eimdi DNS sunucunuzun &ccedil;ok y&uuml;ksek seviyede &ccedil;al\u0131\u015fmas\u0131n\u0131 isteyebilirsiniz. Kutudan &ccedil;\u0131kt\u0131\u011f\u0131 gibi, Windows Server DNS kullan\u0131ld\u0131\u011f\u0131 trafi\u011fin b&uuml;y&uuml;k &ccedil;o\u011funlu\u011funu y&ouml;netiyor. &Ccedil;o\u011fu organizasyon i&ccedil;in saniyede birka&ccedil; y&uuml;z ya da belki birka&ccedil; bin sorgu olabilir ve sadece bununla u\u011fra\u015f\u0131yorsan\u0131z, sorun yok. Saniyede on binlerce ya da y&uuml;zbinlerce sorguya bakarsan\u0131z, DNS sunucu performans ayar\u0131n\u0131z\u0131 d&uuml;\u015f&uuml;nmeye ba\u015fl\u0131yorsunuz, bu y&uuml;zden Microsoft'un DNS sunucusunun performans ayar\u0131 konusunda verdi\u011fi birka&ccedil; tavsiye var. \u0130lki, &ouml;zyinelemeyi devre d\u0131\u015f\u0131 b\u0131rak\u0131yorsunuz.<\/p>\r\n<p>DNS sunucunuzun performans ayarlamas\u0131 a&ccedil;\u0131s\u0131ndan iyi bir di\u011fer ipucu ise, ba\u015fka hi&ccedil;bir \u015feye ger&ccedil;ekten etkisi olmadan uygulayabilece\u011finiz bir di\u011fer iyi ipucu, DNS sunucu sorgusunu kabul eden aray&uuml;z IP adresi i&ccedil;in 53 portunda UDP trafi\u011fine izin veren a&ccedil;\u0131k bir firewall kural\u0131 olu\u015fturmak. Bunu yapmak g&uuml;venlik duvar\u0131n\u0131n CPU kullan\u0131m\u0131n\u0131 azalt\u0131r. &Ccedil;&uuml;nk&uuml; varsay\u0131lan kural, UDP port 53 kadar a&ccedil;\u0131k de\u011fil. Temelde TCP port trafi\u011fine izin veriyor. Ama gelip &ouml;zel bir g&uuml;venlik duvar\u0131 kural\u0131 olu\u015fturursan\u0131z, trafik g&uuml;venlik duvar\u0131na d&uuml;\u015fer ve bu da DNS sunucunuzdaki CPU kullan\u0131m\u0131n\u0131z\u0131 azalt\u0131r.<\/p>\r\n<p>E\u011fer 12'den fazla i\u015flemci &ccedil;ekirde\u011fi olan bir DNS sunucunuz varsa, UDP i\u015f par&ccedil;ac\u0131\u011f\u0131 say\u0131s\u0131n\u0131 sekiz olarak ayarlamal\u0131s\u0131n\u0131z ve bunu HKLM\\System\\CurrentControlSet\\ Services\\DNS\\Parameters\\UdpRecvTreadCount kay\u0131t defterini de\u011fi\u015ftirerek yapabilirsiniz. O y&uuml;zden kay\u0131t kayd\u0131 anahtar\u0131n\u0131 de\u011fi\u015ftir ve sekize ayarla. &Ccedil;&uuml;nk&uuml; 12'den fazla &ccedil;ekirde\u011fe sahip oldu\u011funda UDP'nin ipliklerinin en iyi seviyesi bu olur. 12 &ccedil;ekirdekten az varsa, varsay\u0131lan olarak b\u0131rak.<\/p>\r\n<p>Microsoft'un DNS sunucu performans ayar\u0131 i&ccedil;in verdi\u011fi di\u011fer tavsiye ise a\u011f adapt&ouml;r tamponlar\u0131n\u0131 maksimuma g&ouml;re yap\u0131land\u0131rmak. Bunu Set-Network Adapter Geli\u015fmi\u015f &Ouml;zellik- ,PowerShell Komut Set-A\u011f Komutunu kullanarak yapabilirsiniz; burada a\u011f aray&uuml;z&uuml;n&uuml;z&uuml;n ad\u0131n\u0131, Display Name'i Receive Buffers olarak ve Display De\u011ferini Maksimum olarak belirtirsiniz. Bu, DNS Sunucunuzun m&uuml;mk&uuml;n oldu\u011funca iyi &ccedil;al\u0131\u015fmas\u0131n\u0131 istiyorsan\u0131z Al\u0131m Tamponlar\u0131n\u0131 Maksimuma ayarl\u0131yor.<\/p>","excerpt":"","created_at":"2025-11-28 08:41:44","updated_at":"2026-09-23 11:15:56","category_id":7,"view_count":532,"reading_time":18,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2025-11-28 05:41:00","featured_image":"1e6c84fb4cd3aed2256446f11e514fcd.png","slug":"windows-dns-serverin-socket-pool-udp-kaynak-port-havuzu-davranisi","category_name":"Cyber Security","category_slug":"cyber-security"}