8 Nisan 2009 Çarşamba

I ve A arasındaki fark


-A = append = ekle => kuralı ilgili chainin en sonuna ekler.
-I = insert = sok => kuralı ilgili chainde, belirtilen sıraya ekler, eğer sıra belirtilmiyorsa ilk kural olarak ekler.

Botnete Çözüm Konusu

Merhabalar arkadaşlar;

Botnet saldırıları biliyorsunuz ki Çözümsüz gibi birşey, fakat ben bu işe biraz kafa yormuş olan birisi olarak, Türklerin yani bizim her olaya komik ve hızlı bir çözüm bulduğumuz gibi buna da Çözüm bulacağımız kanaatindeyim.

Bundan sonra Bilgisayar başında geçirdiğim zamanın yaklaşık %80'nini Botnet üzerinde geçirmeyi düşünüyorum ve buna başladım. Ne gibi çözümler olabilir? Nasıl atlatmalıyız? %kaç yavaşlatabilir/etkisiz hale getirebiliriz? Bu soruların cevaplarını bulmak için zorlayacağım.

Bu projemi bugünden sonra başlatıyorum ve faydalı bir çözüm bulunduğunda bunu ücretsiz olarak Tüm Türk Webmasterlerine bildireceğim.

Şimdi durduk yere neden böyle bir konu açtın, git bul sonra gel diyen arkadaşlar olabilir ve bu arkadaşlarıma hak veriyorum ama Ben Sunucu güvenliğini elimden geldiği kadar profesyonelce yapabiliyorum, Bilgim Apache Sistemleri ve Sunucu gelen verilere cevap verme gibi bilgilere yetmiyor.

Bu konuyu sizden bilgi almak ve Bilgiyi kullanmak için açtım. En basit olaylardan En Profesyonel olaylara kadar siz değerli arkadaşlarımdan yardım alacağım.

Bu konuya kafa yormuş tarikogut, Ni-Osman ve test alanları sağlayan -elazığlı168- ( ne kadar kendisi test alanı sağlamak istemese de şartlar onu zorluyor ) gibi dostlarımızında yardımlarıyla En Basitinden en Profesyoneline kadar Bilgileri tartışacağımız bir konu olmasını istedim.

İstediğim tam olarak birkaç soruyu sorarak başlamak istiyorum..Yapılabilirse Olumlu, Yapılamazsa Olumsuz yazıp ufaktan bir de bilgi verip geçiştirebilirsiniz. Herkes aklında olan çözüm yollarını burda paylaşırsa sevinirim.

1-) Sunucuya gelen paket sayısına göre sınırlama yapabilir miyiz? (apache kasar biliyorum ama gelen veriye göre sunucu özelliklerini belirtirseniz o daha iyi olur)

2-) Bize yoğun ping gönderen ip numarasında uyarı verdirebilir miyiz? ( xss'de alert verdirmek gibi, apache veya sunucumuz onun benzeri bir yanıt verebilir mi?)

3-) Turktelekomda örnek bir IP 77.78.79.80 ise IP yenilendiğindeki oluşacak yeni IP'yi bilebilme/bulabilme imkanımız var mı? Yani belirli bir Algoritması mevcut mu?

4-) IRC'lerde botları şutlayabilen bir program yazmıştık arkadaşımla 4 sene önce. Hostname, ident vs gibi şeylere bakıp Bot'u sunucuya almıyordu. Botnet'te böyle bir çözüm getirebilir miyiz? Kendimize botnet yapıp bunun sunucumuza gelirken kullandığı kimlikleri öğrenebilir miyiz?


Şimdilik bunları öğrenmek istiyorum, Cevapları geldikçe yeni sorular soracağım ve cevaplamanızı isteyeceğim.

Katılan herkese teşekkürler. %100 çözüm bulabileceğimiz kanaatindeyim..

Ayrıca konunun sabitlenmesi olanağımız varsa, çok mutlu olurum..

Bağlantı dosyası Config.php phpcipher ile cripto etmek

Merhaba arkadaşlar malum kötü niyetli arkadaşlar sitenizin barındığı serverea sızıp config.php nizi execute command , shell gibi yöntemler ile okuyup Mysql veritabanınıza bağlanıp sitenize zarar verebilirler kısa bir araştırma sonucu ioncube ve zend gibi çalışan cripto sistemiyle config.php cripto edip bir nebze olsun koruma sağlamış olursunuz

Başlamadan önce config.php bağlantı dosyanızı .zip formatında sıkıştırın

Giriş: PHPCipher Members Login
user: free
pass: free

Giriş yaptıktan sonra: http://www.phpcipher.com/encrypt.php Buraya girin

En altta Source Code Yazan kısıma ziplediğiniz config dosyasını seçin ve alttaki güvenlik kodunu giriniz ve Start encodinge tıklayınız ve size ziplenmiş halde tekrar config dosyanızı verecektir bilgisayarınıza indirin ve zip li dosyayı açınız içinde config.php dışında phpcipher.bin formatında başka bir dosyada göreceksiniz bunu config.php 'niz hangi dizindeyse aynı dizine birlikte yükleyiniz Kullandığım kadarıyla herhangi bir performans sorunuda yaratmadı

