17 October 2014

Kitap Tanıtımı: İlizarov Günlüğü


Dostum Sezai Yeniay ilk kitabını ‘İlizarov Günlüğü’nü geçtiğimiz hafta Google Play Kitaplar’da yayımladı. Zor bir zamanında yazdığı ve el birliği ile hazırladığımız bu kitabın burada tanıtımını yapmaktan da kıvanç duymaktayım.

İlizarov Günlüğü

İlizarov Günlüğü

“Sanıldığının aksine doğa en mükemmele evrilmiyor, en kolaya evriliyor…” – Sezai Yeniay, İlizarov Günlüğü

Sezai’nin kitabı bir günlük… Çocukluğunda geçirdiği bir trafik kazası neticesinde yaşadığı onca ameliyattan sonra bir son ameliyatın hikayesi. İlizarov tekniği ile kemik uzatımı sürecinde yaşadıklarını teşvikimizle, başkalarına da faydalı olsun diye, bir internet günlüğünden (http://ilizarovgunlugu.wordpress.com/) yazmaya başlamıştı. Bittiğinde bunu kitaplaştırmak için kendisine söz vermiştim. Geç de olsa eşimin yardımı ve özgür yazılım araçlarıyla bunu başardık.

Kitabı değerlendirmek gerekirse, İlizarov Günlüğü ameliyatı ve teknik-tıbbi yaşananları anlatan bir kitap değil. Kitabı okuduğunuzda kader, talih ve hayatın ne kadar çileli olabileceği ve insanın bir şekilde bu zorlu engeller karşısında kendine bir yol çizebileceğini ve başarabileceğine dair inancınız pekişecektir.

İki gün önce hayatta ortalama bir insanın sahip olabileceği birçok şeye sahip bir insan olan Mehmet Pişkin’in intiharı üzerine hayatı sorgulamış olabilirsiniz… Benzer bir çok örnek gibi, İlizarov Günlüğü ve Sezai’nin hayatını önümüze koyduğumuzda, insanın en temel içgüdüsü olan yaşama güdüsünün ne kadar doğal ve doğru olduğunun görüleceğini düşünüyorum. Mutlak içgüdümüz olan yaşamın asla bize mutlu tarafını garanti etmediğini ve hayat oyununda kuralları biz belirlemesek bile mücadele gücümüzün tahminimizden de üstün olması sayesinde kazanacağımızı düşünüyorum. Galiptir bu yolda mağlup da diyebiliriz. Türümüz böyle… Yoksa alçılanmış kırık ayağı ile kağıt toplamaya çalışan çocuğun yaşam mücadelesini nasıl açıklayabiliriz ki?

En zor en umutsuz anlarda bile zaman içerisinde -bazen ‘o zaman’ durmuş ve geçmiyorcasına can yaksa bile- bir çıkış muhakkak vardır.

Bu nedenle İlizarov Günlüğü’nü okumanızı öneririm.

Kitabın hazırlanışı ile ilgili teknik kısma gelelim. İlizarov Günlüğü tamamen özgür yazılım kullanılarak yazılmış ve e-kitap biçimine dönüştürüldü; GNU/Linux tabanlı özgür işletim sistemleri üzerinde LibreOffice Writer ile yazıldı, LibreOffice için Writer2epub eklentisi ile e-kitap biçimine dönüştürüldü ve e-kitap yönetim yazımları Calibre ve Sigil ile son şekli verildi. Lisans olarak ise özgür bir lisans olan CC BY-SA 4.0 ile lisanslandı.

Eşim ve benim için bu ilk editörlük ve e-kitap oluşturma deneyimimiz oldu.

İlizarov Günlüğü’nü serbest şekilde dağıtmanın yanı sıra, bir sayısal yayıncılık platformunda yayımlamak kitabı daha bir kitap havasında görmemizi sağladı. (Eh biraz eski kafa bizde de var, kitaplar sanal da olsa bir raf üzerinde görülmeyi hakediyor diye düşünüyoruz…)

Nihayet Sezai kitabı Google Play Kitaplar‘da da yayımlamayı başardı.

lİlizarov Günlüğü Google Play'de

İlizarov Günlüğü Google Play’de

Kitabı Google Play Kitaplar‘dan ücretsiz indirebilirsiniz, Google Books uygulaması ile cep telefonunuzda ve tabletinizde veya web okuyucusu ile masaüstü bilgisayarınızda okuyabilirsiniz. Kitabı okuduktan sonra yorum ve değerlendirmenizi kitabın sayfasından yapmanız güzel olacaktır.

Kitabın epub, mobi ve PDF biçimleri de dilerseniz şurada mevcut.

Neyse çok uzatmadan, kitabı indirebileceğiniz bağlantıları paylaşarak yazıyı sonlandırayım.

Son olarak, birçok kişinin faydalanacağı bir birikimi sunduğu için Sezai’yi tekrar kutluyorum. Kitabın editörlüğünü devralarak sürüncemeden kurtaran eşime buradan bir kez daha teşekkür ediyorum.

İyi okumalar.



Açık Kaynak Sistemlerle Siber Saldırı Gözlemleme Sistemi


IstSec 2014 kapsamında yaptığımız, Ossec, Snort, Elasticsearch, Logstash, Kibana kullanarak “Açık Kaynak Sistemlerle Siber Saldırı Gözlemleme Sistemi” kurgulama konusuna değinen konuşmama aitait sunum dosyasını Linux Akademi Slideshare adresine eklendi; ilgilenenler için şöyle:

 


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: ,



11 October 2014

Kitap Yayıncılığı İş Akış Uygulaması Kodlarım GitHub’a Taşındı


2010 yılında bir yayınevi için kitapların yayına hazırlanması sırasında oluşacak hatalara karşı bir kontrol listesi geliştirmiş ve döküman üzerinden de bir uygulama geliştirmiştik.

2014 yılı ortasında yayınevi, web sitesiyle birlikte uygulamayı da kullanımdan kaldırdı.

Ekran görüntülerine şuradan ulaşabileceğiniz uygulamayı GPL Lisansı V3 ile lisanslayıp GitHub üzerinden paylaşıma açtım.

Buyrunuz.

https://github.com/yakusha/dusyayincilik.com



09 October 2014

GitHub veya BitBucket Projesi Nasıl Oluşturulur – Güncellendi


Sizde benim gibi projelerinizi hala Git’e taşımadıysanız, bu döküman tam sizin için hazırlandı.

———| STEP 0 | ———————

Öncelikle projemizin kaynak kodları kamuya açık mı olacak, yoksa sadece
kendimize mi saklayacağız’a karar veriyoruz.

Kapalı kaynak kodlu ise BitBucket >> bitbucket.org
Özgür bir proje olacak ise GitHub >> github.com

sitesinden üyelik oluşturuyoruz.

———| STEP 1 | ———————

BitBucket için >> bitbucket.org/repo/create
GitHub için >> github.com/new

sayfasına gelip projemizi oluşturuyoruz.

BitBucket için

Kapalı kaynak kodlu bir proje olacağına göre

  • Name” kısmında “BenimYeniProjem” olarak dolduruyoruz
  • Access level” kısmında “This is a private repository” seçeneğini seçiyoruz
  • Forking” kısmını No Fork olarak seçiyoruz
  • Repository type” kısmını “git” olarak aktif ediyoruz
  • Create Repository” butonuna tıklıyoruz

GitHub için

Açık kaynak kodlu bir proje olacağına göre

  • Repository name” kısmını “BenimYeniProjem” olarak dolduruyoruz
  • Public/Private seçeneklerinde “Public” seçeneğini işaretliyoruz
  • Initialize this repository with a README” seçeneğini aktif ediyoruz
  • Create Repository” butonuna tıklıyoruz

———| STEP 2 | ———————

Terminalimizden repo arşivimize geliyoruz

cd /benim/repo/arsivim/

Sonrasında Repository sayfamızdaki HTTPS Clone linkini kopyalıyoruz ve git clone komutunu veriyoruz

BitBucket için

git clone https://BenimAdim@bitbucket.org/BenimAdim/BenimYeniProjem.git

GitHub için

git clone https://github.com/BenimAdim/BenimYeniProjem.git

———| STEP 3 | ———————

Önceden hazırlanmış bir projemiz varsa şuraya kopyalıyoruz.

/benim/repo/arsivim/BenimYeniProjem/

Dikkat edilecek noktalar

  • Şifrelerimizi, veritabanı bilgilerimizi, api anahtarlarımızı silmeyi unutmuyoruz
  • Git boş klasörleri arşivlemiyor; boş klasörlerin içine “.gitkeep” isminde boş bir dosya oluşturuyoruz
  • Üstünde değişiklik yapmayacağımız dosya ve klasörleri yoksaymak için projemizin ana dizininde “.gitignore” isminde bir dosya oluşturup dosya ve klasörleri şu mantıkta belirtiyoruz
		dosyaadı.php
		/dizin/*.uzantı
		/dizin/

———| STEP 4 | ———————

Artık projemizi BitBucket veya HitHub arşivine göndermeye “commit” hazırız.

Terminalden projemizin ana dizinine geliyoruz

cd /benim/repo/arsivim/BenimYeniProjem

Önce ne değişiklikler yapmışız görelim

git status

burada değişen dosyaların bilgisini göreceksiniz.

git add . 

(Noktaya Dikkat) bu basit komut “tüm dosyaları” git listesine ekleyecektir.

Lakin git add *.* demiş olsaydık .htaccess dosyaları bu listeye dahil edilmeyecekti.

Yine git add /dizin/* demiş olsaydık, sadece ilgili dizini git listesine ekleyecektik.

git commit -m "bir mesaj"

Twit tadındaki bir kısalıkta değişikliği özetliyoruz

git push -u origin master

İşte şimdi yaptığımız değişikliği sunucuya gönderiyoruz.

Bizden kullanıcı adı ve parola isteyecektir ve işlem hızlıca bitecektir.

İşlem bittiğinden emin olmak için git status komutunu tekrar kullanıyoruz.

git status

“nothing to commit, working directory clean” diyorsa yaptığımız değişiklikler GitHub veya BitBucket arşivine gönderilmiş demektir.

Git bir sürüm takibi sistemi olması sebebiyle doğal olarak çok kullanıcılı ve diğer kullanıcılar tarafından yapılmış değişiklikler olabiliyor. Sunucuya bir değişiklik göndermeden önce

git pull

komutu ile sunucuya gönderilmiş diğer değişiklikleri yerelimize almak doğru bir tercih olacaktır.

———| STEP 5 | ———————

Home dizinimizdeki gizli .bashrc dosyamızın sonuna küçük bir fonksiyon ekleyerek bu işlemleri otomatikleştirebiliriz. Komut adının biraz Cem Yılmazvari olmasında bir sakınca yoktur umarım.

basgit() { 
	git add . && 
	git status && 
	git commit -m "$1" && 
	git push -u origin master; 
}

BitBucket’in Issue Tracker ve Wiki araçları olduğunu da unutmadan; phpBB3’ün Git sayfasını (https://wiki.phpbb.com/Git#phpBB3) ziyaret etmenizi öneririm.

———| DİPNOT && KAYNAKÇA | ———————

Bu anlatımı hazırlarken BitBucket dökümanlarından faydalandım: 1

Atladığım adımlar şunlar

* Git Kurulumu.

* Linux kullandığınızı varsayarsak her dağıtım için farklı komut olabilir.
Ubuntu/Debian ailesi için

sudo apt-get install git

Basit bir arayüz de olsun isterseniz “gitg” paketini kurmanızı öneririm.
Ubuntu/Debian ailesi için

sudo apt-get install gitg

* Windows için şu dökümana bakabilirsiniz: 2

* Git’e kendimizi tanıtmak veya kullanıcı adı ve eposta tanımlamak

Şu dökümanda anlatıldığı gibi: 3
Şu komutlardan ibaret!

git config --global user.name "FIRST_NAME LAST_NAME"
git config --global user.email "MY_NAME@example.com"

* Git’de dallar “branch” üstünde çalışmak ve dalları birleştirmek

Şu dökümanda anlatıldığı gibi: 4

* GitHub’da özgür bir proje başlatmak.

Ben iki özgür projemi GitHub’a aktardım.

>> https://github.com/yakusha/linuxhaber.com
>> https://github.com/yakusha/acikkaynaktv.com



05 October 2014

Linux Kullanıcılarının sahip olduğu 5 Süper “Windows 10″ özelliği!


Merhaba, Ömrünüzün 3 yılını daha sizden alacak Windows 10 işletim sisteminin ilk ön-gösterim sürümü yayınlandı. 5 Süper “Windows 10″ özelliğinin Linux kullanıcıları tarafından yıllardır kullanıldığını biliyor muydunuz?

Bilgisayarlarla tanışmam Amiga 500 ile olsa da (Teşekkürler Sait Ergören) ilk bilgisayar eğitimimi Ms DOS üstünde aldım. Sonrasında Windows 95/98 üstünden Microsoft Office programlarının eğitimini aldım ve bilgisayar donanımları üstüne ilave eğitim aldım (1993-1999). Kişisel olarak uzun yıllar Windows 98, Windows XP, Windows 7 kullandım. Çalıştığım firmalarda Microsoft Server 2003 ve Microsoft Server 2007 kullandım. 2001 yılında F klavye kullanmaya başladım ve asla bırakmadım. 2003 yılında Linux ile tanıştım ama kalıcı bir kullanıcı olmam 2010 yılında oldu. 2010 yılında Windows tarafından kullanılmayı bıraktım.

Windows ile olan ilişkim hep nefret üstüne kuruluydu. Nefterime bir akçe daha dün eklendi. NTFS formatlı Terebayt Harici Diskim kardeşimin Windows 8.1 sürümü yüklü bilgisayarına takıldıktan sonra virüslerin istilasına uğramıştı. Klasör adlarıyla aynı exe dosyalarını sildiğimde ise 100GB data duman olup gitmişti. Teşekkürler Windows 3.1, seninle hiç virüs sorunu yaşamamıştık!

Bu acı olayın ardından, itsFoss.com sitesindeki şu yazıdan (http://itsfoss.com/windows-10-inspired-linux/) özet geçerek konuya dönersek; Windows 10 ile duyurulan veya gözlemlenen 5 yeniliğin yıllardır Linux kullanıcıları tarafından kullanıldığını görürsünüz.

“Multiple desktops aka workspaces” Çoklu Masaüstü veya Çalışma Alanları

Windows 10 ile duyurulan en sansasyonel özellik Çoklu Sanal Masaüstü özelliği. Bu özelliği biz Linux ortamında Çoklu Masaüstü veya Çalışma Alanları olarak biliyoruz ve kullanıyoruz. Çalışan uygulamaları farklı Çalışma Alanlarına bölebiliyorsunuz.

Bu özellik kimilerinin hayatına 2015 yılında, “Windows 10″ ile girecek olsa da Linux ortamında bu özelliğin tarihi 1998 yılında KDE 1.0 sürümünün yayınlanmasına kadar dayanmaktadır.

Popüler Linux dağıtımı Ubuntu 14.04’de bu özellik şöyle görünmektedir.

Gnome Masaüstü ortamının 3.0 sürümünde şöyle görünmektedir.

Video Hali:

“Task view aka window spread” Görev Görünümü veya Sıralı Pencere Listesi

“Window Spread” özelliği de Linux kullanıcılarının hayatına Unity ve Gnome 3 ile girmiş gözelliklerden.

/*Lakin ben Compiz Cube ile bu özelliği kullandığımızı zannediyorum.*/

“Desktop plus online search” Masaüstünde ve İnternette birlikte arama

Windows 10 ile birlikte, arama yaptığınızda sonuçlar arasında internet sonuçları da görüntülenecek. Muhtemelen bing arama motorunu kullanarak getirilecek bu sonuçlar ile 2015 yılınan itibaren Microsft, Arama Motoru pazarından daha pay almaya başlayacak.

Ubuntu bu özelliği Unity ve Unity Lensleri ile tamamlamıştı. Ubuntu 12.04 sürümü ile yayınlanan bu özellik 2012 yılından beri Ubuntu Linux kullanıcıları tarafından kullanılmakta. Bu özellik sayesinde aradığınız kelimeyle ilgili yerel dosyalarınız, yerel uygulamalarınız, ubuntu yazılım merkezindeki uygulama sonuçları, amazon arama sonuçları ve sosyal medya, Wikipedia, Youtube sonuçları ayrı ayrı listelenebiliyor.

Konuyla ilgili Video:

Borderless windows and flat icons: Az kenarlı Pencereler ve Geniş İkonlar

“Windows 10″ ile gelecek olan bu tasarım öğesini Ubuntu 14.04 ile Ubuntu kullanıcıları kullanmaya başladı bile.

Convergence of mobile and desktop OS: Mobil ve Masaüstü Ortamının Birleşmesi

Windows 10 ile gelecek olan bir diğer özellik ise Windows 10 işletim sisteminin Mobil ve Masaüstü ortamında birlikte kullanılması olacak.

Bu özellik Linux dünyasına Meizu telefonların Ubuntu 14.10 yüklü olarak gelmesiyle birkaç ay içinde gelecek.

Daha önce de belirttiğim gibi, bu yazının kaynağı biraz da şu yazıdır: http://itsfoss.com/windows-10-inspired-linux/

Windows 10 büyüdüğünde ise bir Linux olmayı istemektedir :)



