OpenSSL enc Uygulamasi

Asagi yukari bir, birbucuk ay kadar once OpenSSL’in tum uygulamaciklari icin belgelendirme yapmaya baslamistim. Tum belgeleri yazmayi bitirdigimde CC ile lisanslayacagim ve ozgurce dagitilabilecek ufak bir kitapcik sekline getirmeyi planliyorum. Ikincil amacim da OpenSSL’e biraz daha hakim olabilmek.

Simdiye kadar uzerinde cokca calisamadigimdan ancak dgst, enc, rand, version ve genel man sayfasini tamamlayabildim. Bir de cogu ozellik OpenSSL tarafindan da belgelendirilmemis oldugundan ne ise yaradigini anlayip aciklamasi epey vakit aliyor bir parametrenin. Bu ufak girizgahtan sonra enc icin yazdigim belgenin ham halini genel bir fikir vermesi adina paylasmak istedim. Bu erken asamada gelebilecek geri donuslere gore uzun donemli haftasonu projemin ilerleyen asamalarini da sekillendirebiliriz diye umuyorum.

OpenSSL’in enc komutu sifreleme ve sifre cozme islemlerini gerceklestirmeye yariyor. Bu belgede enc komutunun man sayfasinda listelenmemisse bile kaynak kodda gozuken tum secenekleri orneklerle birlikte aciklamaya calisacagim.

Kullanilabilecek seceneklerin detayina inmeden once zlib ve base64’a kisaca bir goz atalim. Eger OpenSSL’e ilk arguman olarak enc yerine zlib ya da base64 gecirirseniz ve platformunuzdaki openssl zlib destegi ile birlikte derlendiyse girdi dosyanizin zlib ile sikistirilmis halini ya da base64 ile kodlanmis halini elde edebilirsiniz. Diyelim icerigi asagida gosterilen gibi bir metin dosyaniz var.

Bu sifrelerim dosyasini zlib ile sikistirmak isterseniz calistirmaniz gereken komut soyle olacaktir.

Eger zlib ile sifrelenmis (aslinda sikistirilmis) dosya alirsaniz da icerigini gormek icin vermeniz gereken komut soyle olacaktir.

Zlib ornegiyle base64 ornegi birebir ayni. Yukaridaki komutlarda zlib gordugunuz yere base64 yazarsaniz base64 ile sifreleyecektir. Komutun genel kullanimi hakkinda bir fikir olusmaya baslamistir saniyorum.

enc komutunun alabilecegi butun seceneklere kisaca goz gezdirebiliriz bu noktada.

Kullanilabilecek sifreleme yontemleri ise soyle; aes, bf, camellia, cast, cast5, des, id, rc2, rc4, seed ve tabii bunlarin cesitli anahtar boyutuna ve sifreleme moduna gore olusturulacak varyasyonlari. Burada amac OpenSSL’in enc komutunun nasil calistigini aciklamak oldugundan her bir sifreleme yontemini aciklamaya calismak gibi bir cilginligi denemeyecegim.

Kaldigimiz yerden seceneklere devam edelim. Simdi ayni dosyayi aes-256-ctr ile sifreleyelim ve ciktiyi da eposta ile kolayca aktarabilmek icin base64 olarak verelim.

Eger yukaridaki ornekte de goruldugu uzere sifreyi komutu verirken gostermezsek bize bir sifre soracaktir. Ardindan sifreyi dogrulayacak ve dosyamizi ancak ve ancak iki sifre birbirleriyle tutuyorsa duzgun sekilde olusturacaktir. Komutta aslinda enc kelimesini kullanmayabiliriz. Eger kullanmaz isek aes-256-ctr’i basinda – isareti olmadan kullanmamiz gerekir. Yani su sekilde.

Elimizdeki sifreli dosyalari acmak icin ise yapmamiz gereken su;

Yine bu komutun kisa versiyonu da soyle olacaktir;

-pass secenegi bes deger alabiliyor. Burada eger sifreyi bize sormasini istemezsek yukaridaki orneklerde oldugu gibi, nereden okumasi gerektigini belirtiyoruz. Yani ornegin, komut satirindan sifre gecirmek eger problem degilse su sekilde yapabiliriz sifreleme islemimizi;

Goruldugu uzere dogrudan sifre vermek icin pass:sifre seklinde tanimlamamiz gerekiyor. env:degisken, file:/dosya/yolu, fd:dosyatanimlayicinumara, stdin kullanabilecegimiz diger secenekler. Ornegin bir de file:/dosya/yolu ile yapalim islemimizi. Tabii dosya kullanildiginda parolamizi karmasiklastirabiliriz. Mesela once 2048 bitlik bir dosya olusturalim /dev/urandom yardimiyla.

Alternatif olarak anahtari soyle de uretebiliriz.

Simdi bu dosya ile sifrelemeyi deneyelim sifreleri iceren metini.

Artik anahtarimizi USB bellegimize atabilir, yine daha once ornekledigimiz sekilde base64 ile sifreleyip(kodlayip) bir ciktisini aldiktan sonra ailemize/arkadaslarimiza saklamasi icin gonderebilir ya da cuzdanimiza atabiliriz.

