Apache2 Sorunsalı


Apache2 servisini başlatmak isteğimizde kimi zaman yan servisler, kimi zaman aynı porta kurulu servisler yüzünden sorunlar çıkabiliyor ve servis başlatılamıyor.

(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
 *
 * The apache2 instance did not start within 20 seconds. Please read the log files to discover problems

Yukarıdaki gibi sorunla karşılaştım bugün. Sorunu araştırdığımda nginx servisinin aynı portu kullandığı için apache2 servisinin başlatılamadığını farkettim. Tabii ki başlatılmasına farklı nedenler de sebep olabilir, yapmanız gereken şey apache loglarını izlemek veya araştırma yapmak ve sonuca ulaşmak. Benim çözümüm gâyet basit;

sudo apt-get remove nginx

Tabii nginx servisini de kullanıyorsanız yapmanız gereken nginx veya apache servislerden birinin portunu 80 dışında kullanmak. Onun da çözümü nginx.conf dosyasında server altında yer alan listen değişkenini ve proxy_set_header altında bulunan $host değişkenlerini yönelecek porta ayarlamak.

Linux Klavye üzerinde Göktürkçe Damgalar!

       Son bir kaç ay içerisinde eski Türkçe'ye ve Göktürkçe damgalarına oldukça ilgi duyuyorum. Bundan dolayıdır ki bir ay içerisinde harfleri söktüm diyebilirim. Tabii damgaları sökmekle iş bitmiyor, bunu bir çok alanda kullanılabilir hale getirmek şart. Şimdi kimisi diyecek, işsiz misin oğlum diye. Eğer benim atalarımın kullandığı alfabeyi ve kök kelimeleri öğrenmek işsizlikse, evet işsizim. :)

Öncelikle şundan bahsetmekte fayda var, kullandığım yöntemi sadece Ubuntu tabanlı sistem üzerinde denedim. Diğer sistemlerde dil paketlerinin dizinleri farklı olabileceğinden dolayı biraz daha uğraşabilirsiniz.

Her neyse, öncelikle “Sistem Ayarlarına girerek “Keyboard” (Klavye olarak da geçebilir) menüsüne geliyoruz. Layout bölümünde sol taraftan yeni klavye konfigürasyonlarını ekleyebiliyoruz. Tabii burada bizim kullanacağımız damgaların bulunduğu bir dil seçeneği olmadığı için herhangi bir dilin unicode değerlerini değiştirerek kullanacağız. Ben sistemde “Turkmen” olarak geçen dili kullanacağım.

Ubuntu üzerinde dil unicode değerlerinin bulunduğu dizin “/usr/share/X11/xkb/symbols” dizinidir. Bu dizine ulaştıktan sonra “tm” dosyasını editörümüz ile yönetici olarak açıyoruz. Burada 'xkb_symbols "basic”' altında “key <AD01>” ile başlayan satırları siliyoruz ve aşağıda bulunan damgalarımızın unicode değerlerini giriyoruz.

    key <AD01>   { [   U10C1C,   U10C30   ] };
    key <AD02>   { [   U10C28,   U10C0A   ] };
    key <AD03>   { [   U10C00,   U10C05   ] };
    key <AD04>   { [   U10C3C,   U10C3A   ] };
    key <AD05>   { [   U10C45,   U10C43   ] };
    key <AD06>   { [   U10C18,   U10C16   ] };
    key <AD07>   { [   U10C07,   U10C48   ] };
    key <AD08>   { [   U10C03,   U10C44   ] };
    key <AD09>   { [   U10C06,   U10C42   ] };
    key <AD10>   { [   U10C2F,   U10C2F   ] };
    key <AC01>   { [   U10C00,   U10C01   ] };
    key <AC02>   { [   U10C3E,   U10C3D   ] };
    key <AC03>   { [   U10C13,   U10C11   ] };
    key <AC04>   { [   U10C2D,  U10C42   ] };
    key <AC05>   { [   U10C0F,   U10C0D   ] };
    key <AC06>   { [   U10C26,   U10C27   ] };
    key <AC07>   { [   U10C31,   U10C3F   ] };
    key <AC08>   { [   U10C1A,   U10C34   ] };
    key <AC09>   { [   U10C20,   U10C1E   ] };

Dosyayı kaydettikten sonra tekrar klavye ayarlarına gelerek “Turkmen (Default)” dilini ekliyoruz. Artık sistem üzerinde unicode destekleyen tüm uygulamalarda Göktürkçe damgalarını kullanabileceksiniz. Klasör isimlendirme gibi işlemler hariç tabii ki. :)

Ben bu tm dosyasının içeriğini aşağıda size veriyorum, direk içeriği yapıştırabilirsiniz.
// Nazar Annagurban <nazar_xg@hotmail.com>, 2009

