Keepalived ile IP Failover

Keepalived VRRP protokolünü kullanarak yüksek erişilebilirlik (high-availability) gereksinimlerinden IP sanallaştırmayı sağlıyor. Ağ uzmanlarının ağ geçidi (gateway) yedekliliği için kullandıkları VRRP, linux sistemlerde de harika sonuç veriyor. Keepalived, IP failover yeteneğini ikiden daha fazla sunucu için sağlayacak yeteneğe sahip. Ayrıca birden çok VRRP grubu oluşturarak birden çok sanal IP adresinin farklı sunucular üzerine atanması sağlanabiliyor, bu sayede yük dağıtmak mümkün.

Diğer failover sistemlerinden farklı olarak VRRP‘de sunucular birbirlerini multicast trafik ile izliyorlar. Bu multicast adres (224.0.0.18) Internet Assigned Numbers Authority (IANA) in kayıtlı standart multicast adreslerinden. (daha&helliip;)


DNSSEC Nedir?

DNSSECDNSSEC sayısal verinin dijital imza ile doğrulanmasına dayanan, bilişim güvenliğini tamamlayan teknolojilerdendir. DNS sisteminin güvenlik eksiklerini tamamlamak için geliştirilmiştir. DNSSEC doğrulamasının yapılabilmesi için kök alandan son alan adına kadar tüm basamakların DNSSEC uyumlu olması gerekmektedir. Kökün imzalanmış olması, güven zincirinin ön şartıdır (.tr henüz DNSSEC uyumlu değil). DNSSEC mekanizmasında trafik kriptolanmaz, ziyaret edilen alan adının işaret ettiği IP adreslerinin doğruluğu kanıtlanır.

DNSSEC son kullanıcının kullandığı alan adının doğru web sayfasına veya servislere karşılık gelen IP adresine ait olduğunu güvence altına alır. Bu Internet’in tüm güvenlik problemlerini çözmez fakat kritik bir bölümün güvenliğini kontrol altına alır. SSL (https) gibi diğer teknolojilerle birlikte kullanıldığında güvenliği iyileştirilmiş bir platform sağlar. (daha&helliip;)


SSH nasıl 2-faktörlü doğrulama ile korunur? (Two-Factor Authentication)

authenticatorBu yazımda, Ubuntu SSH bağlantılarımızda Google Authenticator PAM modülü ile nasıl 2-faktörlü (2-step verification) hesap doğurlaması yapılır bunu inceleyeceğiz.

Kullanıcı adı ve şifrelerin güvenliğini sağlamak bilişim uzmanları için bile zaman zaman pek mümkün olmuyor. Ele geçirilen sunucu sistemlerinde kayıtlı binlerce hesap tek seferde çalınabiliyor. Zararlı yazılım yüklü bilgisayarlardan giriş yapmak, kötü niyetli yazılımlara hesap bilgilerini girmeniz hesabınızın çalınması ile sonuçlanabilir. İşin kötü tarafı, yıllarca hesabınızın çalındığından haberdar olmadan hesabınızı kullanmaya devam ediyor olabilirsiniz.

Hesap güvenliğimizi bir adım ileri götürerek SSH bağlantılarımıza 2 adımlı giriş nasıl entegre edilir inceleyelim;

Google Authenticator uygulamasını akıllı telefonunuza yükledikten sonra yapılacak basit bir aktivasyon işleminin ardından, ssh bağlantısı kurarken önce doğrulama kodunu telefonunuzdan öğrenerek kullanmanız gerekecek. DİKKAT; Authenticator hangi kullanıcı için aktif edildiyse sonraki işlemlerde sadece o kullanıcı SSH ile erişim sağlayabilir. (daha&helliip;)


Uzak Windows sistemlerin işlem listesi nasıl alınır?

Uzak Windows sistemlerin üzerinde çalışan işlem listesini almak için içsel gelen “tasklist” komutu kullanılabilir. Bir domain ortamında değilseniz, kullanıcı adı ve parolayı komut satırından yazarak uzak sistemdeki liste çekilebilir. (tasklist /?)

Komut satırını yönetici yetkileri ile başlattıktan sonra bir domain ortamındaysanız aşağıdaki komut ile listeyi çekebilirsiniz;

tasklist /s SERVER_NAME

Listede bulunan işlemlerden istediğinizi kapatmak için iki farklı yöntem uygulanabilir;

taskkill /s hostname /PID 1234 /PID 5678
taskkill /s hostname /IM notepad.exe

/t parametresi kullanılarak tüm işlem ağacı sonlandırılabilir.

Uzak sistemde yeni bir işlem başlatma için farklı yöntemler var. Bunlardan birisi Sysinternals’ın geliştirdiği PsExec aracını kullanmak.


Bir SYN-FLOOD Hikayesi

