Pazartesi, Aralık 14, 2009

Solaris 10'da disk kotasını etkin hale getirmek

Kota uygulamasını UFS dosya sistemlerinde etkin hale getirmek oldukça kolay. Bİr kaç komutla çalıştırılabiliyor. Aşağıda örnek bir uygulama göstermek istiyorum.

- kota uygulanacak her dosya sistemininin kökünde 'quotas' dosyası yaratılır.

# touch /app/quotas /quotas

- dosyanın yetkileri root hesabıyla düzenlenir.

# chmod 600 /app/quotas /quotas

- kota uygulanacak tüm dosya sistemleri için /etc/vfstab dosyasında 'options' alanına 'rq' kaydı eklenir. Bu işlem sonrasında sunucunun yeniden başlatılması gerekmemektedir.

# vi /etc/vfstab

- Kota etkin hale getirilir.

# quotaon -va

- Hangi kullanıcı için kota belirlenecekse , bu kullanıcı için ilgili komut çalıştırılır.

# edquota test01

- Eğer birden fazla kullanıcı için kota uygulanacaksa, bir kullanıcı hesabı şablon olarak seçilebilir. Aşağıdaki komuttaki ilk kullanıcı şablona esas alınacak kullanıcıdır.

# edquota -p test01 test02 test03


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.


Salı, Eylül 29, 2009

BackupExec 12.5 ve Solaris 10 yedekleme sorunu

Yedekleme yazılımımızı BrightStore'dan Symantec BackupExec 12.5'a geçirdiğimizden bu yana enteresan sorunlarla karşılaşıyoruz. Geniş bir platform ve farklı sistemlerin olduğu bir ortamda böyle bir değişikliğin sancısız olmayacağının farkındaydık ama bu kadar da enteresan şeyler göreceğimizi açıkçası pek sanmıyordum.

Anlatmaya çalıştığım sorunumuz şu : Solaris 10 U7 sunucularda BackupExec agent'ını yükleyerek çalıştırdıktan sonra BE'nin yönetim konsolunda normal olarak sunucuyu görmemiz gerekir. Ancak farklı yöntemler denememize rağmen bir türlü sunucuyu BE'ye tanıtmayı başaramadık.

Agent'ın debug modunu açtığımızda da hep aynı mesajı alıyorduk ;

NrdsAdvertiserThread: EnumSelfDLE for file system 22 returned -1(0xFFFFFFFF) and 0 DLEs

Symantec'le yaptığımız yazışmalar ve açılan "case" sonucunda bize, ipe sapa gelmeyen aşağıdaki açıklamayı gönderdiler.

http://seer.entsupport.symantec.com/docs/316840.htm

Özetle, Solaris'teki NIC cihaz adının ortasında (başı ve sonu değil) rakam bulunuyorsa BE 12.5 sunucusu bu agentı tanımıyor, agent kendisini BE'ye tanıtamıyor gibi garip bir durum vardı. (Ör : e1000g0 çalışmıyor, fge0 çalışıyor).

Tabi bu durumu önceleri biraz gülerek ama zaman ilerledikçe ve işler aksadıkça kızarak ve sonrasında da ciddi öfke patlamaları şeklinde karşılamaya başladık. İşin kötü yanı , NIC device name'ler henüz Solaris 10'da değiştirilemiyor. Ortamımızda tüm Solaris sunucuları Vmware ESX 3.5 üzerinde çalışıyor ve ESX hostlarda yalnızca e1000g sürücüsünü kullanan Ethernet kartları tanımlı. Dolayısıyla kartları değiştirerek de "device name"leri değiştirme imkanımız yok.

Cihaz ismini değiştirme seçeneği yalnızca Open Solaris 'de dladm rename-link komutu ile desteklenmekte.

http://www.sun.com/bigadmin/sundocs/articles/vnamingsol.jsp

http://www.opensolaris.org/os/project/clearview/docs/vnameoverview.pdf

Ama en sonunda biraz (itiraf ediyorum birazdan daha fazla :) ) kastırınca ve Sun Microsystems Türkiye'den de küçük bir destek alarak sorunumuzu çözdük.

