SSH kullanicilarini ev dizinlerine hapsetmek

Onceki gun, arkadasimin internet baglantisini sunucu uzerinden tunellemek icin ihtiyac duydugu bir kullanici olusturmak istedim. Gereksinimlerim ozetle soyleydi. Kullanici baglandiginda ev dizinine hapsedilecek. Temel dosya ihtiyaclari (ssh -N burada secenek olmaktan cikiyor) icin kullanabilecegi nano, rm, cp, ls, mv, grep ve cat disinda baska bir komut/programcik kullanamayacak. Shell olarak BASH atayacagim. Bu kisimdan itibaren yapilan tum islemler Ubuntu 12.04.2 LTS 64 bit sunucuda yapildi.

sshdconfig(5) man sayfasini okurken yapmak istedigim seyin ChrootDirectory direktifi sayesinde yapilabilecegini gordum. Problem ChrootDirectory’nin varsayilan olarak tum kullanicilari hapsetmesiydi. Sisteme yonetici olarak erismesi gereken uc kisiyi bir sekilde bu yeni olusturacagim tunel kullanicisindan ayirmam gerekiyordu. sshdconfig(5) sayfasinda chroot diye arama yaparken bir de Match direktifine denk geldim. Match ifadesi User, Group, Host ve Address kriterleriyle eslesme yapabiliyormus. Eslesme ardindan ise genel ayarlari ne sekilde ezecegimizi belirtmemiz gerekiyormus. Yapmak istedigime geri donecek olursak, kullanicilari ev dizinlerine hapsetme. Yalniz bir kullanici sana adim ORNEK diyorsa onu ev dizinine hapsetmelisin. Match ifadeleri bir baska Match ifadesine rastlayana ya da dosya bitene kadar devam ediyorlarmis. Dolayisiyla ornegin normalde X11Forwarding’e izin verdigimizi varsayarsak Match bloguna yazilacak X11Forwarding no ile kritere uyan oturumlar icin X yonlendirmeyi kapatabilmek mumkun.

man sayfasina gore ChrootDirectory en az bir kabuk, /dev/null, /dev/zero, /dev/stdin, /dev/stdout, /dev/arandom ve /dev/tty aygit dugumlerini icermeliymis. Bu bilgiyi bir kenarda tutup yavas yavas islemi nasil yapacagimizi anlatmaya baslayayim.

Once yeni kullanicimizi olusturuyoruz.

sudo adduser --home /home/ornek --shell /bin/bash ornek

Sifreyi ve bir iki soruyu yanitladiktan sonra kullanicimiz olusturulmus oldu. Simdi /etc/ssh/sshd_config dosyasinin en sonuna su ifadeleri eklemeliyiz. Duzenledigimiz yapilandirma dosyasinin aktif hale gelmesi icin servisi yeniden baslatiyoruz.

Match User ornek ChrootDirectory %h sudo service ssh restart

Su anda ornek kullanicisi SSH baglantisi yapmak isterse sifresini girdikten sonra su iki satiri gorecek ve baglanti kuramayacaktir.

Connection to ornek.com closed by remote host. Connection to ornek.com closed.

Yukarida da belirttigim gibi kullanici bir kabuk bulmayi bekliyor -olustururken /bin/bash demistik- fakat hapsoldugu dizinde -ki %h ile ev dizini olan /home/ornek altina hapsediyoruz- /bin/bash yok. O halde kopyalayalim.

sudo mkdir /home/ornek/bin sudo cp /bin/bash /home/ornek/bin

Su asamada baglanmayi denerse yine ayni sekilde hata alacaktir. (Ubuntu 12.04.2 LTS 64 bit altinda calistigimizi tekrar hatirlatayim) Bunun nedeni BASH’in kullandigi kitaplik nesnelerinin dinamik olarak baglanmis olmasi. Peki bunu nasil ogreniyoruz? Asagidaki komutu calistiralim ve ciktisina bakalim.

file /bin/bash /bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xe643cefb2c672ad94e955067c511537ddbab48da, stripped

Yukaridaki cikti kabaca bize BASH’i calistirmak icin birkac baska dosyaya ihtiyacimiz oldugunu soyluyor. Neyse ki bu dosyalari bulmak cok kolay. ldd komutunun bir dosyanin hangi paylasilan nesnelere ihtiyaci oldugunu gosterdigini biliyoruz. Hemen BASH icin bakalim. linux-vdso.so.1 icin bir dizin vermemis fakat bellek adresi oldugunu tahmin ettigim bir adres var. O halde bizim bir kopyalama islemi yapmamiza gerek yok. libtinfo.so.5, libdl.so.2, libc.so.6 nesnelerini /home/ornek/lib/x86_64-linux-gnu altina, ld-linux-x86-64.so.2 nesnesini ise /home/ornek/lib64 altina kopyalamamiz gerekiyor.

ldd /bin/bash linux-vdso.so.1 => (0x00007ffff8dfc000) libtinfo.so.5 => /lib/x8664-linux-gnu/libtinfo.so.5 (0x00007f5e61aa7000) libdl.so.2 => /lib/x8664-linux-gnu/libdl.so.2 (0x00007f5e618a3000) libc.so.6 => /lib/x8664-linux-gnu/libc.so.6 (0x00007f5e614e3000) /lib64/ld-linux-x86-64.so.2 (0x00007f5e61cd5000) sudo mkdir -p /home/ornek/lib/x8664-linux-gnu sudo mkdir /home/ornek/lib64 sudo cp /lib/x8664-linux-gnu/libtinfo.so.5 /home/ornek/lib/x8664-linux-gnu/ sudo cp /lib/x8664-linux-gnu/libdl.so.2 /home/ornek/lib/x8664-linux-gnu/ sudo cp /lib/x8664-linux-gnu/libc.so.6 /home/ornek/lib/x8664-linux-gnu/ sudo cp /lib64/ld-linux-x86-64.so.2 /home/ornek/lib64/ sudo chown -R root:root /home/ornek

Tekrar giris yapmayi denerse kullanici, su asamada giris yapabilecektir. Fakat bu haliyle henuz saydigim gereksinimlerin tumunu yerine getirebilmis degiliz. Kullanici bir ev dizini bulmayi bekliyor fakat /home/ornek altinda hapsoldugundan -yani /home/ornek dizinini / olarak gordugunden- ev dizinini bulamiyor. Bu yuzden dogrudan / altinda basliyor oturumuna. Bulmayi bekledigi dizini olusturup izinlerini verelim.

sudo mkdir -p /home/ornek/home/ornek sudo chown ornek:ornek /home/ornek/home/ornek