Syn FloodYönetmekte olduğum bir sisteme sürekli olarak SYN paketleri gönderildiğini farketmemin üzerine çalışmalara başladım. Paketlerin gönderilme hızı değişkenlik gösteriyordu; çoğunlukla 1 paket/saniye hızında seyreden trafik zaman zaman saniyede 100 SYN paketi geçiyordu. Yavaş ulaşan paketler gerçek IP’lerden gelirken, hızlı gönderilenler değiştirilmiş kaynak IP sine (IP Spoofing) sahipti -ulaşan paketlerin TTL Time To Live değerlerindeki farklılıktan bunu tespit etmek mümkün-.

Evvelce etkinleştirdiğim SYNCookie özelliği sayesinde kaynak israfı çok artmıyor, sistemim cevap veremez hale gelmiyordu. (yoğun bir saldırıda SYNCookie CPU kullanımını sature edebilir)

netstat -ant|grep SYN_REC

SYNCookie özelliği sayesinde yukarıdaki komutu çalıştırdığımda SYN_REC durumunda bağlantı görmüyordum. Fakat SYNCookie gelen her SYN paketine SYN+ACK cevabı dönüyordu. Bunun önüne geçmeliydim. SYNCookie önlemine ek olarak, aynı IP’den gelen çok fazla SYN paketi olduğunda, bu IP lere SYN+ACK cevabı dönülmeyerek kara listeye alınmasının uygun olacağına karar verdim. (daha&helliip;)


Hızlandırılmış PING

Ping komutunun alışılagelmiş hızı içinizi baymaya başladıysa;

Linux tabanlı sistemlerde -i parametresi ile hız arttırılabiliyor. 0.2 saniyeden daha hızlı olsun istiyorsanız root yetkilerini kullanmanız gerekiyor.

sudo ping -i 0.1 localhost

Windows tabanlı sistemlerde üçüncü parti uygulamalar kullanılması gerekiyor. hrPING hızlı ping atabilme yeteneğine sahip.

hrping -s 100 -t localhost

Artık ping komutundan nasıl performans alınacağını biliyorsunuz, hızlı vızıldamalar.


Ubuntu – Mekanik HDD’leri uyutalım (spin-down)

hddİşletim sistemlerimizi SSD disklerde çalıştırmaya başlasak da, yüksek kapasite için mekanik HDD’ler bir şekilde sistemlerimizde halen bulunuyor. Mekanik disklerin kullanılmadıkları zamanlarda yaptığı gürültüyü kesmek için Linux sistemlerde HDPHARM aracı kullanılabilir. Taşınabilir bir sistemi kullanıyorsanız batarya süresinde de hatırı sayılır iyileşme sağlayacaktır.

hdparm -S 100 /dev/disk/by-uuid/3C1862H318626BB8

Yukarıdaki örnekte UUID si tanımlanmış disk okuma veya yazma yapmadığında, 100*5=500saniye (9dakika) sonra uyku moduna geçecek. Aşağıdaki satırı cron’a ekleyerek her açılışta çalışmasını sağlayabilirsiniz.

@reboot /sbin/hdparm -q -S 100 /dev/disk/by-uuid/3C1862H318626BB8


SSH tünel ile bağlantı güvenliği (SSH Tunnel)

SSH ile bağlantımızı tünelleyerek, istediğimiz noktalar arasında ağ trafiğini kriptolu geçirebiliriz. Bu yöntem hangi durumlar için kullanılabilir;

sshtunnel

• Güvensiz bir İnternet bağlantısı kullandığımız konumlarda bağlantı güvenliğimizi arttırmak
• Ağ filtrelerine takılmamak (ağ filtrelerini aşmak, varsa “kullanım politikası sözleşmenize” aykırı olabilir)
• NAT arkasından gerçek dünyaya soket açmak (NAT arkasından dışarıya servis vermek)
• İnternet çıkışını farklı ülkelere taşıyarak testler yapmak
• Sistemlere uzaktan erişim için bir zıplama noktası oluşturmak (VPN alternatifi)

SSH Tunnel in 3 farklı tipi bulunuyor, bunlar;

• Yerel port yönlendirme (Local port forwarding)
• Uzak port yönlendirme (Remote port forwarding | Reverse Tunnelling)
• Dinamik port yönlendirme (Dynamic port forwarding) (daha&helliip;)


IIS Application Pool, Event Id 5059

IIS 7 kullandığım bir sistemde DefaultAppPool servisi çalışır çalışmaz duruyordu. Event Viewer’de görüntülenen açıklama şu şekildeydi;

EventId 5059:
“Application pool DefaultAppPool has been disabled. Windows Process Activation Service (WAS) encountered a failure when it started a worker process to serve the application pool.”

Bu hatanın nedenlerini inceledikten sonra, sorunun AppPool’a tanımladığım kullanıcı hesabının değişen şifresinden kaynaklandığını tespit ettim. Parola değişim süresi dolduğunda şifremi değiştirmiştim fakat problemin  bir ay sonra ilk yeniden başlatmada yaşanması neden-sonuç ilişkisi kurmamı zorlaştırdı.