Not: siteden sadece kendi bilgisayarınızdan 1 kere dosya şifreleme hakkınız var buda aklınızda bulunsun deneme test amaçlı yükleme yapmayınız tabi ip değiştirip bir şekilde tekrar şifreleyebilirsiniz

Webgüvenliği için yazılarım devam edecektir

/tmp klasörü güvenli mi?


Unix tabanlı işletim sistemlerinde /tmp klasörü (adı üzerinde olduğu gibi) geçici dosyaların kopyalandığı klasördür. (Windows taki Local Settings/Temp klasörü gibi). Geçici depolama alanı olduğundan aynı anda bir çok kullanıcı hatta işlem (process) kullanıcıları bu alanı kullanmak zorundalar. tmp klasörü güvenliğini sağlarken sadece belli kullanıcılara yazma hakkı vermek gibi bir durum söz konusu değil.

Ancak backdoor, trojan, botnet gibi programlar da kendilerini güvenilir bir yer olan tmp klasörüne saklayabiliyorlar. Ancak tmp klasörüne kopyalanan dosyalar çalıştırılamaz şekilde ayarlanırsa /tmp ile ilgili güvenlik riskleri ortadan kaldırılmış olur.

Bunun için:

dev klasörüne girin

cd /dev

Yaklaşık 200 MB lık yeni bir alan oluşturun. Daha fazlası lazım ise (neden ki) count değerinden değiştirebilirsiniz.

dd if=/dev/zero of=tmpMnt bs=1024 count=200000

Dosya sistemini oluşturun

/sbin/mke2fs /dev/tmpMnt

Eski /tmp klasöründeki dosyalar lazım ise yedeğini almayı unutmayın!

Yeni oluşturduğunuz alanı tmp klasörüne maount edin

mount -o loop,noexec,nosuid,rw /dev/tmpMnt /tmp

Yeni tmp klasörünün yeni izinleri:

chmod 1777 /tmp

Bilgisayarın her açılışında /tmp klasörüne oluşturduğumuz alanın mount edilmesi için:

Kullandığınız editör ile /etc/fstab dosyasını açın, fstab dosyasının en alt satırına:

/dev/tmpMnt /tmp ext2 loop,noexec,nosuid,rw 0 0

Dosyanın üstündeki satırlara göre tab ları ayarlayabilirsiniz.




Artık tmp klasörünüze bir shell dosyası koyarak chmod +x yaparak çalıştırmayı deneyebilirsiniz.

Not: Bu işlemleri dikkatsiz yapmanız durumunda bilgisayarınız yeniden başlamayabilir, tmp klasörü kullanılamaz hale gelerek bir çok program hatalar üretebilir. Dikkatle ve başka yerlerden de araştırarak uygulayınız.


Paket Gönderici

100 mbit lik yerel ağda ağın gerçek hızını tespit edebilmek için bir uygulama geliştirmeye çalışıyorum.
Mantık şu: 1500 byte büyüklüğündeki paketlerden 1 sn. de 10 tane göndersek 15.000 byte=120.000 bit=~117 mbit.
Bu arada birim zamanda gönderilen paketlerin kaç tanesinin alındığını kayıt ederek, 1 dakikalık test sonunda alınan paket / alınması gereken paket ile ağın pratikteki hızını tespit etmeye çalıştım.
Önce, çok kısa beklemeler ile (normalde 10 ms. de bir paket göndermem gerekirken) 1 ms. civarında bekleyerek veri gönderip almayı denedim. Bilgisayarı bırakıp dışarı çıktım. 3 saati aşkın bir süre sonunda baktığımda şu sonuçla karşılaştım:


























Resimdeki gönderilen paket değerine baktığınızda 3 saat 19 dakikada 12 milyar 884 milyon değeri görünüyor ki, ne teoride ne de pratikte bu kadar paket göndermek mümkün değil. Kullandığım Switch Cisco Catalyst, her iki pc deki ethernet kartı Intel, yani ağ donanımında sorun olmamalı idi.

Anladığım kadarıyla TCP/IP stack’i arka arkaya çok fazla raw paket gönderilmeye çalışıldığında bunu engelliyor. http://research.eeye.com/html/tools/RT20060808-1.html adresinde XP SP2 ve w2k3 te TCP SYN paketlerinde böyle bir durumun söz konusu anlatılıyor.

Stack in çöküp çökmediğini kontrol etmek için Internete bağlanmayı denedim. Maalesef bağlanamadı.

Sonuç: Microsoft’un ethernet sürücülerine direk çok hızlı yüklenildiğinde stack çok kısa sürede çöküyor ve ne veri girişine ne de çıkışına izin veriyor!

Bekleme değerlerini daha normal değerlere düşürüp, VOIP ya da MMS stream gibi mantıklı paketler oluşturup veri alışverişi yaparak hız testini yenileyeceğim.

Merak ettiğim konulardan biri ise Microsoft TCP/IP stack’inin (özellikle Vista) Gigabit network e bağlı olduğunda ne kadar dayanabileceği. Kısa vadede eve Gbit networku kurmayı düşünmediğimden bu testi bir süre daha ertelemem gerekli.