2010-05-06

Ubuntu Server üzerinde BIND DNS hizmetini çalıştırmak

BIND, Internet Service Consortium'un sitesine göre, internet üzerinde en çok kullanılan DNS sunucu yazılımıdır. En popüler linux dağıtımı olan Ubuntu üzerine bind9'u kurup ayarlarını yaparken şu aldımları izledim (kaynak ubuntuforums.org):
  1. Öncelikle bind9 hizmetinin kurulacağı sunucunun statik bir IP adresinin olması gerek. Bunun için ağdaki diğer makinelerle aynı subnette bir IP adresi ataması yaptım.
  2. Ardından repository'lerden bind9'u kurdum.
    sudo apt-get install bind9
  3. Sonra root yetkileriyle /etc/bind/named.conf.local dosyasını açıp içine zone'larımı ekledim (zone, DNS sunucuların alan adı bilgilerini tuttuğu veri yapılarıdır). Örnek olarak example.com alan adını DNS sunucuma eklemek için önce forward lookup zone'u ekledim:
    zone "example.com" {
         type master;
         file "/etc/bind/zones/example.com.db";
    };
    Ardından da bir reverse lookup zone ekledim (örnek IP segmenti olarak 192.68.0.x kullandım). Reverse zone için ağ ID'sinin oktetleri ters sırada yazılmalı ve sonuna in-addr.arpa eklenmeli.
    zone "0.168.192.in-addr.arpa" {
         type master;
         file "/etc/bind/zones/rev.0.168.192.in-addr.arpa";
    };
  4. DNS sunucum sadece içerideki example.com alan adından sorumlu olacak. Ona başka alan adı sorguları gelirse bunu kendisi çözümlemeyecek, başka bir DNS server'a soracak. Bu yapıyı /etc/bind/named.conf.options dosyasına forwarder ekleyerek sağladım.

    forwarders { 195.175.39.40; };
  5. Şimdi sıra geldi 1. adımda belirttiğimiz zone'ların dosyalarını yaratmaya. Zone dosyası, bir bilgisayarın host adıyla IP adresi ilişkisini, zone'ların transfer bilgilerini vs. tutar. Bunun için /etc/bind/zones/example.com.db dosyasını yaratarak (/etc/bind/db.local kopyalanarak da düzenlenebilir) şu satırları girdim (eğer /etc/bind/zones klasörü yoksa bunu da yaratarak). Bu tanım dosyasında geçen, ama neredeyse hiç bir yerde açıklanmayan bir ayrıntı da IN belirteci. Şu kaynağa göre IN, internetin kısaltması ve adres sınıfını belirtiyor. Bunun dışında CS (CSNET), CH (CHAOS) ve HS (Hesiod) sınıfları da var ama artık kullanımda değiller. BIND dosyalarında adres sınıfı belirtilmesi zorunlu değil, yazılmazsa varsayılanımız IN.

    example.com.      IN      SOA     ns1.example.com. admin.example.com. (
                                                            2006081401
                                                            28800
                                                            3600
                                                            604800
                                                            38400
     )
    
    example.com.      IN      NS              ns1.example.com.
    example.com.      IN      MX     10       mta.example.com.
    
    www              IN      A       192.168.0.2
    mta              IN      A       192.168.0.3
    ns1              IN      A       192.168.0.1
    
    Benzer şekilde reverse lookup zone dosyasını da /etc/bind/zones/rev.0.168.192.in-addr.arpa olarak yarattım.

    @ IN SOA ns1.example.com. admin.example.com. (
                            2006081401;
                            28800; 
                            604800;
                            604800;
                            86400 
    )
                         IN    NS     ns1.example.com.
    1                    IN    PTR    example.com 
  6. Şimdi bind9 servisini tekrar başlatarak bu ayarların geçerlilik kazanmasını sağlayabiliriz.

    sudo /etc/init.d/bind9 restart 
    Eğer bu aşamada

    * Starting domain name service... bind9 [fail]

    hatasıyla karşılaşırsanız /var/log/daemon.log kayıtlarına bakarak hatanın kaynağını bulabilirsiniz. Genellikle bu kayıtlarda '}' expected gibi bir hata ile karşılaşılır ki bu durumlarda 2. adımdaki named.conf.local dosyasına gidip eksik } parantezini koymak gerekir.
  7. DNS sunucumuz çalışıyor. Peki bizim sorgularımız kurulumunu yaptığımız sunucu üzerinden mi yapılıyor? Henüz değil. Bunun için de /etc/resolv.conf dosyasına herhangi bir DNS sunucunun IP adresini değil, kurulumunu yaptığığımız sunucun IP numarasını yazacağız.

    search example.com
    nameserver 192.168.0.1
    