ls, nano, rm, cat ve grep hala eksik. Oncelikle bu komutlar icin hangi nesnelere ihtiyac duyuldugunu ogrenmeliyiz. libncursesw.so.5 disindaki nesneleri zaten BASH icin kopyalamistik. Dolayisiyla onu ve /bin/nano’yu kopyalayalim.

ldd /bin/nano linux-vdso.so.1 => (0x00007fffe97ff000) libncursesw.so.5 => /lib/x8664-linux-gnu/libncursesw.so.5 (0x00007f93b0480000) libc.so.6 => /lib/x8664-linux-gnu/libc.so.6 (0x00007f93b00c1000) libdl.so.2 => /lib/x8664-linux-gnu/libdl.so.2 (0x00007f93afebc000) libtinfo.so.5 => /lib/x8664-linux-gnu/libtinfo.so.5 (0x00007f93afc95000) /lib64/ld-linux-x86-64.so.2 (0x00007f93b06b4000) sudo cp /lib/x8664-linux-gnu/libncursesw.so.5 /home/ornek/lib/x8664-linux-gnu sudo cp /bin/nano /home/ornek/bin

Su anda nano’yu calistirabiliriz diye dusunuyorsaniz, yaniliyorsunuz. ornek kullanicisi ile hemen denememizi yapalim. Bir terminal emulatoru bulamadi. xterm icin gereken dosyayi kopyalayalim.

-bash-4.2$ nano ornekyazi Error opening terminal: xterm. sudo mkdir -p /home/ornek/lib/terminfo/x sudo cp /lib/terminfo/x/xterm /home/ornek/lib/terminfo/x/

Nano’yu boylelikle calisir hale getirdik. Simdi sirada ls ve rm var. rm icin gereken butun nesneleri daha once kopyalamistik. /bin/rm’i kopyaladigimizda o da calisir hale gelecek.

ldd /bin/rm linux-vdso.so.1 => (0x00007ffff8621000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fac4d2bf000) /lib64/ld-linux-x86-64.so.2 (0x00007fac4d685000) sudo cp /bin/rm /home/ornek/bin

ls ile devam ediyoruz. Eksik olanlari yerlerine kopyalayalim.

ldd /bin/ls linux-vdso.so.1 => (0x00007fffdd5ff000) libselinux.so.1 => /lib/x8664-linux-gnu/libselinux.so.1 (0x00007f3fde415000) librt.so.1 => /lib/x8664-linux-gnu/librt.so.1 (0x00007f3fde20d000) libacl.so.1 => /lib/x8664-linux-gnu/libacl.so.1 (0x00007f3fde004000) libc.so.6 => /lib/x8664-linux-gnu/libc.so.6 (0x00007f3fddc45000) libdl.so.2 => /lib/x8664-linux-gnu/libdl.so.2 (0x00007f3fdda41000) /lib64/ld-linux-x86-64.so.2 (0x00007f3fde63b000) libpthread.so.0 => /lib/x8664-linux-gnu/libpthread.so.0 (0x00007f3fdd823000) libattr.so.1 => /lib/x8664-linux-gnu/libattr.so.1 (0x00007f3fdd61e000) sudo cp /lib/x8664-linux-gnu/libselinux.so.1 /home/ornek/lib/x8664-linux-gnu/ sudo cp /lib/x8664-linux-gnu/librt.so.1 /home/ornek/lib/x8664-linux-gnu/ sudo cp /lib/x8664-linux-gnu/libacl.so.1 /home/ornek/lib/x8664-linux-gnu/ sudo cp /lib/x8664-linux-gnu/libdl.so.2 /home/ornek/lib/x8664-linux-gnu/ sudo cp /lib/x8664-linux-gnu/libpthread.so.0 /home/testci/lib/x8664-linux-gnu/ sudo cp /lib/x8664-linux-gnu/libattr.so.1 /home/ornek/lib/x86_64-linux-gnu/ sudo cp /bin/ls /home/ornek/bin/ls

ls’i de calisir hale getirdik. BASH ile ilgili dosyalari ev dizinine alip izinlerini duzenleyelim.

sudo cp /home/ornek/.bash* /home/ornek/home/ornek sudo cp /home/ornek/.profile /home/ornek/home/ornek sudo chown -R root:root /home/ornek sudo chown -R ornek:ornek /home/ornek/home/ornek

Kullanici giris yaptiginda .bashrc PS1 degiskenine kullanici adini atamaya calisacak fakat kullanici adini bulamadigi icin “I have no name!” ismiyle karsilasacagiz. Gereken dosyalari olusturalim. Genel bilgi olarak /etc/profile ve /etc/profile.d/ nedir ne ise yarar arastirilirsa iyi olacaktir. Aslinda bu dosyalar gerekli degil fakat kullaniciya masaustunde alistigi ortami yaratmak istiyoruz.

sudo mkdir /home/ornek/etc grep ornek /etc/passwd | sudo tee /home/ornek/etc/passwd grep ornek /etc/group | sudo tee /home/ornek/etc/group sudo cp /etc/profile /home/ornek/etc/profile sudo cp -R /etc/profile.d/ /home/ornek/etc

Su asamada giris yapilirsa id komutunun bulunamadigindan yakinacaktir. /etc/profile dosyasi id ile kullanici numarasini kontrol eder. Olusturalim.

sudo mkdir -p /home/ornek/usr/bin sudo cp /usr/bin/id /home/ornek/usr/bin

Tekrar giris yaptigimizda /etc/passwd ve /etc/group yerinde olmasina ragmen yine “I have no name!” ile karsilasilacagiz. Bunun nedeni bu dosyalari okumak icin gereken kitaplik nesnelerinin kayip olmasi. nsswitch.conf(5) man sayfasi FILES bolumunde ilgili dosyalardan bahseder.

sudo cp /lib/x8664-linux-gnu/libnssfiles* /home/ornek/lib/x86_64-linux-gnu/

Iste artik kullanici adi da gozukuyor. Gelelim geride kalan son birkac komut ve gorsel zenginlestirmeye. ~/.bashrc dircolors komutuna ihtiyac duyar ls’in renkli cikti verebilmesi icin. Hemen ayarlayalim.

sudo cp /usr/bin/dircolors /home/ornek/usr/bin

Kullanicinin hapsoldugu kok dizindeki gereksiz dosyalari silelim. Geri kalan gereksinimlerimizi tamamlayalim. Hepsinin paylasilan nesnelerini daha once kopyaladigimiz icin ana programlari kopyalamamiz yeterli.

sudo rm -rf /home/ornek/.cache sudo rm /home/ornek/.bash* sudo rm /home/ornek/.profile sudo cp /bin/cat /home/ornek/bin sudo cp /bin/grep /home/ornek/bin sudo cp /bin/cp /home/ornek/bin sudo cp /bin/mv /home/ornek/bin sudo chown -R root:root /home/ornek sudo chown -R ornek:ornek /home/ornek/home/ornek