-p ve -v secenekleri yaptigimiz sifrelemedeki kullanilan girdi ve cikti boyutlarini, uretilen anahtari, salt ve baslangic vektoru degerlerini goruntulemek icin kullaniliyor. Bilgi amacli oldugundan sifreleme ya da desifre etme islemleri sirasinda kullanilmasi hayati onem tasimiyor. -P herhangi bir sifreleme/desifreleme yapmadan anahtari, baslangic vektorunu ve salt degerini bastirip programi sonlandiriyor.

-a ve -base64 orneklerini yukarida vermistik -z ise base64 yerine zlib kullaniyor. Burada deginilmesi gereken bir de -A var. -A yine -a ya da -base64 ile ayni isi yapiyor fakat ciktiyi tek bir satir olarak olusturuyor. Dolayisiyla cok buyuk dosyalarda calismayabiliyor.

-salt ontanimli oldugundan yukaridaki orneklerde kullanmamistik fakat yine komutun okunabilirligi acisindan harici olarak kullanilabilir. -nosalt ise salt kullanilmamasi gerektigini soyluyor ki sozluk ataklarini etkin kilabileceginden kullanilmasi pek onerilmiyor.

-K, -S ve -iv ile hex formatinda sirasiyla anahtar, salt ve baslangic vektoru degerlerini komuta gecirmek mumkun. Fakat eger bir parola kullaniyorsaniz -pass orneklerinde oldugu gibi bu degerleri haricen gecirmenize gerek yok(salt degerini vermek isteyebilirsiniz belki) cunku gecirdiginiz paroladan hesaplanacaklardir.

Acikca gorulecegi uzere eger -K ile anahtar ve -iv ile baslangic vektoru degerlerini veriyorsaniz salt hic kullanilmiyor. Bunun nedeni salt degerinin verdiginiz paroladan anahtar uretilirken kullanilmasi. Yani zaten anahtari verdiginizde bir de salt degeri vermenize gerek yok. -K kullanirsaniz -iv de kullanmaniz gerekiyor. Fakat hem -K verip hem de sifre verip -iv degerini OpenSSL’den sifreden turetmesini istemek de su ornekte oldugu gibi mumkun.

-md parolamizdan bir anahtar olustururken kullanilacak hash fonksiyonunu belirtmeye yariyor. normalde md5 kullaniyor. Ornek;

salt kullanmayarak parolamizdan uretilen anahtarlarin hangi hash fonksiyonu ile uretilmis oldugunu gormus olduk. Farkettiginiz uzere ayni anahtari urettiginden, onceden olusturulmus sozluklerle saldirilabilir hale gelecektir verimiz. Dolayisiyla salt kullanmak cok onemli. md4, md5, ripemd160, sha, sha1, sha224, sha256, sha384, sha512 ve whirlpool kullanilabilecek hash fonksiyonlari olarak siralanabilir.

-engine ayri bir uretec kullanabilmek icin veriliyor komuta. Ornegin rastgele sayi ureten bir donaniminiz varsa ya da baska bir uretec kullanmak istiyorsaniz bunu secebilirsiniz.

-debug ile girdi cikti islemlerinde bir sorun yasaniyorsa nerede sorun yasandigini gorebilirsiniz. Daha cok gelistiricilere yonelik olmakla birlikte baskasi tarafindan yazilmis bir komutun hic openssl kullanmadiysaniz ne yaptigini ogrenmek icin de kullanilabilir belki. Ornek;

Bellekte gerekli islemler icin alan olusturuyor. Dosyayi okuyor. Sifreliyor. Base64’a ceviriyor. Cikti dosyasina yaziyor ve calisirken olusturdugu bellek alanini geri birakiyor.

-none ile cipher degerini bosaltiyoruz. Dolayisiyla herhangi bir sifreleme yapilmiyor. Bunu niye yapmak isteyebilirsiniz bir kullanim alani bulamadim acikcasi. Yine de ornekleyelim;

-nopad’i aciklamak icin biraz ayrintiya girmek gerekecek. Bazi sifreleme modlari verilen mesajin boyutunun ontanimli blok boyutunda olmasini gerektirir. Ornegin aes-cbc bunlardan birisi. Simdi 10 bytelik bir karakter dizisini sifreleyelim ve cikti boyutu ne kadar olacak ona bakalim.

Gordugunuz gibi 16 byte’a tamamladi. Yani cbc 16 byte’lik bloklar bekliyor bizden. O halde -nopad kullanip 10 bytelik dizgi icin ne yapacak ona bakalim.

Hata verdi. Demek ki CBC icin illa 16 byte’a tamamlamamiz gerek mesajimizi. Peki mesajimiz 16 byte ise o zaman ne olacak?

Yine bir sonraki 16 byte’a tamamladi. Fakat sifrelenmis metinin boyutu iki katina cikti. O halde 16 byte’in tam sayi kati oldugunu bildigimiz mesajlar icin -nopad kullanip ciktinin boyutundan tasarruf edebiliriz. Hemen ornekleyecek olursak;