AppPool için tanımlanan kullanıcı adı ve parolayı güncelleyip servisi yeniden başlattığınızda sorun çözülecektir.

Doğru bir yapılandırmada SQL ve AppPool için farklı bir kullanıcı tanımlanması ve bu kullanıcıların parolalarının zaman aşımına uğramaması gerekiyor. Tabi bunu yapmadıysanız ve bu satırları okuyorsanız umarım yardımcı olmuştur.

Yaşadığım hatada işleri zorlaştıran IIS’in kullanıcı düşmanı LOG sistemine de dikkat çekmek istiyorum. Problemin nedenini bir satırda yazmak çok zor olmasa gerek. Bir LOG sistemi NE, NEDEN, NE ZAMAN sorularına yanıt vermiyorsa kullanıcı dostu olmaktan uzak olacaktır.


DNS kuvvetlendirmeli DDOS saldırıları (DNS Amplification Attacks)

DDoS

DNS kuvvetlendirmeli DDOS saldırıları haberlere konu oluyor, ve eminim ki bu satırları okuyorsanız bunun bir parçası olup olmadığınızı merak ediyorsunuzdur. Öncelikle DNS kuvvetlendirmeli DDOS saldırılarının nasıl gerçekleştirildiğini inceleyelim. En basit haliyle bu saldırı türünde, kurbanın IP adresi (IP Spoofing) ile DNS sunuculara sorgular gönderilir. Kurban gönderilen bu DNS sorgularının yanıtlarını alır. İlk başta problem değilmiş gibi görünüyor olabilir, gün içerisinde pek çok istemci ve sunucu yoğun DNS sorgu trafiği oluşturuyor. Bu senaryoda yaşanabilecek problemler, DNS sunucularının yapılandırmalarının yetersiz olması, kuvvetlendirmenin yapılıyor olması ve ISP lerin RFC leri tam uygulamıyor olmasından kaynaklanıyor.

Genel amaçlı kamusal DNS sunucu yönetmiyorsanız, sadece kendi alan adlarınızın veya müşterilerinizin IP adreslerinden gelen DNS sorgularını kabul etmelisiniz. Eğer DNS sunucunuz İnternet’e açıksa, recursion tipi DNS sorgularına yanıt vermemeli, sadece otoritesi olduğu alan adlarına ait sorguları yanıtlamalı. Saldırıyı gerçekleştiren taraf recursive DNS sunuculara değiştirilmiş kaynak IP li sorgular gönderir. Recursive DNS sunucu bu sorguların yanıtlarını kurbanın IP adresine döner.

Saldırgan küçük DNS sorguları gönderir, çok fazla DNS kaydı olduğu bilinen bir alanadı için “ANY” paremetresi kullanılarak tüm kayıtlar istenir. Sorgu paketleri 60byte seviyelerindeyken dönülen cevap 3-4kb seviyesinde olabilir. Buda yaklaşık 50-70 katı bir kuvvetlendirme sağlar. Saldırgan küçük DNS sorgularını fazla sayıda recursive DNS sunucuya gönderebilir, ve tüm sunucular kurbana yanıtları döner. Bu yöntem ile kısa süre içerisinde kurbana ezici bir trafik yönlendirilmiş olur.

ISPler, DNS kuvvetlendirme saldırısında da kullanılan kaynak IP değişimiyle gerçekleştirilen saldırıları engelleyebilirler. Internet Engineering Task Force (IETF) – Best Current Practices (BCP) dokümanı olarak Request for Comments (RFC) hazırlamakta. RFC 2827 – BCP 38 “Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing”. Bu dokümanda temel olarak, kaynak IP adresinin istemcinin bulunduğu aralıkta olmaması durumunda paketlerin nasıl düşürüleceği anlatılmakta. Eğer ISP lerin çoğunluğu bu BCP 38 de tanımlanan kurallara uyarsa, pek çok kaynak IP değişikliğine dayanan saldırının önü kesilmiş olacak.

IPv4 adreslerinin azlığından, ev ve iş bağlantılarının pek çoğu Address Translation (NAT) kullanarak Internet üzerindeki IP lere verimli erişim sağlıyor. NAT kullanımı aynı zamanda kaynak IP değişikliği yapılmasına da engel oluyor, çünkü kaynak IP adresi NAT cihazı tarafından yazılıyor. IPv6 yaygınlaştıkça NAT kullanımına duyulan ihtiyaç azalacak. Günümüzde olduğu gibi, IPSler BCP leri IPv6da da takip etmediği taktirde, kaynak IP adresi değişimine dayanan saldırılar artacaktır.

Ayr.bkz. “Yansıma DDOS Atakları (Reflection DDoS Attacks)”

Hamdi ÖZCAN – ozcan.com