Su asamada istedigimiz sekilde chroot ortamimizi yapilandirmis olduk. Butun bu islemleri baska bir kullanici icin de tekrarlamamak adina /home/ornek dizinimizin bir arsiv yedegini alabilir ve yeni kullanicilar yaratirken bu yedekten ev dizinlerini rahatlikla olusturabiliriz. chroot ortamindaki /etc/passwd, /etc/group dosyalarinin duzenlenmesi unutulmamali. Ayrica dosya isimleri ve sahiplikleri yeniden duzenlenip sunucudaki asil /etc/ssh/sshd_config dosyasina da kullaniciya ait Match direktifi eklenmeli ya da olan Match direktifine ek yapilmali ve ssh servisi yeniden baslatilmalidir. Fakat sunu da hatirlatmak gerek ki chroot etmeniz gereken kullanicilar eger sistemde yonetim islemlerini yapacak kullanicilardan fazla hale geliyorsa varsayilan ayari tum kullanicilari chroot edecek sekilde degistirip yonetim yetkisine sahip kullanicilari match ile kacmak daha mantikli olacaktir.

Bonus: Yazinin basinda /dev altindaki cesitli sanal aygitlarin da sshd_config(5) tarafindan baglanmasinin onerildigini yazmistim. Su ana kadar bu hesabi olusturdugumuz kullanici bu dugumlerin eksikliklerinden kaynaklanan bir hata bildirmedi. Fakat ornegin scp’yi de kullanicinin erisimi olan komutlar arasina katarsaniz /dev/null aygitini bulamadigindan yakinacaktir. Bunun icin aygit dugumlerini su adimlari izleyerek olusturabilirsiniz.

sudo mkdir /home/ornek/dev cd /home/ornek/dev sudo MAKEDEV -v std

Ardindan icinde bulundugunuz dizinde olusturulmus pekcok aygit dugumu goreceksiniz. Bunlardan kmem, mem, ram, loop olanlarini silmenizde bir sakinca yok. Digerleri cat ile kullanicinin da isine yarayabilecek olanlar.

Yazida dilimin dondugunce yonettigimiz makinede hesaba sahip olan bir SSH kullanicisini nasil istegimize gore kisitlayabilecegimizi anlatmaya calistim. Umarim benzer ihtiyaci olan birine yol gosterir.

26 Nisan 2013

Posted In: "I have no name!", chroot, Gezegen, linux, NSS, ssh

Linux ve Skype 4.1 bağlantı Sorunu

Uzun süredir MSN messenger kullanmıyordum. Son zamanlarda Skype ile birleşme haberinden sonra tekrardan kullanmak istedim. Aslında Skype programınıda en son yurt dışındayken Türkiye’yi aramak için kullanıyordum. Son zamanlarda internet üzerinden yaptığım bazı işler için müşterilerim MSN veya Skype soruyorlar. Bende daha çok sevdiğim Skype programı ile birleşmesini fırsat bilerek tekrardan MSN hesabımı kullanmaya karar verdim. Kullandığım Linux Mint 14 sürümünde kullandığım Skype programı ile Skype hesabımla oturum açabiliyordum. Fakat bir türlü MSN Messenger hesabımla oturum açamıyordum. Oturum açmaya çalıştığımda son zamanlarda gördüğüm bu en saçma mesaj çıkıyordu.

bazen internet yavaş oluyor ve bir süreliğine duruyor. kendine gelip calısmaya basladığında yeniden deneyeceğiz

İnternet yavaş filan değildi. Durduğu filan da yoktu. Bu anlamsız hata mesajını çözmek üzere paket yöneticisi üzerinden kurduğum Skype’ı kaldırdım ve Skype’ın sitesinden indirdiğim yeni versiyonu (Skype 4.1 versiyonu, paket yöneticisinde de yeni versiyon vardı.) kurdum. Fakat sonuç değişmedi.

Skype üzerinden MSN Messenger bağlantı probleminin çözümü

İnternet üzerinden yaptığım araştırmada ArchLinuxTr Forumunda  basit bir geçici çözümle karşılaştım. Aşağıdaki kod ile sanırım bütün yerel diller seçeneği ile programı çalıştırmış oluyoruz (Bundan tam emin değilim). Sanırım bu bir dil problemiydi.

Terminal penceresinde yazılacak olan kod

LC_ALL=C skype

Tabi bunu her seferinde terminal penceresinden açmamak için Skype kısayolunu düzenlemek için Ubuntu-tr forumunda bir arkadaşın anlattığı biçimde  düzenledim.

Hemen onuda anlatalım.

Skype kısayolunu düzenleme

Terminal penceresinde

sudo gedit /usr/share/applications/skype.desktop

komutunu çalıştırdıktan sonra aşağıdaki kodu buluyoruz.

Exec=skype %U

bu kodu aşağıdaki ile değiştiriyoruz.

Exec=env LC_ALL=C skype %U

Artık Skype kısayolu ile açarken de sorunsuz bir biçimde msn hesabınınz ile Skype üzerinden oturum açabilirsiniz.

16 Nisan 2013

Posted In: linux, linux mint skype ve msn, linux Skype sorunu, msn ve skype

Konsolda Türkçe Klavye kullanmak

Linux dağıtımınızı gui olmadan kurduysanız muhtemelen varsayılan klavye ayarı olarak ingilizce gelmiştir. Türkçe klavyede ingilizce klavye etkileşimi kullanan ne kadar kötü bir şey olduğunu bilir. bazen bir "=" işareti için 20 tane tuşa basarsınız. Komut satırında klavye özelleştirmelerini şöyle yapıyoruz:

(Debian)
öncelikle aşağıdaki paketleri " sudo apt-get install " komutu ile yüklüyoruz. Gerekli seçimleri türkçe ve türkiye şeklinde yapıyoruz.

console-data 
unicode-data 
language-pack-de-base

ardından

sudo dpkg-reconfigure keyboard-configuration
komutunu yazıp türkçe q klavyemizi seçiyoruz ve reboot ediyoruz.

16 Nisan 2013

Posted In: Gezegen, linux, ubuntu

GSoC 2013

Bu seneki Google Summer of Code için proje sunacak topluluklar belli oldu. Tam listeye buradan ulaşabilirsiniz. Listede Honeynet de var. 2 senedir GSoC’ta öğrenci olarak yer aldığım Honeynet içerisinde Dubai’deki çalıştay sonrası danışman olarak yer almaya karar verdim. Geçen sene yaptığım projeyi (Network Analyzer) bir geliştirme projesi olarak sundum. Şimdiden ilgili öğrenciler yazıp iletişim kurmaya başladı.