Yaptığımız işlem basitçe Solaris ve BE'yi kandırmak. Mevcut ismi değiştiremeyince biz de içinde tek NIC'in bulunduğu bir Link aggregation yaratarak BE'nin muhatap olduğu NIC'in seveceği türden (!) bir isminin olmasını sağladık. Aşağıda bu işlemi nasıl yaptığımızı gösteren komutlar bulunuyor.

# ifconfig e1000g0 down unplumb (bu komutu kullanmadan dladm çalıştırılırsa 'cihaz kullanılıyor' hatası veriyor)
# dladm create-aggr -d e1000g0 1
# ifconfig aggr1 plumb up
# mv /etc/hostname.e1000g0 /etc/hostname.aggr1

Not : Sun Microsystems Türkiye'den Serkan Berk'e yardımları için bu vesileyle teşekkür ediyoruz.

Çarşamba, Eylül 09, 2009

Salı, Eylül 08, 2009

Solaris 10, Apache V2 SMF düzenleme

Projelerden biri için iki adet Solaris 10 (u7) sunucu üzerine medya ile birlikte gelen Apache’nin kurulması gerekiyordu. Kurduk :) Ama daha sonra yazılımcılar en az V2 ile çalışmak istediklerini belirtip V1.3′ten vazgeçtiler.

Herhangi bir yazılımcının istek ve karar değişiklikleri asla bitmeyeceği için bir süre sonra bunu da yeterli görmeyip V2.2 ile çalışmak istediklerini belirttiler.

Solaris medyası ile V2 geldiği için V2.2.12′ yi ancak www.sunfreeware.com’dan bulabildim.

http://www.sunfreeware.com/programlistintel10.html#gcc33

Apache’nin bu sürümü beraberinde bir çok ek paketin de yüklenmesini istiyor. Özellikle prod sunucularına GCC kurmak istemeyenler için libgcc.3-4-6 tavsiye edilmiş.

Kurulumlar tamamlandığında elimizde çalışır halde Apache v2 sunucuları vardı ve yazılımcıların tüm isteklerini karşılıyordu ama bu sefer de yönetim sorunları ortaya çıktı.

Yüklemede kullandığım stream data package anladığım kadarıyla Apache için SMF servisi oluşturmamıştı. Bu durumda ancak ilgili klasörün içinden apachectl’yi elle çalıştırarak hizmeti başlatabiliyorduk.

Aslında bu durum işime de gelmedi değil. Ne kadar zamandır SMF hakkında pratik yapmayı planlıyordum ve bu sayede el alışkanlığımı da geliştirmiş oldum.

Apache V2 için SMF servisi oluşturmanın yolu çok basit.

1- Sun’ın aşağıdaki belgesi oldukça açıklayıcı

http://www.sun.com/bigadmin/features/articles/id_manager_service.html

2- Buradan mevcut XML dosya örneğini alıp üzerinde bazı küçük değişiklikler yaptım ve bahsedildiği gibi bir klasör altına yerleştirdim.

3- Aşağıdaki komutları çalıştırdım ve Voila ! Servis hazırdı.

bash-3.00# svccfg validate apache2.xml
bash-3.00# svccfg import apache2.xml

SMF ile ilgilenenler için açıklayıcı bir forum topiğini de ekte yayınlıyorum.

http://www.unix.com/sun-solaris/32936-solaris-10-add-new-svc.html


Çarşamba, Ağustos 12, 2009

Process Maker ve iş akışı yazmak


Process Maker’ ın, açık kaynak yazılımlar içinde uzun zamandır işime doğrudan olumlu etki eden en faydalı yazılım olduğunu düşünüyorum.

Eğer çalıştığınız ortamda iş akışı uygulamaları geliştirme ihtiyacınız varsa, hiç programlama bilgisine sahip olmadan bile geliştirme yapabileceğiniz bir yazılım ve grafik arayüzünü kullanarak profesyonel görünüme oldukça yakın formlar ve akış diyagramları elde edebilirsiniz. Üstelik bu akışları çok kısa zamanda ortam ve işinize adapte edebilirsiniz.

Yazılımla ilgili bu kısa girişi yaptıktan sonra, kullanırken edindiğim deneyimlerimden biraz bahsetmek istiyorum.