Farkettiginiz uzere bu sefer padding yapmadi, boylelikle biz de boyuttan tasarruf etmis olduk. Iste -nopad de bu ise yariyor. Fakat bu secenegin guvenlik acisindan bir sorun cikarip cikarmayacagindan emin degilim.

Diyelim bir veri akisiniz var ve karsi tarafa gondermeden once sifrelemek istiyorsunuz. Bu islemi de yazida bolca ornekledigimiz aes-256-ctr -blok gibi gozuken stream cipher :)- ile yapmaya karar verdiniz. -bufsize secenegi OpenSSL’in gerekli islemi gerceklestirmeden once ne kadar veriyi almasi gerektigini soyluyor. Yani kullandiginiz sifreden bagimsiz olarak OpenSSL’e gelen veriyle alakali bir secenek -bufsize. Asagidakinden daha uygun bir senaryo yaratamadim ne yazik ki ornek icin, eger akliniza gelen daha anlasilir bir ornek varsa eklemenizi rica ederim.

netcat’e benim icin 10001 numarali portu dinlemesini soyledim. Bu porttan gelen veri akisi OpenSSL ile desifre edilecek ve ardindan mplayer’a gonderilecek. Bu istemci komutumuz. Baska bir terminal penceresinde sunucu komutunu girelim.

Elimde bulunan 1.2GB boyutunda final2.avi isimli videoyu aes-256-ctr ile sifreleyip netcat yardimiyla bu sifrelenmis akisi localhosttaki 10001 numarali porta yolla diyorum. Burada -bufsize 350 milyon byte olarak verildi ki arada gecen sure hissedilebilir olsun. Yani OpenSSL 350M byte veri alana kadar bekliyor ardindan islemi yapiyor. Benim sistemimde mplayer’in baslamasi bu sartlar altinda yaklasik 4 saniye suruyor. Cunku OpenSSL buffer’inin dolmasini bekliyor. Eger 350 milyon yerine 350 bin kullanirsam mplayer sunucu komutunu calistirdigim anda ekrana geliyor yani OpenSSL buffer’ini zaten almis ve islemi gerceklestirmis oluyor. Simdi normalde bunu aslinda tam tersi icin kullanirsiniz. Yani ne kadar az bufsize verirseniz o kadar puruzsuz kesintisiz bir akisiniz olacaktir. Ote yandan bufsize degeri ne kadar kuculurse CPU’ya binen yuk de o oranda artacaktir. O yuzden veri akisinin kesintisizligi ve CPU yuku arasindaki optimum deger bulunmalidir eger boyle bir is yapacaksaniz. Uc bir ornek oldu ama -bufsize’in ne is yaptigini iyi acikladi saniyorum.

Deginmedigimiz bir tek -non-fips-allow kaldi. Bu da FIPS versiyonu kurulmussa eger, standartta olmayan sifre turlerinin kullanilabilmesini sagliyor.

OpenSSL’in ufak bir parcasi olan enc iste burada anlatildigi kadar kullanmasi kolay ve guclu bir uygulama. Ne yazik ki belge bulmakta sikinti yasandigi icin son kullanici arasinda cok yayginlasmis degil. Bu yaziyla sifreleme ve desifreleme islemlerinin aslinda ne kadar kolay yapilabilecegini gostermeye calistim. Bir yandan da enc icin yalandan man sayfasi olmus oldu. Umarim birilerinin isine yarar bir gun.

21 Aralık 2013

Posted In: Gezegen

Debian (testing) üzerinde Matlab (2012b) mex dosyası derlemek

Bu güzide işi yapmak için gcc-4.4 paketini yüklemek gerekiyor. Yükledikten sonra da sistemin gördüğü gcc komutunu değiştirmek gerekiyor. Bunu daha düzgün bir şekilde Matlab ayarlarından yapmak da mümkün olsa gerek.

aptitude install gcc-4.4 libstdc++6-4.4-dev
rm /usr/bin/gcc
ln -s /usr/bin/gcc-4.4 /usr/bin/gcc

19 Aralık 2013

Posted In: linux

Ubuntu Bağış

En son yazımı 346 gün önce yazmışım ve penguenci’ye yazı yazmaya ara vermişim. Uzun zamandır sitenin tozunu almak, örümcek ağlarını temizlemek ve yeniden yazmak aklımdan geçiyor ancak bir türlü fırsatı ve enerjiyi bulamıyordum. Merak edenlere GNU/Linux’dan vazgeçmiş değilim halen kullandığım tüm sistemlerde GNU/Linux üzerinde çalışmaktayım. Aktif olarak iş için kullandığım sistemim üzerindeki Linux Mint 11...»

15 Aralık 2013

Posted In: donation, Kategorisiz, ubuntu, ubuntu bağış

F Klavye dönemi başlıyor

10 Aralık 2013'te yayınlanan Başbakanlık Genelgesi[1] hem eğitim öğretim hem de çalışma hayatımızda yeni bir önemi başlatacak gibi duruyor.



Genelge çok kısa ama okumaya üşenenler için özetleyeyim. Bilgisayar kullanımı hızla artmış, bilgi toplumuna dönüşmemiz için hızlı yazmamız büyük önem taşıyormuş, F klavye Türk diline daha uygunmuş. Tüm kamu kurum ve kuruluşlarında kademeli olarak F klavyeye geçiş yapılması öngörülen genelge ile 2017 sonuna kadar bu geçişin yapılması isteniyor.