// Default layout (based on Vista Turkmen layout)
default partial
xkb_symbols "basic" {
    name[Group1]="Turkmen";
 
    key <AD01>   { [   U10C1C,   U10C30   ] };
    key <AD02>   { [   U10C28,   U10C0A   ] };
    key <AD03>   { [   U10C00,   U10C05   ] };
    key <AD04>   { [   U10C3C,   U10C3A   ] };
    key <AD05>   { [   U10C45,   U10C43   ] };
    key <AD06>   { [   U10C18,   U10C16   ] };
    key <AD07>   { [   U10C07,   U10C48   ] };
    key <AD08>   { [   U10C03,   U10C44   ] };
    key <AD09>   { [   U10C06,   U10C42   ] };
    key <AD10>   { [   U10C2F,   U10C2F   ] };
    key <AC01>   { [   U10C00,   U10C01   ] };
    key <AC02>   { [   U10C3E,   U10C3D   ] };
    key <AC03>   { [   U10C13,   U10C11   ] };
    key <AC04>   { [   U10C2D,   U10C42   ] };
    key <AC05>   { [   U10C0F,   U10C0D   ] };
    key <AC06>   { [   U10C26,   U10C27   ] };
    key <AC07>   { [   U10C31,   U10C3F   ] };
    key <AC08>   { [   U10C1A,   U10C34   ] };
    key <AC09>   { [   U10C20,   U10C1E   ] };
    key <AB01>   { [   U10C15,   U10C47   ] };
    key <AB02>   { [   U10C36,   U10C41   ] };
    key <AB03>   { [   U10C32,   U10C21   ] };
    key <AB04>   { [   U10C38,   U10C2C   ] };
    key <AB05>   { [   U10C0B,   U10C09   ] };
    key <AB06>   { [   U10C24,   U10C23   ] };
    key <AB07>   { [   U10C22,   U10C2A   ] };

    include "level3(ralt_switch)"
};

// Turkmen Alt-Q Layout
// This layout provides turkmen letter via the AltGr key
partial
xkb_symbols "alt" {
    name[Group1]="Turkmen (Alt-Q)";

    include "us"

    key <AD06> { [  y, Y, yacute, Yacute ] };
    key <AD07> { [  u, U, udiaeresis, Udiaeresis ] };
    key <AD09> { [  o, O, odiaeresis, Odiaeresis ] };

    key <AC01> { [  a, A, adiaeresis, Adiaeresis ] };
    key <AC02> { [  s, S, scedilla, Scedilla ] };

    key <AB01> { [  z, Z, zcaron, Zcaron ] };
    key <AB03> { [    c, C, ccedilla, Ccedilla ] };
    key <AB06> { [  n, N, ncaron, Ncaron ] };

    include "level3(ralt_switch)"
};

Tabii damgalarımızda bulunmayan fakat sonradan eklenen H, F, V gibi harflerin unicode değerlerini bulabilirsem eklerim. :)

Göktürkçe çalışanlar/çalışmak isteyenler twitter.com/gok_turkce hesabını takip edebilirler.

Python Hata Yakalama Operatörü


   Uzun bir sürenin ardından tekrar bir entry ile merhaba diyelim. Bu kez konu yine Python ve hata yakalama operatörü üzerine deyineceğim. Hata yakalama operatöründe amaç sistemin verdiği hataları yakalayıp farklı işlemler yapmak yada hataları düzeltmek. Örnek olarak pass ile boş geçebiliriz, print ile bir text verebilir yada hatayı düzeltmek gibi işlemler yapabiliriz.
   Şahsen ben çok kullanıyorum. Özellikle veritabanı üzerinde işlemler yaparken kimi zaman kilitlenebiliyor, kimi zaman bir başka hata.. Bu tür hataları gizlemek için yada düzeltmek için bu operatörleri kullanabiliriz. Her neyse daha fazla uzatmadan bir örnek ile yarı baygın girelim konuya.

Python ANSI ile karakter biçimleri

  
   Birkaç gündür Python üzerinde çalışmalar yapıyorum, yapısı diğer dillere göre daha kolay olduğu için diğer diller üzerinde yapmaya çalıştığım (ama tam olarak yapamadığım) bir kaç fikiri Python üzerinde daha rahat bir şekilde gerçekleştirebildim. Özellikle SQLite ile çok uyumlu olduğunu düşünüyorum, herhangi bir sorun çıkarmadı kendisi sağolsun.

   Bu entryde ekrana yazdırdığımız girdileri yada verileri ANSI karakter kodları ile renkli yada biçimsel olarak yazdıracağız. Biçimselden kastım; kalın (bold), altıçizili (underline) ve eğik (italic) yazı tipleri. Öncelikle ANSI karakter kodlarını bilmemiz gerekiyor, onlara bu siteden ulaşabilirsiniz: http://pueblo.sourceforge.net/doc/manual/ansi_color_codes.html

ShellShock (CVE-2014-6271) Tespit etmek

  
Bilişim uzmanları tarafından base score 10/10 şeklinde değerlendirilen bash zafiyeti aslında yıllardır bulunuyor. Tehlikesi hedef sistemi bir bot olarak kullanabilmek. Eminim bir çok saldırgan şuanda icraata geçmiş ve kendi botnet ağlarını kurmaya başlamışlardır bile.

   MAC ve Linux ağırlıklı bir çok sistemde bulunan bu zafiyetin kaç sunucuda ve sistemde bulunduğu uzmanlar tarafından henüz tespit edilemiyor, hatta tespit etmenin imkansız olduğunu söylüyorlar. Zafiyetin tespitine bakacak olursak, aşağıdaki kodu yazdığınız durumunda (root yetkisine gerek yok);