Kendi ortamımda yazılımı sürekli Windows platformunda denedim. İlk olarak söyleyebileceğim şeylerden biri, (henüz çözmeyi başaramadım) ilk denemem kendi PC’me kurarak (Win XP İng. SP2) yaptığım denemeydi ve uygulama içinden PHPMail kullanarak gönderdiğim e-postalarda Türkçe karakter sorunu çıkmıyordu. Ne zaman ki, uygulamayı daha ciddi bir ortama taşımaya karar verdim ve Windows 2003 sunucuya geçtim, giden e-postalarda Türkçe karakter sorunu çıktı. Halen çözümünü araştırıyorum ama şimdilik ciddi bir sorun değil benim için.

Bunun dışında Process maker’i Linux ortamında çalıştırmak isteyenler varsa, Ubuntu’da nasıl yapılacağı aşağıdaki blogda tarif ediliyor.

http://blog.evolutioncreations.com/2008/11/installing-process-maker-on-ubuntu-804.html

İkinci zorluk, Active Directory entegrasyonundaydı. Önce test çalışmalarımı yerel hesaplarla sürdürdüm ama ne zaman ki gerçek ortama geçtik, AD sorunu ortaya çıktı. Bunu da aşağıdaki forum yazışmasını takip ederek çözebilirsiniz. Tamamiyle basit bir “trick”i var.

http://forum.processmaker.com/viewtopic.php?f=5&t=1157&start=0&st=0&sk=t&sd=a

Bir iş akışı uzmanı değilim ama ihtiyaçlarım bu konuda bazı deneyimleri kazanmamı sağladı. Süreçlerini iş akışlarına çevirmek isteyenler için naçizane aşağıdaki önerilerde bulunmak isterim.

  • Bir süreci PM ile iş akışına dönüştürmek istiyorsanız, öncelikle kağıt üstünde bir çalışma yapmak iyi olacaktır. Tercihen, Visio vs. ortamlarda hazır akışlarınız varsa işiniz çok daha kolay olacaktır. Yoksa önce süreci tasarlamak için de zaman harcamak zorunda kalacaksınız.
  • Küçük adımlarla başlayın. Kredi kartı talep sürecinin tamamını sistemin içine almak yerine önce talep bildirimi gibi daha küçük süreç(çik)leri halledin. Zamanla deneyim kazandıkça, başta birkaç gün harcadığınız bir iş, tam bir günden daha kısa süre içinde bitebiliyor.
  • Geliştirme yaparken, kullandığınız anahtar alanları bir yere not edin. Daha sonra salt-okunur olarak başka formlarda bu alanları görüntülemek istediğinizde hatırlamadığınız bir alan adı için geri dönmek zor olabiliyor.
  • Uygulamanın içinde “field name” diyeceğimiz alanlar için kesinlikle Türkçe karakterler kullanmayın. “Display name” olarak belirtebileceğimiz alanların görünür isimleri için TR sorunu yok ama bahsettiğim noktalarda aman dikkat !
  • Açık kaynak bir yazılım olması itibariyle, kararlılığının her an %100 garantisi yok. Mutlaka sık sık yedekleyerek çalışın. Ummadığınız bir yerde tasarladığınız form uçabilir. Nadir görülüyor ama olası bir durum.

Sonuç olarak 10 gün içinde biri 24 adımlı, diğeri 13 adımlı ve bir kaç tane de irili ufaklı olmak üzere 9 farklı süreci iş akışı sistemine aktarmayı başardım. Elimde daha önce bunların çoğunun Word veya Visio olarak hazırlanmış çizimleri vardı, bu nedenle yalnızca uygulamaya yoğunlaşabildim.


Farklı nedenleri ve / veya endişeleri yüzünden iş akışı alemine girmek isteyenlere Process Maker’ı şiddetle tavsiye ederim.

http://www.processmaker.com/

Pazar, Temmuz 26, 2009

Link : Hareketli "tag" bulutu oluşturmak

Hep hareketli bir "tag" bulutu oluşturmak istemişimdir. Oldukça verimli ve işe yarar , aynı zamanda da görsellik derecesi yüksek bir öğe olduğunu düşünüyorum.