İhale aşaması başlamış olanlar haricinde kamuda bundan sonra alınan tüm bilgisayarların F klavye ile alınması zorunluluğu da getirildiği gibi mevcut klavyelerin de yenilenmesi gerekecekmiş.

Bu yeni klavyenin eğitimi için de www.fklavye.org.tr adresinden uzaktan eğitim yapılması planlanıyor. Özel sektörün bile teşviklerle F klavye kullanımına özendirilmesi genelgenin hedefleri arasında.

2010 yılında çıkan ve kamunun IPv6 kullanımına geçişini kademeli ve ayrıntılı olarak tarif eden Kamu Kurum ve Kuruluşları için IPv6'ya Geçiş Planı[2] başlıklı genelgenin uygulanmasının bir fiyasko olduğunu daha önce yazmıştım[3]. Bunun da sonunun benzer olacağını fikrindeyim.

Ülke olarak sorunumuzun hızlı yazmak değil daha kaliteli içerik üretmek olduğunu düşünüyorum. Bu genelgenin de uygulanabileceğini hiç sanmıyorum.

[1] http://www.resmigazete.gov.tr/eskiler/2013/12/20131210-9.htm
[2] http://www.resmigazete.gov.tr/eskiler/2010/12/20101208-7.htm
[3] http://www.nyucel.com/2013/09/ipv6-gecis-fiyaskosu.html

10 Aralık 2013

Posted In: genelge, Gezegen, haber, klavye

Berlin ve Avrupa Özgür Yazılım Vakfı Maceram

Geçtiğimiz hafta Avrupa Özgür Yazılım Vakfı'nın (Free Software Foundation Europe-FSFE) daveti ile Document Freedom Day kampanyası için düzenlenen uluslararası toplantıya katılmak için gittiğim Berlin'de hayatımın en güzel beş gününü geçirdim.


Document Freedom Day (Belge Özgürlüğü Günü), açık standartlar ve açık belge biçimleri konusunda kullanıcıları bilinçlendirerek belgelerimizi özgür kılmak amacıyla 2008 yılından beri her mart ayının son Çarşamba günü kutlanan özel bir gün. Tek günlük bir kutlama olmaktan ziyade uzun soluklu bir kampanyanın sadece bir parçası.

2012 senesinden beri bu özel günün Türkiye'de de kutlanması ve daha fazla kişiye yayılması için heyecanlı bir şekilde FSFE ekibi ile çalışmam diğer özgür yazılım kampanyaları ile de devam etmişti.

Birkaç ay önce Avrupa Özgür Yazılım Vakfı'ndan bir e-posta aldım. FSFE masraflarımı karşılayacaklarını belirtip, Berlin'deki DFD toplantısına katılmamdan mutluluk duyacaklarını iletmişlerdi.

Vize alma süreci, henüz işe başlayalı 5. ayımda oluşum, hafta içi 4 gün izin almam gerekliliği gibi endişelerim bir bir ortadan kalktı ve kendimi bir anda Berlin'de buldum.


Lucile benim havalimanından karşıladığında yol boyunca o kadar keyifli sohbet ettik ki kalacağım yere eşyalarımı bırakmadan önce FSFE ofisini görmek isteyip istemediğimi sordu. Elimde hediye dolu bavulum ile FSFE ofisine gittim.

Bir yıla yakın süredir birlikte çalıştığım, yazıştığım kişilerin sıcak karşılaması o kadar güzeldi ki kendimi bulunduğum şehirde de, ofiste de bir saniye bile yabancı hissetmemiştim.



FSFE ofisinin yan odasında duran KDE Vakfı'nı da görebilme imkanım ise mükemmel bir sürpriz olmuştu!


Lucile'in daveti ile geldiğim akşam kendimi Swing dans dersinde bulmuştum. O kadar keyifli duruyor ki izlemesi! Mezun olmadan önce "İstanbul'a bir taşınayım kesin Lindy Hop dansı için ders alacağım" deyişlerimi hatırladım bir an. Hâlâ bu dediğimi yapmamış olduğum için kendime kızdım.


Dans sonrası Lucile ve erkek arkadaşı Stefan ile yemek yiyerek, özgür yazılımdan hayatın her alanına farklı konulardan konuştuğumuz benim için çok değerli bir sohbet gerçekleştirdik.


Lucile FSFE'de intern olarak çalışıp, bir sürü kampanya için yoğun olarak katkı verip, muhteşem işler çıkartıyor. Stefan ise Apache Subversion ve OpenBSD için yazılım geliştirici olarak çalışıyor.

IT'de iş analisti olarak çalıştığımı ve yaptığım işleri öğrenen Stefan  bana Outreach Program for Women'dan bana uygun olabilecek bazı projeler olduğunu belirtip, bunlara göz atmamı önerdi. Kendisinin de bir dönem mentor olduğundan bahsetti.