03 October 2014

Pebble Uygulamam: Magic Button


Pebble maceram geçen dönem başlamıştı. +Gülşah Köse  ile bir watchface üzerine çalışmıştık. (Textwatch-tr) Bu konu hakkında da kısa bir yazı yazmıştım.

Pebble'ı kurcaladıkça ve kullandıkça, birçok telefon uygulaması için "Bunun da bi pebble uygulaması olsa, bildirimleri gelse iyi olur." diye düşünülüyor. 

Necdet hocanın önerisi ile bu sitenin bir pebble uygulamasını yazmaya başladım. Android ve İOS için de çok çeşitli uygulamaları yazılmış. Başlangıçta ilgimi çok çekmeyen ama öğrenmek için yapacağım bir iş gibi gelmişti. Ama ortaya birşeyler çıktıkça daha bir hevesle çalıştım.

Uygulamayı tanıtacak olursam, adı üstünde çok sihirli bir buton :) Ne kadar ters giden durum varsa saniyeler içinde düzeltebilir. Sınav notunuz kötü geldiyse, trafikte mahsur kaldıysanız, sevgiliniz ile kavga ettiyseniz, elektriğe yine zam geldiyse ve daha birçok kötü sorunun çözümü için bir tuş uzağınızda bir uygulama var artık. Daha güzel haberler vermek dileğiyle :)

(uygulama linki)
(kaynak kod)




IstSec ’14 Istanbul Bilgi Güvenliği Konferansı / 15 Ekim 2014


Her yıl düzenlenen IstSec konferansı bu sene 15 Ekim 2014’de düzenleniyor. Benim de Linux Akademi adına “Açık Kaynak Sistemlerle Siber Saldırı Gözlemleme Sistemi Kurulumu ve Yönetimi” isimli bir konuşma yapacağım konferansa ait program ve diğer tüm bilgilern açıklandığı duyuru şöyle:

Ülkemizde eksikliği her geçen gün daha fazla hissedilen ürün/teknoloji bağımsız, çözüm odaklı güvenlik anlayışına katkı sağlamak amacıyla, her yıl düzenli olarak gerçekleştirilen İstanbul’a özel Bilgi Güvenliği Konferansı olan İstSec, bu yıl 15 Ekim 2014 Tarihinde Bahçeşehir Üniversitesi Beşiktaş Kampüsünde gerçekleştirilecektir.

Türkiye’den ve çeşitli ülkelerden konusunda söz sahibi bilgi güvenliği uzmanlarını ve BT güvenliği meraklılarını buluşturacak olan İstSec 2014’ün bu yılki ana teması “Siber Güvenlikte Ortak Vizyon: Yetişmiş İnsan Kaynağı” olarak belirlenmiştir