Bu sene GSoC düşünen öğrencilere şimdiden proje fikirlerini okumalarını ve danışmanları ile irtibata geçmelerini tavsiye ederim. Henüz proje başvuru süreci başlamadı. Zaman çizelgesi için Google Melange sayfasını takip edebilirsiniz.

Honeynet projesini düşünenler için de proje fikirlerinin de olduğu girdi için böyle alalım.

14 Nisan 2013

Posted In: Gezegen, Görselleme, gsoc, honeynet

HAProxy backend sunucularına istemci ip adresini aktarma

Vekil sunucu (Proxy) ve/veya yük dengeleme (Load Balancing) servislerinin arkasında çalışan sistemler istemci ip adresi olarak bu servislerin ip adresini alırlar. Bu servislerin çoğu X-Forwarded-For ya da benzer bir ek başlık ile gerçek istemci adresini de sunuculara iletme desteği sunarlar.

HAProxy yük dengeleme servisinde de bu iş için yapılandırma dosyasına `option forwardfor` seçeneğinin eklenmesi gerekiyor. Bu seçenek ihtiyaca göre `defaults`, `frontend`, `listen` ya da `backend` bölümlerinden birinde tanımlanabiliyor. Yalnız bu seçenek ile ilgili çok önemli bir detay var.

Bu seçenek, HAProxy’nin çalışma yapısı gereği, geliştirme ya da test ortamında farkına varması güç bir soruna yol açıyor. Bir istemci HAProxy ile bağlantı kurduğunda bağlantının sadece ilk isteği analiz ediliyor, log’lanıyor ve işleniyor. Dolayısıyla X-Forwarded-For başlığı sadece ilk istekte ekleniyor, aynı bağlantıda gelen sonraki isteklerde sunuculara HAProxy ip adresi iletiliyor. Bu da yazılım tarafında istemci adresi olarak tutarsız değerler gelmesine neden oluyor. HAProxy loglarında da bu duruma dair bir kayıt oluşmadığından sorunun kaynağını tespit etmek zor olabiliyor.

Bu sorunun önüne geçmek ve tüm isteklerde bu başlığın eklenmesini sağlamak için ise yapılandırma dosyasına `option http-server-close` seçeneğinin eklenmesi gerekiyor. Bu seçenek de ihtiyaca göre `defaults`, `frontend`, `listen` ya da `backend` bölümlerinden birinde tanımlanabiliyor. Eğer `defaults` bölümünde tanımlandıysa ve iptal edilmek istenen bir bölüm varsa `no option httpclose` şeklinde iptal edilebiliyor. Bu seçenek istemciyle HAProxy arasındaki bağlantıyı açık tutarken, HAProxy ve sunucu arasındaki bağlantıyı kapatıyor ve tüm isteklerde başlığın doğru şekilde eklenmesini sağlıyor.

http-server-close seçeneği HAProxy’e 1.4 sürümünde eklendi. Daha eski bir sürüm kullanılıyorsa keepalive desteğini feda edip `option httpclose` seçeneğini kullanmak gerekiyor.

12 Nisan 2013

Posted In: backend, forwardfor, frontend, Gezegen, haproxy, http-server-close, httpclose, keepalived, load balancing, sistem yönetimi, x-forwarded-for

Bir yazılım stajı nasıl olmalı?

Güzel memleketimin dört bir köşesinde, her yıl binlerce genç, yazılım üzerine staj yapıyor. Ben de bir yazılım stajının nasıl olması gerektiği konusunda aklımda olan düşünceleri paylaşayım dedim.

Doğrusu yanlışı, eksiği fazlası benim düşüncemdir.

Başlayalım…

Staj, iş değildir!

Staj yaparken, iş nasıl yapılır onu öğrenirsiniz. Bunun için staj süresince çok iyi bir gözlemci olmalısınız. Kim nasıl çalışıyor iyi irdelemelisiniz. Bu, ‘kim yatıyor kim çalışıyor’ onu bulun demek değil.

İpuçları almaya çalışın

Olabildiğince yazılım geliştirme konusunda ipuçları almaya çalışın. Mümkün olduğunca yazılım geliştirme teknikleri konusunda çalışanlardan bilgi almaya çalışın. Öğreneceğiniz her bilgi ileride çok işinize yarayabilir. Mesela “hangi işletim sistemini kullanmalısınız” bilgisi oldukça önemli bir ipucu olabilir size (Linux forever!).

Kimlerle çalışacaksınız gitmeden önce öğrenin

Başvuru yapacağınız şirketin sayfasında eğer çalışanlar sayfası varsa iyice bir inceleyin orayı. Şirkette kim varmış kim yokmuş öğrenin. Eğer çalışanlar sayfası yoksa LinkedIn bu konuda size yardımcı olabilir.

Ayrıca çalışanların LinkedIn profillerini ve varsa bloglarını bulmaya çalışın. Bu şekilde çalışacağınız kişilerin hangi konularda bilgili olduklarını tespit edin.

Böylece kabul edilirseniz, staj süresince “aa bu adam bu konuyu biliyordu, dur gidip bir sorayım” diyebilirsiniz.

Şirket değil yazılımcı seçin!

Şirketten öte, şirkette çalışan yazılımcıları iyi araştırın. CV’nize yazacağınız şirketin mutlaka bir şekilde etkisi olacaktır. Ancak staj süresince edineceğiniz bilgi bundan daha önemlidir, bunu unutmayın.

Çok büyük bir X firmasına staj yapmak için girdiniz. Yaptığınız işler ufak tefek sayılamayacak kadar önemsiz olabilir. Doğal olarak o şirketten herhangi bir şey öğrenmeden ayrılmış olacaksınız.

Ama X firmasına göre daha ufak bir Y firmasında iyi bir yazılımcıyla stajınızı yaparsanız ve stajı gerçekten kaliteli işler üreterek tamamlarsanız bu sizin açınızdan daha faydalı olacaktır.

Mutlaka en az bir tane sistemci

Çalışacağınız yerde en az bir tane sistem yöneticisi olmasına dikkat edin. Hem yazılım üretip hem de sistemle ilgilenen kişilerden bahsetmiyorum. Mesleki sıfatı sistem yöneticisi olan ve sadece sistem yönetimiyle ilgilenen kişi veya kişilerin olmasından bahsediyorum.

Çünkü staj yapana kadar öğrenciler sistem tarafından pek haberdar olmuyor maalesef. Ara ara “yahu bu adam napıyor ki burada” deyip konuşmaya, fikir almaya çalışın. Çünkü gerçekten tüm sistem o adamın elinden geçiyor.