Berlin'deki ilk gecem, Stefan'ın her akşam köşede Türk mezeleri satan dükkandan "Kısır" alarak evine gittiğini öğrenmem ile bitti. Lucile bu fotoğraf için verdiği poz şahane, değil mi? :)


Ertesi gün Document Freedom Day (DFD) için toplantımız başlamıştı. Sabahtan akşama yoğun bir şekilde DFD için bu sene dünyada yapılabilecekler, bütçe hesaplamaları, yerel etkinlik aktiviteleri, yeni web sitesinin demosu ve tartışılması, kimlerin nasıl görev alacağı ile ilgili konuşmalar sabahtan akşama sürmüştü. Bu arada toplantı sırasında Lucile'in blog yazısında okuyabileceğimiz tekniği kullandık aralarda. Zamanı yönetmek adına süper oldu!

Hediye dolu bavul içinde uzun zamandır yazıştığım, görüştüğüm arkadaşların hediyelerinin yanı sıra bir de Türk Lokumu bulunuyordu.



Fotoğrafımızda da görüldüğü üzere Avrupa Özgür Yazılım Vakfı'nda Türk Lokumu yendi. Evet bunu yaptım! :)  Türk kahvesi ile ilgili anılar için okumaya devam ediniz.

 Toplantının ilk gününün akşamı hep birlikte ofise yakın bir yerde yemek yiyerek, Almanya'ya özgü pek şahane şeyleri içtikten sonra (kaldığım süre o kadar çok o güzel şeylerden içtim ki, burada özlem içerisindeyim onlara) Lucile'in daveti ile düzenlenecek Cryptoparty ön toplantısı için Lucile'in evine gittik. Ben her ne kadar inanılmaz yorgun olduğum için erken kalmak zorunda kalsam da Berlin'de bulunduğum her anın dolu dolu geçtiğine şimdi bir kez daha emin oluyorum.


Fotoğrafta gördüğünüz pengueni Berlin'de görmem ve almam arasındaki düşünme payı tahmin edildiği üzere inanılmaz kısa sürdü. :)

Toplantının ikinci günündeki sunumlardan biri Türkiye'deki Belge Özgürlüğü Günü çalışmaları hakkındaydı. 30-40 dakika boyunca Türkiye'de 2012 yılında bir labda pasta keserek başlayan etkinlik sürecinin, ikinci senesinde nasıl da büyüdüğünü, bu sene ülkemizde açık standartlar için neler yapılabileceğini anlattım, konuştuk, tartıştık..

 Toplantı sırasında birçok not aldık. Belge Özgürlüğü Günü ve Türkiye içerikli yazımı sonraya saklıyorum. Bu muhtemelen daha çok madde içeren bir yazı olacak.
Lucile Falgueyrac toplantı ile ilgili bir blog yazısı: DFD international meeting, Nov 2014


Anna da İngiltere'de müthiş bir şekilde özgür yazılım kampanyaları için çabalayan diğer bir kadın arkadaşımız. Ne güzel ki toplantımızda kadın yoğunluğu hiç de küçümsenecek kadar çoktu!

Berlin'deki dördüncü günüm toplantıların da bitmesi ile tamamen boştum. Şanslıyım ki kaldığım süre boyunca herkes kendimi başka bir ülkede yalnız hissetmemem için bulunduğum her dakika, her saat farklı tekliflerle gelmişti.

Dördüncü günün sabahı erkek kardeşimin siparişlerini toplamak ile geçti. Hediye dolu gelen bavul, giderken de aynı şekilde doluydu.

           

Öğlen ise buluşup, birlikte yemeğe çıktık.


Yemeğin ardından Sam'e "Türk kahvesi nasıl yapılır?" şeklinde hızlandırılmış bir ders verdim.



Sam, Türk Lokumu getireceğimi duyduğunda; yoğun tatları, kahveler ile içmekten mutlu olduğunu söylemişti. "Türk kahvesi ve Türk lokumu ayrı olmaz zaten" diyerek buradan fincan takımı, kahve, cezve vs hediye almıştım ona da.

FSFE kampanya yöneticisi arkadaşımız Sam hızlı bir şekilde kahve nasıl yapılır öğrendi. Şahane de kahve pişirdi!


Yemek, kahve merasimin ardından çok merak ettiğim Computer Spiele Museum'e gidip, bilgisayar oyunları müzesi nasıl olurmuş diyerek Matti ve Paul ile zaman geçirdik. Berlin'e yolunuz düşerse muhakkak buraya da uğrayın.

 

Gece ise Erik ile buluştuk ve Punk Rock konserine ve çıkışta bir ev partisine gittik. Çok değişik ama bir o kadar da eğlenceli bir gece oldu benim için. 


"Son gece nasılsa, uyumasak da olur" diye Erik ile sabaha karşı 5'e kadar gezerken iş arkadaşlarıma getirmek için uygun çikolata arama maceramız ise unutamayacaklarımdan oldu.

Tabii aşağıdaki kareler de..



 

10 Aralık 2013

Posted In: Berlin, BerlindeOlanBerlindeKalır, dfd2013, free software, Germany, GLFS, gnu/linux

DigitalOcean, Linux VPS servis sağlayıcısı (PaaS)