Ekteki sayfada bunun nasıl yapılabileceği basit bir şekilde anlatılıyor. Blogumda da bu kodu kullandım.

http://www.bloggerbuster.com/2008/08/blogumus-flash-animated-label-cloud-for.html

Link : VMware ESX sunucularına kontrollü yama yüklemesi

VMware ESX 3.5 sunucularına bir IIS sunucusunu kullanarak konsol üzerinden kontrollü yama yükleyebilmek için aşağıdaki gibi güzel bir yol önerilmiş.

http://virtrix.blogspot.com/2007/03/vmware-autopatching-your-esx-host.html

Installing VRTSralus 12.5.2213 on xxxx Unable to copy

Backup Exec 12.5 Linux agent’ını CentOS sunucularına yüklerken aşağıdaki gibi bir hata mesajı alıyordum.

Installing VRTSralus 12.5.2213 on xxxx Unable to copy, /home/tomcat/gecici/Backup\ Exec Linux/RALUS64/pkgs/Linux/VRTSralus.tar.gz, on xxxx to, /var/tmp/vxif/RALUS/VRTSralus, on xxxx

…………………………………………………… failed to install

BE agent’ın olduğu tar dosyasını “Backup Exec Install” adında bir klasöre açmışım. Farkedilebileceği üzere arada boşluk karakterleri var. Bu boşluk karakterlerini kaldırınca yükleme sorunsuz gerçekleşti.

Link : Solaris’in tarihçesi

Solaris’in geçmişini öğrenmek isteyenler için.

http://www.unixx.com/the-history-of-solaris.html

Link : ISA ADAM problemlerinin Sysinternals araçlarıyla incelenmesi

Sysinternals araçlarıyla ISA ADAM kaynaklı sorunların incelenmesine yönelik yeni bir makale yayınlandı. Oldukça ilginç bulduğum için paylaşmak istedim.

http://blogs.technet.com/yuridiogenes/archive/2009/05/22/using-sysinternals-tools-to-troubleshooting-isa-server-issues.aspx

ESX Server 3.5 Hatalı / şüpheli login işlemlerinin izlenmesi

Tüm işletim sistemlerinde olduğu gibi ESX sunucuları için de güvenliğin optimum düzeye yükseltilmesi sistem yöneticilerinin görevleri arasında yer alıyor. ESX OS üzerinde tanımlanmış kullanıcı hesaplarının logon / logoff / lockout aktivitelerinin izlenmesi de bu görevin bir parçası. Bu konuda fazla ahkam kesmeden deneyimlerimden bahsetmek istiyorum.

Test sunucusunda yaptığım çalışmalarda bir kaç kategoride log üretmek ve izlemek için denemeler yaptım.

  • Bir gün önceye ait başarılı login işlemlerinin izlenmesi ve epostayla bildirilmesi
  • Bir gün önceye ait başarısız / şüpheli login işlemlerinin izlenmesive epostayla bildirilmesi
  • Root login işlemlerinin gerçek zamanlı olarak sistem yöneticilerine bildirilmesi
  • Root cron scheduled task’lerinde oluşacak değişikliklerin izlenmesive epostayla bildirilmesi.

Başarılı login işlemlerinin izlenmesi (eposta gönderimi ayrıca anlatılacaktır)

# last -x| grep “`date -d y ‘+%B %d’`” >/tmp/last.log

Başarısız login işlemlerinin izlenmesi

# faillog| grep “`date -d y ‘+%B %d’`”

ESX 3.5′da faillog komutu çalıştırıldığında/var/log/faillog dosyasının oluşturulması istenmektedir.

# touch /var/log/faillog

# chmod 600 /var/log/faillog

# chown root:root /var/log/faillog

komutlarıyla dosyayı oluşturabilirsiniz.

Ancak bu da dosyaya kayıtların gelmesini sağlamayacaktır. Yaptığım araştırmalarda bunun ESX’te kullanılan OpenSSH sürümüne ilişkin bir bug olduğuna dair forum yazışmaları görmüştüm.

http://communities.vmware.com/message/1180677#1180677

