Çarşamba, Şubat 17, 2010

pid file /opt/csw/apache2/var/run/httpd.pid overwritten -- Unclean shutdown of previous Apache run



Gecenin bir vakti insan Apache sürümleri, MPM worker , CSW ve SunFreeware repositoryleri gibi derin konularla uğraşınca ve de yorulmuşsa bazen okuyanı güldürecek derecede basit sorunların peşinde helak oluyor. 


"Ockham'ın usturası" önermesi de birazdan anlatacağım bu duruma çok uygun düşüyor sanırım.


Ockham'ın usturası


Latincesi "Entia non sunt multiplicanda praeter necessitatem" olarak geçen ; "bir meselenin birden çok açıklaması varsa, ve hepsi de aynı derecede kuvvetli ise, yani bir açıklamayı diğerlerinden üstün tutmak için elle tutulur bir neden yok ise, basit açıklamanın daha faydalı olacağı görüşü"dür.


Neyse, daha fazla saptırmadan konumuza dönelim.


Daha önce Sunfreeware'den alınma Apache 2.2.x paketlerini kullanırken, MPM worker sorunu nedeniyle artık mpm olarak derlenmiş olan ve CSW tabanlı Apache paketini kullanmaya başladık. Ancak daha öncesinde de "Limiting Service Privileges in the Solaris™ 10 Operating System" belgesine dayanarak Apache SMF servisini de 'webservd' hesabı altında kısıtlamış ve çalışır hale getirmiştik.


Ne olduysa zaten bu noktada oldu. Komik ve de gerçek.


Apache servisi normalde 'webservd' hesabı altında açılmalı ve 2-3 prosesten fazlası olmamalıydı. Ancak root, nobody ve webservd olarak 3 farklı hesap altında farklı prosesler görüyorduk. root ile açılan proses 1 no'lu idi ve öldüremiyorduk. Diğer yandan da aşağıdaki hata mesajını almaktaydık.


"pid file /opt/csw/apache2/var/run/httpd.pid overwritten Unclean shutdown of previous Apache run"


Neler düşünmedik ki ? PID dosyasının sahipliğini normal kipte değiştirmeyi, single user mode'da değiştirmeyi , /etc/init altında içinde httpd geçen dosyaları aratmayı vs.vs. o an uykulu kafayla akla gelebilecek envai çeşit (cahil) yöntem denendi ama hiç biri işe yaramadı.


Sonuçta ne mi çıktı ? En basit önerme tabi. CSW paketi hiç de tahmin etmediğimiz şekilde kendi SMF servisini yazmış ve çalıştırmıştı. Ayrıca biz de Apache servisi için SMF yazmış ve çalıştırmıştık. Bizimkini öldürüken aynı zamanda başka bir servisle yarışmaya çalışıyorduk. :) Servislerden birini silince sorun kendiliğinden düzeldi. Artık httpd proseslerini istediğimiz gibi kapatabiliyorduk.

Perşembe, Şubat 11, 2010

NTP zaman ayarı ve Solaris 10

Solaris sunucularınızın harici bir NTP zaman sunucusundan bilgi alması ve saat yönetimi yapmasını istiyorsanız aşağıdaki adımları uygulayabilirsiniz.

1- SUNWntpr ve SUNWntpu paketleri sunucuya yüklenmelidir.
2- /etc/inet/ntp.client dosyası /etc/inet/ntp.conf olarak kopyalanır.
3- ntp.conf dosyası içine aşağıdaki satırlar eklenir.

server 0.europe.pool.ntp.org
server 1.europe.pool.ntp.orgserver 2.europe.pool.ntp.org


4- svcadm enable ntp komutu ile NTP servisi aktif hale getirilir.
5- ntpq -p komutu ile sunucunun saatinin durumu ve eşleme farkları izlenebilir.

Salı, Şubat 09, 2010

SecureCRT ve şifresiz SSH login (1)