Konferans Programı:

İstSec 2014’de farklı konularda 12 farklı uzman yer alacaktır. Konferans boyunca sanallaştırma güvenliği, bulut bilişim güvenliği, siber istihbarat toplama yöntemleri, adli bilişim analizi, mobil telefon güvenliği, yeni nesil tehditler ve çözüm önerileri, yeni nesil hacking yöntemleri, siber tehditler ve Türkiye’nin siber güvenlik yol haritası ve APT(Advanced Persistent Threat) gibi konular detaylıca irdelenerek katılımcıların bilgi sahibi olması sağlanacaktır.

Konferans programına ekteki pdften ve http://www.istsec.org/program/ adresinden ulaşılabilir.

Katılım & Kayıt:

Konferansa katılım ücretsiz olup kayıt yaptırılması gerekmektedir. http://istsec.eventbrite.com/ adresinden kayıt işlemi tamamlanabilir.

İletişim:

Konferansla ilgili tüm geri bildirimler için info@istsec.org adresine e-posta gönderebilirsiniz.

Ulaşım:

Bahçeşehir Üniversitesi Beşiktaş Kampüsü
Çırağan Caddesi Osmanpaşa Mektebi Sokak No: 4 – 6
34353 Beşiktaş, İSTANBUL / TÜRKİYE

İstSec ‘14 Bilgi Güvenliği Konferansı’nda görüşmek üzere!


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: ,



28 September 2014

sysdig: Sistem Seviyesi Analiz ve Sorun Giderme Aracı


Genelde IT altyapılarında meydana gelen problemleri gidermek ve bir daha tekrarlanmayacak şekilde proaktif bir yaklaşımla probleme neden ana faktörleri ortadan kaldırmak  için yapılması gereken ilk şey problemi doğru analiz etmektir. Zira doğru olarak analiz edilen bir problem için üretilen çözümler doğru orantılı olarak kalıcı ve ilgili problemin ya da varyasyonlarının tekrar yaşanmasını engelleyici nitelikte olacaklardır. Hal böyle olunca yani iş, problem analizine geldiğinde bu konudaki başarıyı belirleyici en önemli faktör ise yaklaşımlarınız ve kullandığınız araçlardır.

Bu noktada doğru yaklaşım herzaman için problemin nedenlerini tam olarak anlamaktır. Yani eğer ortada neden kaynaklandığını bilemediğiniz ancak geçici çözümler üretebildiğiniz – ki gerçek hayatta en çok problemli servisi / sunucuyu restart etmeye tekabül eden – bir problem varsa önceliği problemi geçici olarak çözmek yerine nedenlerini anlamaya çalışmak üzere konunun derinlerine inmek ve altyapıyı enine boyuna analiz etmeye vermek en doğru yaklaşım olacaktır.  Problem çözmede en belirleyici ikinci faktör ise, analiz sırasında kullandığınız araçların derine inmek ve inceleme konusundaki ihtiyaçlarınıza cevap verecek şekilde gelişmiş olması gerekliliğidir. İşte bu yazının konusunu oluşturan sysdig de tarif ettiğimiz bu ihtiyaçlara harika bir şekilde yanıt veren çok güzel bir uygulamadır.

Sysdig Nedir ?

Temel olarak hemen tüm majör Linux dağıtımında çalışan ve doğrudan linux kernel’ine dahil olarak tüm sistem çağrılarını ve OS ile ilgili diğer olayları en alt düzeyde yakalayıp analiz edilmesine olanak sağlayan sysdig, bu işi yapan strace gibi klasik araçlardan farklı olarak bir çok güzel özellik barındırmaktadır.

Öncelikli olarak kernel seviyesinde processing, network, storage ve memory alt sistemlerinde cereyan eden olayların anlaşılır şekilde ve bütünleşik olarak görüntülenmesine olanak sağlar. Bu, incelemekte olduğunuz platform üzerinde çalışmakta olan uygulamaların sistem seviyesinde ne gibi işlemler yaptığını görüntüleyebilmenize olanak sağlamaktadır ki , sysdig üzerinden elde edilen veri, problem çözmede kullanılabilecek ve genelde log dosyalarından ya da uygulama bağımlı debugging araçlarından elde edilemeyecek türden alt seviye kıymetli bilgi içerir.


Devamini okuyun: sysdig: Sistem Seviyesi Analiz ve Sorun Giderme Aracı


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: ,



26 September 2014

Fedora 20 Adım Adım Laravel Kurulumu


Hepinizin malumu Laravel şu an en popüler php frameworklerinden biri. İnternette Ubuntu için oldukça fazla anlatım mevcut olmasına rağmen Fedora'da oldukça kısıtlı ve eksik. Böyle olunca lamp kurulumundan başlayarak adım adım anlatalım dedik. Hadi başlayalım.

1.LAMP KURULUMU

   1.1 Apache Kurulumu

      Paket Yöneticisi Güncellenir

      #sudo yum update

      Apache web sunucusu kurulur

      #sudo yum install httpd

      Web sunucusu çalıştırılıp kontrol edilir

      #sudo service httpd start

      Tarayıcı'ya http://localhost yazılırsa şöyle bir şey çıkması lazım


     1.2 Mysql Kurulumu

       Mysql Kurulur ve başlatılır

       #sudo yum install mysql mysql-server       #sudo service mysqld start       


       Mysql Güvenli Kurulum betiği çalıştırılır

      #sudo /usr/bin/mysql_secure_installation
     
      Aşağıdaki gibi sorulara cevap verilir.


/usr/bin/mysql_secure_installation: line 379: find_mysql_client: komut yok

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): Burada enter'a basıyoruz
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

     1.3 PHP Kurulumu

       Php ve gerekli modülleri yüklenir

       #sudo yum install php php-mysql php-mcrypt 
         (mcrypt paketi kurulmazsa laravel kurulumunda hata verebilir)    

     1.4 Sistem Açılış Ayarları

       Aşağıdaki komutları yazarak http ve mysql servislerinin sistem açıldığında otomatik açılmasını sağlıyoruz
        #sudo chkconfig httpd on
        #sudo chkconfig mariadb on



     1.5 Php Testi

       Nano Editörü yüklenir

       #sudo yum install nano
       #sudo nano /var/www/html/info.php

       Açılan editöre aşağıdaki kod kopyalanır

     
             <?php 
             phpinfo(); 
            ?>

        Kaydedilip çıkılır. Apache yeniden başlatılır

         #sudo service httpd restart

        Tarayıcı'ya http://localhost/info.php yazılırsa şöyle bir şey çıkması lazım



2.LARAVEL KURULUMU

  Terminalde şu komutu yazıyoruz

   #sudo curl -sS https://getcomposer.org/installer | php
  

  Composer.phar dosyasını çalıştırılabilir dosyalar klasörüne atıyoruz.

   #mv composer.phar /usr/local/bin/composer

  Html Klasörümüze gidiyoruz

   #cd /var/www/html
   #composer create-project laravel/laravel proje-isminiz
   #cd proje-isminiz
   #composer install
   #cd ..
   #sudo chmod -R 777 proje-isminiz
   
   Tarayıcı'ya http://localhost/deneme/public/ yazdığınızda aşağıdaki ekran gelmesi lazım. Gelmiyorsa SElinux engelliyordur. Kaldırmak için
    #nano /etc/selinux/config 
    Bu dosya içerisinde yer alan SELINUX=enforcing yazan satırı SELINUX=disabled veya permassive olarak değiştiriyoruz  ve dosyamızı kaydediyoruz.


   


23 September 2014

CentOS 7.0 Üzerinde Zimbra Server 8.0 Kurulumu


Bir eposta sunucusuna ihtiyaç duyduğunuzda seçebileceğiniz bir çok alternatif bulunuyor; bunlardan en iyilerinden birisi ise gerek kolay yapılandırması ve gerekse görsel olarak güzel bir yönetim arabirimi sunması, ve son kullanıcıya modern ve mobil uyumlu arayüz sunması nedeniyle Zimbra Collaboration Suit’dir. Özellikle alternatif posta sunucularından farklı olarak takvim, dosya paylaşımı, görev listesi, görsel konferans ve sunduğu bir çok yan uygulamayla birlikte firmaların iş yapış şekillerine ve koordinasyonlarına da son derece olumlu katkılar yapan Zimbra’nın GPL lisanslı Open Source sürümü tekbaşına hemen bir çok firmanın temel ihtiyaçlarını fazlasıyla karşılayacak şekilde bir çok özellik barındırıyor.

Yakın zamanda, Telligent Systems tarafından VMWare’den alınan Zimbra’nın Network Edition isimli bazı ek özellikler sunan bir de ücretli sürümü bulunuyor. Ama yukarıda da bahsettiğim gibi genel anlamda Open Source Edition temel ihtiyaçları karşılamak açısından son derece yeterli. Zimbra her ne kadar cloud-based bir e-mail platform çözümü olsa ve bu nedenle aynen Google Apps’de olduğu gibi web üzerinden istemci erişimine yoğunlaşmış olsa da Zimbra Desktop adında bir mail istemcisi de bulunuyor.


Devamini okuyun: CentOS 7.0 Üzerinde Zimbra Server 8.0 Kurulumu


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: , ,



18 September 2014

NetFlow Analysis using ElasticSearch & Kibana


Kibana dashboard showing various NetFlow metrics 
I've heard a lot about ElasticSearch lately, was trying to create some time to get a lab set up for the new trio on the block : ELK. For those who hasn't heard about the term ELK, it is an acronym for ElasticSearch + Logstash and Kibana. ELK stack is continuing tradition LAMP stack created a while ago by tightly integrating to each other, albeit on a completely different dimension, and becoming new invaluable tool for DevOps people.
Over the course of years, I've developed a lot of tools/guis, both small and big, to make metrics and data meaningful for my pleasure/business/troubleshooting purposes. But none was as much fun and as quick as I had with ElasticSearch and Kibana.