Ancak kendi denemelerimde # esxcfg-auth –maxfailedlogins=3 komutu çalıştırıldıktan sonra şifresini yanlış girdiği için lockout konumuna düşen kullanıcı hesaplarına dair kayıtların bu log dosyasına yazıldığını gördüm. Ancak bu durum, sistemde tanımlı kullanıcı hesapları için gerçekleşiyor. Eğer bir saldırgan yetkili bir hesap bulabilmek için değişik isimler deniyorsa gördüğüm kadarıyla şu an bunu loglayabilecek bir mekanizma göremedim. Bilen ve bu bloga katkıda bulunmak isteyen varsa memnuniyetle yayınlayabiliriz.

Root login işlemlerinin gerçek zamanlı olarak sistem yöneticilerine bildirilmesi

Bunu yapmak bana çok daha kolay geldi. /root klasöründeki ./bash_profile dosyasının içine aşağıdaki komut setini ekleyince tüm root loginlerinden haberdar olduk.

# /usr/local/bin/smtp_send.pl -t linuxyonetimi@sirket.com.tr -s “`echo $HOSTNAME` Root login islemi” -f `echo $USER`@company.com.tr -r smtphost.sirket.local

SMTP hizmetinin nasıl kurulacağını ayrıca anlatacağız.

Root cron scheduled task’lerinde oluşacak değişikliklerin izlenmesi

Bir saldırganın ele geçirmek isteyebileceği veya fark ettirmeden değiştirerek root yetkilerine ulaşabilecek bir zaafiyet yaratabileceği noktalardan biri de zaman ayarlı görevlerdir. Bu nedenle root kullanıcısının crontab loglarını da izlemenin faydalı olacağını düşünüyorum.

Buradaki mantık çok basit. /var/log/cron log dosyasının dünkü ve bugünkü hallerini ‘diff’ komutuyla karşılaştırarak farklılık varsa epostayla sistem yöneticisine gönderiyoruz.

# tail -n 20 /var/log/cron|grep -v ‘hourly\|daily\|weekly’ >/root/cron_gunluk_durum

not : grep komutunda ‘içinde A veya B veya C’ geçen satırları filtrele diyebilmek için diziler arasına | konması gereklidir. | OR mantıksal operatörüdür. Ancak |’nin algılanabilmesi için önüne \ (backslash) konmasına da ihtiyaç var.

# /usr/local/bin/smtp_send.pl -t linuxyonetimi@sirket.com.tr -s “`echo $HOSTNAME` root Cron islemleri” -f `echo $USER`@sirket.com.tr -r smtphost.sirket.local -m “`cat /root/cron_gunluk_durum`”

ESX 3.5 konsoldan e-posta gönderimi

http://www.yellow-bricks.com/2008/01/23/howto-sending-html-email-from-the-service-console/

ESX Server 3.5 Linux kullanıcı hesapları yönetimi (1)

VMware ESX Server 3.5 işletim sisteminde açılacak kullanıcı hesaplarının belirli bir şifre politikasına uymasını sağlamak için esxcfg-auth komutu kullanılmaktadır.

Aşağıda bu komutun hesap ve şifre yönetimine dair bazı örneklerini bulabilirsiniz.

Şifrenin maksimum kullanım süresini belirler.

# esxcfg-auth –passmaxdays=45

Şifrenin tekrar değiştirilebilmesi için aradan geçmesi gereken minimum gün sayısını belirler.

# esxcfg-auth –passmindays=1

Şifrenin kullanım süresi dolmadan kaç gün önce kullanıcıya uyarı mesajının gösterileceğini belirler.

# esxcfg-auth –passwarnage=36

Hesap kilitlenmeden önceki yanlış şifre deneme sayısı.

# esxcfg-auth –maxfailedlogins=3

Link : vSphere 4.0′ı indirmek artık mümkün.

vSphere 4.0′in VMware’in resmi web sitesinden indirilebileceğine dair duyuru bugün yayınlandı.

http://www.vmware.com/download

Internet Explorer Temporary Internet Files klasörünün temizlenmesi

Temp klasörlerinin şişmesi sonucu PC performanslarının düştüğüne dair hepimizin zaman zaman deneyimleri oluyor.

IE 6 kullanan PC’lerde Icsweep.exe adında küçük bir program ile Group Policy’e shutdown script olarak ekleyerek tüm PC’lerdeki tüm kullanıcı profillerinden

