Cuma, Kasım 20, 2009

NFS automount problemi Solaris 10

Sol10 makinelerinde kullandığımız nfs disk bölümlerini /etc/vfstab içine yazmama rağmen bir türlü automount olmadığını görünce biraz araştırma yaptım ve aşağıdaki yazışmayı buldum.

İlginç bir bilgi olduğunu düşünerek yayınlıyorum.


Özetle, nfs disk bölmesinin otomatik yüklenmesi için nfs SMF servisinin online durumda olması gerekiyor. Bendeki durumu kontrol ettiğimde gerçekten de disable durumda olduğunu gördüm. :)

Link : Solaris 10 yama yönetiimi

Solaris'de yama yönetimi konusunda en iyi uygulamaları gösteren bir web hizmeti .

Defunct process'leri öldürmek

Orphaned (defunct) process'leri öldürmek için güzel bir yöntem.

/usr/bin/preap $(ps -ef | grep defunct | awk '{ print $2 }' | xargs)

Çarşamba, Kasım 18, 2009

Güvenli Apache kurulumu (1) : Not

Kurulum adımları doğru takip edilmesine rağmen httpd servisi hala "daemon" hesabıyla çalışıyorsa edindiğim deneyimlere göre, /usr/local/apache2/logs altındaki bir dosyanın sahipliği webservd hesabına geçmemiş olabilir.

Farklı zamanlarda yaptığım iki kurulumda aynı sorun ve dosyayı gördüm. Her ikisinde de httpd.pid dosyasının sahibi hala root:root idi. Dosyanın sahibini webservd olarak değiştirerek servisi yeniden başlatınca, Apache servisi olması gerektiği gibi "webservd" hesabı altında çalıştı.


Cuma, Kasım 13, 2009

Güvenli Apache kurulumu (1)

Solaris 10 sunucularımızda Apache 2.2.x sürümlerini çalıştırmak için hazırlık yapıyoruz. Elbette güvenli kurulumun üzerinde yine aynı şekilde güvenli modda çalışan uygulamalar istediğimiz için Apache web server'ın da güvenli kurulumuna dair araştırmalar yapmaya başladık.

Bu ilk kısımda Sun'ın bu konuda yayınlanmış belgelerini referans alarak Apache'nin kısıtlı yetkilerle kontrollü çalıştırılmasına dair bulduklarımı özetlemeye çalışacağım.

Apache'nin SMF servisi olarak nasıl çalıştırılacağını daha önceki bir yazımda açıklamıştım.

Apache SMF dönüşüm

SMF servisi olarak başlattıktan sonra servisin deamon veya root gibi kullanıcı hesapları yerine, kısıtlı yetkilere sahip webservd hesabıyla çalıştırılabilmesi için aşağıdaki komutların takip edilmesi yeterlidir.

# svccfg -s apache2
svc:/network/http:apache2> setprop start/user = astring: webservd
svc:/network/http:apache2> setprop start/group = astring: webservd

Apache servisinin minimum yetki seviyesinde çalıştırılması için gereken ayarlamalar yapılıyor.

svc:/network/http:apache2> setprop start/privileges = astring: basic,!proc_session,!proc_info,!file_link_any,net_privaddr
svc:/network/http:apache2> setprop start/limit_privileges = astring: :default
svc:/network/http:apache2> setprop start/use_profile = boolean: false
svc:/network/http:apache2> setprop start/supp_groups = astring: :default
svc:/network/http:apache2> setprop start/working_directory = astring:
:default
svc:/network/http:apache2> setprop start/project = astring: :default
svc:/network/http:apache2> setprop start/resource_pool = astring: :default
svc:/network/http:apache2> end

Bu noktada servisi yeniden enable etmek gerekiyor.

# svcadm -v enable -s apache2
svc:/network/http:apache2 enabled.

Eğer servis daha önceden çalıştırılmışsa /usr/local/apache2 dizininin sahipliği bin:bin olarak düzenlenmiştir. Bu durumda webservd hesabı log dosyalarını okuyamayacağı için aşağıdaki hata mesajını alabilirsiniz.

# cat /var/svc/log/application-web-apache2:default.log

[ Nov 13 14:46:31 Executing start method ("/usr/local/apache2/bin/apachectl start") ]
(13)Permission denied: httpd: could not open error log file /usr/local/apache2/logs/error_log.