Yıllardır Linode müşterisiyim, fakat iki ay önce rekabetçi bir  firma olan DigitalOcean dan haberdar oldum. 20GB SSD, 512MB RAM, 1TB trafikli VPS ler aylık 5$’dan başlıyor. Ücretlendirmenin saatlik yapıldığını, snapshot alıp sildiğiniz makinelerin ücretlendirilmediğini de belirtmekte fayda var.

LKD eposta listelerinde tavsiye istenildiğinde, LINODE muhakkak öneriliyor. Bundan böyle LINODE ile birlikte taviye edilebilecek bir firma daha var, DIGITAL OCEAN.

doLinode bir süredir hizmet vermekte, teknoloji düşkünleri arasında güvenilir ve sevilen bir hizmet sağlayıcı. Digital Ocean yeni bir firma, popülerliği bu yıl katlanarak arttı. Henüz bir yılı geçmiş bir firma için oldukça dikkat çekici rakamlar veriliyor. Web sayfalarının bu yükselişteki etkisinden emin değilim fakat sayfalarına ilk girdiğimde servisleri harika göründü, kullanmaya başladıktan sonra popülerliğinin neden bu denli hızlı arttığını anladım, kullanışlı ve sade

1999 yılından bu yana çok fazla sayıda hosting, VPS ve fiziksek sunucu firması ile çalıştım. Bunların bir kısmı çok ucuz bir kısmı göreceli güçlü servislerdi. Bu vizyonla baktığımda bu yeni servisle ilgili oldukça olumlu düşüncelerim var.

Uzun yıllar Linode kullandım ve son iki aydır DigitalOcean kullanıyorum.  Yönettiğim birkaç web sitesi ve online hizmet için DigitalOcean‘a 10$ ödeyerek bir VPS kurdum. Fiyatı Linode’ye kıyasla çekici geldi, özellikle trafik miktarı ve Avrupa konumlu olması. Servislerini test etmek ve Linoda’ye alternatif bir seçenek olup olmadıklarını görmek istedim. Linode müşterisi olduğum sürece hiçbir sorun yaşamadım fakat yeni servisleri test etmenin ve araştırmanın faydası oluyor.

Netcraft‘ın yayınladığı rapora göre DigitalOcean çılgın oranlarla büyüyor. Haberdeki ölçümlere göre, Aralık 2012’den Haziran 2013’e kadar geçen kısa sürede, Internet’e çıkan bilgisayar sayısı, 100’den 7000’e çıkmış.

Yükselişin DigitalOcean için iyi olduğu açık, peki müşteriler için de böyle mi? Müşteri memnuniyetini bu hızlı yükselişte görmek gayet kolay. Fısıltı yoluyla yapılan reklam bu tip bir yükselişte oldukça önemli ve ben dahi aslında şuanda bunu yapıyorum. Bunu bana yaptırabilmiş olmaları aslında herşeyi doğru ve iyi yapmalarıyla ilgili. Bu büyümeyle birlikte mutsuz insanların da sayısı artsaydı bu hızlıca duyulurdu, grafiklere yansırdı. Tabi bu yazıyı yazmamda, verdiğim bağlantılardaki referans kodunun da etkisi yok değil :)

Aramalarımda bulduğum hız testlerinde, DO’nun sistemi daha ucuz olmasına karşın ortalama performansının daha iyi olduğunu gördüm. SSD kullanmalarının bu durumdaki payı büyük, çünkü CPU odaklı testlerde düşük sonuçlar almış.

Şimdilik benden bu kadar. İki firma arasında bir seçim yaptıysanız, fiyat ve özelliklere baktıysanız ve bir karar verdiyseniz, hata yapmış olma ihtimaliniz yok. Fakat ben olsam küçük projelerimde DigitalOcean seçip SSD nin performansından faydalanır, büyük projelerimde Linode’u seçip gelişmiş özellikleri kullanırdım. (Linode’un kontrol panelinde daha fazla özellik bulunuyor. Longview adında yeni bir istatistik toplama ve grafikleme servisi başlattılar. Sunucunuzun üzerine yükleyerek sisteminizi daha verimli kullanmanıza yardımcı olan bir servis.)

6 Aralık 2013

Posted In: lkd, teknik, tr

DigitalOcean, Linux VPS servis sağlayıcısı (PaaS)

Yıllardır Linode müşterisiyim, fakat iki ay önce rekabetçi bir  firma olan DigitalOcean dan haberdar oldum. 20GB SSD, 512MB RAM, 1TB trafikli VPS ler aylık 5$’dan başlıyor. Ücretlendirmenin saatlik yapıldığını, snapshot alıp sildiğiniz makinelerin ücretlendirilmediğini de belirtmekte fayda var.

LKD eposta listelerinde tavsiye istenildiğinde, LINODE muhakkak öneriliyor. Bundan böyle LINODE ile birlikte taviye edilebilecek bir firma daha var, DIGITAL OCEAN.

