Sistem yönetimi

Kasım 13, 2009

Güvenli Apache kurulumu (1)

Filed under: Solaris — mbuyukkarakas @ 2:08 pm
Tags: ,

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 = <none>

E: net_privaddr,proc_exec,proc_fork

I: net_privaddr,proc_exec,proc_fork

P: net_privaddr,proc_exec,proc_fork

L: all

Eylül 8, 2009

Solaris 10, Apache v2.2.12 SMF düzenleme

Filed under: Solaris — mbuyukkarakas @ 12:47 pm
Tags: , , , ,

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

Theme: Rubric. WordPress.com'dan blog alın.

Takip Et

Get every new post delivered to your Inbox.

Join 31 other followers