Aynı yerde birden fazla staj yapmayın

Staj sizin için sektörü tanımak için en uygun zamandır. Eğer birden fazla staj yapacaksanız ikisini de farklı farklı yerlerde yapmaya özen gösterin. Örneğin; bir yerde X diliyle çalışırsanız, diğer yerde Y dili ile çalışabilirsiniz.

Bunun en önemli yanı ufkunuzun açılmasıdır. Farklı “tatlar” denemeniz sizin avantajınızadır…

Naçizane benim aklıma gelenler bunlar, sürç-i lisan ettiysem affola.

Dip not: “E bunca fikri nasıl edindin be adam?” sorusu aklınıza gelebilir diye şöyle bir açıklama yapayım: 2 kez staj yaptım. Birkaç stajyer ile çalıştım. Ama farklı şirketlerde, farklı görevler üstlenen ve sayısını aklımda tutamadığım kadar çok, staj yapmış kişi ile çeşitli sebeplerle yaptıkları staj(lar) üzerinde diyalogum oldu. Bunca fikir staj yapmış kişilerle yaşadığım diyaloglar sayesinde ortaya çıktı.

11 Nisan 2013

Posted In: Genel, Gezegen, staj, stajyer, yazılım stajı

SSH açık-anahtar doğrulaması (SSH public key authentication)

Parola doğrulaması maalesef yeterince güvenli bir doğrulama aracı olamıyor günümüzde. Evcil hayvanınızın adından daha güçlü olduğunu düşünerek oluşturduğunuz “güçlü” parolanız dahi brute-force saldırılarına karşı tahmininizden daha çabuk teslim olabilir. Ağ trafiğinizin koklanması (sniff), İnternet üzerinden doğrudan veya köleleştirilmiş (zombie) bilgisayarların otomatik saldırıları sıklıkla yaşanıyor. SSH trafiğiniz yerel ağınızda dahi olsa sisteminize bulaşan bir solucan parola tabanlı güvenliğinizi kolayca delebilir.

Pek çok istemcinin aynı parolaya sahip hesabı kullanarak uzak sistemlerinize erişmesi, genel adıyla paylaşımlı parola kullanımı,  sizi daha çok risk altına atacaktır. Parolanın güvenliğinden endişe edilen durumlarda, aynı parolayı kullanan tüm istemcileri eksiksiz yeni parola ile güncellemeniz dahi pek eğlenceli olmayacaktır.

OpenSSH’a tümleşik gelen açık anahtar doğrulama sistemi (public key authentication) hem güvenliğinizi arttırıyor hem de kullanım kolaylığını beraberinde getiriyor.

Açık anahtar altyapısı nedir?

Açık anahtar doğrulaması (PKI – public key infrastructure) açık/gizli anahtar çiftine dayanan bir yöntemdir. Anahtar çiftinin açık olan anahtarı herkes tarafından kullanılabilir ve bu anahtarla veri kriptolanır. Sadece anahtar çiftinin gizli olan anahtarı bu kriptolu veriyi çözümleyebilir. Bu yöntemle açık anahtarınıza sahip herhangi biri size gizli bilgi gönderebilir ve veriyi gönderen kişi sizin gizli anahtara sahip olmanız durumunda bunu okuyabileceğinize emindir. Çalışma prensibini anladıktan sonra, doğrulamanın bu teknik üzerinden nasıl çalıştığını anlamak gayet kolaylaşacaktır.

Kullanıcı olarak bir anahtar çifti oluşturup, açık anahtarınızı uzak sisteminize yerleştirebilirsiniz. Bu sayede uzaktaki sisteminiz sizi doğrulayabilecektir. Bu doğrulama SSH protokolü seviyesinde otomatik olarak gerçekleşmektedir.

İşleyişten anlayacağınız gibi gizli anahtarın gizliliğinin sağlanması gerekmektedir. Sisteminizde tuttuğunuz gizli anahtarınızın güvenliği için ek bir parola (passphrase) koruması bulunmaktadır. SSH gizli anahtarınızı okumadan önce parola girişi istenmektedir. Sadece kendinizi kullandığı ve fiziksek güvenliğinden emin olduğunuz sistemlerde passphrase tanımlamadan gizli anahtarınızı bulundurmanız veya oturumunuz süresince belleğe kaydedilecek şekilde tek sefer passphrase girmeniz alternatif olarak değerlendirilebilir. OpenSSH içindeki bir araç SSH-agent, bellekte passprase saklama özelliğini kolaylaştırmaktadır.

Yapılandırma ve kullanım

İlk yapılması gereken işlem, SSH-keygen aracı kullanılarak kendinize özel anahtar çiftinin oluşturulmasıdır. Bu işlem farklı platformlarda farklı araçlar kullanılarak da yapılabilir ör. putty-keygen.exe, secureCRT gibi.

hamdi@localhost:~$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/hamdi/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hamdi/.ssh/id_dsa.
Your public key has been saved in /home/hamdi/.ssh/id_dsa.pub.
The key fingerprint is:
f3:77:56:58:a8:bb:08:59:67:15:2c:0e:1d:d0:40:a3 hamdi@localhost
hamdi@localhost:~$

Yukarıdaki adımları tamamladıktan sonra anahtar çiftiniz kullanıma hazır hale gelecek. Faklı bir isim belirtmediyseniz id_dsa gizli anahtarınız, id_dsa.pub açık anahtarınız olarak kaydedilecektir. Gizli anahtarınızı sadece sizin okuyabilmeniz için yetkilendirme yapmanız gerekecek, çünkü OpenSSH geniş yetki ile okunabilir gizli anahtarı kullanmayı kabul etmeyecek. Bunun için;

hamdi@localhost:~$ chmod 700 ~/.ssh
hamdi@localhost:~$ chmod 600 ~/.ssh/id_dsa*
hamdi@localhost:~$ ls -la .ssh
total 10
drwx------   2 hamdi  hamdi   512 Apr 10 16:12 .
drwx-----x  12 hamdi  hamdi  1024 Apr 10  2013 ..
-rw-------   1 hamdi  hamdi  1264 Apr 10 16:12 id_dsa
-rw-------   1 hamdi  hamdi  1123 Apr 10 16:12 id_dsa.pub
hamdi@localhost:~$

Bu aşamadan sonra açık anahtarınızın uzak sunucunuza kaydedilmesi gerekiyor. Bu aşamada id_dsa.pub dosyanızını bir text düzenleyici ile kopyalayıp, uzak sunucunuzdaki ~/.ssh/authorized_keys dosyasının içine eklemeniz yeterli olacaktır. Bu işlemi kolaylaştıran ssh-copy-id aracını da tercih edebilirsiniz;

ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host