Bu adımlardan sonra nslookup veya dig ile yeni yarattığımız DNS sunucumuzu test edebiliriz:
dig example.com
veya
nslookup example.com 
Bu konuyu araştırırken birşey daha öğrendim. DNS hizmetinin normalde 53 UDP üzerinden çalıştığını biliyordum. Bazen 53 TCP'yi de kullandığını okuduğum oluyordu. Ama hiç TCP'nin DNS tarafından niye kullanıldığını (zone transferi hariç) bilmiyordum. UbuntuGeek.com sitesindeki yazıya göre, DNS sunucuya yapılan sorgunun cevabı 1024 byte'ı geçerse, sunucu UDP üzerinden kısmi bir cevap gönderirmiş. Eğer sorguyu yapan taraf tam cevabı öğrenmek isterse TCP kullanarak sorguyu tekrarlarmış. 1024 byte'ın üzerinde bir sorgu ne zaman gerekir bilmiyorum ama bunu öğrendiğim de iyi oldu.

http://www.ntchosting.com/dns/server-setup.html
http://www.ubuntugeek.com/dns-server-setup-using-bind-in-ubuntu.html

"Cannot start Microsoft Office Outlook. Cannot open the Outlook window" hatası

 Bilgisayarımın beklenmeyen kapanışı sebebiyle zor anlar yaşadım. Bir çok programın açık dosyaları soru çıkardı. Disk taramaları, kurtarılamayan dosyalar derken bir tek Outlook kaldı. Bir türlü açılmıyordu. Kısayol simgesini tıkladıktan sonra Outlook'un penceresi görünüyordu, ama sonunda şöyle bir hata vererek program sonlanıyordu:


