Aydan Taşdemir Yılmaz

Linux Notları

Recent News

Çarşamba, Kasım 14, 2012

LinuxCon Europe 2012

Bu sene Barcelona'da düzenlenen Linuxcon için şirketimiz Markafoni'nin desteği ile yeni gelişmelerden haberdar olmak için üç arkadaş konferansa katıldık.

Oturumlar 8 salonda paralel olarak gerçekleştirildi. Her gün ilk iki oturum büyük salonda keynote olarak ortak yapıldı. İlk üç gün konferans son gün de GlusterFS ve Yocto workshoplarından oluşan konferansa ilgi yoğundu.



Salı, Eylül 18, 2012

Going Google Roadshow İzlenimleri



Google ve Global IT tarafından Türküye'de gerçekleştirilen ilk Enterprise etkinlik olan Going Google Roadshow Sakıp Sabancı Müzesi'ndeydi. Google etkinliklerinin güzel olduğunu duymuştum. Gitmeden önce de belli bir beklentim vardı. Etkinliğin yapıldığı alan oldukça güzeldi. Sunumlar 13:00 de başladı.

İlk sunum Google Türkiye direktörü Bülent Hiçsönmez tarafından yapıldı.
Sunumdan aklımda kalanlar ;
* İnternette gelinlik aramalarının en fazla nisan ayında damatlık aramalarının da temmuz ayında yapıldığı
* Kobilerin internet kullanarak büyüme oranlarını 8-10 kat arttırabilecekleri

İşin şakası bir tarafa ilk sunum oldukça güzeldi. İnternetin hayatımızda ne kadar önemli olduğu , artık internetten uzak bir iş bile yapıyor olsak interneti kullanmanın bizim için ne kadar önemli olabileceği tekrar tekrar vurgulandı.

İkinci sunum Sebastien Marotte tarafından yapıldı , ilk sunuma ek olarak aklımda birbirinden farklı ülkede olan çocukları ile her hafta sonu video konferans yapıp oyunlar oynadıkları kalmış :)

Etkinliğin en beğendiğim sunumu Working in the Future - Demo. İki google çözüm mühendisi sahnedeydi. Gerçekten güzel düşülmüş ve çalışılmış bir sunumdu. Demosunu yaptıkları teknolojilere hiç yabancı olmayıp kullanmama rağmen hiç sıkılmadan izledim. Peki neler mi yaptılar ? Google docs belgesi açıp eş zamanlı olarak düzenlediler. Düzenledikleri belge üzerinde yüz yüze konuşmak için San Francisco ofisinde bulunan arkadaşları ile hangout yaptılar. Bu demoda gözüme çarpan da şu oldu. Eş zamanlı düzenledikleri belgenin olduğu klasöre bir resim eklediler. Resmin ismi picture01.jpg gibi bir şeydi. Bu bir chromebook resmi idi. Google drive arama alanında chromebook yazıp aradıklarında picture01.jpg de arama sonuçlarında çıkıyordu. 

Türkiye'de kurumlar bulut ile tanışıyor sunumunu Melih Murat yaptı. Sunumun gösteriminde bir takım aksaklıklar oldu , fakat o konuya oldukça hakimdi. 
Kurumlarda sanallaştırmanın bulut için bir kilometre taşı olduğunu söyledi. Bir şirkette uzaktan erişilen servislerin kullanımı fazla ise buluta geçisin o kadar kolay olacağını , bulut bilişim temellerinden biri olan kullan-öde ödeme sisteminin yaygınlaşması gerektiğinden bahsetti. Buluta geçmeyi düşünen şirketlerin özel bulut mu yoksa genel bulut mu kullanmalarına karar vermeleri , özel bulutun yüklü bir sermaye maliyeti ve iş yapma şeklini değiştireceğini , genel bulutun ise servis yatırımı yapmayı gerektireceğini anlattı.
Konferans boyunca sorulan en güzel soru tüm verilerimizi buluta taşıdıktan sonra hükümetin bu servisleri yasaklaması ya da kısıtlaması durumunda ne olacağı idi :)