C:\Documents and Settings\%USERNAME%\Local Settings\Temporary Internet Files

C:\Documents and Settings\%USERNAME%\Local Settings\Temp

klasörlerini silmeyi başardık. Normal bir batch dosyası ile bunu yapmak profiller arası yetki sorunları ve tüm rastgele klasör isimlerini tahmin etmenin zorunluluğu nedeniyle kolay olmayacaktı. Ancak bu program çok başarılı şekilde yapıyor bu işi.

IE 7 kullanılan bilgisayarlarda ise Rundll ile bir API çağırarak user context altında bu işi yapmak da mümkün. Daha şık görünüyor :) Tercih tabi ki kullanacak kişiye kalmış.

http://www.howtogeek.com/howto/windows/clear-ie7-browsing-history-from-the-command-line/

Link : ISA 2006 server publishing

ISA 2006′da sunucu yayınlama hakkında çok detaylı bilgi içeren, faydalı bir makale yayınlandı.

http://technet.microsoft.com/en-us/library/dd547089.aspx

Bu da birden fazla sayıda Web sunucusunun NLB halinde yayınlanmasını gösteren başka bir makale.

http://www.isaserver.org/tutorials/Explaining-ISA-Server-2006-Web-Server-load-balancing.html

Link : Solaris uzaktan eğitim sistemi.

Sun Microsystems, Solaris 10 öğrenmek isteyenler için bir uzaktan öğrenim sistemi oluşturmuş. İlginizi çekebilir. Ancak kayıt olmak gerekiyor.

https://learning.sun.com/solc/smartstart

Group Policy loglarının incelenmesi

İncelemek istediğimiz loglar nerede duruyor ?

Windows XP, Group Policy ile ilgili log dosyalarını C:\windows\debug\UserMode altında userenv.log adıyla metin formatında oluşturmaktadır. Bu dosyaların boyu maksimum 1 MB olabileceği için dosya boyunun aşılması halinde, userenv.bak ismiyle arşivlenmekte ve yeni bir dosya açılmaktadır.

Loglama seviyesini nasıl arttırırım ?

XP, varsayılan modda düşük seviyede loglama yapmaktadır. Registry’de yapılacak değişikliklerle loglamayı maksimum seviyeye çıkartmak mümkündür. Bunun için aşağıdaki değerler kullanılabilir. Daha detaylı bilgi için bkz : http://support.microsoft.com/default.aspx?scid=kb;en-us;221833

Subkey: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
Entry: UserEnvDebugLevel
Type: REG_DWORD
Value data: 10002 (Hexadecimal)

UserEnvDebugLevel can have the following values:

NONE 0×00000000
NORMAL 0×00000001
VERBOSE 0×00000002
LOGFILE 0×00010000
DEBUGGER 0×00020000

Kişisel not olarak, loglamayı maksimum seviyeye çekince (0×00010002) makinayı yeniden başlatmaya gerek kalmadan loglama seviyesinin arttığını söyleyebilirim. Ancak loglama bu seviyede gerçekten çok fazla kayıt üretiyor. Sorunsuz bir PC’de sıradan bir Gpupdate /force sonrası 600 satıra yakın kayıt eklendiğini belirteyim. Bu nedenle, iş bitiminde loglama seviyesinin eski haline döndürülmesi kesinlikle önemli bir detay.

Loglardaki bu kayıtlar ne anlama geliyor ?

Group policy’nin istemci tarafındaki loglaması çoğunlukla anlaşılabilir bir dilde hazırlanmış ve kodlardan çok anlamlı cümleler şeklinde geçiyor. Ancak bazı noktalarda hata kodlarını ve “Return code”ları bilmek gerekiyor. Bu konudaki en detaylı kaynak aşağıda yer alıyor.

http://technet.microsoft.com/en-us/library/cc786775.aspx

Loglarda görülen en büyük eksiklik, saatle birlikte tarih kaydının olmaması. Bu durumda biraz tahmin yürütmek gerekiyor. Aşağıdaki prosesi soldan sağa doğru okuyacak olursak şöyle sıralanıyor.

İşlem kodu, işlemin saati, İşlemin adı, hatanın kısa açıklaması.