Bu durumda klasör sahipliğini webservd hesap ve grubuna devretmek gerekiyor.

# chown -R webservd:webservd /usr/local/apache2/

Daha sonra sunucuyu yeniden başlattığınızda httpd servisinin yalnızda bu kullanıcı hesabıyla çalıştığını kontrol etmelisiniz.

# ps -ef|grep http|grep -v grep

webservd 714 459 0 15:12:56 ? 0:00 /usr/local/apache2/bin/httpd -k start

# ppriv -S 714

714: /usr/local/apache2/bin/httpd -k start

flags =

E: net_privaddr,proc_exec,proc_fork

I: net_privaddr,proc_exec,proc_fork

P: net_privaddr,proc_exec,proc_fork

L: all

Vmware Tools 4.0 ve Solaris 10

Vsphere 4.0'a geçtiğimizden bu yana sanal Solaris 10 sunucularının vmware tools paketlerini değiştirmek için fırsat kolluyordum. Geçen hafta sonu bir kaç makinede bu işlemi yapıp yeni VM tools'u yükledikten sonra servisin kendiliğinden kapandığını farkettim. Makine açılışında servis açılıyor ancak daha sonra kapanıyordu. Bu konuyla ilgili küçük bir araştırmadan sonra UTF-8 locale ile ilgili aşağıdaki paketin yüklenmesi gerektiğini öğrendim. Paket yüklendikten sonra sunucular sorunsuz olarak VM tools'u çalıştırmaya başladılar.

VMware Tools does not start on a Solaris guest

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1014683

Perşembe, Kasım 05, 2009

Solaris 10 güvenli kurulum (1)

Güvenli bir Solaris 10 kurulumu hazırlamaya çalışıyorum. Olabildiğince az servis ve uygulama yüklü olması tercihim. Gereken her türlü ortamda minimum saldırı yüzeyine sahip, kullanışlı bir işletim sistemi. Üzerinde bayağı zamandır çalışıyorum ve bu konuda bir yordam hazırladığımı söyleyebilirim.

Temel paket olarak Core Networking (SUNWcreq) paketini kullandım. Aşağıda gerekli olduğunu düşündüğüm ve ek olarak yüklediğim paketler bulunuyor.

  • Automated Security Enhancment Tools (SUNWast)
  • Audit Service Implementation (SUNWaudit)
  • Basic Audit Reporting Tools (SUNWbart)
  • Documentation Tools (SUNWdoc )
  • Freeware other utilities (SUNWCfwutil)
  • Freeware shells (SUNWCfwshl)
  • On-line manual pages (SUNWman)
  • Secure Shell (SUNWCssh)

Daha sonra sıra yamalamaya geldi. PCA (Patch check advanced) scriptini kullanarak sunucumun yamalarını yükledim. Bu yükleme için yalnızca Perl'e ve wget'e ihtiyaç duyuluyor. Perl mevcut kurulumda gelmekte. wget ise

  • GNU wget (SUNWCwget)
  • Bağımlılık - Common GNU package (gcmn)

paketlerinin yüklenmesiyle hazır hale geliyor. PCA'nın aktif hale gelmesi için sunucunuzu doğrudan HTTPS ile Internet'e çıkabilir hale getirmek gerekli. Çalıştığında 60'a yakın yama buluyor ancak bende bunlardan yalnızca 20'sini yükledi.

http://www.par.univie.ac.at/solaris/pca/intro.html

Bu işlemler bittikten sonra da sunucuya Solaris Security Toolkit (SUNWjass) ile bazı ilave düzenlemeler yaptım. SUNWjass'ı http://www.sun.com/software/security/jass/ sayfasından indirebilirsiniz. Araç hakkında detaylı bilgiye bu blogdan ulaşmak mümkün.

SUNWjass çalıştırıldığında /etc/hosts.deny dosyasına ALL kaydını ekliyor. Dolayısıyla başta ayarları özelleştirmezseniz bir sonraki açılışta sunucuya SSH bağlantısı yapamayacaksınız anlamına geliyor. Bu nedenle uygulamadan önce test sistemlerinde çalıştırmak ve özelleşmiş ayarlarla prod sistemlerine geçmek en doğrusu.