İstemci sisteminizde yaptığınız yetkilendirmenin bir benzerini uzak sunucunuzda da yapmanız gerekiyor. .ssh klasörü için chmod 700 ve authorized_keys dosyası için chmod 600 uygulayın.

Uzak bağlantı için tüm adımları tamamladık. Parola kullanmadan açık anahtar ile bağlantı kurmak için;

hamdi@localhost:~$ssh -i /home/hamdi/.ssh/id_dsa remotehost.example.com
Enter passphrase for key '/home/hamdi/.ssh/id_dsa':
Last login: Wed Apr 10 16:20:50 2013 from localhost.example.com

hamdi@remotehost:~$

Uzak sisteminizi sadece açık anahtar doğrulaması ile çalışacak şekilde yapılandırmanız, kullanıcı hesaplarının brute-force ve man-in-the-middle saldırılarına karşı tamamen korunmasını sağlar.

Farklı cihazlarınız için farklı anahtar çiftleri oluşturup kullanmanız bu yapı ile mümkün olacaktır. Bunun avantajı, taşınabilir bir cihazınızın çalındığını veya kaybolduğunu düşünün. Uzak sisteminize bağlanarak bu cihazınızın açık anahtarını silmeniz yeterli olacak. Eğer birisi cihazınızı ele geçirip gizli anahtarınızın passphrese ini kırmayı başaracak seviyeye gelirse sertifika otoritesi ile yönetilen anahtar çiftlerinin “revoke” edilmesi tüm riski sıfırlayacaktır.

Ayrıca bu sistemde birden fazla istemciye parola dağıtmanın getirdiği güvenlik riskini ortadan kaldıracaksınız ve toplam güvenlik yapınıza büyük bir katkı sağlayacak. Çünkü eğer bir hesap ele geçirilse dahi uzak sisteminizdeki diğer hesapların ele geçirmesi imkansız olacak. 

Avantajlarını şu şekilde listeleyebiliriz;
– Araya girme (man in the middle) saldırılarına karşı güvenlik sağlayacaktır,
– Aynı parolayı pek çok sistemde kullanan kullanıcıların güvenliğini arttırır,
– Kullanım kolaylığı ve otomatikleştirme ile çok sayıda sistem yönetenlere hız kazandırır,
– Zayıf parola kullanımına karşı kullanıcı güvenliği artar,

10 Nisan 2013

Posted In: lkd, teknik, tr

SSH açık-anahtar doğrulaması (SSH public key authentication)

Parola doğrulaması maalesef yeterince güvenli bir doğrulama aracı olamıyor günümüzde. Evcil hayvanınızın adından daha güçlü olduğunu düşünerek oluşturduğunuz “güçlü” parolanız dahi brute-force saldırılarına karşı tahmininizden daha çabuk teslim olabilir. Ağ trafiğinizin koklanması (sniff), İnternet üzerinden doğrudan veya köleleştirilmiş (zombie) bilgisayarların otomatik saldırıları sıklıkla yaşanıyor. SSH trafiğiniz yerel ağınızda dahi olsa sisteminize bulaşan bir solucan parola tabanlı güvenliğinizi kolayca delebilir.

Pek çok istemcinin aynı parolaya sahip hesabı kullanarak uzak sistemlerinize erişmesi, genel adıyla paylaşımlı parola kullanımı,  sizi daha çok risk altına atacaktır. Parolanın güvenliğinden endişe edilen durumlarda, aynı parolayı kullanan tüm istemcileri eksiksiz yeni parola ile güncellemeniz dahi pek eğlenceli olmayacaktır.

OpenSSH’a tümleşik gelen açık anahtar doğrulama sistemi (public key authentication) hem güvenliğinizi arttırıyor hem de kullanım kolaylığını beraberinde getiriyor.

Açık anahtar altyapısı nedir?

Açık anahtar doğrulaması (PKI – public key infrastructure) açık/gizli anahtar çiftine dayanan bir yöntemdir. Anahtar çiftinin açık olan anahtarı herkes tarafından kullanılabilir ve bu anahtarla veri kriptolanır. Sadece anahtar çiftinin gizli olan anahtarı bu kriptolu veriyi çözümleyebilir. Bu yöntemle açık anahtarınıza sahip herhangi biri size gizli bilgi gönderebilir ve veriyi gönderen kişi sizin gizli anahtara sahip olmanız durumunda bunu okuyabileceğinize emindir. Çalışma prensibini anladıktan sonra, doğrulamanın bu teknik üzerinden nasıl çalıştığını anlamak gayet kolaylaşacaktır.

Kullanıcı olarak bir anahtar çifti oluşturup, açık anahtarınızı uzak sisteminize yerleştirebilirsiniz. Bu sayede uzaktaki sisteminiz sizi doğrulayabilecektir. Bu doğrulama SSH protokolü seviyesinde otomatik olarak gerçekleşmektedir.

İşleyişten anlayacağınız gibi gizli anahtarın gizliliğinin sağlanması gerekmektedir. Sisteminizde tuttuğunuz gizli anahtarınızın güvenliği için ek bir parola (passphrase) koruması bulunmaktadır. SSH gizli anahtarınızı okumadan önce parola girişi istenmektedir. Sadece kendinizi kullandığı ve fiziksek güvenliğinden emin olduğunuz sistemlerde passphrase tanımlamadan gizli anahtarınızı bulundurmanız veya oturumunuz süresince belleğe kaydedilecek şekilde tek sefer passphrase girmeniz alternatif olarak değerlendirilebilir. OpenSSH içindeki bir araç SSH-agent, bellekte passprase saklama özelliğini kolaylaştırmaktadır.

Yapılandırma ve kullanım

İlk yapılması gereken işlem, SSH-keygen aracı kullanılarak kendinize özel anahtar çiftinin oluşturulmasıdır. Bu işlem farklı platformlarda farklı araçlar kullanılarak da yapılabilir ör. putty-keygen.exe, secureCRT gibi.

hamdi@localhost:~$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/hamdi/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hamdi/.ssh/id_dsa.
Your public key has been saved in /home/hamdi/.ssh/id_dsa.pub.
The key fingerprint is:
f3:77:56:58:a8:bb:08:59:67:15:2c:0e:1d:d0:40:a3 hamdi@localhost
hamdi@localhost:~$

Yukarıdaki adımları tamamladıktan sonra anahtar çiftiniz kullanıma hazır hale gelecek. Faklı bir isim belirtmediyseniz id_dsa gizli anahtarınız, id_dsa.pub açık anahtarınız olarak kaydedilecektir. Gizli anahtarınızı sadece sizin okuyabilmeniz için yetkilendirme yapmanız gerekecek, çünkü OpenSSH geniş yetki ile okunabilir gizli anahtarı kullanmayı kabul etmeyecek. Bunun için;