doLinode bir süredir hizmet vermekte, teknoloji düşkünleri arasında güvenilir ve sevilen bir hizmet sağlayıcı. Digital Ocean yeni bir firma, popülerliği bu yıl katlanarak arttı. Henüz bir yılı geçmiş bir firma için oldukça dikkat çekici rakamlar veriliyor. Web sayfalarının bu yükselişteki etkisinden emin değilim fakat sayfalarına ilk girdiğimde servisleri harika göründü, kullanmaya başladıktan sonra popülerliğinin neden bu denli hızlı arttığını anladım, kullanışlı ve sade

1999 yılından bu yana çok fazla sayıda hosting, VPS ve fiziksek sunucu firması ile çalıştım. Bunların bir kısmı çok ucuz bir kısmı göreceli güçlü servislerdi. Bu vizyonla baktığımda bu yeni servisle ilgili oldukça olumlu düşüncelerim var.

Uzun yıllar Linode kullandım ve son iki aydır DigitalOcean kullanıyorum.  Yönettiğim birkaç web sitesi ve online hizmet için DigitalOcean‘a 10$ ödeyerek bir VPS kurdum. Fiyatı Linode’ye kıyasla çekici geldi, özellikle trafik miktarı ve Avrupa konumlu olması. Servislerini test etmek ve Linoda’ye alternatif bir seçenek olup olmadıklarını görmek istedim. Linode müşterisi olduğum sürece hiçbir sorun yaşamadım fakat yeni servisleri test etmenin ve araştırmanın faydası oluyor.

Netcraft‘ın yayınladığı rapora göre DigitalOcean çılgın oranlarla büyüyor. Haberdeki ölçümlere göre, Aralık 2012’den Haziran 2013’e kadar geçen kısa sürede, Internet’e çıkan bilgisayar sayısı, 100’den 7000’e çıkmış.

Yükselişin DigitalOcean için iyi olduğu açık, peki müşteriler için de böyle mi? Müşteri memnuniyetini bu hızlı yükselişte görmek gayet kolay. Fısıltı yoluyla yapılan reklam bu tip bir yükselişte oldukça önemli ve ben dahi aslında şuanda bunu yapıyorum. Bunu bana yaptırabilmiş olmaları aslında herşeyi doğru ve iyi yapmalarıyla ilgili. Bu büyümeyle birlikte mutsuz insanların da sayısı artsaydı bu hızlıca duyulurdu, grafiklere yansırdı. Tabi bu yazıyı yazmamda, verdiğim bağlantılardaki referans kodunun da etkisi yok değil :)

Aramalarımda bulduğum hız testlerinde, DO’nun sistemi daha ucuz olmasına karşın ortalama performansının daha iyi olduğunu gördüm. SSD kullanmalarının bu durumdaki payı büyük, çünkü CPU odaklı testlerde düşük sonuçlar almış.

Şimdilik benden bu kadar. İki firma arasında bir seçim yaptıysanız, fiyat ve özelliklere baktıysanız ve bir karar verdiyseniz, hata yapmış olma ihtimaliniz yok. Fakat ben olsam küçük projelerimde DigitalOcean seçip SSD nin performansından faydalanır, büyük projelerimde Linode’u seçip gelişmiş özellikleri kullanırdım. (Linode’un kontrol panelinde daha fazla özellik bulunuyor. Longview adında yeni bir istatistik toplama ve grafikleme servisi başlattılar. Sunucunuzun üzerine yükleyerek sisteminizi daha verimli kullanmanıza yardımcı olan bir servis.)

6 Aralık 2013

Posted In: lkd, teknik, tr

PHP – Redis ile Pub/Sub İşlemi

Redis, kendi içerisinde pub/sub (publish/subscribe) yapılmasına olanak sağlıyor.

Peki pub/sub pattern nedir?

Pub/sub pattern (desen), mesajlaşma pattern’ı olarak geçer. Temelinde; takip edilen bir olayın, takipçilere duyurulması yatar.

Gerçek hayattan örnek verirsek: Öğretmen publish (pub) görevini üstlenir. Öğrenciler ise subscribe (sub) görevini üstlenir. Öğretmen sınav sonuçlarını panoya asar. Öğrenciler de sınav sonucunu bekledikleri için sürekli gözleri panoda bir haber beklerler.

Öncelikle öğretmen görevini yani pub kısmına gözatalım:

pub.php

$teacher = new Predis\Client(array('host' => '127.0.0.1'));

$teacher->publish('Pano', 'Ali, sinavdan AA aldin.');

Gördüğünüz gibi öğretmen Pano’ya Ali isimli öğrencinin sınav bilgisini girdi. Ali de Pano kanalına (channel) aktif olarak abone.

Ali isimli öğrenci Pano kanalını ise şöyle dinleyebiliyor:

sub.php

ini_set("default_socket_timeout", -1); // Ilgili socket surekli dinleniyor

$client = new Predis\Client(array('host' => '127.0.0.1'));

$redis = new Predis\PubSub\DispatcherLoop($client);

$redis->attachCallback('Pano', 'showResult');

$redis->run();

function showResult($data) {
    static $i = 0;
    echo ++$i . '. ogrencinin sonucu aciklandi: ' . $data . PHP_EOL;
}

Deneme yapabilmek için öncelikle sub.php dosyasını ardından pub.php dosyasını çalıştırın. Böylece ilk önce kullanıcıyı Pano isimli kanala abone ediyorsunuz ve artık Pano’dan gelecek mesaajı ekrana basmaya hazır oluyor. Daha sonra pub.php ile Pano‘ya veri giriyorsunuz.