Aklıma ilk olarak pst dosyalarım geldi. Office'in pst tarama aracı scanpst'yi kullanarak (%ProgramFiles%\Microsoft Office\Office12 altında) pst dosyamı ve archive dosyamı tarattım. Ama yine de açılmıyordu. Outlook'a ikinci bir profil yarattım, ve bu profilden hem Exchange Server'a hem de pst dosya(ları)ma bağlandım, sorun yoktu. Demek ki Outlook'un kullandığı dosyalarla ilgili bir sorun vardı. Yukarıdaki resimde görülen yazıyı Google'de arattığımda Microsoft Support'ta şu makaleye rastladım. Bu sayfada sorunun, navigation pane settings dosyasının (%AppData%\Microsoft\Outlook klasörü altındaki profilismi.xml) bozulmasından kaynaklandığı söyleniyordu. Çözüm önerisi de Outlook'u /resetnavpane anahtarı ile başlatmaktı. Bir komut satırı penceresi açıp şunları yazdım (bunu yapmadan önce outlook'un eski profilimi kullanarak sorgusuz başlamasını sağladım):

cd %ProgramFiles%\Microsoft Office\Office12
outlook /resetnavpane

Bundan sonra Outlook pencerem açıldı ve sorunsuz olarak çalışmaya başladı.

2010-05-03

Genel bir TCP/IP ağ bağlantısı kılavuzu

ADSL modemler, internet bağlantılı ve DLNA destekli LCD televizyonlar derken bir TCP/IP bağlantısı yapmak artık teknoloji tutkunları ve ağ uzmanlarının haricinde herkes için olağan bir şey haline geldi. Peki nasıl oluyor da oluyor?

TCP/IP, aslen bir çok protokolü kapsayan bir protokol kümesidir. İçinde örneğin TCP, UDP, ARP vs. gibi protokolleri barındırır. Günümüzde bilgisayarların haberleşmesi için kullanılan en yaygın yöntemdir.

İşin aslında her cihazın (modem, bilgisayar veya televizyon) bir IP adresinin olması gerekir. IP adresleri, nokta ile ayrılmış dört bölümden (oktet) oluşur. Her oktet 0 ile 255 arasında olabilir. IP adresi ataması elle yapılabileceği gibi otomatik atama yapan bir sistem (DHCP, Dynamic Host Configuration Protokol) tarafından da yapılabilir. Örneğin bir ADSL modeminiz varsa ve bilgisayarınızı hiçbir ağ ayarı yapmadan bu modem üzerinden internete çıkarıyorsanız modeminin DHCP sunucusu bilgisayarınıza bir IP adresi ataması yapmış demektir. Bir komut satırı penceresi açarak (Başlat>Çalıştır'a gelip cmd yazıp enter'a basarak) açılan siyah pencereye ipconfig /all yazarak bilgisayarınızdaki IP ayarlarını görüntüleyebilirsiniz. Örneğin benim bilgisayarımda durum şu şekilde:

C:\> ipconfig /all

Windows IP Yapılandırması

   Ana Bilgisayar Adı  . . . . . . . : pc01
   Birincil DNS Soneki . . . . . . . :
   Düğüm Türü . . . . . . . . . . .  : Karma
   IP Yönlendirme Etkin . . . . . .  : Hayır
   WINS Proxy Etkin . . . . . . . .  : Hayır

Ethernet bağdaştırıcı Yerel Ağ Bağlantısı:

   Bağlantıya özgü DNS Soneki .  . . :
   Açıklama  . . . . . . . . . . . . : Marvell Yukon 88E8040 PCI-E Fast Ethernet Controller
   Fiziksel Adres. . . . . . . . . . : xx-xx-xx-xx-xx-xx
Dhcp Etkin. . . . . . . . . . . . : Evet 
Otomatik Yapılandırma Etkin . . . : Evet
   IPv4 Adresi . . . . . . . . . . . : 192.168.0.11(Tercih Edilen)
   Alt Ağ Maskesi. . . . . . . . . . : 255.255.255.0
   Kira Sağlanan . . . . . . . . . . : 07 Nisan 2010 Çarşamba 23:39:13
   Kira Bitişi . . . . . . . . . . . : 08 Nisan 2010 Perşembe 01:49:13
   Varsayılan Ağ Geçidi. . . . . . . : 192.168.0.1
   DHCP Sunucusu . . . . . . . . . . : 192.168.0.1
   DNS Sunucusu. . . . . . . . . . . : 192.168.0.1
                                       208.67.222.222
   Tcpip üzerinden NetBIOS . . . . . : Etkin

Kırmızı ile işaretlediğim satırlar sırası ile ağ ayarlarımın IP adresimi bir DHCP sunucusundan alacak şekilde yapılandırıldığını, benim bilgisayarıma atanan IP adresinin 192.168.0.11 olduğunu ve DHCP sunucumun IP adresinin de 192.168.0.1 olduğunu (bu da modemin kendisi) gösteriyor. Yani hiç bir ayar yapmasam da modem benim yerime ayarlarımı yapmış. Eğer bu ayarları beğenmiyorsak elbette kendimiz bir IP adresi seçebiliriz. Ama modemimiz 192.168.0.1/255.255.255.0 subnet'indeyken bilgisayarımıza 192.168.1.27 adresi veremeyiz. Pratik olarak şöyle söyleyeyim; alt ağ maskesinin (subnet mask) 255 olan bölümlerine karşılık gelen IP adresinin oktetleri modem'in IP adresinin aynı bölümlerine eşit olmalı. Yani modemimiz 192.168.20.18 adresine ve 255.255.255.0 (ilk 3 oktet 255) alt ağ maskesine sahipken bilgisayarımıza vereceğimiz IP adresi 192.168.20 ile başlamalı. Son oktete biz karar vereceğiz. Ama bu adres ağda bulunmamalı. Aksi taktirde çakışma olur, haberleşmeyi sağlayamayız.

Özet olarak TCP/IP ayarları yapmak 4 temel ayar yapmaktan ibarettir:
  1. IP Adresi: bilgisayarımızın hangi adresten ulaşılabileceği bilgisi
  2. Alt Ağ Maskesi: Bilgisayrımızın dahil olduğu ağın sınırlarının çizilmesi
  3. Ağ Geçidi: Bilgisayarımızın dahil olduğu ağı dış dünyaya bağlayan çıkış kapısı
  4. DNS Sunucusu: İsim çözümlemesi yapmamızı sağlayan servis
Ev ağlarında gelende durum şu şekilde olur: Modemin üzerinde bir de caching DNS sunucusu vardır. Yani modeminiz, bilgisayarınızın ihtiyaç duyacağı DNS sorgularını sizin yerinize yapar ve cevaplarını soran bilgisayarlara bildirir. Bu durumda atadığı TCP/IP bilgilerinin hem varsayılan ağ geçidi hem de DNS sunucusu kısmında modemin IP adresini görürüz. IP adresi atamasını modeme bırakıp DNS kısmını elle yazabilirsiniz. Ama bunun tersi olmaz. DNS kısmını niye elle girmek isteyebiliriz? Örneğin OpenDNS'in DNS sunucularını kullanmak istiyorsanız bu şekilde yapılabilir.

Bir de şu bilgiyi vereyim; modemin atadığı IP adresine "gerçek olmayan IP adresi" denir. Yani bu IP adresinin internet üzerinde bir anlamı yoktur. Evinde veya işyerinde internete bağlı olan binlerce insan sizin gibi 192.168.x.y gibi bir IP adresine sahip olabilir. Modem sizi NAT (Network Address Translation) ile internete bağladığı için bağlandığınız siteler sizi, internet servis sağlayıcınızın (TTnet, Türksat gibi) size verdiği IP numarası ile görür. Bu IP adreslerine de "gerçek IP adresi" denir.

2010-05-02

Internet Explorer'ın yüklenememesi

Bazen bir Windows XP bilgisyara intenet bağlantısı yokken Internet Explorer 8 kurmak istediğimde şöyle bir hatayla karşılaşıyorum: "Internet Explorer yüklemesi tamamlanamadı". Aşağıdaki gibi ekranlarla kurulum sonlanıyor.



Bu durumun çözümü meğer Microsoft'un KB932823 numaralı makalesindeymiş. Buradan download edilecek bir hotfix ile sorun çözülebiliyor. Bu hotfix SP3'e dahil edilmiş. Yani bu sorunu SP3 yüklü bir makinede muhtemelen yaşamazsınız. Ya da sorunu çözmek için SP3 de yükleyebilirsiniz. Ama bu hotfix'i de IE8 kurulumuyla birlikte yanımda taşımak daha kolay geldi bana.

Bu hotfix'i yükledikten sonra kurulum başarılı bir şekilde sonlandı.



Yukarıdaki iki resimden ilkinde yükleme aşamasında çıkan kırmızı çarpı işareti, bilgisayarın internetten MSRT'yi (Malicious Software Removal Tool, Kötü Amaçlı Yazılımları Temizleme Aracı) download edememesiyle ilgiliydi. Alternatif olarak bu adresten MSRT'yi de indirip taratabilirsiniz. Ama ben çalıştığım bilgisayarın temizliğinden emin olduğum için bu adımı atladım.

Dizüstü bilgisayarlarda ısınma sorunu

Bir arkadaşım, dizüstü bilgisayarının çok gürültülü çalıştığından şikayet etti. İşlemci fanı, durmak bilmeden en yüksek devirde çalışıp duruyordu. Bilgisayarın altı da çok ısınıyordu. Ama işlemcinin sıcak havasını dışarı atacak olan bölüme elimi yaklaştırdığımda yeterli miktarda hava gelmediğini farkettim.

Bu daha önce de başıma gelmişti. Alındıktan sonra uzun süre kullanılmış ama hiç temizliği yapılmamış (genelde yapılmaz) bilgisayarlar, içinde inanılmaz miktarda toz biriktirirler. Soğumak için dışarıdan soğuk hava alıp dışarıya sıcak havayı vererek çalıştıklarından, bilgisayar soğutma sistemlerinde bu gayet sık rastlanan birşeydir. Bunun farkına bazen çok yüksek devirde çalışan bir fanla, bazen de ani kapanmalar/kilitlenmelerle varılır.

Çözüm olarak bilgisayarın içi açılmalı ve temizliği yapılmalıdır. Tabi bu işlemler yapılmadan önce bilgisayarın elektrik bağlantısı kesilmeli ve bataryası da çıkartılmalıdır. Muhtemelen fanın ve etrafındaki pasif soğutmaların temizlenmesi yeter. Örneğin aşağıdaki resimde görülen Asus F3F serisi bir dizüstü bilgisayar.


Resimde kırmızı ile yuvarlak içine alınmış vidaları söktükten sonra kırmızı dikdörtgen ile gösterilen yerden destek alarak kapağı kaldırarak hedefe ulaşılır (bu her zaman bu kadar kolay olmayabilir. Bazen internetten service manual'leri aratılarak yardım alınabilir).

Daha sonra aşağıdaki resimde görülen işlemci fanını sökmek gerekir. Benim durumumda bu, resimde kırmızı yuvarlak ile gösterilen 3 vidayı ve kırmızı dikdörtgen ile gösterilen fanın anakarta bağlantı noktasını sökerek oldu. Fan gayet kirliydi. Ama daha da kötüsü  fanın hemen sağında yer alan kısmın yoğun bir toz ile kapsanmış olmasıydı. Resmen 3 mm falan kalınlığında bir keçe gibi toz katmanı oluşmuştu. Bu iki işlemden sonra fanı yerine takıp, kapağı da kapatıp denemeyi yaptım. Bilgisayar yine ilk günkü sessiz günlerine geri dönmüştü. İşlemcinin çok yoğun kullanıldığı durumlarda veya sıcak ortamlarda yine eskisi gibi yüksek devirlerde çalışıyor ve çok ısınıyor olabilir, ama bu sürekli olmayacaktır.


2010-04-28

McAfee SuperDAT dosyalarının boyutu küçüldü

McAfee'nin antivirüs yazılımları, günlük olarak yeni çıkan virüs tanımlarını yaklaşık olarak 200 KB civarında olan *.gem dosyaları ile yüklerler. Eğer son 35 güncellemeyi kaçırdıysanız bu tip 35+ günlük *.gem dosyasını indirmek yerine SuperDAT olarak bilinen toplu güncelleme dosyasını indirmeniz gerekir (ya da avvdat-xxxx.zip dosyasını). SuperDAT dosyası da son zamanlarda oldukça yüksek boyutlara ulaşmıştı ( >120 MB).

Yeni rastladığım bir habere göre McAfee, artık V1 olarak nitelendirdiği ürün grubu için güncelleme yayınlamayı durdurmuş. Virusscan Enterprise v8.0 ve öncesini de kapsayan bu ürün grubu için artık güncelleme yayınlanmayacak. Bunun sonucunda da artık SuperDAT dosyaları V1 güncellemelerini içermeyeceğinden daha küçük olabilecekler.

Bu durumu bugün SuperDAT'ı indirirken farkettim. Boyutu 64 MB civarındaydı. En son indirdiğim dosyanın 120 MB civarında olduğunu hatırladığımdan küçülmesine sevindim.

McAfee Community Forum'daki bir mesajda görüş bildiren "bir bilen" ise, McAfee'nin SuperDAT'ların boyutunu daha da küçültmek için çalışmalar yaptığını, ama her gün çıkan çok sayıdaki yeni tehditin bu konuyu zorlaştırdını söylemiş. Ayrıca virüs başına ayrılan tanım bilgisini küçültmenin bir yan etkisinin de yanlış alarmları artırmak olduğundan bahsedilmiş (bkz. McAfee Hayatının Hatasını Yaptı). Ama böyle bir hedef konduysa bu bir şekilde olur sanıyorum. 100 MB'ın üzerinde SuperDAT boyutundan sıkılmış biri olarak bu konunun bir süredir takipçisiydim, şimdi bu haberleri alınca bir miktar rahatladım.

Bu arada sdat'lara (SuperDAT) ek olarak bir de xdat dosyasımız var artık. McAfee'nin FTP sunusunda rastladığım xdat dosyası, sadece antivirüs güncellemelerini içerecek. Bazı durumlarda sdat dosyaları virüs tanım dosyalarının yanı sıra tarama motoru (scan engine) güncellemelerini de içerebiliyor.

2010-04-22

McAfee'den 5958 DAT'ta yanlış alarma dikkat!

McAfee hayatının hatasını yaptı. 21 Nisan'da Türkiye saati ile 15:00 gibi yayınladığı 5958 sürüm numaralı virüs tanım dosyası, Windows XP Service Pack 3 yüklü bilgisayarlarda svchost.exe isimli sistem dosyasını, yanlış teşhis ile w32/wecorl.a virüsüne benzeterek sildi. Bunun sonucunda da dünyada tahminen onbinlerce bilgisayar çöktü.

McAfee'nin web sitesinde de bildirdiği gibi, diğer Windows sürümlerini etkilemeyen güncelleme, sadece Windows XP SP3 sistemleri çalışmaz hale getirdi. Çeşitli internet haber sitelerinin (örneğin şu) verdiği bilgiye göre ABD'de okullar, üniversiteler, polis teşkilatı ve cezaevi bilgisayarları bu durumdan etkilendi. Sayılar ayrıca Windows XP'nin halen yerini ne Windows Vista'ya, ne de Windows 7'ye bırakmadığının da göstergesi.

Bu durumdan etkilenmiş bir bilgisayar, arka arkaya tekrar başlıyor. Bilgisayarın bu bozukluğunu gidermek için Ağ Destekli Güvenli Mod'da açıp işlem yapmak gerekiyor. Yapılacak işlem, öncelikle antivirüs tanım dosyasını 5958'den 5959'a yükseltmek. Bunu yapmanın bir yolu McAfee'nin sitesinden indirilen ExtraDAT'ı %CommonProgramFiles%\mcafee\engine altına kopyalamak. Bu şekilde svchost.exe'nin W32/Wecorl.a virüsü olarak algılanmasını engellemiş olacağız.

Ardından %windir%\system32 klasörü altında boyutu sıfır (0) olmayan bir svchost.exe olup olmadığını kontrol etmek gerek. Eğer sistem 5958 DAT'a sahipse ve bilgisayar durmaksızın tekrar başlıyorsa burada yüksek ihtimalle bir svchost bulamayacağız. Karantinaya alınmış olabilir, bu sebeple VSE Console'u açıp Quarantine Manager Policy'nin özelliklerine girip Manager sekmesine gelerek burada (muhtemelen en son) karantinaya alınma işlemini Restore komutu ile geri almak gerek. Sisteme daha önce 5958'den daha yeni bir DAT kurduğumuz için bu şekilde bundan sonra tekrar karantinaya alınmayacağını da garantiledik.

Eğer svchost.exe karantinaya alınmadan doğrudan silindiyse bu dosyayı dllcache klasöründen (%windir%\system32\dllcache) veya çalışan başka bir SP3'lü bilgisyardan alabiliriz. Grafik arayüzde Paste (Yapıştır) çalışmıyorsa "komut satırından copy komutu ile yapmayı deneyin" denmiş McAfee'nin sitesinde. Bundan sonra bilgisayarı tekrar başlatıp normal çalışma ortamına dönebiliriz.

İşlem sadece birkaç dakika alıyor. Ama yüzlerce bilgisayarı olan bir kuruluşun sadece 100 bilgisayarının etkilendiğini düşünürsek, bu 100 bilgisayarın tekrar eski haline getirilmesi bilgi işlem bölümünü uzun bir süre meşgul edecek bir uyulama olur. Yine de daha kötü durumlara sebep olmamasına, veri kaybı yaşanmadığına şükür :|

Türkiye galiba bu durumda biraz şanslı. Güncelleme Türkiye saatiyle 15:00 gibi yapılmış. Bu saatten sonra yeni DAT dosyalarını indirip istemcilere dağıtacak sistem sayısı nispeten azdır. Mesainin 18:00 gibi bittiğini ve istemci bilgisayarlarının bu saatten sonra kapandığını düşünürsek risk az. Zaten McAfee de kısa bir süre sonra 5959'u yayınladı. Eğer Windows 2003 gibi mesai saati bitişinde kapanmayan sunucu işletim sistemleri bu durumdan etkileniyor olsaydı, zarar şüphesiz çok daha fazla olurdu (ufff! düşünmek bile istemiyorum).

McAfee'nin saygınlığının bu durumdan nasıl etkileneceğini önümüzdeki günlerde göreceğiz.