Kahve molasından sonra Erik de Muinck Keizer Enterprise search konusunu anlattı.
*www nun 50 milyar sayfadan fazla olduğu bu kadar sayfayı okuyup aradığımızı bulmamızın tam 47 yıl anlamına geldiği
*İş yerleri içinde arama yapanların %38 inin aradığını bulabildiği, bulunmayan her içeriğin olsa bile tekrar girildiği 
*Bilgi üzerinde çalışan insanların ulaşamadığı her veri için yıllık zararının 57 bin dolar olduğu
*Şirket içi aramalarda en sık kullanılan yöntemin telefon olduğu
*Şirket içi yapısız bilginin 44 kat artacağı ve bunlarla başa çıkılmazsa verim ve üretkenliğin
 azalacağı anlatıldı.

Son sunumda da Google Apps kullanan şirketlerin dönüşümü nasıl yaşadığı ve deneyimlerinden bahsedildi.

Google Apps'e geçmeye düşünen şirketler uygulamalardan sadece mail anlamında faydalanmak istemiyor. Geçişten sonra Microsoft Office ürünlerinden ve lisans bedellerinden de tamamen kurtulmayı planlıyor. Bu da demek oluyor ki Google Apps kullanımı yaygınlaşırsa şirket içi dökümanlar da platform bağımsız ve Microsoft bağımsız olabilir.

Bütün sunumları hiç sıkılmadan ilgi ile dinledim. Benim için son derece faydalı oldu. Gelmek isteyip de işten güçten gelemeyenler için de buraya gördüklerimi yazayım dedim ;)

Cuma, Temmuz 06, 2012

Autofs kurulumu ve dikkat edilmesi gereken kısımlar

Autofs Nfs ile mount ettiğimiz dizinlerin ihtiyaç halinde otomatik olarak mount edilmesini sağlayan mekanizmadır(ekşisözlük) . Büyük boyutlu ve birden fazla sunucu tarafından kullanılan dizinleri bütün sunuculara kopyalamak yerine ağ üzerinden erişerek kullanmak bize disk açısından da büyük kolaylık sağlayacaktır. Bunun autofs yardımıyla ihtiyaç halinde kullanılması sunucu açıldığında mount edilemese bile sunucunun açılmasını engellememesi gibi kolaylıkları açısından son derece kullanışlıdır.
Autofs kurulumu ayarları bilen biri için gayet kolay olsa da dikkat edilmesi gereken bazı ufak detaylar sebebiyle saatlarimizi harcamamıza sysloglarda kaybolmamıza sebep olabilecek bir uğraş. Bu yazıda autofs kurulumuyla beraber kurulum sırasında karşılaştığım bir kaç sorundan ve internetten bulduğum çalışan çözümlerden bahsedeceğim.
Kurulumu Ubuntu 11.04 LTS ve 12.04 LTS üzerinde denedim. O platformlar için anlatacağım.
Paket deposundan autofs paketini kuruyoruz.
#apt-get install autofs5
Paketi kurduktan sonra autofsin işletim sistemimiz üzerinde kopyaladığı dosyalar şu şekilde

/usr/sbin/automount     autofs binary
/etc/auto.master        master file
/etc/auto.misc          map file
/etc/rc.d/init.d/autofs         autofs startup script
/usr/lib/autofs         autofs libraries
/lib/modules/Kernel.Version/fs/autofs.o autofs loadable module
/.autofs                temporary directory to manage the mount points
/var/log/messages       log files ( depends on your syslog.conf )