Nelere dikkat etmeli

Her GPO’nun bir master ve de bir DC replikası olduğunu hatırlıyoruz. Zaman zaman FRS problemleri nedeniyle replikasyon eksikleri olan şube DC’lerinde GPO’ların eksiksiz kopyalanmadığını da görmüştük. Bir PC’de GPO’nun sağlıklı uygulanıp uygulanmadığını anlayabilmek için aşağıdaki kayıtlara da dikkat etmek gerekiyor. Örnekteki gibi her GPO’nun GPC ve GPT numaraları aynı olmalı. Aynı olması GPO’nun senkron olduğu anlamına gelecektir.

Aşağıda sıralanmış hata örnekleri sıkça karşınıza çıkabilir ancak bizim aradığımız hatalar bunlar değil. Gözardı edebilirsiniz.
1- USERENV(3b8.3bc) 19:13:56:917 MyRegUnLoadKey: Failed to unmount hive 00000005
2- USERENV(3b8.3bc) 19:01:33:705 UnloadUserProfileP: Didn’t unload user profile

Daha yakışıklı hatalar arıyoruz J. Bunlar gibi :

1- USERENV(2c0.c4) 08:39:20:562 GetWbemServices: CoCreateInstance returned 0×800401f0
2- USERENV(2c0.280) 23:28:22:072 ProcessGPOs: GetGPOInfo failed.

Elbette daha dikkat edilmesi gereken bir çok detay var ama bunları da başka bir yazıda aktarmaya çalışacağım.

Microsoft tarafında GPO’larda scriptlerin çalışmasıyla ilgili bir dizi makale yayınlanmış. Bunları okumak da çok yardımcı olacaktır.

The two sides of group policy script extension processing

http://www.microsoft.com/technet/scriptcenter/topics/gp/extension1.mspx

http://www.microsoft.com/technet/scriptcenter/topics/gp/extension2.mspx

İşiniz bittiğinde loglama seviyesini eski haline getirmeyi unutmayın lütfen. Kolay gelsin.

Link : Logparser ve Exchange 2007 ortak kullanım örnekleri

EMC EmailXtender ile yaşamak zor.

EMC E-mail Xtender 4.81.655 e-posta arşivle yazılımını kullanmanın hayatımıza kattığı bir sürü zihin egzersizleri ve güzellikler (!) var. Bu aralar yaşadığımız klasik bir septomdan bahsetmek istiyorum kısaca.

(Bunu başka bir bakışla EMC’nin değil de Active Directory’nin bir sorunu gibi görmek de mümkün. Bakış açısına göre değişir tabi.)

Exchange ortamında dağıtım gruplarını GAL’in en tepesinde görebilmek için başına boşluk koymak gibi bir yöntem benimsenmiş durumda ortamımızda. Bu boşluk işareti Display Name ve Alias alanlarının her ikisinde de bulunuyor.

Bir şubeyi teker teker kullanıcı bazında değil de DG’ye dayanarak arşivlemeye çalıştığımızda önce Türkçe karakterlerin EX’in shortcut ekranında ş>s vb. klasik Türkçe karakter problemi sonucunda dönüştüğünü ve arşivlemenin çalışmadığını gördük. EMC’ye açtığımız çağrıda ilk olarak sunucunun İngilizce olan dil ayarlarını Türkçe’ye çevirmemizi önerdiler. Bunu yaptık ama hala SQL, indeksleme vb. konulardaki olası yan etkileri hakkında emin değiliz. Hala test ediyoruz. Umarım bir sorun çıkmayacaktır.

Ancak bu adımdan sonra da sorunun düzelmediğini gördük. Bunun üzerine daha önceden başak bir sorundan hatırladığım gibi Alias’daki boşluk karakterini kaldırdım. ve bingo ! Sorun çözüldü.

Şimdi GAL’deki bu boşluk kullanan DG’leri nasıl değiştiririz, en az kullanıcı rahatsızlığı yaratarak bu sorundan nasıl kurtuluruzu düşünüyoruz.

Bir yandan da dil ayarı değişen sunucuda sorun çıkmaması için dua üstüne dua ediyoruz :)

Logparser ve faydalari

