AHTAPOT MERKEZİ YETKİ OTORİTESİ Bu dökümanda, Ahtapot bütünleşik güvenlik yönetim sisteminde kullanılan ve merkezi yetki otoritesinin yapılandırılması ve değiştirilmesini ve sunucuların birbirleriyle erişimlerinin merkezi yetki otoritesi tarafından nasıl onaylanması gerektiği anlatılmaktadır.
MERKEZİ YETKİ OTORİTESİ Merkezi Yetki Otoritesi, Ahtapot bünyesinde bulunan tüm sunucuların birbirleriyle ve dışarıyla openssh servisi üzerinden kuracakları bağlantıların tek merkez üzerinden yetkilendirilmesi ve izlenebilmesi için kullanılmaktadır. Bu eksen çerçevesinde, Merkezi Yetki Otoritesi tarafından onaylanmamış, openssh servisi üzerinden yapılan hiçbir ssh bağlantısı kabul edilemez olmaktadır. Yukarıdaki tanımlamadan sonra genel Merkezi Yetki Otoritesi nin prosedürleri aşağıdaki şekilde listelenmiştir; - Herhangi bir sunucu, herhangi bir sunucuya ( kendisi de dahil olmak üzere ) openssh servisi üzerinden ssh bağlantısı yapmak istediği zaman, Merkezi Yetki Otoritesi tarafından onaylanmış anahtarını belirtmek zorundadır. - Herhangi bir kullanıcı, sunucu ve görev için kullanılacak anahtarlar, başka amaçlarla kullanılamayacak şekilde Merkezi Yetki Otoritesi tarafından onaylanmalıdır. - Ahtapot sisteminin entegre edileceği her kurum ve kuruluş için ayrı Merkezi Yetki Otoritesi, kurum ve kuruluş tarafından oluşturulacak. Oluşturulmuş Merkezi Yetki Otoritesi nin açık anahtarı BilgiO ile paylaşıldıktan sonra BilgiO tarafında kurum veya kuruluşa özel kurulum cdsi oluşturulacaktır. - Oluşturulacak olan kurulum cdsi varsayılan olarak kendisinin tanıdığı Merkezi Yetki Otoritesi nin anahtarı ile imzalananmamış hiçbir anahtarı, hiçbir bağlantı için kabul etmeyecek şekilde sıkılaştırılmış olacaktır. Bu sıkılaştırma konfigurasyonu anahtar izinleri için asla değiştirilmeyecektir. MERKEZİ YETKİ OTORİTESİ NİN OLUŞTURULMASI Merkezi Yetki Otoritesi nin oluşturulması, Ahtapot CA Kurulum dökümanında ayrıntılı olarak açıklanmıştır.
MERKEZİ YETKİ OTORİTESİ TARAFINDAN ERİŞİM ONAYLAMALARI Merkezi Yetki Otoritesi hazırlandıktan sonra Ahtapot bünyesinde bulunan sunucuların birbirleriyle yapacakları ssh bağlantıları analiz edilmelidir. Bu bağlantılar openssh servisi üzerinden yapılacağından ötürü sunucuların, Merkezi Yetki Otoritesi tarafından belirli işler ve belirli kullanıcılar için onaylanmış anahtarlara ihtiyaçları vardır. Bunun haricinde yapılan bağlantı girişimleri sonuçsuz kalacaktır. Genel olarak Merkezi Yönetim Sistemi nin bağlantı analizi aşağıda örneklenmiştir; - Ansible Sunucusu, ahtapotops kullanıcısını kullanarak, tüm sunucuların durumlarını kontrol edebilmek ve gerektiğinde durumlarını değiştirebilmek için, tüm sunucularda bulunan ahtapotops kullanıcısına erişebilmelidir. - Gitlab Sunucusu, git kullanıcısını kullanarak, gitlab sunucusunun yedeğini alabilmek için, yedek gitlab sunucusunun git kullanıcısına erişebilmelidir. - Gitlab Sunucusu, git kullanıcısını kullanarak, değişiklik olan repoya göre, ansible sunucusundaki ilgili hook u çalıştırabilmesi için ansible sunucusundaki ahtapotops kullanıcısına /usr/bin/gdyshook.sh ve /usr/bin/gdyshook.sh komutlarını çalıştırabilmesi için erişebilmelidir. 2 ayrı durum söz konusu olduğundan ötürü 2 ayrı anahtar imzalanmalıdır. - Firewallbuilder Sunucusu, ahtapotops kullanıcısını kullanarak, oluşturulan güvenlik duvarı betiklerinin sentaks testlerini yapabilmek için testfirewall sunucusunun ahtapotops kullanıcısına erişebilmelidir. - Firewall yönetimini yapabilmek adına, firewallbuilder sunucusunun ahtapotops kullanıcsına X forwarding e izin verilmiş fakat sadece /var/opt/gdysgui/gdys-gui.py $ (kullanici) komutunu çalıştırabilmek için her operatör için farklı anahtarlar oluşturulmalıdır. Yukarıda yapılması gereken analiz basitçe örneklenmiştir. Bu analiz doğrultusunda imzalama işlemi minimum düzeyde yapılmalı ve gereksiz hiçbir yetki onaylanmamalıdır. Yetki onaylamasında yapılabilecek kısıtlamaların nasıl yapılacağı, sonrasında yetkilerin nasıl kontrol edileceği Ahtapot CA Kurulum dökümanında ayrıntılı olarak anlatılmıştır.
MERKEZİ YETKİ OTORİTESİNİN DEĞİŞTİRİLMESİ Merkezi Yetki Otoritesi nin hali hazırda çalışan sistemde değiştirilmesi demek, bu eski Merkezi Yetki Otoritesi yle onaylanan bütün anahtarların işlevlerini kaybedeceği anlamına gelmektedir. Ahtapot sistemi çerçevesinde Merkezi Yetki Otoritesinin açık anahtarı kurulum cdsi ile birlikte gelmekte olup aynı zamanda ansible playbookları ile dosya bütünlüğü kontrol edilmektedir. Ansible harici yapılan herhangi bir değişiklikte ansible tarafından eski hallerine getirilmektedir. Yapılacak herhangi bir değişiklikten ötürü sshd servisi ansible tarafından yeniden başlatılmaktadır. Yukarıda belirtilen sebebten ötürü değiştirilmiş olan Merkezi Yetki Otoritesi değiştirilir ve açık anahtarı dağıtılırken aşağıdaki yöntemler izlenilmelidir. - Merkezi Yönetim Sistemi ( MYS ) deki base rolündeki ahtapot_ca.pub.j2 şablonunun içeriği yeni açık anahtar ile değiştirilmelidir. Bu işlem yapıldıktan hemen sonra MYS de değişiklik algılanacak ve sistem tarafından tüm sunuculara değişiklik deploy edilecek akabinde ssh servisleri yeniden başlatılacaktır. - Tüm sunuculardaki Merkezi Yetki Otoritesi açık anahtarı değiştiğinden ötürü artık hiçbir sunucu birbirine erişemeyecek hale gelecektir. - Ansible sunucusunun ahtapotops kullanıcısı için yeni bir ikili anahtar oluşturulup merkezi yetki otoritesi tarafından açık anahtarı imzalatıp, imzalanmış olan sertifikanın ansible sunucularına yerleştirilmesi console üzerinden gerçekleştirilecektir. - Sonrasında test amaçlı öncelikle manuel olarak ssh bağlantısı başlatıp sonrasında ise, ansible sunucusu üzerinde state playbooku çalıştırılarak ansible sunucusun tüm sunuculara erişebildiği gözlemlenir. - Devamında ise sunucuların rollerine göre analizi yapılmış ve yetki gerektiren kullanıcıları için oluşturulmuş ikili anahtarlar oluşturulup, açık anahtarlar Merkezi Yetki Otoritesi ne taşınarak otorite tarafından onaylanmış sertifikaları ilgili sunucularda ilgili eski sertifikaların yerine konsol üzerinden koyulur. - Yeni anahtarların ve sunuculara dağıtılmış olan onay sertifikalarının düzgün bir şekilde çalıştığının kontrol edilmesi için ilgili roller için manuel testler gerçekleştirilir.
NOT: Playbook un oynatılması sırasında herhangi bir hata ile karşılaşılırsa o sunucu üzerinde ssh servisi yeniden başlatılmamış fakat dosya değişmiş olacaktır. Değişikliğin geçerlilik kazanması için servisin manuel olarak yeniden başlatılması gerekmektedir. Bu süre zarfında sunucuya bağlanabilmek için eski Merkezi Yetki Otoritesi tarafından onaylanmış anahtar kullanılmalıdır. NOT: Git kullanarak Gitlab üzerinden depo pull,push,update ve bunun gibi işlemleri sırasında gitlab sunucusuna yapılan bağlantının, klasik openssh üzerinden yapılan ssh bağlantısından farklı olduğundan ötürü Merkezi Yetki Otoritesi ni baz almamaktadır. Bu durumlarda yeni oluşuturulan açık anahtarın gitlab arayüzünden ilgili kullanıcı için tanımlanması gerekmektedir. MERKEZİ YETKİ OTORİTESİ DEĞİŞTİRİLMESİ Bu bölümde ise yukarıda teorik olarak yukarıda belirtilen yapının, demo anahtarları ile yapılmış kurulumlar için uygulanmasındaki adımlar, listelenmiştir. MYO Kurulum öncesi yapılacaklar: - Hali hazırda kullanılan tüm anahtar ikililerinin ( gizli, açık ve sertifikaların ) yedekleri alınarak bir dizinde arşivlenir. - Hali hazırda canlı bir sistem üzerinde değişiklik yapılacağından ötürü, anlık olarak konsol üzerinden erişilemeyecek bir sunucu mevcut ise ve bu sunucuların kritiklik değerine +1 uygulanarak aşağıda yapılacak kontrol testlerinde bu sunucular kesinlikle atlanmamalıdır. MYO Kurulum sırasında yapılacaklar: - Kozmik ( olabildiğince az kişinin erişebileceği hatta haberdar olacağı, son derece sıkılaştırılmış ) bilgisayar belirlenerek, minimal bir kurulum gerçekleştirilir. - Bu sunucu üzerinde sıkılaştırma işlemleri uygulanır. - Sonrasında Ahtapot CA Kurulum dökümanında belirtildiği gibi, MYO si oluşturulur. Passphrase sadece tek bir yetkili ile paylaşılır. - Sonrasında ise Merkezi Yetki Otoritesi nin açık anahtarı Merkezi Yönetim Sistemi nin base rolündeki ilgili şablon dosyasında (ahtapot_ca.pub.j2) düzenlenir.
- Hemen akabinde merkezi yönetim sisteminde aşağıdaki gelişmelerin gerçekleşmesi takip edilir; 1 ) Merkezi Yönetim Sistemi deposundaki değişiklikler algılanarak, ansible sunucusunun MYS deposu güncellenecektir. 2 ) Depodaki güncelleme sonrasında tüm sunucularda state playbook u oynatılacaktır. Bu aşamada sunuculardaki Merkezi Yetki Otoritesi açık anahtarı değiştirilecek olup openssh servisleri yeniden başlatılacaktır. NOT: Playbook un oynatılması sırasında herhangi bir hata ile karşılaşılırsa o sunucu üzerinde ssh servisi yeniden başlatılmamış fakat dosya değişmiş olacaktır. Değişikliğin geçerlilik kazanması için servisin manuel olarak yeniden başlatılması gerekmektedir. Bu süre zarfında sunucuya bağlanabilmek için eski Merkezi Yetki Otoritesi tarafından onaylanmış anahtar kullanılmalıdır. 3 ) Herşey yolunda gitmiş ise Merkezi Yetki Otoritesi nin açık anahtarı tüm sunculara dağıtılmış olacak ve eski açık anahtarla onaylanan hiç bir anahtar çalışmayacaktır. Herhangi bir sunucuya bağlantı kurma işlemi denenerek test edilebilir. MYO kurulumu sonrasında yapılacaklar: - Devamında ansible sunucusunda yeni bir ikili anahtar oluşturulur. - Anahtarlardan açık olanı MYO ne taşınır. - Analiz sonucunda verilen karar doğrultusundaki yetkiler ile açık anahtarda onaylama işlemi yapılır. - Onayları içeren sertifika kontrol edilir ve devamında ansible sunucusuna geri taşınır. - Sonrasında ise ansible sunucundan tüm sunuculara bağlantı isteği yapılarak, anahtar yapısının düzgün olarak çalışıp çalışmadığı kontrol edilir. - Herşey yolunda ise diğer sunuculara bağlanılarak oralardaki ikili anahtarlar oluşturulur ve anahtarlardan açık olanları MYO ne taşınır. - Anahtarlar analiz sonuclarına göre farklı yetkiler ile onaylanarak, oluşan sertifikalar ilgili sunuculara tekrardan iletilir. - Herbir rol test edilerek geçiş işleminin başarılı bir şekilde yapıldığı gözlemlenebilir.