İlk olarak auto.master dosyasını düzenliyoruz.
Dosyaya aşağıdakine benzer bir satır ekliyoruz.
/srv/autofsdir /etc/auto.site
Bu satırda /etc/auto.site dosyasında belirteceğimiz dizini /srv/autofsdir dizini altına mount et diyoruz.
Daha sonra auto.site dosyasını düzenliyoruz.
data  -fstype=nfs,rw 20.20.20.20:/srv/data
Bu satır ile 20.20.20.20 sunucusunda bulunan /srv/data dizinini data dizini adı ile okunabilir ve yazılabilir olarak nfs ile mount edebileceğini söylüyoruz.
Bu ayarlama ile 20.20.20.20 sunucusunda bulunan /srv/data dizini altındaki bütün dosyaların kendi sunucumuzda /srv/autofsdir/data dizini altından erişilebilir yazılabilir ve okunabilir olmasını hedefliyoruz.
Buraya kadar geldikten sonra autofs servisini başlatmadan önce aşağıdaki adımları tamamlamalıyız.
+auto.master dosyasında belirttiğimiz dizinin oluşturulması
#mkdir /srv/autofsdir
+/etc/nsswitch.conf dosyasına aşağıdaki satırın eklenmesi
    automount:      files
+Dosyaların bulunduğu ana sunucuya nfs-kernel-server kurulması
#apt-get install nfs-kernel-server
+Dosyaların bulunduğu ana sunucuda /etc/exports dosyasına aşağıdakine benzer satırın eklenmesi(kendi ip ve dizin yolunuza göre düzenlemelisiniz)
/srv/data 20.20.20.0/24(rw,nohide,insecure,no_subtree_check,sync,anonuid=33,anongid=33)
+Dosyaların bulunduğu ana sunucuda nfs-kernel-server ın restart edilmesi.
#/etc/init.d/nfs-kernel-server restart
+Son olarak dosyaların mount edileceği sunucuda autofs servisini başlatıyoruz.

Perşembe, Haziran 28, 2012

Vsftpd 2.3.5 Ayarlar ve Chroot Çözümleri


 Vsftpd 2.3.4 sürümüyle birlikte aşağıda belirtildiği üzere chroot konusunda bazı sınırlamalar getirilmiş. Bu nedenle ayarlar birazcık değişmiş.
- Add stronger checks for the configuration error of running with a writeable
root directory inside a chroot(). This may bite people who carelessly turned
on chroot_local_user but such is life.

Daha önce vsftpd ayarlaması yapmıştım ve ftp sorunsuz çalışıyordu. Fakat yeni kurduğumuz sunucuda benzer ayarları yapmama rağmen sürüm farklılıkları sebebiyle maalesef bir takım zorluklarla karşılaştım. Bu nedenle bir blog yazayımda her şey derli toplu bir yerde bulunsun istedim.
Kurulum ve ayarlar
Kurulumu Ubuntu 12.04 üzerinde yaptığım için onun üzerinden anlatayım.
vsftpd paketini kuruyoruz
#apt-get install vsftpd
Ayar dosyasını düzenliyoruz. Ayarlar şu şekilde
listen=YES 
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
use_localtime=YES
connect_from_port_20=YES
xferlog_enable=YES
chown_uploads=YES
chown_username=www-data
chroot_local_user=YES
user_config_dir=/usr/local/etc/vsftpd_users 
secure_chroot_dir=/var/run/vsftpd/empty 
pam_service_name=vsftpd 
rsa_cert_file=/etc/ssl/private/vsftpd.pem
Ayarları bu şekilde yapma sebebimiz sistemde belirsiz bir kullanıcı girişini engellemek ve bir kullanıcı oluşturup bu kulanıcının kendi home dizini dışında başka yerlere erişimlerini kısıtlamaktır.
Sisteme yeni bir ftp kullanıcısı ekliyoruz.
#adduser ftpuser
Parola belirliyoruz
#passwd ftpuser
Kullanıcının home dizini olarak istediğiniz yeri ayarlayabilmek için /etc/passwd dosyasını düzenleyebilirsiniz.
ftp kullanıcını oluşturup gerekli düzenlemeleri yaptıktan sonra config_dir olarak ayarladığımız dizin altına aşağıdaki dosyayı oluşturuyoruz.
#touch /usr/local/etc/vsftpd_users/ftpuser
Dosyaya aşağıdakileri ekleyerek kullanıcıya gerekli izinleri vermiş oluyoruz.
local_root=/home/ftpuser
dirlist_enable=YES
download_enable=YES
write_enable=YES
Böylece ftpuser kullanıcısı kendi home dizinine erişebilecek , dizin listeleyebilecek , dosya indirip yazma hakkına sahip olacak. Bu ayarları kendi ihtiyaç ve güvenlik önlemlerinize yönelik düzenleyebilirsiniz.
Buraya kadar her şey güzel gittiyse bile iki sıkıntıyla karşılaşabilirsiniz.Dizini bütün kullanıcılar için yazılabilir hale getirdiyseniz eğer vsftpd güvenlik sebebiyle login olmaya izin vermeyecektir. Dizine sadece root kullanıcısı yazabilir derseniz de her ne kadar ayarlarda dizine yazabilsin deseniz bile ftp kullanıcısı dizin içerisinde bir değişiklik (dosya ekleme , çıkarma vb ) yapamayacaktır.
Bunun için biraz googleda araştırdıktan sonra dizin izinlerini ( çok kafiyeli oldu:) aşağıdaki gibi düzenlemem gerektiğini buldum.
#chmod a-w -R /home/ftpuser   --Bütün kullanıcıların yazma hakkını alıyoruz
#chmod g+w -R /home/ftpuser --Sadece gruba yazma hakkı veriyoruz
Fakat hala ftp kullanıcısı dizin içerisinde değişiklik yapma konusunda sıkıntı yaşıyordu. Bu nedenle kullanıcıya da yazma hakkı verdiğimde sorun çözüldü.
#chmod u+w -R /home/ftpuser    --Kullanıcıya yazma hakkı veriyoruz.
Bağlantı kurup kuramadığımızı
#ftp ftp.sunucu.ipsi
sisteme eklediğiniz kullanıcı adı ve parola bilgileri ile test edebilirsiniz.
Bir de bu yazının önemli kısmını öğrendiğim kaynağı belirtelim.
[1]http://rockstar.dyndns.tv/freebsd/vsftpd.html