Uzun zamandır LogParser’ı kullanmayı ihmal etmişim. 2.2 yeni sürümde (en azından benim için yeni) oldukça güzel özellikler katmışlar. Bunları burada saymakla zaman kaybetmeyeceğim. Basit ama etkili bir uygulamamızdan örnek vermek istiyorum.

AD ortamımızda bazı PC’lerin (özellikle uzak noktalardaki PC’ler) Active Directory ile sorunları olduğunu ve Group policy güncellemelerini sağlıklı yapamadıklarını farkettik. Ancak bu makinelerin listesini toplamak zahmetli bir iş olduğundan tüm PC’lerden event log dosyasını belirlediğimiz olay tiplerine göre filtreleyerek araştıracak bir araç aramaya başladık.

Bu noktada tekrar LogParser aklıma geldi :)

Aşağıda kullandığım komutu bulabilirsiniz.

“c:\program files\Log Parser 2.2\LogParser” -o:CSV “SELECT EventLog, TimeGenerated, EventID, EventType, ComputerName, SID, Message INTO \\XXserver\Pcloglari\%COMPUTERNAME%-%date%.csv FROM Application WHERE TimeGenerated >= TO_LOCALTIME ( SUB ( SYSTEM_TIMESTAMP(), TIMESTAMP( ‘01-02′, ‘MM-dd’) ) ) AND ( EventID = 1058 OR EventID = 1059 OR EventID = 1054)”

Bu komutla Application Event Log içinden “dün” oluşan tüm 1058,1059 ve 1054 nolu olayların çıktısını uzaktaki bir sunucuya CSV olarak alabiliyoruz.

Eğer PC adıyla bir log varsa bu GPO sorununa delil olabilir. Log yoksa o gün o PC’de bir sorun olmamıştır. Çok sayıda çıktının hızlıca değerlendirilmesinde bu mantık da kullanılabilir.

Elbette EventComb gibi araçları da kullanmak mümkün ancak, bu şekilde log toplamak ; eş zamanlı olarak uzaktaki bilgisayarlara bağlanıp kısıtlı data hatları üzerinden senkron olarak bilgi çekmeye çalışmaktan daha makul ve maliyeti düşük bir yöntem.

Setup failed to install ADAM in replica mode error 0×80074e46

ISA arrayler kurduk, NLB’ler yaptık ama her seferinde şu garip ADAM problemi nedeniyle ikinci CSS’i kuramıyorduk. Replika olarak ikinci CSS’i kurmak istediğimizde “Setup failed to install ADAM in replica mode error 0×80074e46″ hatası alınıyor ve kurulum gerçekleşmiyordu.

En sonunda yaptığım araştırmada aşağıdaki blogu buldum.

http://www.networkplumbing.org/2007/06/error-0×80074e46-while-installing-isa.html

Test ortamımda da denedim. Gerçekten bir geçici Any > LocalHost rule yazılınca CSS kurulumu yapılabiliyor.

VMware vcenter sanal ortama nasıl kurulur ?

VMware ESX vcenter sunucusunun sanal ortama kurulmasıyla ilgili güzel bir VMware makalesi

http://www.vmware.com/pdf/vi3_vc_in_vm.pdf

ISA Server 2006 passive ftp ve Filezilla

ISA Firewall client kullanıcılarının bazı kurumların FTP sunucularına dosya yüklemelerinde sıkıntı yaşamaya başladık. Şöyle ki, dosya indirirken hiç bir sorun görülmeyen bilgisayarlarda yükleme sırasında “Access denied” mesajları alınıyordu.

Yaygın olarak FileZilla FTP istemcisi kullandığımızdan önce bunu FTP programıyla ilgili bir sorun gibi değerlendirdik ve passive / active FTP iletişimini sağlıklı yapıp yapmadığını araştırmaya başladım.

Ancak sorunun çözümü çok ama çok basit bir yerden çıktı.

FTP için oluşturulan her kural üzerindeki sağ klik “configure FTP” yaparak “Read Only” seçeneğini kaldırmak yeterliydi :)

ftp

Yani sonuç olarak bunun pasif veya aktif FTP’yle uğraşmayı gerektirecek kadar derin ve karmaşık bir çözüme ihtiyacı yok.