{"id":415,"date":"2026-09-01T17:04:06","date_gmt":"2026-09-01T17:04:06","guid":{"rendered":"https:\/\/www.vps.tc\/blog\/?p=415"},"modified":"2026-09-01T09:30:37","modified_gmt":"2026-09-01T09:30:37","slug":"ddos-saldirisi-nedir-vps-koruma-rehberi","status":"publish","type":"post","link":"https:\/\/www.vps.tc\/blog\/tr\/ddos-saldirisi-nedir-vps-koruma-rehberi\/","title":{"rendered":"DDoS Sald\u0131r\u0131s\u0131 Nedir? VPS Koruma Rehberi"},"content":{"rendered":"<div class=\"aiw-toc\" style=\"border:1px solid #dbe3ea;border-radius:8px;padding:16px 20px;margin:0 0 28px\"><strong>\u0130\u00e7indekiler<\/strong><\/p>\n<ol style=\"margin:10px 0 0;padding-left:22px\">\n<li><a href=\"#ddos-saldirisi-nedir-ve-vpsinizi-nasil-etkiler\">DDoS sald\u0131r\u0131s\u0131 nedir ve VPS&#039;inizi nas\u0131l etkiler?<\/a><\/li>\n<li><a href=\"#saldiri-turunu-ayirmadan-dogru-onlem-secilmiyor\">Sald\u0131r\u0131 t\u00fcr\u00fcn\u00fc ay\u0131rmadan do\u011fru \u00f6nlem se\u00e7ilmiyor<\/a><\/li>\n<li><a href=\"#ilk-bes-dakika-yeniden-baslatmadan-kanit-toplayin\">\u0130lk be\u015f dakika: yeniden ba\u015flatmadan kan\u0131t toplay\u0131n<\/a><\/li>\n<li><a href=\"#vps-uzerinde-uygulanabilecek-savunmalar\">VPS \u00fczerinde uygulanabilecek savunmalar<\/a><\/li>\n<li><a href=\"#saglayici-ve-cdn-katmani-neden-gerekli\">Sa\u011flay\u0131c\u0131 ve CDN katman\u0131 neden gerekli?<\/a><\/li>\n<li><a href=\"#izleme-loglama-ve-saldiri-sonrasi-temizlik\">\u0130zleme, loglama ve sald\u0131r\u0131 sonras\u0131 temizlik<\/a><\/li>\n<li><a href=\"#ne-zaman-vpsi-buyutmek-ne-zaman-mimariyi-degistirmek-gerekir\">Ne zaman VPS&#039;i b\u00fcy\u00fctmek, ne zaman mimariyi de\u011fi\u015ftirmek gerekir?<\/a><\/li>\n<li><a href=\"#yapilmamasi-gereken-kisa-yollar\">Yap\u0131lmamas\u0131 gereken k\u0131sa yollar<\/a><\/li>\n<li><a href=\"#vps-icin-pratik-ddos-kontrol-listesi\">VPS i\u00e7in pratik DDoS kontrol listesi<\/a><\/li>\n<li><a href=\"#sik-sorulan-sorular\">S\u0131k Sorulan Sorular<\/a><\/li>\n<\/ol>\n<\/div>\n<h2 id=\"ddos-saldirisi-nedir-ve-vpsinizi-nasil-etkiler\">DDoS sald\u0131r\u0131s\u0131 nedir ve VPS&#8217;inizi nas\u0131l etkiler?<\/h2>\n<p>Gece vardiyas\u0131nda monitoring ekran\u0131nda ayn\u0131 anda \u00fc\u00e7 alarm g\u00f6rd\u00fc\u011f\u00fcmde elim do\u011frudan <code>reboot<\/code> komutuna gitmiyor. \u00d6nce trafi\u011fin nereden geldi\u011fine, hangi portun doldu\u011funa ve makinenin ger\u00e7ekten ne kadar kaynak t\u00fcketti\u011fine bak\u0131yorum. DDoS olaylar\u0131nda aceleyle at\u0131lan bir yeniden ba\u015flatma komutu sald\u0131r\u0131y\u0131 durdurmayabilir; yaln\u0131zca elimizdeki kan\u0131tlar\u0131 ve aktif ba\u011flant\u0131 tablosunu silebilir.<\/p>\n<p>DDoS, yani Da\u011f\u0131t\u0131k Hizmet Engelleme sald\u0131r\u0131s\u0131, bir sunucuya veya servise \u00e7ok say\u0131da kaynaktan yo\u011fun istek g\u00f6ndererek ger\u00e7ek kullan\u0131c\u0131lar\u0131n eri\u015fimini engellemeyi ama\u00e7lar. Hedef yaln\u0131zca web sitesi de\u011fildir. DNS, oyun sunucusu, SSH, API ve do\u011frudan VPS&#8217;in IP adresi de sald\u0131r\u0131ya a\u00e7\u0131k olabilir.<\/p>\n<p>Buradaki &#8220;da\u011f\u0131t\u0131k&#8221; kelimesi \u00f6nemli. Trafik tek bir bilgisayardan gelmedi\u011fi i\u00e7in tek bir IP&#8217;yi engellemek \u00e7o\u011fu zaman yeterli olmaz. Sald\u0131rganlar botnet ad\u0131 verilen, ele ge\u00e7irilmi\u015f cihazlardan olu\u015fan a\u011flar\u0131 kullanabilir. Baz\u0131 sald\u0131r\u0131lar bant geni\u015fli\u011fini doldurur, baz\u0131lar\u0131 ba\u011flant\u0131 tablolar\u0131n\u0131 t\u00fcketir. HTTP iste\u011fine benzeyen sald\u0131r\u0131lar ise trafik miktar\u0131 \u00e7ok y\u00fcksek g\u00f6r\u00fcnmeden CPU ve veritaban\u0131 kaynaklar\u0131n\u0131 bitirebilir.<\/p>\n<p>VPS taraf\u0131ndaki savunmay\u0131 iki ayr\u0131 katmanda d\u00fc\u015f\u00fcn\u00fcr\u00fcm: sunucunun i\u00e7indeki kaynak t\u00fcketimini azaltmak ve zararl\u0131 trafi\u011fi veri merkezi ya da upstream sa\u011flay\u0131c\u0131 seviyesinde filtrelemek. \u0130lk katmanda kendi yap\u0131land\u0131rmalar\u0131n\u0131z i\u015fe yarar. \u0130kinci katman i\u00e7in hosting sa\u011flay\u0131c\u0131n\u0131z\u0131n DDoS korumas\u0131na, scrubbing merkezlerine veya CDN hizmetlerine ihtiya\u00e7 duyabilirsiniz.<\/p>\n<h2 id=\"saldiri-turunu-ayirmadan-dogru-onlem-secilmiyor\">Sald\u0131r\u0131 t\u00fcr\u00fcn\u00fc ay\u0131rmadan do\u011fru \u00f6nlem se\u00e7ilmiyor<\/h2>\n<p>Her yo\u011fun trafik DDoS de\u011fildir. Yeni yay\u0131nlanan bir kampanya, arama motoru taramas\u0131, hatal\u0131 \u00e7al\u0131\u015fan bir cron g\u00f6revi veya bir m\u00fc\u015fterinin payla\u015ft\u0131\u011f\u0131 ba\u011flant\u0131 da k\u0131sa s\u00fcreli trafik art\u0131\u015f\u0131 olu\u015fturabilir. Kaynaklara bakmadan &#8220;sald\u0131r\u0131 var&#8221; demek kadar, ger\u00e7ek sald\u0131r\u0131y\u0131 normal trafik sanmak da pahal\u0131ya patlar.<\/p>\n<h3>Volumetrik sald\u0131r\u0131lar<\/h3>\n<p>Bu sald\u0131r\u0131larda ama\u00e7 internet ba\u011flant\u0131n\u0131z\u0131n kapasitesini doldurmakt\u0131r. UDP flood, ICMP flood ve b\u00fcy\u00fck hacimli DNS yan\u0131t trafi\u011fi bu s\u0131n\u0131fa girer. VPS&#8217;inizde <code>nftables<\/code> kural\u0131 yazsan\u0131z bile paketler \u00e7o\u011fu zaman \u00f6nce veri merkezinin uplink&#8217;ine ula\u015f\u0131r. Hat dolduktan sonra paketi sunucuda reddetmeniz ger\u00e7ek kullan\u0131c\u0131ya bant geni\u015fli\u011fi kazand\u0131rmaz.<\/p>\n<p>Volumetrik sald\u0131r\u0131larda \u00e7\u00f6z\u00fcm genellikle sa\u011flay\u0131c\u0131 taraf\u0131nda ba\u015flar. Trafik VPS&#8217;e ula\u015fmadan filtrelenmeli veya temizleme merkezine y\u00f6nlendirilmelidir. K\u00fc\u00e7\u00fck ve k\u0131sa s\u00fcreli bir ta\u015fmada yerel firewall yard\u0131mc\u0131 olabilir; bunu ba\u011flant\u0131 kapasitesini art\u0131ran bir \u00e7\u00f6z\u00fcm gibi g\u00f6rmemek gerekir.<\/p>\n<h3>Protokol ve ba\u011flant\u0131 t\u00fcketen sald\u0131r\u0131lar<\/h3>\n<p>SYN flood, TCP ba\u011flant\u0131 kurulumu a\u015famas\u0131ndaki kaynaklar\u0131 t\u00fcketmeye \u00e7al\u0131\u015f\u0131r. \u00c7ok say\u0131da yar\u0131m a\u00e7\u0131k ba\u011flant\u0131 olu\u015ftu\u011funda backlog ve conntrack tablolar\u0131 bask\u0131 alt\u0131na girebilir. Normal kullan\u0131c\u0131lar da ba\u011flant\u0131 kurmakta zorlan\u0131r.<\/p>\n<p>Bu s\u0131n\u0131fta SYN cookie gibi kernel ayarlar\u0131, ba\u011flant\u0131 limitleri ve sa\u011flay\u0131c\u0131 filtreleri i\u015fe yarayabilir. Rastgele <code>sysctl<\/code> de\u011ferlerini b\u00fcy\u00fctmek ise \u00e7\u00f6z\u00fcm de\u011fildir. Daha b\u00fcy\u00fck tablolar sald\u0131rgan\u0131n doldurabilece\u011fi daha b\u00fcy\u00fck bir alan yaratabilir; RAM t\u00fcketimi de artar.<\/p>\n<h3>Uygulama katman\u0131 sald\u0131r\u0131lar\u0131<\/h3>\n<p>HTTP flood, yava\u015f istekler ve pahal\u0131 API \u00e7a\u011fr\u0131lar\u0131 d\u0131\u015far\u0131dan bak\u0131ld\u0131\u011f\u0131nda normal web trafi\u011fine benzeyebilir. \u0130stekler 443 numaral\u0131 porta gelir, TLS ba\u015far\u0131yla tamamlan\u0131r ve nginx ya da Apache bunlar\u0131 uygulamaya ta\u015f\u0131r. Trafik miktar\u0131 devasa g\u00f6r\u00fcnmese bile her istek bir PHP worker&#8217;\u0131, MySQL sorgusu veya harici API \u00e7a\u011fr\u0131s\u0131 ba\u015flat\u0131yorsa VPS k\u0131sa s\u00fcrede nefessiz kal\u0131r.<\/p>\n<p>Burada CDN, web sunucusu rate limit&#8217;leri, \u00f6nbellek, kimlik do\u011frulama ve uygulama i\u00e7i kota mekanizmalar\u0131 birlikte ele al\u0131nmal\u0131d\u0131r. Yaln\u0131zca IP engellemek genellikle yetersiz kal\u0131r; botnet&#8217;in binlerce adresi olabilir.<\/p>\n<h2 id=\"ilk-bes-dakika-yeniden-baslatmadan-kanit-toplayin\">\u0130lk be\u015f dakika: yeniden ba\u015flatmadan kan\u0131t toplay\u0131n<\/h2>\n<p>Sald\u0131r\u0131 s\u0131ras\u0131nda ilk hedefim te\u015fhis s\u00fcresini k\u0131sa tutmak. \u00d6nce sa\u011flay\u0131c\u0131n\u0131n panelinde trafik grafi\u011fine, kaynak kullan\u0131m\u0131na ve varsa DDoS alarm\u0131na bakar\u0131m. Ard\u0131ndan SSH ile ba\u011flan\u0131p genel tabloyu \u00e7\u0131kar\u0131r\u0131m. SSH eri\u015fimi de etkileniyorsa sa\u011flay\u0131c\u0131n\u0131n konsolu daha g\u00fcvenli bir yol olabilir.<\/p>\n<pre><code>date\nhostname\nuptime\nfree -h\nip -s link\nss -s<\/code><\/pre>\n<p>Buradaki <code>hostname<\/code> sat\u0131r\u0131n\u0131 atlamay\u0131n. Production prompt&#8217;lar\u0131m\u0131 k\u0131rm\u0131z\u0131 kullanmam\u0131n nedeni de bu t\u00fcr kontrolleri g\u00f6r\u00fcn\u00fcr k\u0131lmak. <code>ip -s link<\/code> aray\u00fcz seviyesindeki paket ve hata saya\u00e7lar\u0131n\u0131, <code>ss -s<\/code> ise TCP durumlar\u0131n\u0131n kaba da\u011f\u0131l\u0131m\u0131n\u0131 g\u00f6sterir. Tek ba\u015f\u0131na hi\u00e7biri sald\u0131r\u0131n\u0131n kesin kan\u0131t\u0131 de\u011fildir.<\/p>\n<p>Belirli bir portu incelemek i\u00e7in:<\/p>\n<pre><code>ss -Htan state syn-recv | wc -l\nss -Htan '( sport = :80 or sport = :443 )' | head -20\nss -Huan | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head<\/code><\/pre>\n<p>\u0130lk komut yar\u0131m a\u00e7\u0131k TCP ba\u011flant\u0131 say\u0131s\u0131n\u0131 verir. \u0130kinci komut HTTP ve HTTPS ba\u011flant\u0131lar\u0131ndan \u00f6rnek g\u00f6sterir. \u00dc\u00e7\u00fcnc\u00fc komut UDP u\u00e7lar\u0131n\u0131 kabaca sayar; IPv6 adresleri veya farkl\u0131 \u00e7\u0131kt\u0131 bi\u00e7imleri i\u00e7in bu k\u0131sa <code>awk<\/code> zincirine k\u00f6r\u00fc k\u00f6r\u00fcne g\u00fcvenmeyin. Ben olay s\u0131ras\u0131nda \u00e7\u0131kt\u0131y\u0131 dosyaya da al\u0131r\u0131m:<\/p>\n<pre><code>ss -s &gt; \/root\/incident-ss-$(date +%F-%H%M).txt\njournalctl -k --since \"10 minutes ago\" &gt; \/root\/incident-kernel.log<\/code><\/pre>\n<p>Kernel log&#8217;unda drop, SYN flood, conntrack veya network driver uyar\u0131lar\u0131 g\u00f6r\u00fclebilir. Log yoksa sald\u0131r\u0131 yok demek de\u011fildir; baz\u0131 saya\u00e7lar log \u00fcretmeden y\u00fckselir.<\/p>\n<h2 id=\"vps-uzerinde-uygulanabilecek-savunmalar\">VPS \u00fczerinde uygulanabilecek savunmalar<\/h2>\n<h3>Gereksiz portlar\u0131 kapat\u0131n<\/h3>\n<p>D\u0131\u015far\u0131ya a\u00e7\u0131k her servis sald\u0131r\u0131 y\u00fczeyinin bir par\u00e7as\u0131d\u0131r. \u00d6nce dinleyen servisleri g\u00f6r\u00fcn:<\/p>\n<pre><code>sudo ss -lntup<\/code><\/pre>\n<p>Burada \u00f6zellikle <code>0.0.0.0<\/code> veya <code>::<\/code> \u00fczerinde dinleyen servisleri incelerim. PostgreSQL, Redis ve MySQL gibi servislerin internete a\u00e7\u0131k olmas\u0131 \u00e7o\u011fu kurulumda gereksizdir. MySQL kurulumu ve g\u00fcvenli yap\u0131land\u0131rma s\u0131ras\u0131nda bind adresini ve firewall eri\u015fimini birlikte kontrol etmek gerekir; yaln\u0131zca g\u00fc\u00e7l\u00fc parola yazmak yeterli g\u00fcvenlik sa\u011flamaz.<\/p>\n<p>Firewall taraf\u0131nda yaln\u0131zca ger\u00e7ekten kulland\u0131\u011f\u0131n\u0131z portlara izin verin. SSH, HTTP ve HTTPS kullanan basit bir <code>nftables<\/code> ba\u015flang\u0131c\u0131 \u015f\u00f6yle olabilir:<\/p>\n<pre><code>table inet filter {\n  chain input {\n    type filter hook input priority filter; policy drop;\n\n    iifname \"lo\" accept\n    ct state established,related accept\n    ip protocol icmp accept\n    ip6 nexthdr ipv6-icmp accept\n    tcp dport 22 ct state new limit rate 15\/minute accept\n    tcp dport { 80, 443 } accept\n  }\n\n  chain forward { type filter hook forward priority filter; policy drop; }\n  chain output { type filter hook output priority filter; policy accept; }\n}<\/code><\/pre>\n<p>Bu \u00f6rnek da\u011f\u0131t\u0131ma, uzaktan eri\u015fim politikan\u0131za ve IPv6 kullan\u0131m\u0131n\u0131za g\u00f6re de\u011fi\u015ftirilmelidir. SSH i\u00e7in sabit y\u00f6netim IP&#8217;niz varsa kural\u0131 onunla s\u0131n\u0131rland\u0131rmak daha iyi olur. Uzaktan firewall de\u011fi\u015fikli\u011fi yaparken ikinci bir oturum a\u00e7ar\u0131m. \u00d6\u011frendim ki a\u00e7\u0131k kalan tek SSH oturumu, yanl\u0131\u015f kural\u0131n bedelini \u00e7ok h\u0131zl\u0131 hat\u0131rlat\u0131yor.<\/p>\n<h3>SSH&#8217;yi sald\u0131r\u0131n\u0131n merkezinden \u00e7\u0131kar\u0131n<\/h3>\n<p>SSH portunu 22&#8217;den ba\u015fka bir porta almak g\u00fcvenlik de\u011fildir. Otomatik taramalar\u0131n bir k\u0131sm\u0131n\u0131 azaltabilir; as\u0131l kontroller anahtar tabanl\u0131 kimlik do\u011frulama, root giri\u015finin kapat\u0131lmas\u0131, g\u00fcncel OpenSSH ve firewall k\u0131s\u0131tlamas\u0131d\u0131r.<\/p>\n<pre><code>sudoedit \/etc\/ssh\/sshd_config<\/code><\/pre>\n<pre><code>PermitRootLogin no\nPasswordAuthentication no\nMaxAuthTries 3<\/code><\/pre>\n<p>Yap\u0131land\u0131rmay\u0131 yeniden y\u00fcklemeden \u00f6nce kontrol edin:<\/p>\n<pre><code>sudo sshd -t &amp;&amp; sudo systemctl reload ssh<\/code><\/pre>\n<p>Ubuntu ve Debian sistemlerinde servis ad\u0131 \u00e7o\u011funlukla <code>ssh<\/code> olur; baz\u0131 da\u011f\u0131t\u0131mlarda <code>sshd<\/code> kullan\u0131l\u0131r. Mevcut oturumu kapatmadan yeni anahtarla giri\u015f testini yap\u0131n. Ben bir firewall de\u011fi\u015fikli\u011finden sonra ikinci terminali a\u00e7may\u0131 unuttu\u011fum i\u00e7in, mevcut SSH oturumunu bak\u0131m bitene kadar dikkatle a\u00e7\u0131k tutmak zorunda kalm\u0131\u015ft\u0131m. K\u00fc\u00e7\u00fck bir ihmal.<\/p>\n<h3>Web sunucusunda rate limit kullan\u0131n<\/h3>\n<p>HTTP katman\u0131nda nginx&#8217;in <code>limit_req<\/code> ve <code>limit_conn<\/code> mod\u00fclleri belirli endpoint&#8217;leri koruyabilir. Giri\u015f, arama ve pahal\u0131 rapor API&#8217;lar\u0131 i\u00e7in genel sayfalardan farkl\u0131 limitler tan\u0131mlamak daha mant\u0131kl\u0131d\u0131r.<\/p>\n<pre><code>http {\n    limit_req_zone $binary_remote_addr zone=login_limit:10m rate=5r\/m;\n    limit_conn_zone $binary_remote_addr zone=addr:10m;\n\n    server {\n        limit_conn addr 30;\n\n        location = \/wp-login.php {\n            limit_req zone=login_limit burst=3 nodelay;\n            include fastcgi_params;\n            # Uygulaman\u0131z\u0131n mevcut PHP-FPM ayarlar\u0131 burada kal\u0131r.\n        }\n    }\n}<\/code><\/pre>\n<p>Bu kural her kurulumda kopyalan\u0131p uygulanacak bir WordPress re\u00e7etesi de\u011fildir. NAT arkas\u0131ndaki \u00e7ok say\u0131da ger\u00e7ek kullan\u0131c\u0131 ayn\u0131 public IP&#8217;yi payla\u015fabilir; IP ba\u015f\u0131na limit bu kullan\u0131c\u0131lar\u0131 da etkileyebilir. API anahtar\u0131, oturum veya kullan\u0131c\u0131 hesab\u0131 baz\u0131nda kota uygulamak, uygulama katman\u0131nda daha do\u011fru sonu\u00e7 verebilir.<\/p>\n<p>Yap\u0131land\u0131rma sonras\u0131:<\/p>\n<pre><code>sudo nginx -t\nsudo systemctl reload nginx<\/code><\/pre>\n<p><code>nginx -t<\/code> ba\u015far\u0131l\u0131 olmadan reload yapmay\u0131n. Rate limit yaz\u0131p cache kurmamak da s\u0131k g\u00f6rd\u00fc\u011f\u00fcm bir hata. Her iste\u011fi PHP&#8217;ye ve veritaban\u0131na g\u00f6ndermek yerine anonim, cache&#8217;lenebilir i\u00e7erikleri edge veya nginx seviyesinde kar\u015f\u0131lamak sunucu y\u00fck\u00fcn\u00fc ciddi bi\u00e7imde azaltabilir.<\/p>\n<h2 id=\"saglayici-ve-cdn-katmani-neden-gerekli\">Sa\u011flay\u0131c\u0131 ve CDN katman\u0131 neden gerekli?<\/h2>\n<p>VPS&#8217;iniz saniyede y\u00fczlerce megabit trafik al\u0131yorsa sunucudaki firewall kurallar\u0131 paketi i\u015fleyebilir. Fakat VPS&#8217;e ayr\u0131lm\u0131\u015f ba\u011flant\u0131 kapasitesi sald\u0131r\u0131 y\u00fcz\u00fcnden dolmu\u015fsa ger\u00e7ek kullan\u0131c\u0131 trafi\u011fi i\u00e7eri giremez. Bu noktada yerel kural\u0131n etkisi s\u0131n\u0131rl\u0131d\u0131r; filtreleme trafi\u011fin kayna\u011f\u0131na daha yak\u0131n yap\u0131lmal\u0131d\u0131r.<\/p>\n<p>Hosting sa\u011flay\u0131c\u0131n\u0131za bildirirken &#8220;site yava\u015f&#8221; demek yerine \u00f6l\u00e7\u00fclebilir bilgiler g\u00f6nderin:<\/p>\n<ul>\n<li>Sald\u0131r\u0131n\u0131n ba\u015flad\u0131\u011f\u0131 ve yo\u011funla\u015ft\u0131\u011f\u0131 zaman aral\u0131\u011f\u0131<\/li>\n<li>Hedeflenen IPv4 veya IPv6 adresi ve port<\/li>\n<li>Trafi\u011fin TCP, UDP, ICMP veya HTTP a\u011f\u0131rl\u0131kl\u0131 olup olmad\u0131\u011f\u0131<\/li>\n<li>G\u00f6zlenen bant geni\u015fli\u011fi, paket say\u0131s\u0131 ve ba\u011flant\u0131 durumu<\/li>\n<li>Uygulama loglar\u0131nda g\u00f6r\u00fclen belirgin URL veya User-Agent \u00f6r\u00fcnt\u00fcleri<\/li>\n<li>Ger\u00e7ek kullan\u0131c\u0131lar\u0131n hangi hizmete eri\u015femedi\u011fi<\/li>\n<\/ul>\n<p>Sa\u011flay\u0131c\u0131n\u0131z blackhole routing uyguluyorsa sald\u0131r\u0131 s\u0131ras\u0131nda IP ge\u00e7ici olarak karart\u0131labilir. Bu, sunucuyu korur ama hizmeti de eri\u015filemez yapar. Scrubbing veya upstream filtreleme se\u00e7ene\u011fi varsa kesintiyi azaltma ihtimali daha y\u00fcksektir. Plan\u0131n\u0131zda &#8220;DDoS korumal\u0131&#8221; yazmas\u0131, bu ayr\u0131nt\u0131lar\u0131n otomatik \u00e7\u00f6z\u00fcld\u00fc\u011f\u00fc anlam\u0131na gelmez.<\/p>\n<p>Web sitesi i\u00e7in reverse proxy veya CDN, istemcinin do\u011frudan VPS IP&#8217;sini g\u00f6rmesini engelleyebilir. DNS kayd\u0131n\u0131 CDN&#8217;e almak tek ba\u015f\u0131na yeterli de\u011fildir. Origin IP daha \u00f6nce a\u00e7\u0131\u011fa \u00e7\u0131kt\u0131ysa sald\u0131rgan do\u011frudan IP&#8217;ye trafik g\u00f6ndermeye devam edebilir. Origin firewall&#8217;\u0131nda yaln\u0131zca proxy sa\u011flay\u0131c\u0131s\u0131n\u0131n g\u00fcncel IP aral\u0131klar\u0131na izin vermek gerekir; bu listeleri d\u00fczenli takip etmek de operasyonun par\u00e7as\u0131d\u0131r.<\/p>\n<p>DNS taraf\u0131nda da dikkatli olun. A kayd\u0131 eski origin adresini a\u00e7\u0131k\u00e7a g\u00f6steriyorsa proxy kullan\u0131m\u0131n\u0131n etkisi azal\u0131r. <code>dig +short<\/code> ile d\u0131\u015far\u0131dan g\u00f6r\u00fclen adresleri ve yanl\u0131\u015f kalm\u0131\u015f alt alan adlar\u0131n\u0131 kontrol ederim:<\/p>\n<pre><code>dig +short example.com A\ndig +short www.example.com A\ndig +short example.com AAAA<\/code><\/pre>\n<p>Bu \u00e7\u0131kt\u0131 bekledi\u011finiz proxy adreslerini g\u00f6stermiyorsa DNS ve origin tasar\u0131m\u0131n\u0131 birlikte g\u00f6zden ge\u00e7irin. IPv6&#8217;y\u0131 unutmak, IPv4 i\u00e7in yapt\u0131\u011f\u0131n\u0131z korumay\u0131 bo\u015fa \u00e7\u0131karabilir.<\/p>\n<h2 id=\"izleme-loglama-ve-saldiri-sonrasi-temizlik\">\u0130zleme, loglama ve sald\u0131r\u0131 sonras\u0131 temizlik<\/h2>\n<p>DDoS savunmas\u0131 olay an\u0131nda yaz\u0131lan birka\u00e7 firewall kural\u0131ndan ibaret de\u011fildir. Normal davran\u0131\u015f\u0131 bilmezseniz anormalli\u011fi se\u00e7emezsiniz. Uptime Kuma eri\u015filebilirli\u011fi, Prometheus ile <code>node_exporter<\/code> CPU, RAM, a\u011f ve disk \u00f6l\u00e7\u00fcmlerini izler; Grafana da bunlar\u0131 zaman \u00e7izelgesinde g\u00f6rmemi sa\u011flar. Evdeki Proxmox laboratuvar\u0131mda bu \u00fc\u00e7l\u00fc, alarm e\u015fiklerini g\u00fcvenli bi\u00e7imde denememe yar\u0131yor.<\/p>\n<p>Takip etmeniz gereken g\u00f6stergeler \u015funlard\u0131r:<\/p>\n<ul>\n<li>Gelen ve giden a\u011f trafi\u011fi ile paket say\u0131s\u0131<\/li>\n<li>TCP ba\u011flant\u0131 durumlar\u0131 ve conntrack kullan\u0131m\u0131<\/li>\n<li>Web sunucusu istek say\u0131s\u0131, 4xx\/5xx oran\u0131 ve yan\u0131t s\u00fcreleri<\/li>\n<li>CPU kullan\u0131m\u0131n\u0131n yan\u0131nda load average ve iowait de\u011feri<\/li>\n<li>RAM, swap ve disk I\/O t\u00fcketimi<\/li>\n<li>Uygulama worker say\u0131s\u0131, kuyruk uzunlu\u011fu ve veritaban\u0131 ba\u011flant\u0131lar\u0131<\/li>\n<\/ul>\n<p>RAM bitti\u011finde swap alan\u0131n\u0131n devreye girmesi sistemi kurtar\u0131yor gibi g\u00f6r\u00fcnebilir; yo\u011fun swap kullan\u0131m\u0131 gecikmeyi b\u00fcy\u00fct\u00fcr. <a href=\"https:\/\/www.vps.tc\/blog\/tr\/vpste-swap-alani-olusturma-linux-bellek-yonetimi\/\">VPS&#8217;te Swap Alan\u0131 Olu\u015fturma ve Linux Bellek Y\u00f6netimi<\/a> yaz\u0131s\u0131nda anlatt\u0131\u011f\u0131m gibi swap&#8217;i fiziksel RAM yerine koymamak gerekir. DDoS s\u0131ras\u0131nda y\u00fckselen swap, uygulama kaynakl\u0131 bir HTTP sald\u0131r\u0131s\u0131n\u0131n da i\u015fareti olabilir.<\/p>\n<p>Olay bitince engelledi\u011finiz ge\u00e7ici kurallar\u0131, test i\u00e7in ekledi\u011finiz limitleri ve DNS de\u011fi\u015fikliklerini kay\u0131t alt\u0131na al\u0131n. Loglar\u0131 sald\u0131r\u0131 s\u00fcresince kaybetmemek i\u00e7in uzak log sunucusu veya sa\u011flay\u0131c\u0131 loglama hizmeti kullanmak iyi fikirdir. Sald\u0131rgan\u0131n IP listesini kal\u0131c\u0131 firewall listesine \u00e7evirmek \u00e7o\u011fu zaman bak\u0131m y\u00fck\u00fc \u00fcretir; IP&#8217;ler de\u011fi\u015fir, ger\u00e7ek kullan\u0131c\u0131lar yanl\u0131\u015fl\u0131kla engellenir.<\/p>\n<p>Web uygulamas\u0131ndaki a\u00e7\u0131k noktalar\u0131 da kontrol edin. Eski bir eklenti veya pahal\u0131 bir endpoint, sald\u0131r\u0131y\u0131 m\u00fcmk\u00fcn k\u0131lmasa bile etkisini b\u00fcy\u00fctebilir. <a href=\"https:\/\/www.vps.tc\/blog\/tr\/linux-sunucu-guvenligi-icin-zorunlu-10-temel-adim\/\">Linux Sunucu G\u00fcvenli\u011fi i\u00e7in Zorunlu 10 Temel Ad\u0131m<\/a> i\u00e7indeki g\u00fcncelleme, minimum yetki ve log izleme kontrolleri burada do\u011frudan i\u015finize yarar.<\/p>\n<h2 id=\"ne-zaman-vpsi-buyutmek-ne-zaman-mimariyi-degistirmek-gerekir\">Ne zaman VPS&#8217;i b\u00fcy\u00fctmek, ne zaman mimariyi de\u011fi\u015ftirmek gerekir?<\/h2>\n<p>CPU&#8217;yu iki kat\u0131na \u00e7\u0131karmak uygulama katman\u0131ndaki k\u00fc\u00e7\u00fck bir flood i\u00e7in zaman kazand\u0131rabilir. Bant geni\u015fli\u011fini dolduran bir sald\u0131r\u0131da ise daha g\u00fc\u00e7l\u00fc VPS \u00e7o\u011fu zaman yaln\u0131zca daha pahal\u0131 bir hedef olur. \u00d6nce darbo\u011faz\u0131 bulun.<\/p>\n<table>\n<thead>\n<tr>\n<th>Belirti<\/th>\n<th>Muhtemel katman<\/th>\n<th>\u0130lk bak\u0131lacak yer<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Hat kapasitesi s\u00fcrekli dolu<\/td>\n<td>Volumetrik trafik<\/td>\n<td>Hosting sa\u011flay\u0131c\u0131s\u0131 ve upstream filtreleme<\/td>\n<\/tr>\n<tr>\n<td>SYN-RECV say\u0131s\u0131 a\u015f\u0131r\u0131 y\u00fcksek<\/td>\n<td>TCP ba\u011flant\u0131 t\u00fcketimi<\/td>\n<td>Kernel saya\u00e7lar\u0131, firewall ve sa\u011flay\u0131c\u0131 korumas\u0131<\/td>\n<\/tr>\n<tr>\n<td>CPU y\u00fcksek, istekler normal g\u00f6r\u00fcn\u00fcyor<\/td>\n<td>HTTP veya uygulama katman\u0131<\/td>\n<td>nginx loglar\u0131, endpoint ve veritaban\u0131 sorgular\u0131<\/td>\n<\/tr>\n<tr>\n<td>RAM ve worker say\u0131s\u0131 t\u00fckeniyor<\/td>\n<td>Uygulama kaynak t\u00fcketimi<\/td>\n<td>PHP-FPM, API limitleri, cache ve queue<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0130\u015f y\u00fck\u00fcn\u00fcz d\u00fczenli olarak y\u00fcksek trafik al\u0131yorsa CDN, load balancer, ayr\u0131 veritaban\u0131, rate limit servisi ve \u00e7oklu origin gibi bile\u015fenler g\u00fcndeme gelebilir. Her site i\u00e7in bunlar\u0131n tamam\u0131 gerekmez. Tek bir VPS \u00fczerinde \u00e7al\u0131\u015fan k\u00fc\u00e7\u00fck bir uygulamada \u00f6nce gereksiz portlar\u0131 kapatmak, pahal\u0131 sorgular\u0131 d\u00fczeltmek ve sa\u011flay\u0131c\u0131n\u0131n DDoS politikas\u0131n\u0131 \u00f6\u011frenmek daha ak\u0131ll\u0131 bir ba\u015flang\u0131\u00e7t\u0131r.<\/p>\n<p>Yedekleri de bu plan\u0131n d\u0131\u015f\u0131nda b\u0131rakmay\u0131n. DDoS do\u011frudan veriyi silmeyebilir; panik s\u0131ras\u0131nda yanl\u0131\u015f komut \u00e7al\u0131\u015ft\u0131rmak, firewall de\u011fi\u015fikli\u011fiyle servisleri bozmak veya sald\u0131r\u0131 sonras\u0131nda sistemi yeniden kurmak yine m\u00fcmk\u00fcnd\u00fcr. Test edilmemi\u015f yedek yaln\u0131zca dosya koleksiyonudur. Geri d\u00f6n\u00fc\u015f prosed\u00fcr\u00fcn\u00fc ayr\u0131 bir VPS&#8217;te deneyin ve m\u00fcmk\u00fcnse ayl\u0131k bir restore provas\u0131 yap\u0131n.<\/p>\n<h2 id=\"yapilmamasi-gereken-kisa-yollar\">Yap\u0131lmamas\u0131 gereken k\u0131sa yollar<\/h2>\n<ul>\n<li><strong>Her \u015feyi root olarak \u00e7al\u0131\u015ft\u0131rmak:<\/strong> Sald\u0131r\u0131 s\u0131ras\u0131nda hata yapma maliyetini art\u0131r\u0131r. Y\u00f6netim i\u015flemlerinde sudo ve ayr\u0131 kullan\u0131c\u0131lar kullan\u0131n.<\/li>\n<li><strong>SSH portunu de\u011fi\u015ftirip g\u00fcvende oldu\u011funu sanmak:<\/strong> G\u00fcr\u00fclt\u00fcy\u00fc azaltabilir ama kimlik do\u011frulama ve firewall a\u00e7\u0131\u011f\u0131n\u0131 kapatmaz.<\/li>\n<li><strong>Her gelen IP&#8217;yi elle engellemek:<\/strong> Da\u011f\u0131t\u0131k sald\u0131r\u0131da liste h\u0131zla b\u00fcy\u00fcr ve yanl\u0131\u015f pozitif \u00fcretir.<\/li>\n<li><strong>Firewall&#8217;\u0131 tamamen kapatmak:<\/strong> Te\u015fhis i\u00e7in k\u0131sa s\u00fcreli bir test bile olsa a\u00e7\u0131k b\u0131rak\u0131lm\u0131\u015f pencere unutulabilir.<\/li>\n<li><strong>Log okumadan reboot etmek:<\/strong> K\u00f6k nedeni saklar ve ba\u011flant\u0131 tablolar\u0131n\u0131 s\u0131f\u0131rlar.<\/li>\n<li><strong>Limitsiz rate limit uygulamak:<\/strong> Ger\u00e7ek kullan\u0131c\u0131lar\u0131 ve NAT arkas\u0131ndaki m\u00fc\u015fterileri de engelleyebilirsiniz.<\/li>\n<\/ul>\n<p>Benim pahal\u0131 hatalar\u0131m\u0131n \u00e7o\u011fu teknik bilgi eksikli\u011finden de\u011fil, olay an\u0131nda plan\u0131n olmamas\u0131ndan \u00e7\u0131kt\u0131. Kimin aranaca\u011f\u0131n\u0131, hangi IP&#8217;nin origin oldu\u011funu, hangi portlar\u0131n gerekli oldu\u011funu ve geri d\u00f6n\u00fc\u015f ad\u0131mlar\u0131n\u0131 sald\u0131r\u0131 yokken yaz\u0131l\u0131 hale getirin. K\u00fc\u00e7\u00fck bir runbook, gece vardiyas\u0131nda haf\u0131zadan daha g\u00fcvenilirdir.<\/p>\n<h2 id=\"vps-icin-pratik-ddos-kontrol-listesi\">VPS i\u00e7in pratik DDoS kontrol listesi<\/h2>\n<ol>\n<li>VPS&#8217;inizin public IPv4 ve IPv6 adreslerini, a\u00e7\u0131k portlar\u0131n\u0131 ve kritik servislerini listeleyin.<\/li>\n<li>Hosting sa\u011flay\u0131c\u0131n\u0131z\u0131n volumetrik sald\u0131r\u0131 e\u015fi\u011fini, otomatik filtreleme politikas\u0131n\u0131 ve acil ileti\u015fim kanal\u0131n\u0131 \u00f6\u011frenin.<\/li>\n<li>SSH&#8217;yi anahtar do\u011frulama ve y\u00f6netim IP&#8217;si k\u0131s\u0131tlamas\u0131yla koruyun.<\/li>\n<li>Gereksiz servisleri kapat\u0131n; MySQL, Redis ve y\u00f6netim panellerini do\u011frudan internete a\u00e7may\u0131n.<\/li>\n<li>nginx veya uygulama katman\u0131nda giri\u015f, arama ve API endpoint&#8217;leri i\u00e7in makul kotalar tan\u0131mlay\u0131n.<\/li>\n<li>CDN kullan\u0131yorsan\u0131z origin IP&#8217;sini gizleyin ve firewall&#8217;\u0131 yaln\u0131zca proxy a\u011flar\u0131na g\u00f6re d\u00fczenleyin.<\/li>\n<li>Prometheus, Grafana veya mevcut monitoring sisteminizde a\u011f, ba\u011flant\u0131, CPU, RAM ve hata oran\u0131 alarmlar\u0131 olu\u015fturun.<\/li>\n<li>Sald\u0131r\u0131 s\u0131ras\u0131nda kullan\u0131lacak komutlar\u0131 ve sa\u011flay\u0131c\u0131ya g\u00f6nderilecek bilgileri bir runbook&#8217;a yaz\u0131n.<\/li>\n<li>Yedekleri farkl\u0131 bir konumda tutun ve geri y\u00fcklemeyi d\u00fczenli olarak test edin.<\/li>\n<\/ol>\n<p>DDoS sald\u0131r\u0131s\u0131 nedir sorusunun k\u0131sa cevab\u0131, hizmeti eri\u015filemez k\u0131lmak i\u00e7in da\u011f\u0131t\u0131k kaynaklardan trafik veya istek \u00fcretmektir. VPS&#8217;i koruman\u0131n yolu ise tek bir firewall kural\u0131ndan ge\u00e7mez: kapasiteyi do\u011fru yerde filtreleyen sa\u011flay\u0131c\u0131, \u00f6l\u00e7\u00fcl\u00fc yerel kurallar, cache, uygulama limitleri ve sakin bir m\u00fcdahale plan\u0131 birlikte gerekir.<\/p>\n<p>\u015eimdi kendi sunucunuzda <code>ss -lntup<\/code> \u00e7al\u0131\u015ft\u0131r\u0131n ve ger\u00e7ekten d\u0131\u015far\u0131dan eri\u015filmesi gereken servisleri i\u015faretleyin. Ben bu kontrol\u00fc d\u00fczenli yapmaya ba\u015flad\u0131\u011f\u0131mda, &#8220;ge\u00e7ici&#8221; diye a\u00e7\u0131lm\u0131\u015f iki y\u00f6netim portunun aylarca a\u00e7\u0131k kald\u0131\u011f\u0131n\u0131 g\u00f6rm\u00fc\u015ft\u00fcm. Ge\u00e7icilik, kay\u0131t alt\u0131na al\u0131nmad\u0131\u011f\u0131nda kal\u0131c\u0131 bir yap\u0131land\u0131rma bi\u00e7imine d\u00f6n\u00fc\u015f\u00fcyor.<\/p>\n<h2 id=\"sik-sorulan-sorular\">S\u0131k Sorulan Sorular<\/h2>\n<h3>DDoS sald\u0131r\u0131s\u0131 ile normal trafik art\u0131\u015f\u0131n\u0131 nas\u0131l ay\u0131rt ederim?<\/h3>\n<p>Grafiklerdeki ani y\u00fckseli\u015fi tek ba\u015f\u0131na \u00f6l\u00e7\u00fct almay\u0131n; kaynak IP da\u011f\u0131l\u0131m\u0131n\u0131, istek yollar\u0131n\u0131, User-Agent bilgisini, HTTP hata oran\u0131n\u0131 ve uygulama kaynak kullan\u0131m\u0131n\u0131 birlikte inceleyin. Kampanya trafi\u011finde genellikle anlaml\u0131 URL&#8217;ler ve tutarl\u0131 istemci davran\u0131\u015f\u0131 g\u00f6r\u00fcl\u00fcrken sald\u0131r\u0131da \u00e7ok say\u0131da anormal \u00f6r\u00fcnt\u00fc bulunabilir.<\/p>\n<h3>VPS firewall&#8217;\u0131 DDoS sald\u0131r\u0131s\u0131n\u0131 tamamen engeller mi?<\/h3>\n<p>Hay\u0131r. Firewall k\u00fc\u00e7\u00fck ve orta \u00f6l\u00e7ekli ba\u011flant\u0131 ya da uygulama katman\u0131 bask\u0131s\u0131n\u0131 azaltabilir, fakat internet hatt\u0131n\u0131z\u0131 dolduran volumetrik sald\u0131r\u0131y\u0131 VPS&#8217;e ula\u015ft\u0131ktan sonra durduramaz. Bu durumda veri merkezi veya upstream seviyesinde filtreleme gerekir.<\/p>\n<h3>CDN kullanmak VPS&#8217;in DDoS korumas\u0131 i\u00e7in yeterli midir?<\/h3>\n<p>Web trafi\u011fi a\u00e7\u0131s\u0131ndan ciddi bir katman ekler, fakat origin IP&#8217;niz a\u00e7\u0131\u011fa \u00e7\u0131km\u0131\u015fsa sald\u0131rgan CDN&#8217;i atlayabilir. DNS kay\u0131tlar\u0131n\u0131, eski alt alan adlar\u0131n\u0131, e-posta ve di\u011fer servisleri kontrol edip origin firewall&#8217;\u0131n\u0131 proxy a\u011flar\u0131yla s\u0131n\u0131rland\u0131rman\u0131z gerekir.<\/p>\n<h3>DDoS s\u0131ras\u0131nda sunucuyu yeniden ba\u015flatmal\u0131 m\u0131y\u0131m?<\/h3>\n<p>Genellikle ilk ad\u0131m bu olmamal\u0131. \u00d6nce trafik, ba\u011flant\u0131 durumlar\u0131, kernel loglar\u0131 ve sa\u011flay\u0131c\u0131 grafikleriyle kan\u0131t toplay\u0131n; yeniden ba\u015flatma yaln\u0131zca kaynaklar\u0131 ge\u00e7ici olarak temizler ve sald\u0131r\u0131n\u0131n nedenini \u00e7\u00f6zmez.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DDoS sald\u0131r\u0131s\u0131n\u0131n VPS \u00fczerindeki etkilerini, sald\u0131r\u0131 t\u00fcrlerini ve yerel firewall&#8217;dan sa\u011flay\u0131c\u0131 filtrelemesine kadar uygulanabilir koruma ad\u0131mlar\u0131n\u0131 anlat\u0131yorum.<\/p>\n","protected":false},"author":2,"featured_media":413,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[497],"tags":[1486,233,448,1488,41,398],"class_list":["post-415","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-veri-merkezi","tag-ddos","tag-hosting","tag-linux-sunucu-guvenligi","tag-nftables","tag-nginx","tag-vps-guvenligi"],"lang":"tr","translations":{"tr":415,"en":416},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/comments?post=415"}],"version-history":[{"count":1,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/415\/revisions"}],"predecessor-version":[{"id":417,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/415\/revisions\/417"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/media\/413"}],"wp:attachment":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/media?parent=415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/categories?post=415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/tags?post=415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}