Çarşamba, Haziran 06, 2012

Ssh tünel kurarak dosya aktarımı

     Diyelim ayrı networkte iki sunucunuz var, bu makinaların ortak haberleştiği bir sunucu var fakat aralarında bağlantı yok ve sizde birinden diğerine dosya aktarımında bulunmak istiyorsunuz, bunun için tünel kurarak ssh bağlantısı yapabilirsiniz.
Sunucularımız A, B ve C olsun almak istediğimiz dosya da C makinasındaki deneme.dump dosyası olsun.
Şekildeki gibi A sunucusu B sunucusu ile B de C ile haberleşebiliyor olsun.
A sunucusu (00.00.00.01)
B sunucusu (00.00.00.02)
C sunucusu (00.00.00.03) ipsine sahip olsun


A sunucusundan
**ssh -L 7075:00.00.00.03:22 root@00.00.00.02 
                 |              |             |                      |         
Boş bir port  C nin IPsi ssh portu       Bnin IPsi
ile tüneli kuruyoruz.
Daha sonra A sunucusuna bağlanıp
**scp -P 7075 root@localhost:/root/deneme.dump .
ile C makinasındaki almak istediğimiz dosyayı alabiliriz.

Cuma, Haziran 01, 2012

LVM (Logical Volume Manager)

      Yazının başlığı her ne kadar sadece LVM gibi görünse de bu yazıda VMware üzerinde bulunan sanal makinaya disk ekleme ve linux makinada bu diski bir logical volume içerisinde tanımlayıp kullanmak istediğimiz şekilde formatlama hakkında öğrendiğim kadarını anlatacağım. 