One of the most important advices I can give to anyone who is building, maintaining or operating an IT infrastructure is having situational awareness on every single angle possible. This means collecting a lot of metrics from all systems, including IPfix/NetFlows from network. Main focus of this tutorial is to show how ES and Kibana can be a valuable tool in assessing issues at network layer using Netflow on a real life scenario: On February 4th, 2014 a network issue caused 1 hour disruption to the services provied to a customer, an RCA requested by management. All logs gathered in one place, with very few reliable explanation as to what really happened. We've started looking at the issue deeper, this time utilizing NetFlows captured at various devices and using ES & Kibana to do analytics & drill down. ES & Kibana helped a lot to better understand and grasp what happened during the disruption and nailing down root cause.

I won't be going into details of setting up ElasticSearch and Kibana, as there are a lot of blog posts on the net on how to perform those steps. You'll see steps to get NFdump data ready, importing into ElasticSearch using ElasticSearch's Python & Bulk API, preparing Kibana for analytics, and discovering what NetFlow records show about the issue I'm after.
In addition to explaining steps to setup similar NFdump/ES/Kibana environment for yourself, I've also provided some analysis/benchmark on storage requirement of ES and explained different approaches on how to reduce foot print of ES while increasing performance.

First, some background information.

At our customer sites, we deploy various collectors and probes to collect and store network traffic metadata, namely NetFlow, for forensic/security and troubleshooting purposes. Probes are deployed at critical network edges to record and analyze activity passing through by using SPAN/RSPAN/ERSPAN, emmitting NetFlow metadata to collectors which save and store NetFlows on hard drive for later use. NetFlows can be costly to generate and store, especially if you're trying to capture traffic on outside/untrust/public interfaces, which face traffic/flows, both in and out, from all around the globe. Probing outside interfaces means recording traffic from spoofed IPs, ICMP pings, BGP announcements and every other bits that travels on Layer 3. For this blog post, I've used 3 flows collected at the same device, one from outside/public interface on the firewal, one for traffic filtered by firewall corresponding to the traffic passing through outside interface, and one for internal VLAN relevant to the issue I'm analysing for. All flows corresponding to the same 24 hour period, differed in size and characteristics widely:


  1. FNF1 : Corresponding to an internal VLAN traffic, have 4.6 million flows, 228MB in size
  2. FNF2 : Corresponding to the internal/trust interface on the firewall, having 8.6 million flows, 426MB in size.
  3. FNF3 : Corresponding to the public facing interface on the firewall, having 33.7 million flows, 1.671MB in size.


Netflow captures following fields that can be used to analyze various aspects of the network :
  • Timestamp
  • Duration
  • Protocol
  • Source IP
  • Source port
  • Destination IP
  • Destination port
  • Bytes
  • Packets
  • TCP Flags
  • Interface

There are a lot of other information that can be captured and shown, a sample 5 line output from FNF1 dump file is shown below :
1:  # nfdump -r fnf1.dump -oextended -c5  
2: Date flow start Duration Proto Src IP Addr:Port Dst IP Addr:Port Flags Tos Packets Bytes pps bps Bpp Flows
3: 2014-01-01 00:04:23.980 25.000 TCP 172.16.0.156:33510 -> 172.16.0.94:58781 .AP... 0 296 237484 11 75994 802 1
4: 2014-01-01 00:04:23.980 34.000 TCP 192.168.0.133:20022 -> 172.16.0.121:64327 .AP... 0 375 24206 11 5695 64 1
5: 2014-01-01 00:04:23.980 25.000 TCP 172.16.0.156:5910 -> 172.16.0.132:63880 .AP... 0 319 173587 12 55547 544 1
6: 2014-01-01 00:04:23.980 21.000 TCP 172.16.0.22:39621 -> 172.16.2.135:80 .AP... 0 35 9504 1 3620 271 1
7: 2014-01-01 00:04:23.980 11.000 TCP 172.16.0.99:65192 -> 172.16.9.132:80 .AP..F 0 39 6800 3 4945 174 1

Step 1) Prepare NFdump files

NFdump rotates dump files every 5 minutes by default. Instead of dealing with multiple NFdump files, I've converted all dump files in each collector's directory to a single file, while sorting by timestamp using following command :

# nfdump -mR ./nfdump -zw fnf1.dump

For the sake of performance and analytics I'm after, I'm only interested in timestamp, source IP, source port, destination IP, destination port, bytes, packets, interface and protocol. To do this, I've used following nfdump command to dump data into CSV file for later use :

# nfdump -Nqr fnf1.dump -o "fmt:%ts, %sa, %sp, %da, %dp, %byt, %pkt, %out, %pr" > fnf1.csv

Step 2) Prepare ElasticSearch Mapping

After having all 3 files dumped into respective CSV files, I've crafted a Python script utilizing ElasticSearch's official Python API to index each flow record in ElasticSearch. ElasticSearch provides schemaless storage and indexing, however just throwing Netflow data without providing a mapping (a schema or DDL some sort) is not smart for storage perspective. Before importing CSV into ElasticSearch, I've experimented with different schemas, one of which using IP mapping for source and destination IP addresses, however it didn't work well for some reason. I've switched storing IP information in string field using following schema definition :
1:  {  
2: "fnf1x": {
3: "_all" : {"enabled" : false},
4: "_source" : {"enabled" : false},
5: "properties": {
6: "ts": {"type": "date", "format" : "YYYY-MM-dd HH:mm:ss"},
7: "sa": {"type": "string", "index": "not_analyzed"},
8: "sp": {"type": "integer", "index": "not_analyzed"},
9: "da": {"type": "string", "index": "not_analyzed"},
10: "dp": {"type": "integer", "index": "not_analyzed"},
11: "byte": {"type": "long"},
12: "pkt": {"type": "long"},
13: "out": {"type": "integer", "index": "not_analyzed"},
14: "pr": {"type": "string", "index" : "not_analyzed"}
15: }
16: }
17: }

For those who are not familiar with ElasticSearch's mapping definition, here is a short definition of what this schema does. First, I didn't want to store NetFlow records in both index and in "_source" field as a JSON document, so it is disabled. For drilling down and analytics purposes, complete document, NetFlow record in this case, is rarely needed. Also, since NetFlow records are well defined and structured, I only search/filter using field names ie : protocol = TCP or destination port = 80. "_all" field is used for searching multiple fields at the same time, when no field name provided. Eliminating "_all" field also saves unnecessary I/O to disk and storage. I chose 'not_analyzed' for string fields, as there is no need to tokenize or stem any of the strings stored. IP information along with protocol fields can be stored and indexed as a whole. Please duplicate above mapping for each of the NetFlow collectors after changing "fnf1x" to the appropriate name you choose.

Step 3) Import CSV files into ElasticSearch

After this map is PUT on ElasticSearch, we can have our Python script to import CSV file created on step 1. Python script code is c/p here, as it is less than 30 lines :
1:  #!/usr/bin/python  
2: import csv, sys, time, json, elasticsearch
3: from elasticsearch import helpers
4: es = elasticsearch.Elasticsearch()
5: source = 'fnf1'
6: csvfile = source + '.csv'
7: jdata = dict()
8: actions = list()
9: i = 0
10: proto = {'0': '0', '1': 'ICMP', '2': 'IGMP', '6': 'TCP', '17': 'UDP', '112': 'VRRP', '3': 'GGP', '50': 'ESP'}
11: with open(csvfile, 'rb') as file :
12: line = csv.reader(file, delimiter = ',', skipinitialspace = True)
13: for row in line :
14: ptime = time.strptime(row[0][0:19], "%Y-%m-%d %H:%M:%S")
15: ctime = time.strftime('%Y-%m-%d %H:%M:%S', ptime)
16: jdata = { 'ts': ctime, 'byte': int(row[5]), 'sa': row[1], 'sp': int(float(row[2])), 'da': row[3], 'dp': int(float(row[4])), 'pkt': int(row[6]), 'out': int(row[7]), 'pr': proto[row[8].strip()] }
17: action = { '_index': 'netflowlab', '_type': 'fnf1x', '_source': json.dumps(jdata, separators=(',', ':'))}
18: actions.append(action)
19: i += 1
20: if i % 100000 == 0:
21: elasticsearch.helpers.bulk(es, actions)
22: print "Indexed %d, working on next 100000" %(i)
23: actions = list()
24: elasticsearch.helpers.bulk(es, actions)
25: print "Indexed %d, finishing." %(i)


Please change 'source' and '_type' fields above to reflect file names and "_type" in ElasticSearch index. Uploading total of 47 million rows, in 3 different CSF files took about 2 hours on my i7-3770 (QC 3.4GHz CPU). Most of the time spent was on Python parsing CSV file and converting into JSON format, I didn't have time to optimize code or profile it for performance tuning. I've used SSD drive to store ElasticSearch data files, which makes upload and analytics faster than traditional drives. Also after inserting 47 million rows, into 3 different types, there will be a lot of segments in ElasticSearch index directories. I suggest optimizing them by reducing number of segments to 1 using (netflowlab is the name of index I've used for this blog post) :

http://localhost:9200/netflowlab/_optimize?max_num_segments=1
This resulted in 3.8GB of Index directory under /var/lib/elasticsearch/

Step 4) Using Kibana to analyze NetFlow data

After everything is ready, use enclosed Kibana dashboard schema file. Once you have uploaded dashboard schema, you'll have something similar to the image on the right. With my ElasticSearch Index, dashboard shows high level information about 46 million flows, accounting for 5.8TB of transferred data in 24 hours. In the next image, we see histograms showing both byte and PPS values :


Histogram shows some anomaly started happening around 14:30 and 20:00, especially around 14:30 and 15:30


Once we started zooming into the timeframe when the anomaly occured, we can see all other graphs updated according to the window we selected. In the mid section of the dashboard I have source IP, source address, destination IP and destination address pie charts, showing flow itself. In destination port pie chart, I immediately noticed that port 12201 is accounting for roughly 20% of the trafffic/flows happened at that time, which is way above normal characteristic of the traffic :