env bugdeneme='() { :;}; echo zafiyet' bash -c "echo merhaba"
çıktısı şu şekildeyse;

Yandex Disk’i sistemeniz üzerinde yapılandırın!

  
   Yandex bu bulut depolama konusunda bence gayet başarılı. Onedrive'da kullandık zamanında, ama nedense beğenemedim. Neyini beğenmedin derseniz söylemem biraz zor, Windows kullanmadığım için olabilir belki. Her neyse, konumuza gelelim biz..

   Her şeyden önce sisteminize uygun paketleri indirmelisiniz.

Ubuntu ve Debian için;
32bit: http://repo.yandex.ru/yandex-disk/yandex-disk_latest_i386.deb
64bit: http://repo.yandex.ru/yandex-disk/yandex-disk_latest_amd64.deb

Fedora, Redhat ve CentOS için;
32bit: http://repo.yandex.ru/yandex-disk/yandex-disk-latest.i386.rpm
64bit: http://repo.yandex.ru/yandex-disk/yandex-disk-latest.x86_64.rpm

Hayatınız internette..

Günlük sosyal medyayı kullanan milyonlarca insan var, peki hangisi daha dikkatli dersiniz? Hangisi paylaştığı bilgilerin kendi aleyhinde kullanabileceğini bilebilir? Bu video sonrasında biraz daha düşünebilirsiniz belki.

Linux platform üzerinde oyun yapılandırması

   Eminim Linux kullanıcısı iseniz, özellikle yeni bir Linux kullanıcısı iseniz Linux platformu üzerinde oyun oynamayı düşünmüş olmalısınız. Hatta denemiş bile olabilirsiniz. Bu entryde Linux platformu üzerinde oyunları nasıl çalıştırabileceğinize değineceğim.

   İlk olarak aklınıza wine emülatörü gelebilir. Evet wine ile setup işlemini gerçekleştireceğiz, fakat bu yetmiyor. Wine yapılandırması üzerinde directx kitaplıklarının yüklenmesi gerekiyor. Aksi taktirde Wine, CrossOver ve Cedega benzeri emülatörler ile yüklediğiniz oyunlar çalışmayabilir. Directx kitaplığını yükleyebilmek için Winetricks adlı yazılımı yüklememiz gerekiyor. Pakette var ise “apt-get install winetricks” komutu ile yüklemeyi yapabilirsiniz.

ISO kalıp dosyalarını bağlamak

   Oyun, program olsun bazen iso kalıpları şeklinde elimize geçebilir. Hatırlayan vardır belki, Windows’da daemon tools benzeri yazılımlar ile iso kalıplarını açabilir ve yükleme yapabilirdik. Linux üzerinde bu olay daha basit.

   Dosya yapısında bulunan /mnt dizini geçici olarak mount edilen dosyalar için kullanılıyor. Örnek olarak bir iso kalıbını mount etmek istediğimizde her şeyden önce /mnt dizini altında ornek adlı bir dizin oluşturalım.

Ardından terminale aşağıdaki komutları giriyoruz.
   mount -o loop -t iso9660 dosya.iso /mnt/ornek
  • -o parametresi ile döngüyü,
  • -t parametresi ile dosya sisteminin iso olduğunu,
  • dosya.iso ile iso kalıbımızın bulunduğu dizini,
  • /mnt/ornek ile mount edilecek olan dizini belirttik.
   Artık yapmanız gereken tıpkı bir usb disk takmış gibi ev dizinine girerek aygıtlardan bağladığınız kalıba girmek.

   Bu şekilde ext2ext3ext4iso9660jfs, nfsnfs4ntfsudf ve vfat dosyalama türevlerini bağlayabilirsiniz. Genel olarak iso9660 ve ntfs işinize yarayacaktır.

Ağ Testlerinde Kanalın -1'de Takılı Kalması

   Network pentester arkadaşlar varsa epey iyi bilirler bu sorunu, airodump-ng aracında siz kanalı belirtseniz dahi fixed channel mon0: -1 şeklinde takılır. Hatta arada bir oynar böyle, ama sonuç değişmez. Sorunun nedeni adaptörlerde bulunan chipsetlerin işletim sistemi ile uyumlu olmaması. Tabi hatayı çözmezseniz dahi paket toplamaya devam edecektir, fakat stabil yada aktif bir kanal üzerinden toplanmayacağı için büyük ihtimalle paketler hiç bir işinize yaramayacaktır.

   İki çözüm var bunun için, ya sisteminize chipset sürücü yazılımını yükleyeceksiniz, ki uyumlu sürücü bulabilirseniz. Diğer yol ise --ignore-negative-one parametresi ile komutları vereceksiniz. Bu şekilde -1 kanalı pas geçilecektir. Zaten aireplay tarzı araçlarda size bu parametreyi kullanmanızı söylüyor, dikkatli olan görmüş olmalı.