VMware Disk Ekleme
VMware üzerinde Inventory/Hosts and Clusters kısmına geliyoruz. Disk eklemek istediğimiz sanal makinanın üzerine sağ tıklayıp Edit Settings kısmına geliyoruz.
Sırasıyla Add / Hard Disk / Create a new virtual disk kısmına geliyoruz.
Disk kapasitesini gerekli miktarda ayarlayıp thin provision olarak ayarlıyoruz ( Bunun nedeni eklediğimiz miktarın direk değil ihtiyaç duyuldukça kullanılmasını sağlamak)
Store with the virtual machine kısmını işaretleyerek yeni eklediğimiz hard disk ile sanal makinanın aynı datastore da bulunmasını sağlıyoruz. Bu şekilde sanal makinamıza diski eklemiş oluyoruz.
Fiziksel Volume , Logical Volume ,Volume Group ekleme
VM üzerinde eklediğimiz diski öncelikle fiziksel olarak bölmek isteyip istemediğimize karar veriyoruz. Eklediğimiz diski ikiye bölüp farklı formatlarda farklı amaçlar için kullanabiliriz. 
**Eklediğimiz disk sistem tarafından görünüyor mu kontrol ediyoruz.
#fdisk -l | grep Disk
ile makina üzerinde bulunan diskleri ve boyutlarını görebiliriz. Eklediğimiz bölüm /dev/sdb olarak sistem tarafından görünüyor. 
#fdisk /dev/sdb
gelen seçeneklerden sırasıyla yeni bir disk bölümü yarat (n) ve partitonın sırası (1-4) seçerek yeni bir disk bölümü oluşturabiliriz. 1 seçiyoruz
**Öncelikle /dev/sdb bölümünü fiziksel disk bölümü olarak taratıyoruz
#pvcreate /dev/sdb1
**Sistemde bulunan volume groupları aşağıdaki gibi görüntülüyoruz.
#vgdisplay
**/dev/sdb üzerinde server_data isimli bir volume group yaratıyoruz.
#vgcreate server_data /dev/sdb1
**Volume group hakkındaki bilgileri görüntülüyor eklenip eklenmediğini kontrol ediyoruz.
#vgdisplay
**Total PE diskin fiziksel kapsamının tamamını gösterir. Volume group içerisinde bulunan fiziksel birimlerin kapsamlarının ortalamasını gösterir.
Total PE              76799
**server_data ismiyle oluşturduğumuz volume group üzerinde lv_data isimli bir logical volume yaratıyoruz.
#lvcreate -l 76799 -n lv_data server_data

**Yarattığımız logical volume bilgilerini görüntülüyoruz.


#lvdisplay
**ext4 olarak formatlıyoruz.
#mkfs.ext4 /dev/server_data/lv_data
**Daha sonra /data isimli bir dizin oluşturuyoruz.
#mkdir /data
**Ve lv_data olarak oluşturduğumuz yeni birimi yeni dizinimize mount ediyoruz.
#mount /dev/server_data/lv_data /data
Böylece VM üzerinde eklediğimiz yeni alan /data pathi ile erişilebilir, /dev/sdb fiziksel birimi olarak /dev/server_data volume group altında ve /dev/server_data/lv_data logical volume olarak kullanılmaya hazır durumdadır. 
**En son mount ettiğimiz alanı /etc/fstab dosyasına ekleyerek sistem açılışı sırasında otomatik mount edilmesini sağlamamız gerekiyor.

Hatalı yanlış eksik gördüğünüz kısımlar var ise söylemekten çekinmeyin, konuyu yeni öğrendiğim için anlatımda sıkıntı olabilir fakat aşamalar deneyerek yapılmıştır.

Bu süper bilgiler için İlker Erek Duran' a kocaman teşekkürler :))

Cuma, Ocak 27, 2012

Mysql Repair



Evet bugün de mysql ile ilgili bir soruna sebep olmam ve bunu nasıl çözdüğümüzden bahsedeceğim.
Çok kişi tarafından kullanılan bir makinamıza load average 7 ye 8 e çıktığında artık bu makina için neler yapabileceğimizi bulmaya çalıştık.
Apache servisini durdurup makinanın düzelmesini bekleyip servisleri durdurup başlatmamıza rağmen durum düzelmeyince çalışan bazı temel süreçlerdeki ayarlarda iyileştirmeler yaptıktan sonra sıra reboot işlemine geldi.
Makinayı reboot etmeden önce mysql servisini stop etmediğimden ötürü bazı tablolarda sorunlar oluştu.
O yüzden ilk önerim reboot etmeden önce apache , mysql , postgresql , nginx vb servislerin durdurulmasıdır.
Makina tekrar açıldı başlamayan servisleri başlattık baktık mysql tabloları bozuk. Gelen hata mesajlarından bozuk olan tabloları bulduktan sonra mysqle bağlanıyoruz.