When I click 12201 on the destination port pie chart, Kibana re filters and re graphs data according to the selection I made. I immediately can see that, TCP traffic nearly diminished, and only UDP traffic is hitting port 12201, which happened to be the GrayLog server's default port listening for logs send by the various app servers.


When I changed histogram properties to show data with 1s resolution, I can see that PPS values went up to 250K alone for FNF1x collector, congesting network switch with both PPS and Throughput (MBit/sec). If I want, I can also drill down to the Interfaces and see how much traffic passed through each interface on the switch. This information showed us that the root cause of the issue we were investigating, was actually app servers pumping huge amounts of logs towards GrayLog server. Whole issue was triggered by another issue, but it was start of chain reaction, causing apps to go crazy with logs, making log pumping the root cause, and trigger itself a contributing factor.

Storage Perspective

table.tableizer-table { border: 1px solid #CCC; font-family: Arial, Helvetica, sans-serif font-size: 12px; } .tableizer-table td { padding: 4px; margin: 3px; border: 1px solid #ccc; } .tableizer-table th { background-color: #104E8B; color: #FFF; font-weight: bold; } I've also captured some information on how much data is required for NetFlow storage when different file formats are in use. JSON, obviously, being one of the least storage efficient file formats requires most storage when it comes to NetFlow data with 46 millon flows. After disabling "_all" and "_source" fields in ElasticSearch, its storage requirements also went down. 900MB of gzip compressed Nfdump data consumes about 3.8 GB of Index space on ElasticSearch. I should add that, I didn't store all Netflow fields in this test scenario, only included ones that are relevant to my use case. To make comparison a little more accurate, I've also added uncompressed Nfdump storage requirements below. Once I compress ElasticSearch's Index directory with .tar.gz (default gzip compression level), same 3.8GB becomes 2.7GB. This tells me that I can also store same Index files on ZFS with LZ compression turned on to save some space without sacrificing too much performance.

RowsNfdump (bz2)NfdumpNfdump (-j)CSVJsonES Index SizeTar.gz
FNF14,616,89538.33228.9685.77484.33781.21
FNF28,598,76674.02426.43146.18902.051,424.96
FNF333,710,008402.991,671.73667.573,536.325,854.58
Total46,925,669515.352,327.12899.524,922.708,060.743,805.682,711.24


I'll continue experimenting with ElasticSearch and post my notes about using ElasticSearch for Netflow analytic purposes. Please send in your questions and comments.
All files required to set up this proof of concept environment are located here : https://github.com/bulutsal
Please contribute back your changes to this location.


Port Scan Detection using ElasticSearch and Kibana


NEK :  Netflow + ElasticSearch + Kibana
One of the most fundamentals of security monitoring is to be aware of port scans which can be part of reconnaissance activity. Netflow is very critical in network situational awareness (NetSA), and utilizing Elastic Search and Kibana we can create ourselves a nice looking dashboard that makes it very easy to spot scanning activities. ES+K not only a good solution for having a better dashboard, but also it overcomes limitations of typical IDS systems (snort,suricata,bro etc) associated with cost of having to track scanner activity for long periods. We can easily cook a realtime alerting system that can easily track 24-48 hour or even longer windows for abnormalities and scan activites.

In this blog post, you'll be able to create a dashboard that can be used for NetSA purposes in your environment.

Importing Netflow data into ES

I have a Netflow data file captured on June 10th, 2014 for a high volume web site. It contained data for all connections coming from all around the world to their public IP address. Time window in this Netflow file was 2014-06-10 00:00:00 - 2014-06-10 23:59:58. For the purpose of this blog post, first step in importing this file was to split flow records with only Syn packets into a separate dump file so that we can focus on typical matching pattern for common vertical/horizontal port scan (and also block scans). Using similar technique we can also catch SYN floods howeever this is a topic for another post.

In order to split flow records with only 'S', we can use following :

 # nfdump -r 2014-06-10.dump "flags S and not flags AFURP" -zw 2014-06-10-S.dump  

I should note that, due to nature of a 'flow', it may contain multiple TCP flags. So during a lifetime of a flow tuple (srcip,srcport,dstip,dstport,protocol) both S and A flags can be set and in this case above command will filter them out as we're not interested in flows that hit to an open (ACKed) ports. Out of 38,435,805 flows recorded in our 2014-06-10.dump file, there are only 275,485 flows that matches our criteria, so it makes it a lot easier to both import and analyze. Having said this, we'll still import full Netflow file along with SYN only flows into 2 separate types in ES as we want to observe if any traffic connection gets established between scanner IPs and alert on them.

When we're importing flows for S flows only dump file, we'll also get 'Flags' field so to get it converted to CSV :

 # nfdump -N -r 2014-06-10-S.dump -o "fmt:%ts, %sa, %sp, %da, %dp, %byt, %pkt, %out, %pr, %flg" -q > s.csv  

For our sample data set, this will create about 32MB file. File output for this file will contain lines like (masked to protect real IPs):

 2014-06-10 00:00:00.422,   AA.90.XX.2,  2299,   XX.20.YY.8,  445,   192,    4,   0, 6  , ....S.  
2014-06-10 00:00:03.456, ZZ.YY.103.20, 3241, XX.ZZ.112.25, 445, 20736, 432, 0, 6 , ....S.
2014-06-10 00:00:03.550, ZZ.XX.VV.132, 45486, XX.55.YY.12, 25, 352, 8, 0, 6 , ....S.
2014-06-10 00:00:03.695, XX.20.ZZ.114, 41313, XX.20.ZZ.AA, 15, 9040, 226, 0, 6 , ....S.
2014-06-10 00:00:05.560, AA.46.XX.64, 25003, BB.XX.19.AA, 80, 104, 2, 0, 6 , ....S.



For all flows, lets also get them converted to CSV for easy import into ES :

 # nfdump -N -r 2014-06-10.dump -o "fmt:%ts, %sa, %sp, %da, %dp, %byt, %pkt, %out, %pr" -q | gzip -1c > 2014-06-10.csv.gz  

I typically pipe export operation to a gzip utility as it will make it easier to move files around and faster to import using FIFO devices. Before getting them inserted into ES, lets create types for each. I'll first create a type for ALL flows we have using type definition used in previous blog post "NetFlow Analysis using ElasticSearch & Kibana"

1:  {  
2: "external": {
3: "_all" : {"enabled" : false},
4: "_source" : {"enabled" : false},
5: "properties": {
6: "ts": {"type": "date", "format" : "YYYY-MM-dd HH:mm:ss"},
7: "sa": {"type": "string", "index": "not_analyzed"},
8: "sp": {"type": "integer", "index": "not_analyzed"},
9: "da": {"type": "string", "index": "not_analyzed"},
10: "dp": {"type": "integer", "index": "not_analyzed"},
11: "byte": {"type": "long"},
12: "pkt": {"type": "long"},
13: "out": {"type": "integer", "index": "not_analyzed"},
14: "pr": {"type": "string", "index" : "not_analyzed"}
15: }
16: }
17: }

And for SYN flows we'll use following type definition. Please note, this type has 3 additional fields, one for TCP flags, 2 for GeoIP country codes we'll be storing with each IP.
1:  {  
2: "syn": {
3: "_all" : {"enabled" : false},
4: "_source" : {"enabled" : true, "compress" : true },
5: "properties": {
6: "ts": {"type": "date", "format" : "YYYY-MM-dd HH:mm:ss"},
7: "sa": {"type": "string", "index": "not_analyzed"},
8: "sp": {"type": "integer", "index": "not_analyzed"},
9: "sc": {"type": "string", "index": "not_analyzed"},
10: "da": {"type": "string", "index": "not_analyzed"},
11: "dp": {"type": "integer", "index": "not_analyzed"},
12: "dc": {"type": "string", "index": "not_analyzed"},
13: "byte": {"type": "long"},
14: "pkt": {"type": "long"},
15: "out": {"type": "integer", "index": "not_analyzed"},
16: "pr": {"type": "string", "index" : "not_analyzed"},
17: "flg": {"type": "string", "index" : "analyzed"}
18: }
19: }
20: }

As I'll be matching both source and destination IP addresses to ISO 2 letter country codes, I'll need latest GeoIP database from Maxmind via http://dev.maxmind.com/geoip/legacy/geolite/. Download 'GeoLite Country' binary database from the URL provided and extract into a directory where you'll also execute 'bulk-import-flgs.py' script available at https://github.com/bulutsal/networkanalysis. Also you'll need PYGeoIP API from https://pypi.python.org/pypi/pygeoip/ and you can simply install it using :

# pip install pygeoip  

After satisfying all dependencies you can go ahead with importing your S packets first. When I execute bulk import script with flags, it will produce JSON records like following :

1:  {  
2: "pkt":4,
3: "dc":"TR",
4: "da":"XX.20.ZZ.YY",
5: "byte":192,
6: "dp":445,
7: "out":0,
8: "pr":"TCP",
9: "sp":1250,
10: "ts":"2014-06-10 00:38:02",
11: "sc":"CH",
12: "sa":"185.12.44.214",
13: "flg":[
14: "S"
15: ]
16: }

After importing S only flows into ES, go ahead with importing your primary netflow data using FIFO as below :

Open a screen shell first
 # mkfifo external.csv  
# gunzip -dc 2014-06-10.csv.gz > external.csv

Create another window using CTRL-A-C and run your bulk-import.py script, dont forget to modify it for your index and type name. This may take a while. After all is uploaded, go ahead and import DevOps-PortScan.kibanadashboard (downloadable from https://github.com/bulutsal/networkanalysis)

Playing and understanding DevOps-PortScan Dashboard


Once you load the dashboard into Kibana3, you'll see something like this :


This first screen will show everything we got in the index. We want to use ES's and Kibana's capabilities to drill down to all port scan activity so we'll filter out connections to port 80 and 443 as this flow data is from a high traffic web site and we're not interested in connections to those ports. Also lets focus on only TCP protocol as other scan methods are outside scope of this blog post. As we drill down, we start to see some scan activity in 'SYN ATTEMPTS' widget on the right hand side. This widget shows ratio of S only flows to all flows, so between 03:00 and 08:00 there was clearly increase in S flows. This is not typical and is a clear indication of increased port scan activity during night ours.

If we like we can focus on this window and drill down from there, but I would love to focus on IPs listed on the left in 'SCAN IP' window and demonstrate different types of scans performed by each IP. Lets click on 185.12.44.17 and see what how IP appeared in our dashboard. This IP is registered in Switzerland and performed block scan, both touching a lot of IPs in our network and trying various ports which is clearly visible in the dashboard.


Once we click second IP, 218.77.79.34, in our list, we can see that it is from China (surprising eh?). This IP demonstrated different behaviour and performed horizontal scan mostly focusing on shorter list of ports like 53,25,22,3389 and 21. It also appears that it stopped scanning during between 09:00 and 14:00 and started scanning again.


3rd IP in our list is more interesting, this IP 204.93.154.200 is from US and tried only 3 IP addresses in our network and scanned almost every single port and he did this in short bursts as opposed to continuous scans.


We can click each IP in the SCAN IP list and see how they've scanned our network, but also utilizing Kibana's map feature, we can click to a country and drill down by Country.




In my next blog post, I'll be showing how to detect SYN floods and observing DDOS via Netflow data.

17 September 2014

Internet Ungovernance Forum (ungovForum) ve FSFE


Geçtiğimiz günlerde Internet Ungovernance Forum (ungovForum) gibi çok önemli bir etkinlik Alternatif Bilişim Derneği başta olmak üzere tüm gönüllülerin katkılarıyla İstanbul'da düzenlendi.

Internet Ungovernance Forum, sitesinde yazdığı gibi açık, güvenli ve özgür bir internet isteyenlerin buluşma noktası oldu. Hem de dünyanın dört bir köşesinden gelmiş olan aktivistin buluşma noktasıydı!

IGF varken neden ungovForum ortaya çıktı, etkinlikte neler oldu gibi soruları değerli arkadaşım Işık Mater'in yazısından okumanızı tavsiye ederim. Zira ben yazının genelinde benim için değerli birkaç anı ve ziyaretçilere özgür yazılımdan bahsettiğimiz Free Software Foundation Europe (FSFE) standından bahsedeceğim.

Işık Mater'in gözlemleri ile UngovForum daha da tamamlayıcı olacaktır.

Etkinlik benim için 4 Eylül Perşembe gecesi UngovParty ile başladı. Parti sırasında Aral Balkan ile tanışma fırsatım olmasının yanı sıra Jacob Appelbaum'a Şifrepunk kitabımı imzalatma fırsatım da oldu. :)

Jacob Appelbaum, imzaladığı kitabım ve ben \o/
Devamı »

08 September 2014

LibreOffice’den haberler…


Aslında uzun uzadıya yazacak çok şey var ama zaman olmadığından kısa kısa derlemek en iyisi…

  • TDF LibreOffice’in Android sürümü için ihaleye çıkıyor: Bilindiği üzere epeyce bir zamandır LibreOffice’in Android sürümü için çalışmalar yürütülmekteydi. Bu çalışmalar sıfırdan bir uygulama yazmanın zorluğu ve LibreOffice camiasının bu konuda yeteri kadar donanımlı ve platforma hakim katkıcıları olmadığı için ağır aksak ilerlemekteydi, temel belge görüntüleyicisi üzerinde Smoose vb gibi şirketlerin sponsorluğunda biraz ilerleme kaydedilmişse de temek çerçeve oluşturma meselesi istenilen hızla ilerlemedi. Bu yüzden The Document Foundation LibreOffice’in Android sürümün temel çerçevesini oluşturmak ve üzerine temel özellikleri inşa etmek için ihaleye çıkma kararı aldı. Bu ihale ile Şubat 2015’de temel düzenleme özellikleri çalışır halde bir Android uygulamasına kavuşmak hedefleniyor. İhale duyurusunu şuradan okuyabilirsiniz. Türkiye’den de bu ihaleye katılmak isteyen şirketler olursa çekinmeden başvursunlar derim.
  • TÜBİTAK’ın yazılım uyum sorunları yaşanmayacak olan bilgisayarlarda LibreOffice ve Pardus kullanılması ile ilgili bir genelge yayımladığını duyduk. Detaylarını öğrenmek için bu genelge ve hedeflenen bilgisayar sayısı gibi rakamlara ulaşmak için ilk fırsatta bir girişimde bulunacağım. Bu bilgiler ile güzel bir göç haberi hazırlayabilir ve küresel olarak da duyurabiliriz.. Şayet bu yazıyı okuyan yetkili varsa, bilgileri temin ederse çok daha iyi olur. Bu tür göçler bizim için önemli, hele TÜBİTAK gibi bu konuda yıllardır bir şekilde öncülük etmeye çalışan bir kurum için gecikmiş bir karar. Şahsi görüşüm ise daha önce de dediğim gibi, yazılımı sadece kullanmak değil, üretimine de katkıda bulunmak gerekir, bu sebeple TÜBİTAK’ın olması gereken yer kurumsal kullanıcıdan öte TDF Tavsiye Kuruluna üye olmak ve/veya LibreOffice geliştiricisi istihdam etmek… Türkiye’deki kullanım ve Türkçe için yapacak çok şey var…
  • Üyesi bulunduğum TDF’nin Üyelik Komitesi seçimleri yapılıyor. Bu seçimde aday oldum. Seçim duyurusu şurada ve adaylık için öz tanıtımım da şurada. Seçileceğimi sanmıyorum ama vakıfta görev almak ve seçimlerin daha zengin olması için aday oldum.
  • LibreOffice konferansı bu yıl Bern’de gerçekleştirildi. Ülkemizden geçen yılki konferansa katılmış olan Efe Gürkan Yalaman bu yıl da GSoC öğrencisi olarak Bern konferansına katıldı. Detaylarını günlüğünde yazar diye tahmin ediyorum. Konferansla ilgili haberleri gezegenden ve sunum ve diğer içeriği ise konferans sitesinden okuyabilirsiniz.
  • Önümüzdeki yıllardaki LibreOffice konferansını Türkiye’de gerçekleştirmek için sevgili Volkan Evrin niyetli… LKD öncülüğünde bu organizasyona ev sahipliği yapabiliriz diye düşünüyorum ama organizasyon işi benim pek becerebileceğim bir şey değil. Başvuru vs süreçlerde elimden geleni yaparım. Ama organizasyonun maddi/manevi ve lojistik kısımları ile ilgili durumlar nasıl olur bilemiyorum. Dediğim gibi anladığım şeyler değil.

Haberler böyle… LibreOffice’in özgür yazılım dünyası için ne kadar önemli olduğunu söylemekten sıkıldım, tamam ofis yazılımına katkı vermek kolay değil ve sıkıcı bir alan diye düşünülebilir ama sahip çıkmadan da olmuyor. Bu nedenle özellikle eli kod tutan ve zamanı olan özgür yazılım severleri LibreOffice’e katkı vermeye çağırıyorum.

Mutlu günler.



05 September 2014

Vimdiff Kullanımı


İki yada daha fazla txt dosyalarının, vim editörün diff mode özelliğini kullanarak diff farkını görmek için kullanılır. Vim text editörünün diff modda çalıştırılması ( vim -d ) ile vimdiff komutunu vererek çalıştırmak arasında bir fark yoktur. Aşağıdaki resimdeki gibi dosyalar açıldığında koyu kırmızı satırlar, iki dosya arasındaki diff farkını gösterir. ” –#########– “şeklinde dosyaların başında ve sonunda görünmesinin sebebi, o satırların iki dosyada da aynı olmasıdır. Vimdiff, fark bulunmayan satırları göstermez.

Kullanımı

# vimdiff file1 file2 [file3 [file4]]
# vim -d file1 file2 [file3 [file4]

httpd.conf ( resimde solda ) ve apachenin kaldırılması sonucunda oluşan httpd.conf.rpmsave dosyalarının aralarında diff farkına bakalım,

# vimdiff httpd.conf httpd.conf.rpmsave

Editör içerisinde iken iki dosya arasında gezinmek için aşağıdaki kısayollardan biri kullanılabilir;

  • Ctrl+W + Ctrl+W
  • Ctrl+W + W

İki dosya arasındaki farkları uygulamak için aşağıdaki editör komutları yada kısayolları kullanılır,

  • :[range]diffput ( yada dp kısayolu ), imlecin bulunduğu satırındaki değişikliği karşı dosyaya uygulayarak, karşı dosyanın aynı satırını değiştirir. ( put )
  • :[range]diffget ( yada do kısayolu ), imlecin bulunduğu satırı, karşıdaki dosyanın aynı satırına göre, imclecin bulunduğu satırı değiştirir. ( get )

diffput yada diffget komutların başlarında range kullanılmaması durumunda, farklı satırların alt alta olması durumunda vim grup olarak  değişiklik uygular. Sadece satırda değişiklik yapmak için diffget ve diffput aşağıdaki şekilde kullanılır.

  • :39,diffget  ; 39. satırı karşı dosyadaki aynı satıra göre imlecin bulunduğu satırı değiştirir.
  • :299,diffput ; Karşı dosyadaki 299. satırı değiştir.
  • :200,$diffget ; 200. satırdan sonra son satıra kadar değişiklikleri uygular.

Vim diff mode özelliğini daha ayrıntılı incelemek için man sayfasına bakabilirsiniz.

 



04 September 2014

Ubuntu Kurulumundan Sonra Ev Dizinini Şifrelemek


Ubuntu işletim sistemini kurarken kullanıcıların karşılaştığı ekranlardan birisinde kullanıcının ev dizininin şifrelenmesini isteyip istemediği sorulur. Bu işlem, küçük bir miktar performans kaybı karşılığında kullanıcınızın ev dizinini kullanıcı parolası girilene kadar okunamaz biçimde şifrelenmesini ve kullanıcının oturumu açık olduğu müddetçe şifrelenen dosyaların içeriğine düzgünce erişilebilmesini sağlar. Örneğin kullandığınız bilgisayarınızın çalınması durumunda bilgisayarınızı çalan kişi(ler) sizin kullanıcı parolanızı bilemeyecekleri için size ait dosyaların içeriklerine asla erişemeyecektir.

Bu faydalı seçeneği kurulum sırasında işaretlememeyi tercih ederseniz bütün dosyalarınız herhangi bir özel işleme gerek kalmadan erişilebilir halde duracaktır. Eğer bu seçeneğe kurulumdan sonra ihtiyaç duyarsanız Ubuntu’nuzu tekrar baştan kurmak zorunda değilsiniz; tek yapmanız gereken aşağıdaki adımları takip etmek.

    1. Bilgisayarınızda geçici bir süreliğine yönetici haklarına sahip ikinci bir kullanıcı yaratın. Bunun sebebi, ev dizini şifrelenecek olan kullanıcının kendi kendine bu komutu çalıştıramıyor oluşu.
    2. Ev dizini şifrelenecek olan kullanıcınızın oturumunu tamamen kapatıp bir önceki adımda yarattığınız kullanıcı hesabına giriş yapın.
    3. Yeni yarattığınız kullanıcının yönetici haklarından faydalanarak aşağıdaki komutu çalıştırın. Bu komut, bilgisayarınıza ev dizininizi şifrelemenizi sağlayacak olan paketleri kurar.
      sudo apt-get install ecryptfs-utils cryptsetup
    4. Yeni kullanıcı hesabınız şifreleme işlemini başlatmak için aşağıdaki komutu çalıştırın.
      sudo ecryptfs-migrate-home -u kullanici_adi
    5. Enter tuşuna bastığınız zaman sizden ev dizini şifrelenecek olan kullanıcının (az önce yarattığınız kullanıcının değil) parolasını yazmanız istenecek. Parolanızı yazdıktan sonra ev dizininizin boyutuna bağlı olarak süresi uzayabilecek olan şifreleme işlemi başlayacak.
    6. Burası önemli: Şifreleme işlemi bittikten hemen sonra bilgisayarınızı yeniden başlatmadan kendi kullanıcı hesabınızla oturum açın. Eğer herşey yolunda gittiyse karşınıza her zamanki dosyalarınız çıkacak ve bir pencerede size şifreleme işlemiyle ilgili bir bilgi verilecek. Bu penceredeki butona tıkladığınızda size 32 karakter uzunluğunda bir parola verilecek, bunu güvenli bir yere not edin. Bu parola sayesinde dosyalarınızı gelecekte gerekirse elle kurtarabileceksiniz.
    7. Bilgisayarınızı yeniden başlatın. Eğer herşey eskisi gibi yolunda gidiyorsa /home/ dizini altında yaratılan kullanıcı hesabınızın yedek dizinini ve ilk aşamada yarattığınız geçici hesabı güvenle silebilirsiniz.

 



01 September 2014

cesi (Centralized Supervisor Interface)


    Supervisor had an interface but there were some shortcomings in the existing interface. Some shortcomings in the existing interface :

    -- Interface allows process management where supervisor's installed on computers but API allows management remote computers's process.

    -- No authorization. Anyone who can see the interface can do what you want.

    -- Process management were made without filters.

    I did my internship this summer with Kaan at Gamegos. We wrote an interface that complement these deficiencies. We use Python Flask and Jquery. I did not pack for now. I've described how to install at README. I'll explain the use of the interface on this blog.

    You can find the project here

  DASHBOARD
--------------------------

    This page is the first page you will see when the program runs. We can see that the total number of nodes , number of connected nodes and number of not connected nodes. Also we can see total number of process , number of running process, number of stopped process and the last 12 lines of activity log.













    NODE
----------------
 
    Node is a feature that provides be central of this interface. Each node corresponds to a different supervisor that we contacted. We should write into /etc/cesi.conf host port username and passwors information of every supervisor that we want to connect. (Node names must be unique.):

  [node:gulsah]
 username = gulsah
 password = ***
 host = gulsah.xyz.com
 port = 9001
    
     A list opens when we click on the node. This list is a list of nodes in the configuration file. If connected node node name must be the beginning of a checkbox. If there is a problem with the connection at the beginning of the node name will be an "x". We can manage the processes of selecting the node we want.


   ENVİRONMENT
----------------------------

    Environments are communities of nodes. It is a filtering option.This option provides stop start or restart process that environment name x and node name y. We can define the environment as much as we want. Environment names must be unique.

  [environment:market]
  members = gulsah, kaan

     A list opens when we click on the environmet. This list is a list of environments in the configuration file. When clicked an environment opens a list that include nodes that connected and members of that environment . We can manage the processes of choosen nodes.











  GROUP
---------------


   Group is a feature that already exists in the program. We don't need write in /etc/cesi.conf  . It is a filtering option provides stop start or restart process that group name x and environment name y.

    When clicked group option, opens a list that groups. When clicked a group opens a list of environment which include that group name.

  *The same process must not belong to more than one group.










 



 SHOW ALL
---------------------

    Show all option provides manage all node's processes.




















     We can subselection on tables. We can checked begin of process. By clicking the button above the table, action runs for checked process.


    We must write database and activity log path into /etc/cesi.conf before programs running.

    [cesi]
    database = /x/y/userinfo.db
    activity_log = /x/y/cesi_activity.log


   USER LEVEL
-------------------------

   Admin:
   -- Only admin can add or delete a user. They can do everything related to all process.

  Standart User:
   -- Standart users can't delete or add user but can everything else.

  Only Log
  -- Only log users can view process and read processes logs.

  Read Only
  -- Read only users only can view processes.




    When program run first time default username and password are "admin". Admin change own password using by change password option. If necessarily admin can add a user what type you want. when new users logged in,  they can change own password by change password options.


User addition panel:    
















User deletion panel:



Thanks to Kaan Özdinçer for support.








30 August 2014

Ajenti (Web Tabanlı Kontrol Paneli) ile Linux Yönetimi


Genelde, Linux hostlarda her tür sistem yönetimi işininin komut satırı üzerinden ve mümkünse otomatize bir şekilde yapılmasını tavsiye ediyorum. Zira bu şekilde sistem altyapısına daha fazla hakim olabildiğiniz gibi komut satırından çalışmak bir arabirim üzerinden çalışmaya oranla yaratıcılığı da tetikleyen bir konu olduğundan epeyce önemlidir. Ancak bazı durumlarda sistemlerinizi -tercihen web üzerinden çalışan bir- arabirim üzerinden de yönetmek isteyebilirsiniz.

İşte böyle bir ihtiyaç hasıl olduğu zaman çözüm olarak Ajenti isimli web tabanlı kontrol panelini kullanabilirsiniz. Plesk, cPanel ve Webmin gibi yönetim arabirimlerine güzel bir altrenatif olan Ajenti AGPLv3 lisanslı bir açık kaynak kod yazılım olmakla birlikte hosting işi yapmıyorsanız ya da ticari olarak vps’lerinizin yönetimi için kullanmamanız durumunda yani iş ve evdeki sunucularınızın yönetimini yapmak üzere personal license adı altında tüm sunucularınıza ücretsiz olarak kurup kullanabiliyorsunuz. Hosting yönetimi, VPS ve appliance ürünlerde kullanmak için ise lisans detayları ayrıca şu sayfayada bulunuyor: http://ajenti.org/licensing

Ajenti’nin yum ve apt repoları bulunduğu için RHEL ve Debian tabanlı tüm sistemlerde doğrudan paket yöneticisi üzerinden kurulabiliyor. Bu şekilde oldukça kolay bir kurulama sahip olması ve modüler plugin sistemi sayesinde sunucularınızın üzerinde koşan hemen her türlü bileşeni (Apache, MySQL, PostgreSQL, Nginx, Cron, Firewall, Munin, Samba, FTP, BIND, Squid, OpenVPN vs. ) -eski yapılandırmanızı da bozmadan çalışan sistemlere direk entegre olarak- yönetebilmesi ve API desteği ile kolay plugin geliştirme (python) imkanı vererek kendi özel uygulamalarınız için Ajenti pluginleri yazabilmenize olanak sağlaması gibi gayet güzel özellikler sunuyor. Ayrıca çok küçük bir footprint’e sahip olmasından dolayı küçük memory ve CPU kullanım değerleri ile de oldukça hafif bir uygulama olmasından dolayı tercih edilebilecek bir çözüm sağlıyor.

Aşağıda RHEL/CentOS üzerine Ajenti kurulumun nasıl yapılacağından bahsedeceğim. İlginizi çekerse kurmak isteyebilirsiniz:


Devamini okuyun: Ajenti (Web Tabanlı Kontrol Paneli) ile Linux Yönetimi


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: , ,



29 August 2014

cesi (Centralized Supervisor Interface)



    Bir önceki yazımda Supervisordan bahsetmiştim. Supervisor arayüzden de komut satırından da kullanılabilen bir API si olan Unix benzeri işletim sistemleri üzerinde çalışan bir süreç yönetim sistemidir. Bazı eksikleri şöyleydi:

  -- Supervisorun varolan arayüzü sadece kurulu olduğu makine üzerindeki süreçleri yönetebiliyordu. Ama API uzaktaki makinelerle iletişim kurmaya izin veriyordu.
  -- Arayüzde herhangi bir yetkilendirme seviyesi yoktu. Arayüzü görebilen herkes süreçlerle ilgili istediğini yapabiliyordu.
  -- Herhangi bir şekilde süreçler filtrelenerek yönetilemiyordu. Ya tek tek ya da hepsiyle birden iş yapılabiliyordu.

    Bu yaz stajımı Gamegos'ta Kaan'ın mentörlüğünde yaptım. Yaptığımız iş Supervisor'a yukarıda bahsettiğim eksiklikleri gideren yeni bir arayüz yazmaktı. Yeni arayüzü Python Flask ve Jquery kullanarak yazdık. Şimdilik paketlemedim. Nasıl kurulacağını projenin README kısmında açıkladım. Bu blogta arayüzün yeteneklerini ve kullanımını anlatacağım.
  Projeyi buradan bulabilirsiniz.

  DASHBOARD
--------------------------

    Program çalıştığında karşımıza gelen ilk sayfadır. Toplamda kaç node olduğunu kaçının bağlı kaçının sorunlu olduğunu, toplam kaç süreç olduğunu kaçının çalışıp kaçının durmuş olduğunu ve kullanıcının arayüzde yaptığı işlemlerin logunun son 12 satırını görüntüleyen paneller var.













    NODE
----------------
   
    Node özelliği bu arayüzün merkezi olmasını sağlayan özelliktir. Yani her bir node bizim iletişim kurduğumuz farklı bir supervisora denk geliyor. Kaç tane süpervisor ile iletişim kuracaksak hepsinin host port kullanıcı adı parola bilgilerini /etc/cesi.conf içine şu şekilde yazmalıyız (node isimleri eşsiz olmalıdır) :

  [node:gulsah]
 username = gulsah
 password = ***
 host = gulsah.xyz.com
 port = 9001
    
     Node seçeneğine tıkladığımızda açılan liste yapılandırma  dosyasındaki nodeların listesidir. Node eğer bağlıysa node  isminin  başında bir checkbox olacaktır. Bağlantıda bir  problem  olmuşsa node isminin başında bir çarpı olacaktır.  Buradan istediğimiz nodeları seçerek süreçlerini  yönetebiliriz.


   ENVİRONMENT
----------------------------

    Nodelardan oluşan topluluklardır. Bir filtreleme seçeneğidir. Environment'ı x node ismi y olan süreçler hakkında şunları yap dememize imkan tanır. İstediğimiz kadar environment tanımlayabiliriz. Environment isimleri eşsiz olmalıdır. /etc/cesi.conf  dosyasında şöyle tanımlanır:

  [environment:market]
  members = gulsah, kaan

  Arayüzde environment seçeneğine tıkladığımızda o environmenta üye olan ve bağlantısında problem olmayan nodeların listesini görürüz. Bu nodelardan hangisini seçersek onların süreçlerini yönetebiliriz.











  GROUP
---------------


   Grup zaten Supervisor'un sağladığı bir özellikti. Bu yüzden /etc/cesi.conf içine bununla ilgili birşey yazmaya gerek yok. Supervisor'un yapılandırma dosyasında tanımlanır. Süreçler bir gruba eklenebilir. Eğer sürecin grubu yoksa varsayılan olarak grup adı sürecin adı olur. Bu da arayüzde bir filtreleme seçeneğidir. Grubu x environmeti y olan süreçler için şunları yap deme imkanı sağlar.

    Arayüzde grup seçeneğine tıkladımızda içinde o grubu bulunduran  environmetların listesini görürüz. Buradan hangi environmentleri seçersek grubu seçtiğimiz grup, environmenti seçtiğimiz environment olan süreçleri görüntüleyip yönetebiliriz.

  *Aynı süreç birden fazla gruba ait olmamalıdır.










  SHOW ALL
---------------------

Show all seçeneği ne kadar node ve onların ne kadar süreci varsa hepsini birden görüntülemeyi ve yönetmeyi sağlar.




















    Ayrıca herhangi bir şekilde görüntülediğimiz tabloların üzerinde alt seçimler de yapabiliriz. O anda görüntülediğimiz süreçlerden hangisinin başındaki checkbox işaretliyse tabloların üstündeki turuncu butonları kullanarak sadece o süreçleri durdurup başlatabiliriz.


    Program çalıştırılmadan önce yapılandırma dosyasında veritabanı ve kullanıcı loglarının tutulduğu dosyaların yolunu /etc/cesi.conf dosyasında şu şekilde belirtmeliyiz:

    [cesi]
    database = /x/y/userinfo.db
    activity_log = /x/y/cesi_activity.log


   KULLANICI SEVİYELERİ
--------------------------------------------

   Admin:
   -- Kullanıcı ekleme silme işi sadece admin tipindeki kullanıcılar tarafından yapılır.
   -- Tüm süreçlerle ilgili herşeyi yapabilirler.

  Standart User:
   -- Tüm süreçler hakkında herşeyi yapabilir.

  Only Log
  -- Süreçlerin hepsini görüntüleyebilir
  -- Süreçlerin sadece loglarını okuyabilir.

  Read Only
  -- Sadece süreçleri görüntüleyebilir. Herhangi bir şeye müdahale edemez.




    Program ilk kurulduğunda varsayılan kullanıcı admindir. Kullanıcı adı ve parolası "admin" dir. Change password seçeneğini kullanarak admin ilk olarak parolasını değiştirmelidir. Gerek varsa istediği yetkilerde yeni kullanıcılar ekleyebilir. Eklediği yeni kullanıcılarda oturum açtıklarında aynı şekilde parolalarını değiştirebilirler.


Kullanıcı ekleme paneli:      
















Kullanıcı silme paneli:



Desteği için Kaan Özdinçer'e teşekkürler. 









28 August 2014

Kişiselleştirilmiş Veri Bize Ne Sağlamaz?


Veri işlemenin/veriyi analiz etmenin popülerleşmesiyle beraber kişinin davranışlarını analiz ederek kişiye özel hizmetlerde bulunmak (personalization / kişiselleştirme) artık bir çok alanda olmazsa olmazlardan biri haline geldi. Kişiselleştirme kavramının daha iyi anlaşılması adına basit bir örnek vereyim. Bir gün e-posta kutunuzu açtınız ve Amazon’un size bir kaç kitap önerisi ile geldiğini gördünüz. Peki nasıl oldu da binlerce kitap arasından sizin okuyacağınızı Devamını Oku […]

24 August 2014

ncdu – Disk Kullanımı Görüntüleme Aracı


Normalde dosya ve dizinlerin sistemde ne kadar yer kapladığını görmek için du (ya da find) komutu kullanır ve konsol üzerinden gerekli bilgiyi ediniriz. Her ne kadar du komutunun çıktısını düzenlemek için bir çok parametre bulunsa da genel anlamda du çıktısı özellikle Linux ile yeni tanışan kişiler için karışık olabilir. İşte bu nedenle, du’nun yaptığı işi yapan ancak çıktı olarak ncurses kullandığından dolayı text-tabanlı da olsa grafiksel sonuç döndüren “ncdu” isimli bir uygulama bulunuyor.

Ncdu hem okunaklı çıktı üretmesi hem de uzak hostlarda doğrudan çalıştırılabilmesi gibi özelliklerinden dolayı epey kullanışlı bir araç. Bulunduğunuz dizinde ncdu’yu çalıştırdığınız zaman aşağıdaki gibi bir çıktı alıyorsunuz:

Devamini okuyun: ncdu – Disk Kullanımı Görüntüleme Aracı


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: , ,



17 August 2014

Madrid-Toledo-Barselona Gezisi, 3. Gün: Madrid


İspanya gezimizin 3.gününde Madrid’i gezmeye erken başladık. Hava bulutlu olduğu için gezmek daha kolay olacaktı. Sırt çantamızı ve fotoğraf makinemizi alıp önce otelimizin 100 metre uzağındaki Plaza Mayor meydanına gittik. Sabah saatlerinde boş olan meydanı gezmeyi daha sonraki saatlere bırakıp asıl hedefimiz olan Palacio Real de Madrid (Kraliyet Sarayı) ‘e doğru yürümeye başladık. Çok düzenli …

Madrid-Toledo-Barselona Gezisi, 2. Gün: Toledo


İspanya’da 2.günümüzü bir ortaçağ şehri ve aynı zamanda İspanya’nın eski başkenti olan Toledo ‘da geçirmek için ayarlamıştık. Henüz gelmeden önce hızlı tren biletlerimizi almıştık. Hızlı trenle yaklaşık 30 dakika süren yolculuğun biletleri Renfe web sitesinden online olarak alınabiliyor. Online biletlerin fiyatı kişi başı 10 euro civarındaydı. Sabah saat 8:00 gibi kalkıp 8:50’deki trene yetişmeye çalıştık …

15 August 2014

Aman Oracle Duymasın!


Basında çıkan haber/yorumların altında imzanın olmamasını hep garip buluyorum. Köşede yazanların ismi var da bu tip saçma haberleri yazanların neden ismi yok!

Oracle firması’ni Eski CIA ajanları kurmuş; merak ediyorum bundan firmanın haberi var mıydı?

Oracle bu kadar tehlikeli bir firma ise neden üniversitelerimiz (üstüne para verip) Oracle veritabanı kullanıyor? Hatta TTNET’de Oracle ürünü kullandığına göre tüm internet trafiğimiz tehlikede olmasın!

Kripto telefon casusluğu’ skandalının ardından görevinden alınan Hasan Palaz’ın TÜBİTAK BİLGEM Başkanlığı döneminde hazırlanan şartnameyle, yeni biyometrik kimlik kartlarının ihalesi ‘adrese teslim’ şekilde ABD’li Gate Elektronik’e verilmek istenmiş, skandalın ortaya çıkmasıyla bu ihale iptal edilmişti. Paralel örgütün, eski CIA ajanlarının kurduğu Oracle şirketince üretilen yazılımı kullanacak Gate Elektronik vasıtasıyla vatandaşların ‘avuç içi damar yapısı’ da dahil bütün bilgilerini elde etmeyi amaçladığı vurgulanıyor.

Kaynak: Yeni Şafak, Alıntı Kaynağı: http://www.haber10.com/haber/530625/

Hepsi yerli olacak bu yazılım’ın veritabanı bakalım ne kadar Yerli! olacak.



14 August 2014

Madrid-Toledo-Barselona Gezisi, 1. Gün: Madrid


Uçağımız Madrid için Sabiha Gökçen Havalimanı’ndan kalkarak 4 saatlik uçuş sonrasında saat 14:30 civarında Aeropuerto Adolfo Suárez Madrid-Barajas (MAD) havalimanına indi. Havalimanından şehir merkezine ulaşmak içn metro kullandık. Metro için 10 kullanımlık bir kart aldık, fiyatı 18.50 euro. İstanbul’dan farklı olarak Madrid metrolarında o turnikeden bu turnikeye girip çıkmanıza gerek yok, birinden diğerine aktarma yapmak …