pub.php dosyasını biraz genişletelim. Öğretmen daha çok sınav sonucu açıklasın.

$teacher = new Predis\Client(array('host' => '127.0.0.1'));

$students = array('Ali', 'Ayse', 'Veli', 'Hasan', 'Fatma', 'Oguz');
$results = array('AA', 'BA', 'DC', 'CC', 'AA', 'BA');

for($i = 0; $i < 6; $i++) {
    $teacher->publish('Pano', $students[$i] . ', sinavdan ' . $results[$i] . ' aldin.');
    sleep(1);
}

Yeni pub.php dosyası ile öğretmen, iki dizideki verileri eşleştirerek birer saniye aralıklarla Pano’ya sınav sonuçlarını koyuyor.

Ayrıca bkz.: Observer Design Pattern

5 Aralık 2013

Posted In: Genel, Gezegen, php, pub/sub, redis

RAM’in Düşük Gözükmesi ve Çözümü

Benim gibi bilgisayarınızı uzun süre kullanmaktan yanaysanız arada sırada donanım güncellemesi yapmanız gerekiyor. 2009 Mayısında aldığım HP 550 Dizüstü bilgisayarımın RAM kapasitesi zaman zaman yetersiz kalıyor ve sabit diski de yeni bir dağıt için beni düşündürüyordu.
Araştırmalar neticesinde bir adet Samsung 840Basic 120GB Sata3 2.5″ SSD Disk ve Hi-Level 2GB 667MHz DDR2 Notebook Ram alıp taktım. Eski RAM’inizin yanına yeni bir RAM alırken önemli olan mevcut RAM’le yeni alacağınız RAM’in frekanslarının ve pin diziliminin uyuşması. Yeni alacağınız RAM frekansı eski RAM’inizinkinden düşük olmamalı ama yüksek olabilir.
Yeni RAM’i takınca makinede 4GB RAM oldu ancak Ubuntu 3GB olarak gördü. Acaba yeni RAM yanlışlıkla 1GB mı gönderildi diye Komut satırında sudo lshw komutu ile tüm donanım bilgilerini görüntüleyip aşağıdaki satırları okuyunca işin donanımla ilgili olmadığını anladım.

*-memory
açıklama: Sistem Belleği
physical id: a
slot: System board or motherboard
boyut: 4GiB
*-bank:0
açıklama: SODIMM DDR2 Eşzamanlı 655 MHz (1,5 ns)
üretici: 0000000000000000
physical id: 0
serial: 00000000
slot: DIMM #1
boyut: 2GiB
genişlik: 64 bits
saat: 655MHz (1.5ns)
*-bank:1
açıklama: SODIMM DDR2 Eşzamanlı 667 MHz (1,5 ns)
ürün: HYMP125S64CP8-Y5
üretici: Hyundai Electronics
physical id: 1
serial: 00003112
slot: DIMM #2
boyut: 2GiB
genişlik: 64 bits
saat: 667MHz (1.5ns)

Kısa bir internet taramasından sonra sorunun PAE (Physical Address Extension – Fiziksel Adres Genişletmesi ) ile ilgili olduğunu görüp Ubuntu topluluk sayfasında çözümünü buldum. Eski x86-32bit mimarili işlemciler en fazla 4GB’a kadar belleği adresleyebiliyorlar. 4GB üstü RAM için PAE eklentisi olan işletim sistemi çekirdeği yüklemek gerekiyor. Bunun için komut satırınızda aşağıdaki komutları çalıştırmanız yeterli olacaktır.


sudo apt-get install linux-generic-pae linux-headers-generic-pae

Bilgisayarınızı yeniden başlattığınızda RAM miktarını doğru bir şekilde göreceksiniz.

Uyarı: Bu işlemlerden önce veri kayıplarının önüne geçmek için bilgilerinizi yedeklemeniz önerilir…

3 Aralık 2013

Posted In: Gelişmiş, pae, ram düşük gözüküyor, ram yükseltme, ubuntu da ram düşük gözüküyor

Saat dediğin böyle olur

Ne yazık ki son birkaç yıldır kullandığım saat kayışım eskisi gibi kendi başına ayakta duramıyor. (Saatçiler adına ciddi bir konfigürasyon problemi) : )

e17 ile yeni sistemimi kurarkene kendime yeni bir saat de yaptım. İşte karşınızda:

xterm -geometry 38x8+570+350 -title tty-clock tty-clock

tty-clock paketini yüklemiş olmanız gerekli tabiki. Eğer bunu pencere yöneticinizde bir tuş kombinasyonuna komut olarak atarsanız tadından yenmiyor. Örnek, “Can saat kaç?” hemen bakayım “cmd+s” cevap çok hızlı geliyor “Saat 11:41, hatta tarihi de söyleyebilirim 2013-12-02”. Çıkmak için “q” tuşuna basmak yeterli.

Yaşasın!

2 Aralık 2013

Posted In: linux

Twitter Auto Publish Powered By : XYZScripts.com