Çok sayıda UNIX sunucusuyla ilgilenmeye başlayınca ortaya farklı sunuculara anlık yapılması gereken bağlantıların ne kadar sıkıcı olabileceği , her seferinde şifre girmenin prensipli duruşun gereği olsa bile tahammül sınırlarını zorlayabileceği gerçeği çıktı. Bu durumda, yine güvenlikten ödün vermeden login işlemlerini kolaylaştırmanın yolunu bulmak için SSH sertifikası yöntemini kullanmaya karar verdim. Aşağıda bu işlemin adımları yer alıyor.

1- Public Key oluşturulması

SecureCRT yazılımında public key oluşturmak için aşağıdaki adımları takip ettim.


















Passphrase alanına bir anahtar kelime girilmesi gerekiyor. Ne kadar uzun ve karmaşık, o kadar iyi :)













1024 bit'lik anahtar oluşturuyorum.



















Anahtar oluşturulduğunda kayıt etmesi için bir klasör soracaktır. Ben Linux ve Solaris anahtarlarını ayırmak için ayrı klasörler kullanıyorum. Identitiy ve Identitiy.pub dosyaları otomatik olarak seçtiğiniz klasöre yerleştirilecektir.

2- Private Key'in kullanılması

SecureCRT içinde private key'in kullanılabilmesi için iki yöntem bulunuyor. İlk olarak tüm sunucularda kullanılmak üzere Global Options içinde bu anahtarı gösterebilirsiniz. Linux ve Solaris anahtarlarım farklı olduğu için bu yöntem bende işe yaramadı. Diğer yöntem olarak her sunucu için sunucu seçenekleri içinde anahtar belirtebilirsiniz.













Yukarıdaki resimde görülen kimlik doğrulama sıralamasını değiştirmeniz gerekiyor. Public Key ile çalışabilmek için ben "password" ve "public key"in öncelik sıralamasını değiştirdim.













3- UNIX sunucusunda yapılması gereken işlemler.

  • Öncelikle (~) home folder altında .ssh klasörünü açmalısınız.
  • SecureCRT'nin oluşturduğu identitiy.pub dosyasını UNIX sunucunuza kopyalayınız.
  • touch ~/.ssh/authorized_keys dosyasını oluşturunuz.
  • cat identitiy.pub>>~username/.ssh/authorized_keys ile oluşturduğunuz anahtarı genel anahtar dosyanıza kayıt ediniz. Burada yönlendirmenin sonuna yaz (append) '>>' şeklinde yapılmasının sebebi, farklı sunuculardan gelecek farklı public key'lerin aynı dosyada toplanabilmesini sağlamaktır. Birazdan okuyacağınız gibi iki UNIX host arasında da anahtar değiş tokuşu ile SSH login sağlamak mümkün olacaktır.
Bu noktada kişisel bilgisayarınızdaki SecureCRT üzerinden tekil olarak veya toptan "global options" kullanarak ayarladığınız UNIX sunucularına şifresiz SSH login yapabilecek durumdasınız.

Pazartesi, Şubat 01, 2010

Link : TMG (ISA Server) donanım tavsiyeleri

TMG sürümünde kullanılması tavsiye edilen donanımlara dair uzun ve oldukça açıklayıcı bilgiler içeren bir makale dizisi.

Link : TMG (ISA Server) Best Practices Analyzer

TMG için BPA yayınlandı. ISA Team blog sayfasındaki duyuru aşağıda yer alıyor.



Windows NTFS disk checking işlemini iptal etmek

Bir Sun X4250 sunucuya Windows 2003 yükleyip bir takım işlemler yaptıktan sonra disklerden birinde "disk checking" başlatmak zorunda kaldım. Daha sonra bu işlemden vazgeçmek istedim çünkü uzun sürecekti ama sunucunun yalnızca USB klavye ve fare girişi olduğu için, disk kontrolü başladığında iptal edemiyordum.


Benzer durumlarda Registry'den disk kontrolünü iptal etmek için aşağıdaki anahtarı değiştirmeniz yeterli olacaktır.


My Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\SessionManager\BootExecute


kaydındaki " autocheck autochk * " dışındaki tüm bilgileri silerek disk kontrolünün başlamasını engelleyebilirsiniz.