hamdi@localhost:~$ chmod 700 ~/.ssh
hamdi@localhost:~$ chmod 600 ~/.ssh/id_dsa*
hamdi@localhost:~$ ls -la .ssh
total 10
drwx------   2 hamdi  hamdi   512 Apr 10 16:12 .
drwx-----x  12 hamdi  hamdi  1024 Apr 10  2013 ..
-rw-------   1 hamdi  hamdi  1264 Apr 10 16:12 id_dsa
-rw-------   1 hamdi  hamdi  1123 Apr 10 16:12 id_dsa.pub
hamdi@localhost:~$

Bu aşamadan sonra açık anahtarınızın uzak sunucunuza kaydedilmesi gerekiyor. Bu aşamada id_dsa.pub dosyanızını bir text düzenleyici ile kopyalayıp, uzak sunucunuzdaki ~/.ssh/authorized_keys dosyasının içine eklemeniz yeterli olacaktır. Bu işlemi kolaylaştıran ssh-copy-id aracını da tercih edebilirsiniz;

ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host

İstemci sisteminizde yaptığınız yetkilendirmenin bir benzerini uzak sunucunuzda da yapmanız gerekiyor. .ssh klasörü için chmod 700 ve authorized_keys dosyası için chmod 600 uygulayın.

Uzak bağlantı için tüm adımları tamamladık. Parola kullanmadan açık anahtar ile bağlantı kurmak için;

hamdi@localhost:~$ssh -i /home/hamdi/.ssh/id_dsa remotehost.example.com
Enter passphrase for key '/home/hamdi/.ssh/id_dsa':
Last login: Wed Apr 10 16:20:50 2013 from localhost.example.com

hamdi@remotehost:~$

Uzak sisteminizi sadece açık anahtar doğrulaması ile çalışacak şekilde yapılandırmanız, kullanıcı hesaplarının brute-force ve man-in-the-middle saldırılarına karşı tamamen korunmasını sağlar.

Farklı cihazlarınız için farklı anahtar çiftleri oluşturup kullanmanız bu yapı ile mümkün olacaktır. Bunun avantajı, taşınabilir bir cihazınızın çalındığını veya kaybolduğunu düşünün. Uzak sisteminize bağlanarak bu cihazınızın açık anahtarını silmeniz yeterli olacak. Eğer birisi cihazınızı ele geçirip gizli anahtarınızın passphrese ini kırmayı başaracak seviyeye gelirse sertifika otoritesi ile yönetilen anahtar çiftlerinin “revoke” edilmesi tüm riski sıfırlayacaktır.

Ayrıca bu sistemde birden fazla istemciye parola dağıtmanın getirdiği güvenlik riskini ortadan kaldıracaksınız ve toplam güvenlik yapınıza büyük bir katkı sağlayacak. Çünkü eğer bir hesap ele geçirilse dahi uzak sisteminizdeki diğer hesapların ele geçirmesi imkansız olacak. 

Avantajlarını şu şekilde listeleyebiliriz;
– Araya girme (man in the middle) saldırılarına karşı güvenlik sağlayacaktır,
– Aynı parolayı pek çok sistemde kullanan kullanıcıların güvenliğini arttırır,
– Kullanım kolaylığı ve otomatikleştirme ile çok sayıda sistem yönetenlere hız kazandırır,
– Zayıf parola kullanımına karşı kullanıcı güvenliği artar,

10 Nisan 2013

Posted In: lkd, teknik, tr

Özgür Yazılım ve Linux Günleri 2013

4 senedir aralıksız katıldığım bir ÖYLG'nin daha sonuna geldik. Yaşadıklarımı anlatmak istiyorum.

Cuma sabahında Alternatif Bilişim cemaati olarak Hackerspace'de buluşup etkinlik alanına doğru yola çıktık. Bilgi Üniv. servislerinin yerinin değiştirmelerinden haberim olmayınca ufak bir krizden de kurtulmuş oldum.
Bu sene etkinlik Santral kampüsünün enerji müzesinde yapılıyordu. Etkinlik alanını Dolapdere'dekinden daha çok beğendiğimi söyleyebilirim. Sponsor listesinin kabarık olmasıyla ve demirbaş haline gelmiş kurumların katılımıyla stand sayısı fazlaydı. Salonların büyüklükleri iyiydi.

Etkinlik teması dağıtık sistemler ve NoSQL veritabanları olarak belirlenmişti. NoSQL pek aşina olduğum bir konu değil ama ÖYLG'nin güncel bir konuyu seçmesine memnun oldum. 7-8 tane konuşmayı dinleyebildim. Onlardan bahsettikten sonra, hatrı sayılır gördüğüm şeyleri anlatmak istiyorum.

İlk olarak mevcut Pardus proje yöneticisi Ahmet Kaplan'ın konuştuğu TÜBİTAK ULAKBİM'ın sponsor sunumuna girdim. Etkinlikten günler önce konuşmanın protesto edileceği konuşuluyordu. Bir ara konu yumurta atmaya kadar geldiyse de böyle bir olay yaşanmadı. Ahmet Bey sunum yapmadan kısa bir konuşma yapıp zamanı sorulara ayırmak istedi. O sırada eski geliştiriciler de salondaydılar. Gökçen Eraslan'ın "Eski Pardus'tan hangi bileşenleri kullanıyorsunuz ?" sorusuna cevabın Milky olmasına epey bir içerlemiş gözüküyordu. Bu süreç boyunca tepkisini çok net ortaya koyan insanlardan olan Ozan Çağlayan eleştirilerini sıraladıktan sonra "Kurumsal 2 zaten isteklerinizin çoğunu yapıyordu" sözüne "Sizin yaptığınız ürün çalışsaydı MSB bizim kapımıza dayanmazdı" cevabı basbaya ayıptı. (Sözü geçen ürünün 3.5-4 senelik Kurumsal 1 olduğunu hatırlatayım) Ahmet Beyin dışarıda bu söz için özür dilediğini not düşeyim. Dinleyicilerden birinin "LibreOffice çeviri listesinde TÜBİTAK'tan niye kimse yok" sorusuna verilen "Olmaması da lazım zaten " cevabı gülünçtü.
Konuşmadan anladığım şeyler arasında Yeni Pardus deposunun kamuya açık olmaması Tübitak'ta yaklaşık 5 kişinin bulunup geri kalan işlerin firmalara yaptırılması gibi şeyler vardı. Aslında servis sağlayıcısı görevi gören bir kurumun Linux dağıtımı geliştirmeyi ne kadar becerebileceği hala tartışma konusu. Konuşma süresi biraz aşılsa da tartışma dışarıda uzunca bir süre devam etti. Bir kısmını dinledim. Hararetli tartışma bir yerden sonra yumuşadı. Eski geliştiriciler tartışmayı trollemediler ve tavırları yaşadıklarına rağmen makul ve gerçekçiydi. Etkinliğin en merak edilen olaylarından biriydi. Konuşma sırasındaki protesto görüntülerine https://pardusadokunma.wordpress.com/2013/04/06/ozgur-yazilim-gunleri-2013-tubitak-protestosu/ adresinden erişebilirsiniz.