$mysql -u kullaniciadiniz -p

Sorunlu tabloların bulunduğu databasee geçiyoruz.

mysql>use database;

Tabloları onarıyoruz.

mysql>repair table sorunlutablo;

Böylece tablolarımızı kurtarmış oluyoruz.
Başka tablolarda aynı sorun var mı yok mu? merakımızı gidermek için de aşağıdaki komutu çalıştırıyoruz. Her sorunlu tablo için aynı işlemi gerçekleştiriyoruz.

$mysqlcheck database -u kullaniciadiniz -p

Perşembe, Ocak 26, 2012

Single User Mode ile root parolası sıfırlamak

Diyelim ki bir sunucu kurdunuz ve sunucuda kullanıcılar ldap ile bağlanıyor ve sudo olabiliyor, üstelik buna güvenip bir root parolası belirlemediniz. Ya da parolanızı unuttunuz.
İşte bende yine böyle bir sunucu kurdum ve ldap sunucusunda sorun çıkacağını tahmin etmeden sudo parolası belirlemedim. Gel zaman git zaman bir de baktık sudo olamıyoruz.
Bu yazımda 5 dk da root parolasını değiştirmeyi anlatacağım:)
Daha önce hiç ihtiyacı olmadığından bu konuda hiç fikrim yoktu. İnternette ingilizce kaynak çok var Türkçe muadili de olsun diye buraya yazıyorum.
Öncelikle root parolasını değiştireceğimiz makinaya ssh ile değil konsol yardımıyla bağlanıyoruz. Makinamız vmware üzerinde olduğundan soğuk sunucu odasına girmeme gerek kalmadı :)
Öncelikle single user mode nedir?
Single user mode işletim sisteminin çoklu kullanıcı modunda çıkıp tek bir super kullanıcı ile boot ettiği mode anlamına gelmektedir. Bu mode aynı zamanda ağ ile ilgili güvenlik gerektiren durumlarda da kullanılabilmektedir. Single user mode da sistem runlevel 1 de çalışmaktadır.[wikipedia]
Nedir bu runlevel diyenler için gelsin :
Runlevel , Unix benzeri bir işletim sistemi üzerinde önceden ayarlanmış bir işletme durumudur.
Her bir runlevel farklı bir sistem ayarını ve her bir süreç için farklı izinleri belirtir.
Örnek verirsek
0 : Sistem durur , aktivite olmaz , sistem güvenle kapanır.
1 : Single User Mode , nadiren kullanılır.
2 : Multiple User, dosya sistemi yoktur, nadiren kullanılır.
3 : Multiple User, komut satırı, linux tabanlı server sistemlerinin normal çalışma seviyesi.
4 : Kullanıcı tarafından tanımlanabilen
5 : Multiple Users , grafik kullanıcı arayüzü , linux tabanlı masaüstü sistemlerin normal çalışma seviyesi
6 : Reboot , bilgisayar restart edilirken kullanılır. [runlevel]

Şimdi de root parolamızı nasıl sıfırladığımıza bakalım.
Sistemi reboot edelim.
Tekrar açılırken grub ekranı geldiğinde Esc tuşuna basalım.
Gelen seçeneklerden boot seçeneklerini seçelim.
Gelen ekranda e tuşuna basarak edit moduna geçelim.
Kernel bilgilerinin yazdığı satırın sonuna single yazalım.
CTRL+X kombinasyonu ile makinayı boot edelim.
Ve artık root olarak komut satırındayız.
Bundan sonra yapmamız gereken
#passwd ile root için yeni bir parola belirlemek.
Single user moddan çıkmak için makinayı reboot etmemiz gerektiğini hatırlatayım.
Yanlış ,eksik ,saçma gördüğünüz yerler için yorum yazabilirsiniz :)
İşlemler Ubuntu 10.04 server üzerinde yapılmıştır.