Linux, esnekliği ve açık kaynak kodlu yapısıyla bilinse de, siber güvenlik dünyasında hiçbir sistem varsayılan olarak tamamen güvende değildir. Özellikle sunucu ortamlarında, sistemin çekirdeğine (kernel) entegre edilmiş güçlü güvenlik mekanizmalarına ihtiyaç duyulur. Bu noktada, geleneksel izin modelinin ötesine geçen Zorunlu Erişim Kontrolü (MAC) sistemleri devreye girer. Linux dünyasının en popüler iki MAC uygulaması olan AppArmor ve SELinux, sistem kaynaklarına ve uygulamalara kimin, ne şekilde erişebileceğini katı kurallarla belirleyerek potansiyel güvenlik ihlallerine karşı proaktif bir savunma hattı oluşturur. Bu iki teknoloji benzer bir amaca hizmet etse de, çalışma felsefeleri, yönetim kolaylıkları ve esneklikleri açısından önemli farklılıklar gösterirler. Bu makalede, AppArmor ve SELinux’u derinlemesine inceleyecek, temel farklarını karşılaştıracak ve hangi senaryolarda hangisinin daha uygun olduğunu ortaya koyacağız.
İçerik Tablosu
Linux Güvenliğine Giriş ve Zorunlu Erişim Kontrolü (MAC)
Linux sistemlerinin güvenliğini sağlamak, katmanlı bir yaklaşım gerektirir. En temel katmanda, kullanıcıların ve grupların dosya izinleriyle yönetildiği geleneksel model bulunur. Ancak bu model, modern ve karmaşık tehditler karşısında yetersiz kalabilir. İşte bu noktada, daha granüler ve katı bir kontrol mekanizması olan Zorunlu Erişim Kontrolü (MAC) hayati bir rol oynar.
Geleneksel Erişim Kontrol Modeli: İsteğe Bağlı Erişim Kontrolü (DAC)
Linux ve diğer birçok Unix benzeri işletim sisteminin temel güvenlik modeli İsteğe Bağlı Erişim Kontrolü’ne (Discretionary Access Control – DAC) dayanır. Bu modelde, bir dosyanın veya kaynağın sahibi, o kaynağa kimin (kullanıcı, grup, diğerleri) erişebileceğini ve ne tür işlemler (okuma, yazma, çalıştırma) yapabileceğini belirler. `chmod` ve `chown` gibi komutlarla yönetilen bu sistem, esnek ve anlaşılması kolaydır. Ancak en büyük zayıflığı, bir sürecin (örneğin, çalışan bir web sunucusu yazılımı) yetkilerinin, o süreci başlatan kullanıcının yetkileriyle aynı olmasıdır. Eğer bu süreçte bir güvenlik açığı istismar edilirse, saldırgan o kullanıcının sahip olduğu tüm dosya ve kaynaklara erişim hakkı kazanabilir.
Zorunlu Erişim Kontrolü (MAC) Nedir ve Neden Gereklidir?
Zorunlu Erişim Kontrolü (Mandatory Access Control – MAC), DAC modelinin zayıflıklarını gidermek için tasarlanmıştır. MAC sisteminde erişim kararları, kaynağın sahibi tarafından değil, sistem genelinde merkezi olarak yönetilen bir güvenlik politikası tarafından verilir. Bu politika, her bir sürecin (subject) hangi nesnelere (object – dosya, soket, cihaz vb.) hangi koşullar altında erişebileceğini değişmez kurallarla tanımlar. Bir süreç, kendisini başlatan kullanıcının tüm haklarına otomatik olarak sahip olmaz. Bunun yerine, sadece güvenlik politikasında kendisine açıkça izin verilen işlemleri yapabilir. Bu, “en az ayrıcalık” (principle of least privilege) ilkesini zorunlu kılar ve bir uygulamanın ele geçirilmesi durumunda oluşacak hasarı büyük ölçüde sınırlar.
MAC Uygulamaları Olarak AppArmor ve SELinux’un Rolü
AppArmor (Application Armor) ve SELinux (Security-Enhanced Linux), Linux çekirdeğine entegre edilmiş en yaygın iki MAC uygulamasıdır. Her ikisi de Linux Security Modules (LSM) adı verilen bir çekirdek arayüzünü kullanarak çalışır. Bu arayüz, çekirdek içindeki nesnelere erişim taleplerini yakalayıp AppArmor veya SELinux gibi bir modüle danışmasına olanak tanır. Modül, yüklü olan güvenlik politikasına göre erişim talebini onaylar veya reddeder. Bu sayede, örneğin bir web sunucusu yazılımının `/etc/passwd` dosyasını okuması veya beklenmedik bir ağ bağlantısı açması, politika tarafından engellenebilir. Her iki teknoloji de sistem güvenliğini önemli ölçüde artırsa da bunu farklı yöntemlerle yaparlar.
AppArmor: Uygulama Profili Tabanlı Güvenlik
AppArmor, kullanım kolaylığı ve anlaşılır yapısıyla öne çıkan, güçlü bir Zorunlu Erişim Kontrolü sistemidir. Özellikle Ubuntu, Debian ve SUSE gibi dağıtımlarda varsayılan olarak tercih edilen bu sistem, uygulamaları tek tek ele alarak her biri için özel güvenlik sınırları çizer.
AppArmor Nedir?
AppArmor, her bir uygulamayı kendi güvenlik “profiline” hapseden bir MAC mekanizmasıdır. Temel amacı, bir uygulamanın normal çalışması için ihtiyaç duymadığı sistem kaynaklarına (dosyalar, ağ portları, yetenekler) erişmesini engellemektir. Bu sayede, bir uygulama istismar edilse bile saldırganın sistemin geri kalanına sızması veya hasar vermesi zorlaşır. Felsefesi, karmaşık ve sistem genelindeki kurallar yerine, her program için ayrı ayrı, anlaşılması kolay profiller oluşturmaya dayanır.
Temel Çalışma Prensibi: Yol (Path) Tabanlı Kısıtlamalar
AppArmor’un en belirgin özelliği, güvenlik kurallarını dosya sistemi yollarına (path) dayandırmasıdır. Bir profil içerisinde, bir uygulamanın `/var/www/html/` dizinine yazma (`w`) izni olduğu, ancak `/etc/` dizinine sadece okuma (`r`) izni olduğu gibi kurallar tanımlanır. Bu yol tabanlı yaklaşım, sistem yöneticilerinin mevcut dosya yapısını düşünerek sezgisel politikalar yazmasını kolaylaştırır. Kurallar, dosya erişim izinlerinin yanı sıra POSIX yetenekleri (capabilities) ve ağ erişim kurallarını da içerebilir.
AppArmor Profilleri ve Modları
AppArmor’un gücü, her uygulama için oluşturulan profillerden ve bu profillerin çalıştığı modlardan gelir. Bir profil, belirli bir çalıştırılabilir dosya için geçerli olan tüm kurallar setini içeren basit bir metin dosyasıdır.
Enforce Modu (Zorlama)
Bu modda, AppArmor aktif olarak güvenlik politikasını uygular. Profilde izin verilmeyen herhangi bir eylem (örneğin, bir uygulamanın yasaklı bir dosyayı okumaya çalışması) çekirdek tarafından engellenir ve bu deneme sistemin denetim günlüğüne (audit log) kaydedilir. Üretim ortamlarında olması gereken standart mod budur.
Complain Modu (Şikayet/Öğrenme)
Complain modu, politikayı zorla uygulamak yerine sadece ihlalleri kaydeder. Bir uygulama, profilinde belirtilmeyen bir eylem gerçekleştirdiğinde bu eyleme izin verilir, ancak olay ayrıntılı bir şekilde günlüğe yazılır. Bu mod, yeni bir profil oluştururken veya mevcut bir profili güncellerken son derece kullanışlıdır. Uygulamanın normal çalışması için hangi izinlere ihtiyaç duyduğunu anlamak ve politikayı buna göre ayarlamak için bir “öğrenme” ortamı sunar.
Profil Oluşturma ve Yönetim Araçları (`aa-genprof`, `aa-logprof`)
AppArmor, profil oluşturma sürecini otomatikleştiren ve basitleştiren güçlü araçlarla birlikte gelir.
- aa-genprof: Belirtilen bir uygulama için sıfırdan bir profil oluşturma sürecini başlatır. Arka planda uygulamayı complain moduna alır ve siz uygulamayı normal şekilde kullanırken yaptığı sistem çağrılarını izler. Daha sonra bu gözlemlere dayanarak bir temel profil önerisi sunar.
- aa-logprof: Mevcut profilleri güncellemek için kullanılır. Sistem günlüklerini tarayarak complain veya enforce modundayken gerçekleşen politika ihlallerini bulur. Her bir ihlal için kullanıcıya ne yapılması gerektiğini sorar (izin ver, reddet, glob kullan vb.) ve profili buna göre günceller.
AppArmor’un Avantajları ve Sınırlılıkları
Avantajları:
- Kullanım Kolaylığı: Yol tabanlı kuralları ve otomatize edilmiş araçları sayesinde öğrenmesi ve yönetmesi SELinux’a göre çok daha kolaydır.
- Şeffaflık: Profiller basit metin dosyalarıdır ve kolayca okunup anlaşılabilir.
- Hızlı Dağıtım: Öğrenme modu araçları sayesinde uygulamalar için hızlıca güvenlik profilleri oluşturulabilir.
Sınırlılıkları:
- Daha Az Granüler: Dosya sistemi yoluna dayalı olduğu için inode tabanlı kontrol gibi daha düşük seviyeli kontroller sunmaz. Bir dosya taşınırsa veya hard link oluşturulursa kurallar beklendiği gibi çalışmayabilir.
- Kapsam: SELinux gibi ağ soketleri, işlemler arası iletişim (IPC) gibi her sistem kaynağını kapsamayabilir. Kontrol seviyesi daha sınırlıdır.
SELinux: Güvenlik Etiketi Tabanlı Sistem
SELinux (Security-Enhanced Linux), Ulusal Güvenlik Ajansı (NSA) tarafından geliştirilen ve Linux çekirdeğine entegre edilen son derece ayrıntılı ve güçlü bir Zorunlu Erişim Kontrolü (MAC) sistemidir. Red Hat, CentOS ve Fedora gibi dağıtımların temel taşı olan SELinux, sistemdeki her nesneye ve sürece bir “güvenlik etiketi” atayarak çalışır.
SELinux Nedir?
SELinux, sistemdeki her sürecin (subject) ve her nesnenin (object – dosya, dizin, port, cihaz vb.) bir güvenlik bağlamı (context) veya etiketi ile tanımlandığı bir güvenlik mimarisidir. Erişim kararları, bu etiketler arasındaki etkileşimi yöneten merkezi bir güvenlik politikasına dayanır. Amacı, en katı “en az ayrıcalık” ilkesini uygulayarak, bir sürecin sadece görevi için kesinlikle gerekli olan kaynaklara erişmesini sağlamak ve olası bir güvenlik ihlalinin yayılmasını en başından engellemektir.
Temel Çalışma Prensibi: Etiketler (Labels) ve Bağlamlar (Contexts)
AppArmor’un yol tabanlı yaklaşımının aksine, SELinux’un temel çalışma prensibi etiketlemedir. Bir dosyanın yolu veya adı ne olursa olsun, SELinux için önemli olan onun güvenlik etiketidir. Örneğin, bir web sunucusu (`httpd_t` etiketli süreç), sadece `httpd_sys_content_t` etiketine sahip dosyalara erişebilir. Bu etiketler, dosya sisteminde genişletilmiş öznitelikler (extended attributes) olarak saklanır ve inode’lara bağlıdır. Bu, bir dosyayı taşırsanız veya yeniden adlandırırsanız bile güvenlik bağlamının korunmasını sağlar.
Bir SELinux güvenlik bağlamı tipik olarak üç veya dört bölümden oluşur: kullanıcı:rol:tip:seviye. En önemli ve en sık kullanılan bölüm “tip” bölümüdür. Erişim kontrol kararlarının çoğu, kaynak tip etiketi (örneğin `httpd_sys_content_t`) ile süreç tip etiketi (örneğin `httpd_t`) arasındaki izinlere dayanan Tip Uygulama (Type Enforcement – TE) politikası üzerinden verilir.
SELinux Mimarisi ve Politikaları
SELinux’un davranışı, sistem yöneticisi tarafından yüklü ve yönetilen kapsamlı bir politika setine göre belirlenir. Bu politikalar, sistemin nasıl davranması gerektiğini tanımlayan binlerce kural içerir.
Politika Modları: Enforcing, Permissive ve Disabled
| Mod | Açıklama | Kullanım Amacı |
|---|---|---|
| Enforcing | SELinux politikası aktif olarak uygulanır. Politikaya aykırı tüm eylemler engellenir ve günlüğe kaydedilir. | Üretim ortamları için standart ve en güvenli moddur. |
| Permissive | Politikaya aykırı eylemler engellenmez, ancak hepsi denetim günlüğüne “would be denied” (reddedilecekti) şeklinde ayrıntılı olarak kaydedilir. | Sorun giderme, hata ayıklama ve politika geliştirme için kullanılır. Sistemi kilitlemeden politika hatalarını tespit etmeyi sağlar. |
| Disabled | SELinux tamamen devre dışıdır. Hiçbir etiketleme veya politika kontrolü yapılmaz. Bu moddan tekrar enforcing veya permissive moda geçmek için genellikle sistemin yeniden başlatılması ve dosya sisteminin yeniden etiketlenmesi gerekir. | Güvenlik gereksinimlerinin olmadığı veya SELinux’un ciddi uyumluluk sorunları yarattığı nadir durumlar için kullanılır. Genellikle önerilmez. |
Bu modlar arasında geçiş yapmak için `setenforce` komutu (Enforcing ve Permissive arasında anlık geçiş için) ve `/etc/selinux/config` dosyası (kalıcı değişiklikler için) kullanılır.
SELinux Bağlamlarının Yönetimi (`chcon`, `restorecon`)
Dosyaların ve dizinlerin güvenlik bağlamlarını yönetmek için özel araçlar mevcuttur.
- chcon: Bir dosyanın veya dizinin güvenlik bağlamını manuel olarak geçici olarak değiştirmek için kullanılır. Bu değişiklikler, dosya sisteminin yeniden etiketlenmesi durumunda kaybolur.
- restorecon: Bir dosyanın veya dizinin bağlamını, ana politika kurallarında tanımlanan varsayılan değerine geri döndürür. Genellikle yanlış etiketlenmiş dosyaları düzeltmek için en doğru ve güvenli yoldur.
Boolean’lar Aracılığıyla Politika Özelleştirme
SELinux politikaları, karmaşık kuralları yeniden yazmaya gerek kalmadan özelleştirmeye olanak tanıyan boolean (açık/kapalı) anahtarlar sunar. Örneğin, `httpd_can_network_connect` boolean’ı `on` olarak ayarlanırsa, web sunucusunun dış ağ bağlantıları yapmasına izin verilir. Bu boolean’lar, `setsebool` komutuyla yönetilir ve sistemin davranışını anında ve güvenli bir şekilde değiştirmeyi sağlar.
SELinux’un Avantajları ve Sınırlılıkları
Avantajları:
- Son Derece Granüler Kontrol: Etiket tabanlı mimarisi sayesinde dosya, süreç, ağ portu ve işlemler arası iletişim gibi hemen hemen her sistem kaynağı üzerinde çok detaylı kontrol sağlar.
- Kapsamlı Politika: Varsayılan politikaları (örneğin “targeted” politikası), bilinen birçok hizmet ve uygulamayı kapsayacak şekilde önceden yapılandırılmıştır.
- Güçlü Güvenlik: Doğru yapılandırıldığında, sistemin bütünlüğünü korumada ve saldırı yüzeyini daraltmada son derece etkilidir.
Sınırlılıkları:
- Yüksek Öğrenme Eğrisi: Kavramları (bağlamlar, tipler, roller) ve yönetim araçları AppArmor’a göre çok daha karmaşıktır.
- Yönetim Zorluğu: Özel uygulamalar için politika yazmak veya mevcut politikalarda hata ayıklamak zaman alıcı ve uzmanlık gerektiren bir süreç olabilir.
- Detaylı Günlükler: Ürettiği denetim günlükleri çok ayrıntılıdır ve doğru analiz için özel araçlar (örn: `ausearch`, `audit2why`) kullanmayı gerektirir.
AppArmor ve SELinux Arasındaki Temel Farklar: Detaylı Karşılaştırma
AppArmor ve SELinux, Linux sistemlerini güvence altına almak için Zorunlu Erişim Kontrolü (MAC) ilkesini benimserken, bu hedefe ulaşmak için tamamen farklı felsefeler ve mekanizmalar kullanırlar. İki sistem arasındaki temel farkları anlamak, hangi aracın belirli bir ortam için daha uygun olduğunu belirlemede kritik öneme sahiptir.
| Özellik | AppArmor | SELinux |
|---|---|---|
| Yaklaşım Felsefesi | Uygulama profili tabanlı. Her uygulama için ayrı bir güvenlik “zırhı” oluşturur. | Sistem geneli etiketleme. Her süreç ve nesne bir güvenlik etiketi alır ve politika bu etiketler arasındaki etkileşimleri yönetir. |
| Kontrol Mekanizması | Yol (path) tabanlı. Kurallar dosya ve dizin yollarına göre tanımlanır. (Örn: `/usr/bin/firefox`) | Etiket (label) tabanlı. Kurallar, dosya sistemindeki inode’lara bağlı güvenlik bağlamlarına (context) göre işler. |
| Kullanım Kolaylığı | Daha kolay. Öğrenme eğrisi daha düşüktür. Profil oluşturma araçları (`aa-genprof`) süreci basitleştirir. | Daha karmaşık. Etiketler, bağlamlar, roller ve politikalar gibi birçok kavramın öğrenilmesini gerektirir. |
| Politika Granülerliği | Daha az granüler. Temelde dosya erişimi, ağ ve yetenekler üzerinde kontrol sağlar. | Son derece granüler. Dosyalar, ağ soketleri, işlemler arası iletişim (IPC), sinyaller gibi çok daha geniş bir kaynak yelpazesini kontrol eder. |
| Yaygın Olduğu Dağıtımlar | Ubuntu, Debian, SUSE ve türevleri. | Red Hat Enterprise Linux (RHEL), CentOS, Fedora, Android. |
| Performans Etkisi | Genellikle daha düşük. Daha az sayıda ve daha basit kuralları kontrol ettiği için sistem üzerindeki yükü daha azdır. | Biraz daha yüksek. Sistemdeki her erişim talebi için etiket kontrolü yapılması küçük bir performans maliyeti getirebilir, ancak modern donanımlarda bu etki genellikle ihmal edilebilir düzeydedir. |
| Hata Ayıklama | Daha basit. `aa-logprof` aracı ve anlaşılır günlük mesajları sayesinde sorunları tespit etmek daha kolaydır. | Daha zorlu. `ausearch`, `audit2why`, `sealert` gibi özel araçlar ve karmaşık günlük mesajlarının yorumlanması gerekir. |
Yaklaşım Felsefesi: Profilleme ve Etiketleme
En temel fark, yaklaşımlarındadır. AppArmor, korumak istediğiniz belirli uygulamaları hedefler ve onlar için profiller oluşturur. Profili olmayan bir uygulama, standart Linux DAC izinlerine tabi olarak çalışmaya devam eder. SELinux ise tam tersine, varsayılan olarak her şeyi reddeder (deny-by-default) ve sistemdeki her bir parça için bir etiket zorunlu kılar. Politika, bu etiketler arasında hangi etkileşimlere izin verileceğini açıkça belirtmelidir.
Kullanım Kolaylığı ve Öğrenme Eğrisi
AppArmor, okunabilir profilleri ve sezgisel, yol tabanlı kuralları ile yeni başlayanlar ve sistem yöneticileri için daha erişilebilirdir. `aa-complain` ve `aa-logprof` gibi araçlar, politika oluşturma sürecini yarı otomatik hale getirir. SELinux ise bağlamlar, roller, tipler ve boolean’lar gibi soyut kavramları nedeniyle daha dik bir öğrenme eğrisine sahiptir. Yönetimi daha fazla planlama ve uzmanlık gerektirir.
Politika Granülerliği ve Esnekliği
Bu alanda SELinux açık ara üstündür. Sadece “bu süreç bu dosyaya yazabilir” demekle kalmaz, aynı zamanda işlemler arası iletişim (IPC), ağ soketi bağlama, sinyal gönderme gibi çok daha düşük seviyeli sistem etkileşimlerini de kontrol edebilir. AppArmor’un kontrolü temel olarak dosya sistemi ve ağ erişimi ile sınırlıdır. Bu, SELinux’u çok katmanlı ve karmaşık güvenlik politikaları oluşturmak için daha esnek hale getirir.
Sistem Entegrasyonu ve Yaygın Olduğu Dağıtımlar
Hangi aracı kullanacağınız, büyük ölçüde tercih ettiğiniz Linux dağıtımına bağlı olabilir. Debian ve Ubuntu tabanlı sistemler, AppArmor’u varsayılan olarak etkinleştirir ve topluluk desteği bu yönde daha güçlüdür. Red Hat ailesi (RHEL, CentOS Stream, Fedora) ise on yıllardır SELinux’u geliştirmekte ve entegre etmektedir. Her iki sistemi de çoğu dağıtımda kurmak mümkün olsa da, varsayılan ve desteklenen aracı kullanmak genellikle en sorunsuz deneyimi sunar.
Performans Etkisi ve Kaynak Tüketimi
Her iki sistem de Linux Security Modules (LSM) framework’ü üzerinde çalıştığı için oldukça verimlidir. Ancak teorik olarak, AppArmor’un daha basit ve daha az sayıda kuralı kontrol etmesi, onu bir miktar daha performanslı kılar. SELinux’un her sistem çağrısında etiketleri kontrol etmesi, ölçülebilir ancak çoğu iş yükü için göz ardı edilebilecek bir ek yük getirir. Modern sunucu donanımlarında bu fark genellikle birincil karar faktörü değildir.
Hata Ayıklama ve Sorun Giderme Süreçleri
Bir uygulama beklendiği gibi çalışmadığında sorunun güvenlik politikasından kaynaklanıp kaynaklanmadığını anlamak önemlidir. AppArmor’da bu süreç genellikle daha basittir. Complain modu ve `aa-logprof` aracı, sorunu hızla teşhis etmeye ve profili güncellemeye yardımcı olur. SELinux’ta ise hata ayıklama daha karmaşıktır. Denetim günlükleri (`/var/log/audit/audit.log`) çok ayrıntılıdır ve bu günlükleri anlamlandırmak için `ausearch` ve `sealert` gibi özel araçların kullanılması gerekir. Bu araçlar güçlü olsa da kullanımlarını öğrenmek zaman alır.
Pratik Uygulama ve Kullanım Senaryoları
AppArmor ve SELinux arasındaki teorik farkları bilmek önemlidir, ancak doğru aracı seçmenin anahtarı, onu hangi pratik senaryoda kullanacağınızı anlamaktır. İki sistemin de parladığı ve daha az uygun olduğu ortamlar vardır.
AppArmor İçin İdeal Senaryolar
AppArmor’un basitliği ve kullanım kolaylığı, onu belirli ortamlar için mükemmel bir seçenek haline getirir.
Masaüstü Kullanımı ve Tek Amaçlı Sunucular
Normal bir Linux masaüstü ortamında, web tarayıcısı, e-posta istemcisi veya medya oynatıcı gibi belirli, ağa dönük uygulamaları kısıtlamak için AppArmor idealdir. Kurulumu ve yönetimi kolaydır, sistem yöneticisinin minimum çabayla önemli bir güvenlik katmanı eklemesini sağlar. Benzer şekilde, yalnızca bir web sunucusu veya bir veritabanı çalıştıran tek amaçlı sunucularda, ilgili hizmet için hızlıca bir profil oluşturmak ve sistemi güvence altına almak son derece etkilidir. Örneğin, bir WordPress hosting sunucusunda Apache veya Nginx’i AppArmor ile kısıtlamak yaygın bir uygulamadır.
Hızlı ve Basit Yapılandırma Gerektiren Ortamlar
Geliştirme ortamları, küçük işletmeler veya karmaşık güvenlik politikaları için zamanı veya uzmanlığı olmayan ekipler için AppArmor biçilmiş kaftandır. `aa-genprof` ve `aa-logprof` gibi araçlar sayesinde, bir uygulamanın ihtiyaç duyduğu izinleri hızla öğrenip dakikalar içinde bir güvenlik profili oluşturabilirsiniz. Bu “hızlı başlangıç” özelliği, güvenliği karmaşık bir engel olarak görmeden temel koruma sağlamak isteyenler için büyük bir avantajdır.
SELinux İçin İdeal Senaryolar
SELinux’un sunduğu granüler kontrol ve kapsamlı politika, yüksek güvenlik gereksinimleri olan ortamlar için onu vazgeçilmez kılar.
Yüksek Güvenlik Gerektiren Kurumsal Sistemler
Devlet kurumları, finans kuruluşları, sağlık hizmetleri ve PCI-DSS gibi katı uyumluluk standartlarına uyması gereken her türlü kurumsal ortam, SELinux’un sağladığı derinlemesine kontrolden faydalanır. SELinux, sistemin her bir parçasının birbiriyle nasıl etkileşime gireceğini en ince ayrıntısına kadar tanımlayarak, sıfır gün açıklarının ve gelişmiş tehditlerin yaratabileceği hasarı en aza indirir. Bu tür ortamlarda, öğrenme eğrisinin dik olması, sağlanan güvenlik seviyesinin yanında kabul edilebilir bir maliyettir.
Çok Kullanıcılı ve Çok Konteynerli Ortamlar
Birden çok müşteriye hizmet veren paylaşımlı hosting platformları veya yüzlerce konteynerin bir arada çalıştığı VPS ortamları, izolasyonun kritik olduğu yerlerdir. SELinux, Çok Kategorili Güvenlik (Multi-Category Security – MCS) veya Çok Seviyeli Güvenlik (Multi-Level Security – MLS) gibi politikalarla süreçleri, kullanıcıları ve konteynerleri birbirinden tamamen izole edebilir. Bu sayede bir müşterinin veya konteynerin, diğerininkine müdahale etmesi politika düzeyinde imkansız hale gelir. Docker ve Kubernetes gibi konteyner teknolojileri, izolasyonu güçlendirmek için SELinux entegrasyonuna sahiptir.
Kapsamlı ve Detaylı Kontrol Gerektiren Altyapılar
Bir web sunucusunun sadece belirli dosyalara erişmesini değil, aynı zamanda belirli bir veritabanı portuna bağlanmasını, ancak başka hiçbir ağ bağlantısı kuramamasını sağlamak gibi karmaşık kurallar gerektiren altyapılar SELinux’a ihtiyaç duyar. SELinux, ağ portları, soketler, işlemler arası iletişim mekanizmaları ve sistem yetenekleri üzerinde tam kontrol sağlayarak, sistemin davranışını çok hassas bir şekilde tanımlamanıza olanak tanır. Bir VDS üzerinde çalışan birden fazla hizmetin etkileşimini güvenli bir şekilde yönetmek için bu düzeyde bir kontrol gereklidir.
Yönetim, İzleme ve Yapılandırma Araçları
Hem AppArmor hem de SELinux, güvenlik politikalarını yönetmek, sistemin durumunu izlemek ve sorunları gidermek için zengin bir komut satırı araç setine sahiptir. Bu araçları bilmek, bu güvenlik sistemlerini etkili bir şekilde kullanmanın anahtarıdır.
AppArmor Komut Satırı Araçları (`apparmor_status`, `aa-complain`, `aa-enforce`)
AppArmor yönetimi genellikle `aa-` veya `apparmor_` önekine sahip komutlarla yapılır.
- apparmor_status: Sistemin AppArmor durumu hakkında genel bir bakış sunar. Hangi profillerin yüklendiğini, hangilerinin enforce (zorlama) modunda, hangilerinin complain (öğrenme) modunda olduğunu ve profilsiz çalışan süreçleri listeler.
- aa-complain <profil_yolu>: Belirtilen bir profili enforce modundan complain moduna geçirir. Bu, bir uygulamanın neden sorun çıkardığını anlamak için hata ayıklama sırasında kullanılır.
- aa-enforce <profil_yolu>: Belirtilen bir profili complain modundan tekrar enforce moduna alır. Politika ayarlandıktan sonra güvenliği yeniden aktif hale getirmek için kullanılır.
- aa-disable <profil_yolu>: Bir profili tamamen devre dışı bırakır.
- aa-genprof <uygulama_yolu>: Yeni bir profil oluşturma sihirbazını başlatır.
- aa-logprof: Günlükleri tarayarak politika ihlallerini bulur ve profilleri interaktif olarak güncellemenizi sağlar.
SELinux Komut Satırı Araçları (`sestatus`, `getenforce`, `semanage`, `ausearch`)
SELinux, daha karmaşık yapısı nedeniyle daha çeşitli ve güçlü araçlar sunar.
- sestatus: SELinux’un genel durumu hakkında ayrıntılı bilgi verir. Mevcut mod (enforcing, permissive, disabled), yüklü politika tipi ve dosya sistemi bağlam ayarları gibi bilgileri gösterir.
- getenforce: Sadece mevcut SELinux modunu (Enforcing veya Permissive) döndürür.
- setenforce [0|1]: SELinux modunu anlık olarak değiştirir. `setenforce 0` Permissive, `setenforce 1` Enforcing moduna geçirir. Bu değişiklik yeniden başlatma sonrası kalıcı değildir.
- semanage: SELinux politika yönetiminin ana aracıdır. Dosya bağlamlarını, ağ portlarını, boolean’ları ve kullanıcı rollerini kalıcı olarak yönetmek için kullanılır. Örneğin, `semanage fcontext -a -t httpd_sys_content_t “/custom_web(/.*)?”` komutu, özel bir web dizini için varsayılan dosya bağlamını tanımlar.
- ausearch: Denetim (audit) günlüklerini sorgulamak için kullanılan güçlü bir araçtır. Özellikle SELinux tarafından engellenen (AVC denial) olayları bulmak için `ausearch -m avc -ts recent` gibi komutlarla kullanılır.
- audit2why: `ausearch` ile bulunan bir denetim günlüğü mesajını alır ve engellemenin nedenini daha anlaşılır bir dilde açıklar.
- chcon / restorecon: Dosya ve dizinlerin güvenlik bağlamlarını geçici olarak değiştirmek (`chcon`) veya varsayılan politikaya göre düzeltmek (`restorecon`) için kullanılır.
Denetim Günlüklerinin (Audit Logs) Analizi ve Yorumlanması
Her iki sistem için de en önemli sorun giderme kaynağı denetim günlükleridir. Bir uygulama beklendiği gibi çalışmadığında veya bir erişim hatası verdiğinde, ilk bakılması gereken yer bu günlüklerdir.
- AppArmor: Günlükler genellikle `/var/log/audit/audit.log` veya `journalctl` çıktısında “apparmor=” etiketiyle bulunur. Mesajlar genellikle hangi profilin, hangi sürecin (pid), hangi dosyaya ne tür bir erişim (örn: “read”, “write”) denediğini ve sonucun ne olduğunu (örn: “DENIED”) açıkça belirtir.
- SELinux: Günlükler de `/var/log/audit/audit.log` içinde bulunur ve “type=AVC” ile işaretlenir. SELinux günlükleri çok daha zengindir; kaynak sürecin bağlamını (scontext), hedef nesnenin bağlamını (tcontext), nesnenin sınıfını (tclass) ve istenen izni (perm) içerir. Bu detaylı bilgi, sorunu tam olarak anlamak için kritiktir ancak ilk bakışta karmaşık görünebilir. `audit2why` veya `sealert` gibi araçlar bu ham veriyi analiz edip “SELinux, httpd’nin user_home_t tipindeki dosyalara erişimini engelliyor” gibi insan tarafından okunabilir öneriler sunar.
Kapsamlı Linux Sunucu Güvenliği İçin Neden İHS Telekom’u Tercih Etmelisiniz?
AppArmor ve SELinux gibi güçlü güvenlik araçlarını anlamak bir şey, bunları üretim ortamlarında doğru ve etkin bir şekilde yapılandırmak ve yönetmek ise bambaşka bir uzmanlık gerektirir. Yanlış yapılandırılmış bir güvenlik politikası, ya sisteminizi savunmasız bırakabilir ya da meşru uygulamaların çalışmasını engelleyerek iş sürekliliğinizi tehlikeye atabilir. İHS Telekom, Linux sunucu güvenliğinin bu karmaşıklığını anlayan ve müşterilerine bu konuda profesyonel destek sunan bir teknoloji ortağıdır.
Uzman Yapılandırma ve Yönetim Desteği
İHS Telekom, yılların tecrübesine sahip sistem yöneticilerinden oluşan bir ekiple çalışır. Sunucunuzun işletim sistemine ve üzerinde çalışan uygulamalara en uygun güvenlik modelini (ister AppArmor ister SELinux) belirler, ilk yapılandırmayı yapar ve sürekli yönetimini sağlayarak güvenlik politikalarınızın her zaman güncel ve etkin kalmasını garanti ederiz. Alan adı tescilinden güvenli sunucu barındırmaya kadar tüm süreçlerde yanınızdayız.
Proaktif Güvenlik İzleme ve Danışmanlık Hizmetleri
Güvenlik, tek seferlik bir kurulum değildir; sürekli bir süreçtir. Sunucularınızı 7/24 izleyerek şüpheli aktiviteleri ve politika ihlallerini proaktif olarak tespit ederiz. Denetim günlüklerini sizin için analiz eder, olası tehditleri raporlar ve güvenlik duruşunuzu daha da güçlendirmek için size özel danışmanlık hizmetleri sunarız. Güvenliğinizi en üst düzeyde tutmak için bir SSL sertifikası kadar, doğru yapılandırılmış sunucu güvenliği de kritiktir.
SELinux ve AppArmor Destekli Güvenli Barındırma Çözümleri
İHS Telekom’un sunduğu Linux hosting, VPS ve VDS hizmetleri, modern güvenlik standartlarına uygun olarak tasarlanmıştır. Altyapımız, hem SELinux hem de AppArmor gibi Zorunlu Erişim Kontrolü sistemlerini tam olarak destekler. Hangi barındırma çözümünü seçerseniz seçin, en katı güvenlik politikalarını uygulama ve yönetme esnekliğine sahip olursunuz.
Güvenlik Politikalarının İhtiyaçlarınıza Göre Özelleştirilmesi
Her işletmenin ve her uygulamanın güvenlik ihtiyacı farklıdır. Standart bir e-ticaret sitesi ile hassas veriler işleyen bir kurumsal uygulamanın güvenlik profili aynı olamaz. İHS Telekom olarak, iş modelinizi ve uygulamalarınızın çalışma mantığını analiz ederek size özel güvenlik politikaları tasarlarız. Bu sayede, “tek beden herkese uyar” yaklaşımından uzak, maksimum güvenlik ve minimum operasyonel kesintiyi hedefleyen bir yapılandırma sunarız.