Ardından Ekin Meroğlu'nun yaptığı Linux Tabanlı Sanallaştırma: KVM ve Ekosistemi konuşmasına katıldım. 1.5 saate yakın sürdü. Oldukça yoğun ve bilgilendirici olduğunu düşünüyorum. Sanallaştırma pek ilgilendiğim bir konu değildi ama ilginç olabileciğini düşünüyorum. Bu konuşmaya denk gelmem iyi oldu.

ÖYLG'ninde özellikle Chris Hoca(Stephenson)'nın sunumunu kaçırmamaya çalışıyorum. Özgür yazılım camiasına Chris Hoca'dan bahsetmeye elbette gerek yok. Ama piyasadan pek hazetmeyen ben için yaptığı bilim vurgusu çok değerli ve kendi adıma büyük bir boşluğu doldurduğunu düşünüyorum. Konuşma başlığı GoTo’nun Zararlı Kabul Edilmesi – Dijkstra’nın Mirası olsa konunun odak noktası Dijkstra'ydı hatta GoTo 2-3 cümleden fazla geçmedi diye hatırlıyorum. Artık klasikleşmiş bir şekilde konuşmada Java'ya giydirmeyi de ihmal etmedi.

Ardından oldukça provakatif ve gel beni dinle diyen bir başlığa sahip Yaşar Safkan'ın Yazılımcının Suçu Ne ? sunumunu izledim. Zaten eğlenceli bir insan olan Yaşar Abi komik bir şekilde yazılımcıların sorunlarına değindi. Konuşmayla ilgili bir özet için http://www.teknikodu.com/yazilimcinin-sucu-ne/ konuşma videosu için buraya http://www.safkanyazilim.com/yasar-safkanin-ozgur-yazilim-gunleri-2013teki-konusmasi/ bakabilirsiniz.

İlk günün son etkinliğinde Uğur Özyılmazel'in İnsanlar için Git konuşmasını dinledim. Git'e aşina olmayanlar için güzel bir girişti. Git yaşam döngüsünü biliyordum ama otomatize eden git-flow aracınında haberdar değildim. Onu da buraya not düşebilirim.

İkinci gün biraz geç kaldığım için Neden Scala konuşmasının ortalarına denk geldim. Güzel bir giriş sunumuydu ama ben dilden haberdar ve basit seviyede bilen biri olduğum için yeni pek fazla şey duymadım. Ancak concurency'ye en yakın kelimeyi bulduklarını düşünüyorum eş-zamanlılık diyerek.

Tizen konuşmasını dinleyemesem de Meego topluluğuyla görüşmek güzeldi. Galaxy S3'ün boyutlarından şikayet edenlere Tizen demo cihazını göstermek isterdim.

Ardından HortonWorks'ten Chris Harris'in Hadoop sunumunu izledim. Yanlış anlamadıysam HortonWorks Yahoo'daki ilk Hadoop ekibinin üyeleri tarafından kurulmuş ve Hadoop Core'una en çok katkıyı veren şirket. Harris'in konuşması Hadoop ne işe yarar, hangi bileşenlerden oluşuyor, yahu ne olcak bu Hadoop'un hali konuları eksenindeydi. Teknik detay pek içermiyordu diyebilirim. Konuşmayı dağınık bulanlar olmuş, ben pek farketmedim.

Sonrasında günün son sunumlarından olan Yakından Eğitim'e girdim. GSoC'un yerli şubesi diyebileceğim yakından eğitim ilgilendiğim takip ettiğim ancak belli çekincelerle başvurmadığım bir projeydi. Sunumdan anlayabildiğim kadarıyla onlar da projeyi oturtmaya çalışıyorlar kendilerine tekrar başarılar dilerim.

Etkinlikte sunumlar dışında olan bitenden de biraz bahsetmek istiyorum.

Hackerspace olarak getirdiğimiz Commodore 64 büyük ilgi gördü. Mail listesi kayıtlarını oradan almaya çalışsak da ben e-posta bırakmıştım ama eklemediniz sözünü çok duyacağız gibime geliyor. Commodore'a sonsuz döngü yapan bir program yazıp beni kullanmayı bilmediğim bir aletle öylece ortada bırakan Uğur Abiye de teessüflerimi burdan ileteyim. Hatta biri o durumun resmini de çekmiş.Malum trollük mağduru olunca eğlenceli olan bir şey değil :)
Ancak etkinliğin en büyük trollü ödülünü aşağıdaki ilanla bence Bilgisayar Mühendisliği Odası hakediyor.
Piyasada görmeye çok alıştığımız 5 kişinin işini 1 kişiye yaptırma amaçlı ilanların biraz abartılmış versiyonu. Tepedeki referans kodununun YUH ile başladığını farketmeyen ben dahil pek çok kişi bunu ciddiye aldı ve çokca dalgası geçildi. Kendim de fark etmedim aslında bunu BMO adına üzüldüğüm için sitem etmeye gittiğimde gösterdiler. İnternette falan da bozuntuya vermediler. Trollüğün kitabı yazılacak olsa girmesi gereken bir hareket.

LKD standında bir süre sadece kadınların bulunması özellikle saç,sakal,göbek triosuyla akla gelen linuxçu stereotype'ına karşı hoş bir görüntüydü. Özgür yazılımda kadınların daha aktif olmaları dileğiyle diyeyim.

Yeni tanıştığım insanlar karşısında heyacanlanıp, yer yer gaza gelip insan kilitleme gibi kötü bir huyum var ne yazık ki. Bu seneki piyango Biçda standındaki hanıma vurdu kendisinden özür dileyeyim buradan.

Gördüğüm kadarıyla her sene etkinlik biraz daha ileriye gidiyor. LKD'ye ve organizatörlere emeklerinden dolayı teşekkür ederim. Bir aksilik olmazsa seneye görüşmek üzere.

9 Nisan 2013

Posted In: Etkinlikler, Gezegen, gnu/linux, Özgür yazılım

Twitter Auto Publish Powered By : XYZScripts.com