AIX 6.1 için LDAP Entegrasyonu - II
Yazının 2. kısmında ise AIX üzerinden LDAP entegrasyonu için AIX üzerinde yapılacaklara değineceğim. Bundan önceki bölümde LDAP sunucusu olarak Microsoft Active Directory seçmiş ve gerekli konfigürasyonları tamamlamıştık.
Uygulamanın çalışabilmesi için hangi tür paketlerinde kurulacağı konusuna bir önceki yazıda değinmiştik. Bu paketleri kontrol ettikten sonra LDAP bağlantısının çalışıp çalışmadığını kontrol etmek için ufak bir test yapabilirsiniz. Bunun için ldapsearch komutundan faydalanacağız. Komut dizilimi bir hayli uzun olduğu için kolaylık olması açısından dizilimin sabit kısmını bir shell değişkenine aktaracağız. Başlamadan önce şunu da belirtelim ldap komutları "/opt/IBM/ldap/V6.1/bin" klasörü altında yer alır. Eğer "/usr/bin" altına link oluşturulmamışsa "PATH" değişkeninizi güncellemeniz gerekmektedir.
export LDAP="ldapsearch -h Domain1 -D CN=unixldap,CN=Users,DC=ornek,DC=local -w 123456 –b”
Burada yer alan parametreler çok önemli. Bu nedenle ayrıntılı ele almakta fayda var. İlk olarak "-h" parametresi ile Microsoft Active Directory sunucusunun DNS name'ini belirtiyoruz. Burada IP bilgiside girilebilir ancak her zaman isimden gitmekte fayda var." -D" parametresi ise Active Directory'e bağlanarak kullanıcılara ait bilgileri sorgulayan Active Directory kullanıcısına ait bilgileri tanımlıyoruz. Görüldüğü gibi LDAP bilgilerini sorgulayacak kullanıcı "unixuser" adında "ornek.local" domain'inde "Users" container"inin altında yar almaktadır. Bu kullanıcı herhangi bir şekilde admin yetkisi olmayan bir kullanıcı olabilir. Çünkü yapacağı tek şey LDAP ile bir bağlantı kurup kullanıcılara ait bilgileri read-only olarak çekmektir. Kullancııyla ilgili iki husus önemlidir. Yaptığım denemelerde edindiğim bilgiye göre eğer yukarıdaki komut diziliminde görüldüğü gibi "Container" bilgileri girilerek sorgulama yapılacaksa Active Directory'de bu kullanıcı oluşturulurken Name, Surname alanları doldurulmamalı yada sadece Name alanına kullanıcı ismiyle aynı ad girilmeldir. Aksi taktirde "authentication" adımında hata alıyoruz. Bahsettiğim tanımlama aşağıdaki gibi olmalıdır.
Kullanıcı tanımı yaparken kendi kurum politikalarından dolayı "generic" bir kullanıcı oluşturamıyorsanız tanımalamarı var olan bir kullanıcıyı da kullanabilirsiniz. Ancak bu sefer komut setinde kullanıcıyla ilgili "Container "bilgileri yerine tanımlama aşağıdaki gibi yapılmalıdır.
export LDAP="ldapsearch -h Domain1 -D "unixuser@ornek.local" -w 123456 –b”
Bu komutta kullanıcıya ait active directory bilgilerinin yerine kullanıcı_adi@domain_adi formatı kullanılmıştır. Bu formatda herhangi bir kullanıcı rahatlıkla LDAP sorgularını çekebilir. Shell değişkenini tanımladıktan sonra LDAP sunucuyla bağlantımızı test edebiliriz. Bunun için aşağıdaki komutu kullanın.
$LDAP "DC=ornek,DC=local" "(CN=unixuser)"
İlginç bir durum olarak bu komutu yazdıktan sonra eğer "ldap_simple_bind: Invalid credentials" hatası alıyorsanız kullandığınız şifredeki noktalama işaretlerini kaldırınız. Sorun düzelecektir. Komut sonrasında kullanıcıyla ilgili Active Directory veri tabanındaki bilgiler ekrana getirilecektir.
Bu çıktıyı aldıktan sonra artık sunucu için geçerli olan LDAP konfigürasyonunu oluşturacağız. bunun için iki yöntem var. İlki "/etc/security/ldap/ldap.cfg" dosyasını düzenledikten sonra start-secldapclntd komutunu çalıştırmaktır. Bununla beraber sunucu restart olduğunda daemonun tekrar çalışabilmesi için "/etc/inittab"ıda konfigüre etmeniz gerekir. Bunun yerine kullanışlı bir komut olan "mksecldap" komutunuda kullanabilirsiniz. Bu komutla beraber verdiğimiz parametrelere göre tüm konfigürasyon dosyaları düzenlenecek ve deamon çalıştırılacaktır. Komut dizilimi aşağıdaki şekilde olmaldır.
mksecldap -c -h Domain1 -a unixuser@ornek.local -p 123456 -d cn=users,dc=ornek,dc=local -A ldap_auth
Komutu yazdıktan sonra herhangi bir hata üretmemişse işlem başarılı demektir. Bundan sonra "login" işlemleri için LDAP kullanılacağını belirtmemiz gerekir. Şunuda aklımızda tutalım aynı anda hemde hem "local" hem de LDAP kullanıcıları sisteme login olabilirler. İlk olarak genel kullanıcıların sisteme LDAP ile login olabilmesi için "/etc/security/user" dosyasında "default:" tabında yer alan SYSTEM = "compat" alanını SYSTEM = "LDAP" şeklinde düzenledikten sonra hemen alt satırına "registry = LDAP" girdisini eklemeniz gerekmektedir. Bununla beraber root gibi local kullanıcıların "local authentication" metodunu kullanmasını istiyorsak bunun için her kullanıcı tabında yer alan SYSTEM alanlarını SYSTEM = "compat" ve registry = files olarak düzenlemeniz yeterli.
Son olarak da authentication için tanımlanan metodun sistemde geçerli olabilmesi için "/usr/lib/security/methods.cfg" dosyasına aşağıdaki satırları eklemeniz gerekmektedir.
Böylece sistem LDAP authentication'u seçen user'lar için hangi programı kullanacağını da öğrenmiş oldu. Bundan sonra yapmanız gereken bir önceki yazıda nasıl oluşturulduğu anlatılan kullanıcı ile sisteme login olmak.
Tabi unutmadan AD üzerinde oluşturulan kullanıcı için AIX üzerinde birde home directory oluşturmak gerekmektedir. Bu ayrıntıyı da hallettikten sonra artık yapacağınız herşey sizin yaratıcılığınıza ve isteğinize kalmış.
Gönderen faktoriyel zaman: 04:26 Hiç yorum yok:
Etiketler: AIX, Authentication, LDAP, UNIX, User
AIX 6.1 için LDAP Entegrasyonu - I
Günümüzde Unix sistem yöneticileri için en gereksiz iş yoğunluğu Unix sunucuları üzerindeki kullanıcı hesapları ve şifrelerinin yönetiminde ortaya çıkıyor. Özellikle bankalar gibi regülatör baskısı altında çalışan kurumlarda bu iş fazlasıyla önemli görülüyor. Aslına bakarsanız güvenlik prosedürleri gereğince hiç de küçümsenmeyecek bir kalem olan şifre yönetimi, klasik Unix üzerindeki kimlik doğrulama mekanizmasının hem çok hantal hemde çok güvensiz olması nedeniyle sistem yöneticilerini farklı çözüm arayışlarına itiyor. Bu sorun Unix mimarisi içinde NIM gibi çözümlerle halledilebiliyor ancak yine de yönetilecek yeni bir sunucu yerine var olan yapıya entegre ve yeni bir çözüm herkesin işini kolaylaştıracak gibi görünüyor. Bu bölümde basitçe "AIX 6.1" ile "Microsoft Active Directory" arasında LDAP entegrastonun nasıl sağlanacağını ve AIX kullanıcı yönetiminin "Active Directory " üzerinden nasıl gerçekleştirleceğini anlatacağım.
Öncelikle LDAP'ın ne olduğu konusunu açıklamaya çalışalım. LDAP; "lightweight directory access" olarak adlandırılan bir protokol. Çoğunlukla directory hizmeti veren sunuculardan (Microsoft Active Directory, IBM Tivoli Directory Servers, Sun ONE Directory Server, OpenLDAP gibi ) veri sorgulaması yapmak için bir standart sunuyor. "Directory"'de basit anlamda bir veri tabanı olarak düşünülebilir. LDAP ile bu veri tabanında bulunan verilere uygun formatta düzenlenen sorgular ile istenilen verilere ulaşmaya çalışılıyor.
Standart AIX kurulumunda LDAP "fileset"'leri kurulmuyor. Ancak eğer elinizde bir "Expension CD"'si varsa aşağıdaki paketleri kolaylıkla kurabilirsiniz.
Burada ilgiç olan nokta işletim sisteminizin 64 bit olmasına karşın uygulamanın çalışması için 32 bit ve 64 bit paketlerin beraber kurulması gerekiyor. (Tecrübe ile sabittir.)
Eksik "fileset"lerin nasıl kurulacağı konusunu başka bir "blog" girdisinde aktaracağım. Paketleri kurduktan sonra aşağıdaki komutla kontrol edebilirsiniz. Ben ilerki fazlarda lazım olabileceği düşüncesiyle fazladan bazı paketler de kurdum.
lslpp -l | grep ldap
idsldap.clt32bit62.rte 6.2.0.10 COMMITTED Directory Server - 32 bit
idsldap.clt64bit62.rte 6.2.0.10 COMMITTED Directory Server - 64 bit
idsldap.cltbase62.adt 6.2.0.10 COMMITTED Directory Server - Base Client
idsldap.cltbase62.rte 6.2.0.10 COMMITTED Directory Server - Base Client
idsldap.cltjava62.rte 6.2.0.10 COMMITTED Directory Server - Java Client
idsldap.ent62.rte 6.2.0.3 COMMITTED Directory Server - Entitlement
idsldap.msg62.en_US 6.2.0.10 COMMITTED Directory Server - Messages -
idsldap.webadmin62.rte 6.2.0.10 COMMITTED Directory Server - Web
Paketleri kontrol ettikten sonra bazı temel konfigürasyonlarında gerçekleştirilmesi gerekiyor. bunlardan ilki NTP (Network Time Protocol) konfigürasyonu. Aslında LDAP ile NTP arasında birebir ilişki yok. Ancak ilerki safhada kerberos gibi şifrelenmiş veri akışı kullanmak isterseniz NTP kurarak sorunun bir kısmını çözmüş olursunuz.
Çoğu sistemde NTP sunucusu ile "Domain" sunucusu aynı olumaktadır. Eğer değilse Domain ve AIX sistemin aynı NTP sunucusunu kullandığından emin olun. AIX üzerinde NTP'nin nasıl aktif edileceğini
NTP konfigürasyonundan sonra UNIX sunucunun DNS ayarlarının da düzgün yapılması gerekmektedir. Bunun için DSN sunucu bilgilerinin AIX üzerinde /etc/resolv.conf dosyasına girilmesi gerekmektedir. Örneğin kullanacağınız "Active Directory" sunucunun ismi DC1 olsun. Domain adınızında ornek.local olduğunu varsayarsak; sunucunun ismi "Domain" yapısında DC1.ornek.local olur. UNIX sunucunun bu ismi doğru bir şekilde DNS çözümlemesi yapabilmesi için /etc/resolv.conf dosyasının içeriği aşağıdaki gibi olmalıdır.
Bundan sonra DNS ayarlarınızın testi için "Domain" sunucusuna ping atabiliriz.
Eğer ping' cevap alabiliyorsak bir sonraki adım olan "Active Directory" düzenlemesine geçebiliriz. Standart kurulumlu bir active directory yapısında UNIX LDAP entegrasyonu yalnızca "Kerberos" üzerinden çalışacaktır. Bu metod sürekli dosya transferi gibi bazı ekstra işlemler gerektirdiğinden bizim için çok cazip değildir. Bu durumda diğer seçenek, LDAP üzerinden bu işlemlerin gerçekleşmesidir. Ancak bu durumda da POSIX standartlarında yer alan UID ve GID bilgilerinin Windows dünyasında bir karşılığının olmaması durumu karşımıza çıkar. Bu sorunu aşmak için Microsoft tarafından "Service For Unix" ismiyle yayınlanmış bir yazılım kullanılır. bu yazılım UNIX dünyasıyla Windows dünyası arasındaki farklılıkları uyumlaştırmak için bir dizi hizmetler sunar. Bunların arasında NFS gibi hizmetlerin yanı sıra "authentication" hizmetide yer alır. Bu özelliğin kullanılabilmesi için "Domain Controller"a aşağıdaki adresten Service For Unix 3.5 inidirlerek kurulmalıdır.
Kurulum standart "Next Next" kurulumudur. Kurulum aşamasında şimdilik işimize yarayacak olan "Server For NFS" servisi kurulmaldır.
Service for Unix kurulumundan sonra "Active Directory Users And Computers" çalıştırılıp grup ve kullanıcı özelliklerini açtığımızda oluşturduğumuzda , özelliklerde "UNIX Attirubutes" ismiyle yeni bir sekme göze çarpacaktır.
Burada LDAP ile AIX sisteme bağlanacak kullanıcılar için UNIX dünyasına özgü özellikler atanmaktadır. Örnek üzerinden gitmek gerekirse unixuser isimli bir "Active Directory" kullanıcısının LDAP entegrasyonu ile AIX sunucuya login olmasını istiyoruz. UNIX standartlarına göre her kullanıcı herzaman en az bir grupa dahil olmak zorundadır. Bu nedenle kullanıcıyla beraber birde gruba ihtiyacımız vardır. İlk olarak "Active Directory" üzerinde bu kullanıcının dahil olacağı grup oluşturulmalıdır. Bunun için "Users"a sağ tıklayıp "New" seçeneğinden "Group" seçilmeldir.
Burada grup adını belirlenir ve oluşturulur. Daha sonra oluşturulan grubun özelliklerinden "Unix Attirubutes" seçeneğinde "NIS Domain" alanı kendi domanimiz seçilir ve gruba bir GID atanır.
Şimdi kullanıcıda oluşturulabilir.
Kullanıcı oluşturulduktan sonra yine özelliklerde UNIX dünyasına ait düzenlemeler gerçekleştirilir.
Burada görüldüğü gibi UID, login shell, home directory ayarları gerçekleştirilebilir. "Active Directory" tarafındaki işlemler basitçe bu şekilde. Yapılan işelmler göz önüne alındığında temel olarak SFU'un getirdiği yeni özellikler kullanılarak "Active Directory" kullanıcılarına UNIX dünyasına has bazı yeni özellikler tanımladık. AIX tarafındaki işlemleri ise bir sonraki girdide aktarmaya çalışacağım.
Gönderen faktoriyel zaman: 05:31 Hiç yorum yok:
Etiketler: AIX, Authentication, LDAP, UNIX
AIX 6.1 için NTP Konfigurasyonu
Ağ üzerindeki bir NTP sunucusunun durumunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz.
NTP konfigürasyonu için /etc/ntp.conf dosyasına aşağıdaki şekilde NTP server bilgilerini girmeniz gerekiyor.
Bu satırları ntp.conf dosyasına ekledikten sonra sunucu ile iletişime geçrek saat tarih bilgisini güncelleyecek NTP "daemon"unu çalıştırmanız gerekiyor. Bu işlem için aşağıdaki komut kullanılabilir.
0513-059 The xntpd Subsystem has been started. Subsystem PID is 10747908.
NTP daemon'u çalıştıktan sonra ntpq programı ile senkronizayon durumu takip edilebilir.
#DC1.ornek DC1.ornek 3 u 55 64 177 0.58 2.474 126.02
Gönderen faktoriyel zaman: 04:35 Hiç yorum yok:
Etiketler: AIX, NTP, Saat, Time, UNIX
RHEL 5 ile BOND oluşturma
Çoğu kurumsal ağ ve sunucu yapısında yedekliliğe çok önem verilir. Bu kavramın iş sürekliliği (business continuity) için çok gerekli olduğu su götürmez bir gerçektir. Ancak kurulan sistemlerin başarısı ve sağladığı yedeklilik imkanları gerçek anlamda yalnızca kriz anında ölçülebilir. Günümüz sunucu sistemlerin en önemli bileşenin de ağ (netwok) olduğu düşünülürse ağ yedekliliği için yapılması gerekenler vardır. Bu yazıda basitçe bir RHEL (Red Hat Enterprise Linux) için network yedekliliğinin nasıl sağlanacağı ve nasıl test edileceği anlatılacaktır.
Linux dünyasında ağ yedekliliği ve ağ üzerindeki yük paylaşımı (load balancing) BOND olarak tabir edilen bir mekanizma ile sağlanır. BOND sunucu sistemi üzerinde bulunan birden fazla ağ kartının yedeklilik ve yük dağılımı için belirlenen tek bir ağ kartı gibi davranması esasına dayanır. Bunun için öncelikle BOND'un kullanacağı sanal bir arayüzünün oluşturumlası gerekmektedir.
bu komut ile metin tabanlı bir dosya oluşturup sanal ağ arayüzü için gerekli tanımlama bilgileri girilmelidir.
Buna göre BOND'a dahil edilecek tüm ağ kartlarının kullanacağı ortak IP adresi "192.168.1.2" olarak ayarlanmış ve sanal olarak oluşturulan"bond0" aygıtına atanmıştır. Bundan sonra BOND yapısında kullanılacak arayüzlerin konfigürasyonlarının düzenlenmesi gerekmektedir. Bunun için yapıya dahil olan bütün kartların konfigürasyon dosyaları aşağıdaki gibi düzenlenmelidir.
Burada görüldüğü gibi her iki ağ kartı içinde "MASTER" olarak oluşturduğumuz "bond0" sanal kartı gösterip bu kartları da "SLAVE" durumuna getirdik. Yapılacak son iş ise BOND sürücüsünün Linux çekirdeği tarafından kullanılmasını sağlamaktır. bunun için aşağıdaki komutla modeprobe dosyası düzenlelebilir.
Bu dosyaya yeni oluşturduğmuz bond0 sanal arayüzü ve özellikleri belirtilmelidir.
Yukarıda görüldüğü gibi çekirdeğe bond0'ın bir BOND arayüzü olduğu gösterilir. "Options" da ise bond0 ın hangi parametrelere göre çalışacağı gösterilir. Bu paramatreler temel olarak aşağıdaki değerleri alabilir.
Bu mod "round robin " metodunu kullanır. Yani bond0 arayüzüne gelen trafik bu arayüze atanan ağ kartlarından sırası ile gönderilir. Örneğin 4 ağ kartının bu arayüze dahil edildiğini düşünelim. buna göre çekirdek gönderilecek 4 paket sırasıyla bu kartlara iletilir. Böylelikle toplam bant genişliği (bant-width) 4xherbir ağ kartının bant genişliği olacaktır. Ancak burada dikkat edilmesi gereken konu bu ağ kartlarının bağlı bulunduğu "Switch" üzerinde de gerekli tanımlamalarının yapılmış olması gerekir. Bu tanımlamaya Cisco Switch'lerde "Etherchannel" denilir. Temel olarak switch üzerindeki bağlantı portlarını gruplayarak "span-tree" den kaçınmaktır. BOND mekanizması dahil olan tüm ağ kartları için aynı MAC adresini kullanacağı için Switch bu bağlantıları "span-tree" olarak algılayacak ve bu bağlantı portlarını bloklayacaktır. Bu nedenle "etherchannel" yapılarak bu durumdan kaçınılabilir.
Bu modu kullanırken göz önüne alınacak başka bir husus ise gönderilen paketlerin karşı tarafa ulaşmasıyla ilgilidir. Paketler sırayla birden fazla karttan gönderildiğinde hedef sunucu yada sunuculara ulaşması herzaman aynı sıryala gerçekleşmeyebilir. Burada kullanılan donanımlar vs. den dolayı oluşan gecikmeler paketlerdeki sıranın bozlumasına ve "out-off-order" oluşmasına neden olur. "out-off-order" paketler hedef sistemde eksik paketlerin beklenmesi ve yeniden oluşturtulması gibi süreçlerden dolayı belirli bir performans kaybına neden olacaktır. Bu nedenle mode 0 genellikle "back to back" yani ağ üzerinden haberleşecek sistemlerin arada bir ağ cihazı olmadan direk olarak birbirine bağlanarak oluşturulan ağlarda kullanılması tavsiye edilir.
Bu mode "aktif-backu"p modudur. Asıl amaç yazının başında belirttiğimiz ağ kartı yedekliliğinin sağlanmasıdır. Bu mode da aynı anda yalnızca tek bir ağ kartı aktif olarak kullanılır. Bu nedenle Switch(ler) üzerinde herhangi bir etherchannel konfigürasyonuna gerek yoktur. Aktif kullanılan ağ kartında bir hata oluşması durumunda bir sonraki ağ kartı devreye girerek bağlantının devamı sağlanır. Burada switch üzerinde dikkat edilecek tek nokta eğer VLAN yapısı kullanılıyorsa bu ağ kartların bağlı olduğu porlar aynı VLAN'a alınmaldır.
bu mode "balance-xor" modudur. Bu modda hedef MAC adresi ile kaynak MAC adresi mantıksal XOR işlemine tabi turulur ve bu değer ağ kartı sayısı ile mod işlemine tabi tutulur. Çıkan sonuca göre bir ağ kartı seçilir ve paket bu karttan gönderilir. Switch üzerinde "etherchannel" konfigürasonu yapmak gerekir. Genelde çok fazla kayanktan gelen talpelere cevap veren sunucular için tercih edilir. (Örneğin uygulama sunucuları).
Bununla beraber BOND için kullanılan birçok mod mevcuttur. detayları aşağıdaki bağlantıdan incelenebilir.
Tüm konfigürasyon tamamlandıktan sonra artık BOND aktif edilebilir. Bunun için öncelikle çekirdeğe "bonding " sürücüsünün yüklenmesi gerekmektedir.
sürücü yükleme işleminden sonra aşağıdaki komut yazılarak "network" servisi yeniden başlatılmaldır.
Bu işlemde tamamlandıktan sonra aşağıdaki komutla yapılan konfigürasyon kontrol edilir.
bond0 Link encap:Ethernet HWaddr B8:AC:6F:96:2A:F0
RX packets:48735527 errors:0 dropped:0 overruns:0 frame:0
TX packets:27641371 errors:0 dropped:0 overruns:0 carrier:0
RX bytes:324733191 (309.6 MiB) TX bytes:3555399758 (3.3 GiB)
eth0 Link encap:Ethernet HWaddr B8:AC:6F:96:2A:F0
RX packets:48706477 errors:0 dropped:0 overruns:0 frame:0
RX bytes:321519068 (306.6 MiB) TX bytes:3555399758 (3.3 GiB)
eth2 Link encap:Ethernet HWaddr B8:AC:6F:96:2A:F0
RX packets:29050 errors:0 dropped:0 overruns:0 frame:0
RX bytes:3214123 (3.0 MiB) TX bytes:0 (0.0 b)
RX packets:163422 errors:0 dropped:0 overruns:0 frame:0
RX bytes:11442666 (10.9 MiB) TX bytes:11442666 (10.9 MiB)
Burada görüleceği gibi her iki ağ kartıda bond0 sanal kartının MAC adresini kullanmaktadır. Bunun dışında aşağıdaki komut da kullanılabilir
Permanent HW addr: b8:ac:6f:96:2a:f0
Permanent HW addr: b8:ac:6f:96:2a:f4
Oluşturulan yedekli yapının test eilmesi için yapılacak en basit işlem o an aktif olan ağ kartının network kablosunun çekilmesidir. Eğer tüm bağlantılar doğruysa ağ trafiği hiç etkilenmeyecektir. Kablo çekildikten sonraki durumu kontrol etmek için;
Gönderen faktoriyel zaman: 00:18 Hiç yorum yok:
Etiketler: Bond, Bonding, Linux, Network, RedHat, RHEL, Yedeklilik, Yük paylaşımı