Linux LogAltyapısı
Linux işletim sistemi, sistemin nasıl çalıştığı ve ne tür olayların meydana geldiği hakkında iyi miktarda bilgi sağlar. Günlük dosyaları, sistem hakkında derinlemesine bilgi sağlayan önemli bilgileri saklar. Bu eğitimimizde Linux log motorunu, çeşitli log dosyalarını ve bunları nasıl kullanabileceğinizi öğreneceğiz.
Herhangi bir Linux sistem yöneticisi veya güvenlik uzmanı için günlük dosyaları, hataları tanımlamak, sistem olaylarını izlemek ve güvenlik sorunlarını tespit etmek için vazgeçilmez bir araçtır. Ancak bu dosyaların sağladığı bilgilerin etkin bir şekilde kullanılabilmesi belirli bilgi ve beceriler gerektirir.
Log Dosyalarının Önemi
Linux günlük dosyaları sistem ve ağ yöneticilerine sistemde olup bitenler hakkında ayrıntılı bilgi verir. Çeşitli hizmet ve uygulamaların günlük dosyalarını incelemek, bir Linux sistemini yönetirken genellikle önemli bir adımdır.
Linux log dosyalarının önemini şu başlıklar altında toplayabiliriz:
Hata ayıklama / Debugging
Günlük dosyaları genellikle bir hizmetin veya uygulamanın neden düzgün çalışmadığını anlamak için bakılacak ilk yerdir. Günlük dosyaları genellikle hataların nedenlerini ve çözümlerini bulmada yardımcı olur.
Güvenlik Denetimi
Günlük dosyaları şüpheli veya kötü amaçlı etkinlikleri tespit etmek için kullanılır. Bu, oturum açma denemelerini, yetkisiz dosya erişimini veya sistem değişikliklerini içerebilir.
Performans İzleme
Günlük dosyaları bir sistemin performansı hakkında bilgi sağlar. Örneğin, bir hizmetin ne kadar hızlı yanıt verdiğini veya bir işlemin tamamlanmasının ne kadar sürdüğünü görebilirsiniz.
Sistem bakımı
Günlük dosyaları, bir sistemdeki olayları uzun bir süre boyunca izlemenize olanak tanır. Bu, sistem yöneticilerinin bakım gereksinimlerini planlamasına, beklenmeyen olayları tahmin etmesine ve gerektiğinde müdahale etmesine yardımcı olabilir.
Bu nedenlerden dolayı log dosyalarını düzenli olarak kontrol etmek ve gerektiğinde önlem almak, Linux sisteminin güvenli ve verimli çalışmasının önemli bir parçasıdır.
Günlük Dosyalarının Konumları ve İşlevleri
Günlük dosyalarının konumları ve işlevleri, dağıtıma ve yapılandırmaya bağlı olarak değişiklik gösterebilir. Aşağıdaki tablo yaygın olarak kullanılan günlük dosyalarını içermektedir. Farklı bir Linux dağıtımı kullanıyorsanız veya sistem yapılandırmanız değiştiyse günlük dosyalarının konumunu ve adını doğrulamanız önemlidir.
Günlük Dosyalarını Okumak ve Anlamak
Linux günlük dosyalarını okumak ve anlamak, sistem yöneticileri ve güvenlik uzmanları için önemli bir beceridir. Günlük dosyaları, sistemin çalışması sırasında meydana gelen olayları kaydederek sistem durumunun izlenmesine, hataların analiz edilmesine ve güvenlik olaylarının incelenmesine yardımcı olur. Aşağıda Linux günlük dosyalarını okumak ve anlamak için önemli adımlar verilmiştir:
Günlük Dosyası Konumu
Öncelikle okumamız ve incelememiz gereken log dosyalarının konumunu belirlememiz gerekiyor. Yukarıda belirtilen günlük dosyalarının konumlarına ek olarak “/var/log” dizini, genel günlük dosyalarının genellikle depolandığı bir diğer önemli konumdur.
Günlük Dosyası Okunuyor
Bir günlük dosyasını açmak için terminaldeki “less” veya “tail” komutlarını kullanabilirsiniz. Örneğin “syslog” dosyasını “less /var/log/syslog” komutuyla açabilirsiniz. “tail -f /var/log/messages” komutu ile dosyayı sürekli takip edebilir, yeni eklenen logları anlık olarak görebilirsiniz.
“/var/log” dizini birçok log dosyası ve uygulama loglarının saklandığı dizinleri içerebilir. Verileri nerede arayacağımızdan emin olmadığımızda (IP adresi, etki alanı, kullanıcı adı vb.) dosyalardaki dize ifadelerini arayabileceğimiz “grep” komutunu kullanabiliriz.
Örneğin, tüm günlük dosyalarında “vivek” kullanıcısını arayalım:
-r parametresi: Dizinlerdeki dosyaları aramak için de kullanılır.
Syslog ve Rsyslog
“Syslog”, Linux sistemlerinde günlük mesajlarının toplanması, işlenmesi ve yönetilmesi için standart bir protokoldür. Ayrıca sistemdeki farklı kaynaklardan (örneğin çekirdek, servisler, uygulamalar) log mesajlarının toplanıp merkezi bir konuma kaydedilmesi için kullanılan bir servistir. “/var/log” dizininde yer alan birçok log dosyası tarafından kullanılır ve farklı seviyelerdeki log mesajlarını (debug, info, warning, error, kritik, uyarı, acil durum) kabul eder. Syslog ayrıca günlük mesajlarını ağ üzerinden uzaktaki bir syslog sunucusuna aktarma özelliğine de sahiptir.
“Rsyslog”, syslog servisini temel alan daha gelişmiş özelliklere sahip modern bir log yönetim sistemidir. Rsyslog önceki syslog versiyonlarına göre daha hızlı ve güçlü bir yapıya sahiptir. Uyumluluğu sağlamak için önceki sistem günlüğü yapılandırmalarını da destekler. Syslog protokolünü ve özelliklerini kullanarak günlük mesajlarını alır, işler ve yönetir. Syslogd yerine kullanılması tavsiye edilir ve çoğu Linux dağıtımında varsayılan günlük yönetimi hizmeti olarak bulunur.
Rsyslog ayrıca logların çeşitli formatlara dönüştürülmesi, filtrelenmesi, işlenmesi ve yönlendirilmesi gibi gelişmiş özellikler de sunmaktadır. Bu, günlük mesajlarını farklı dosyalara ve hatta uzak sunuculara iletmenize olanak tanır.
Rsyslog’un yapılandırma dosyası genellikle “/etc/rsyslog.conf” veya “/etc/rsyslog.d/*.conf” şeklinde bulunabilir. Bu dosyalar rsyslog’un nasıl çalıştığını ve günlük mesajlarının nasıl yönlendirildiğini belirler.
Rsyslog yapılandırma dosyası aşağıdaki bölümlerden oluşur:
Global Direktifler
Bu bölüm genel olarak rsyslog hizmetini etkileyen komutları içerir. Bu komutlar sistem genelinde uygulanacak yapılandırmaları belirler. Örneğin logların nereye kaydedileceği, logların hangi formatta olacağı gibi genel konfigürasyonlar burada belirtilir.
Modül Direktifleri
Bu bölüm belirli bir modüle ilişkin yapılandırmaları içerir. Örneğin imudp veya imtcp modüllerine özel ayarlar bu bölümde yer almaktadır.
Kural Seti ve Şablon Tanımları
Rsyslog, günlük mesajlarını “kural kümeleri” adı verilen mantıksal gruplara göre işleyebilir. Bu bölüm belirli bir kural kümesine ilişkin yapılandırmaları tanımlar. Ayrıca logların hangi formatta kaydedileceğini belirlemek için “şablon” adı verilen yapılar da tanımlanabilir.
Günlük Direktifleri
Bu bölüm, günlük iletilerinin nasıl yönlendirileceğini belirler. Günlükler dosyalara, uzak sunuculara, konsola, e-posta adreslerine veya diğer hedeflere yönlendirilebilir. Örneğin, “kern.* /var/log/kernel.log”, çekirdek günlüklerini “/var/log/kernel.log” dizinine yönlendirecektir.
Direktifleri Dahil Et
Rsyslog yapılandırma dosyası oldukça karmaşık olabilir. Bu nedenle, yapılandırma dosyasını düzenli tutmak ve yönetmek için “include” komutları kullanılabilir. “Dahil Et” komutları, farklı dosyalardaki konfigürasyonları ana konfigürasyona içerir.
Her rsyslog yapılandırma dosyası farklı olabilir ancak yukarıdaki bölümler genellikle yapılandırmada bulunması en muhtemel bölümlerdir. Ayrıca, yapılandırmayı daha iyi anlamanıza yardımcı olacak, rsyslog’un yapılandırma dosyalarının açıklamalarını içeren birçok belge ve kaynak bulunmaktadır.
Özetle syslog ve rsyslog Linux sistemlerde log yönetimi için kullanılan önemli servislerdir. Rsyslog, syslogd’un daha gelişmiş bir sürümüdür ve çoğu Linux dağıtımında önerilen ve kullanılan bir günlük yönetimi çözümüdür.
Günlük Dosyalarının Rotation ve Yönetimi
Linux log dosyalarının rotasyonu ve yönetimi, logların kontrolsüz büyümesini önlemek ve sistemdeki logların düzenli bir şekilde yönetilmesini sağlamak için en önemli noktalardan biridir. Log döndürme, log dosyalarının belirli bir süre içerisinde sıkıştırılması, silinmesi veya başka bir konuma taşınması işlemidir. Bu işlem, günlük dosyalarının kontrolsüz büyümesini önler, disk alanının tükenmesi gibi sorunların önüne geçer ve günlüklerin okunmasını ve yönetilmesini kolaylaştırır.
Linux log dosyalarının döndürülmesi ve yönetimi için en çok tercih edilen çözümlerden biri “logrotate” aracıdır.
“Logrotate”, Linux sistemlerinde log dosyalarının otomatik yönetimini sağlayan bir araçtır. Yapılandırma dosyaları “/etc/logrotate.conf” ve “/etc/logrotate.d/” dizinleri altında bulunur. Bu yapılandırmalar, günlük dosyalarının ne zaman döndürüleceğini, sıkıştırılacağını, silineceğini ve başka bir konuma taşınacağını belirler.
Logrotate, sistem yöneticilerine günlük dosyalarının ne kadar süre saklanacağı ve kaç arşiv dosyasının saklanacağı gibi ayrıntıları belirleme esnekliği sağlar. Logrotate genellikle günlük, haftalık veya aylık olarak çalıştırılır.
Ana rotasyon türleri/özellikleri aşağıdaki gibidir:
Boyuta Dayalı Rotasyon
Günlük dosyalarının boyutu kontrol edilerek rotasyon yapılabilir. Örneğin log dosyası belirli bir boyuta ulaştığında yeni bir dosya oluşturularak eski dosyanın yedeğini alabilirsiniz.
Zamana Dayalı Rotasyon
Günlük dosyaları belirli bir zaman diliminde (günlük, haftalık, aylık) döndürülebilir. Bu, günlük dosyalarını temiz bir durumda tutar ve disk alanını daha verimli kullanmalarına olanak tanır.
Günlükleri Sıkıştırma
Eski günlük dosyaları sıkıştırılabilir ve saklanabilir. Bu, disk alanını daha verimli kullanmanıza yardımcı olur ve arşivleme amacıyla kullanışlıdır.
Linux günlük döndürme parametrelerinden bazıları şunlardır:
Örneğin, güvenlik duvarı günlüklerinin günlük döndürme yapılandırma dosyası aşağıda gösterilmiştir:
Günlük dosyalarının rastasyon ve yönetimi, disk alanının düzenli olarak temizlenmesine, günlüklerin okunabilirliğinin arttırılmasına ve günlüklerin etkin bir şekilde yönetilmesine olanak sağladığından sistem yöneticileri için önemli bir süreçtir. Doğru günlük döndürme politikaları, sistem güvenliği ve performansı açısından da kritik öneme sahiptir.
SElinux/Apparmor-1
SELinux ve AppArmor, Linux tabanlı işletim sistemlerinde güvenlik düzeyini artırmak için kullanılan iki farklı güvenlik mekanizmasıdır. Her ikisi de Mandatory Access Control (MAC) temelinde çalışır ve bir işlemin veya uygulamanın erişebileceği kaynak türlerini kontrol etmek için kullanılır.
SELinux
“SELinux”, Linux çekirdeği için bir güvenlik modülüdür ve sistemlere kötü niyetli veya hatalı davranışları sınırlamak için daha fazla kontrol sağlar. Bu, Erişim Denetim Listesi (ACL), Rol Tabanlı Erişim Denetimi (RBAC) ve Zorunlu Erişim Denetimi (MAC) gibi güvenlik politikaları aracılığıyla gerçekleştirilir.
“SELinux”, sistemde çalışan her işlem için belirli izinleri ve yetenekleri tanımlar, böylece bir işlemin kaynakları ve dosya sistemini nasıl kullanabileceğini kontrol eder. Bu, kötü amaçlı yazılımların veya hatalı uygulamaların sisteme zarar vermesini önler.
SELinux, Ulusal Güvenlik Ajansı (NSA) tarafından başlatılan bir projedir ve başta Fedora, CentOS ve Red Hat olmak üzere Red Hat tabanlı dağıtımlarda yaygın olarak kullanılmaktadır.
Örnek SELinux yapılandırma dosyası içerikleri aşağıdaki gibidir:
SELinux (Güvenliği Geliştirilmiş Linux) temel olarak aşağıdaki üç modda çalışabilir:
Uygulama / Enforcing
Bu modda, SELinux politika kurallarını uygular ve herhangi bir kural ihlalini engeller ve günlüğe kaydeder. Bu, SELinux’un güvenlik politikalarını aktif olarak uyguladığı varsayılan çalışma modudur.
Müsamahakâr / Permissive
Bu modda SELinux yalnızca politika ihlallerini günlüğe kaydeder ancak bu ihlalleri engellemez. Bu genellikle sistem yöneticileri SELinux ilkelerini belirlediğinde veya hata ayıklama işlemlerini gerçekleştirdiğinde kullanılır. Bu mod, SELinux’un potansiyel sorunları raporlama yeteneğini korurken, bu sorunların sistem üzerindeki gerçek etkisini de önler.
Engelli / Disabled
Bu modda SELinux tamamen devre dışıdır. SELinux’un herhangi bir güvenlik politikasını veya günlük ihlalini uygulaması mümkün değildir.
SELinux’un hangi modda çalıştığını kontrol etmek isterseniz “getenforce” komutunu kullanabilirsiniz. Modu değiştirmek için “setenforce” komutunu veya “/etc/selinux/config” dosyasını düzenleyerek kalıcı bir değişiklik yapabilirsiniz.
SELinux farklı politika türleriyle esneklik sunar. SELinux’ta kullanılan en yaygın politika türleri şunlardır:
Hedefli Politika / Targeted Policy
En sık kullanılan politika türüdür. Bu politika, sistemdeki çoğu işlemi “sınırlanmamış” olarak çalıştırır; bu, bu işlemlere katı SELinux kurallarının uygulanmadığı anlamına gelir. Ancak bazı önemli potansiyel riskli hizmetler (örn. HTTPD, SSHD) “sınırlı” olarak işaretlenmiştir ve bu hizmetlere özel SELinux politikaları uygulanır.
Asgari Politika / Minimum Policy
Bu, “hedefli” politikanın bir çeşididir ve yalnızca belirli hizmetler için SELinux politikalarını uygular. Bu politika yalnızca belirli hizmetler için güvenlik önlemi almak isteyenler için uygundur.
Çok Düzeyli Güvenlik (MLS) Politikası / Multi-Level Security (MLS) Policy
Bu, hassas bilgilere erişimi sınırlamak için kullanılır. Farklı güvenlik düzeyleri ve kategorileri kullanarak verilere erişimi kontrol eder. Özellikle askeri ve devlet kurumları gibi güvenlik gereksinimleri çok yüksek olan kuruluşlar için uygundur.
Bu politika türleri SELinux’un genel olarak nasıl çalıştırılacağını belirler. Ancak her politika türü kendi içinde birçok modül, kural ve etiketle birlikte gelir, dolayısıyla SELinux yapılandırmasının ayrıntıları oldukça karmaşık olabilir. İhtiyaçlara uygun bir politikanın seçilmesi, sistem güvenliğinin ve performansının optimize edilmesi açısından önemlidir.
Örnekler;
SElinux/Apparmor-2
“AppArmor” bir güvenlik modülüdür ve Linux çekirdeğine entegre edilmiştir. Belirli programların sistemde neler yapabileceğini kontrol eder. İzin tabanlı bir sistem kullanan AppArmor, programların hangi dosyalara ve dizinlere erişebileceğini, hangi yeteneklere sahip olduklarını ve hangi sistem çağrılarını kullanabileceğini belirler.
AppArmor, özellikle Ubuntu ve openSUSE gibi dağıtımlarda yaygın olarak kullanılmakta ve genellikle SELinux’a göre daha basit bir konfigürasyona sahip olması nedeniyle kullanıcılar tarafından tercih edilmektedir.
Her iki güvenlik modülü de Linux sistemlerinin güvenliğini artırmak için geliştirilmiştir. Hangi güvenlik modülünün kullanılacağı genellikle kişisel tercihlere ve kullanılan Linux dağıtımına bağlıdır. Her ikisi de güçlü güvenlik araçlarıdır ve sistemlerin kötü niyetli veya hatalı davranışlardan korunmasına yardımcı olur.
AppArmor’un ana çalışma modları şunlardır:
Modu Zorunlu Kıl / Enforce Mode
Bu modda AppArmor politikaları uygular ve politika ihlallerini önler. Ayrıca bu ihlalleri günlüklere kaydeder. Bu mod, AppArmor’un erişim kontrolü politikalarını aktif olarak uyguladığı varsayılan çalışma modudur.
Şikayet Modu (veya İzin Verme Modu) / Complain Mode (or Permissive Mode)
Bu modda AppArmor olası ihlalleri günlüğe kaydeder ancak bu ihlalleri engellemez. Bu, politika geliştirirken veya sistemdeki olası erişim sorunlarını tespit ederken kullanılır.
Engelli / Disabled
AppArmor tamamen devre dışı bırakıldı. Erişim kontrolü politikaları uygulanmaz veya kaydedilmez.
AppArmor profilinin hangi modda olduğunu kontrol etmek ve değiştirmek için “aa-status”, “aa-enforce” ve “aa-complain” gibi komutları kullanabilirsiniz. Bu komutlar, AppArmor araçlarının bir parçasıdır ve AppArmor’un açık olup olmadığını kontrol etmek için gereklidir. sisteme kuruludur.
Örnekler;
SELinux ve Apparmor Kullanım Örnekleri
Web Sunucuları
SELinux veya Apparmor web sunucularını (örn. Apache) yalnızca belirli dizinlere erişmeye zorlar. Bu, bir web uygulamasının güvenliği ihlal edildiğinde kötü niyetli bir saldırganın sistemi tehlikeye atmasını zorlaştırır.
Veritabanı Sunucuları
PostgreSQL ve MySQL gibi veritabanı sunucularına yönelik SELinux veya Apparmor politikaları, bu hizmetleri yalnızca veritabanı dosyalarına ve gerekli sistem kaynaklarına erişmeye zorlar.
Dosya paylaşımı
Samba veya NFS gibi dosya paylaşım hizmetleri için SELinux veya Apparmor, bu hizmetleri yalnızca belirli klasörlere ve dosyalara erişmeye zorlar.
Ağ İzolasyonu
SELinux veya Apparmor, belirli hizmetleri yalnızca belirli ağ bağlantı noktalarına ve protokollerine erişmeye zorlar. Örneğin, bir web sunucusunun SMTP bağlantı noktasına erişimi engellenebilir.
Kullanıcı İzolasyonu
SELinux veya Apparmor, kullanıcıları yalnızca kendi dosyalarına ve belirli sistem kaynaklarına erişmeye zorlayarak, diğer kullanıcılara veya sistemde çalışan işlemlere gelebilecek olası zararların sınırlı olmasını sağlar.
SELinux ve Apparmor Farkları
Apparmor ve SELinux arasındaki temel farklar şunlardır:
Menşei / Origin
“ AppArmor ”, SUSE Linux şirketi tarafından geliştirildi ve başlangıçta SUSE Linux Enterprise Server (SLES) için kullanıldı, ancak o zamandan beri diğer Linux dağıtımlarında da kullanılmaya başlandı.
“ SELinux ”, NSA (Ulusal Güvenlik Ajansı) ve Red Hat tarafından geliştirildi ve daha sonra Red Hat Enterprise Linux (RHEL) ve diğer Linux dağıtımlarında kullanıldı.
Temel Çalışma Prensibi:
“ AppArmor ”, uygulamaların erişebileceği kaynakları ve dosyaları tanımlayan profil tabanlı bir sistemdir. Uygulamaların izin verilen kaynaklara erişimi profiller tarafından belirlenir.
“ SELinux ” uygulamaların erişebileceği kaynakları belirleyen etiket tabanlı bir sistemdir. Dosyalar ve nesneler etiketlenir, uygulamaların erişim izinleri bu etiketlere göre belirlenir.
Kullanım ve Yaygınlık:
“ AppArmor ” SELinux’a göre daha basit ve kullanımı daha kolaydır, dolayısıyla bazı dağıtımlarda varsayılan olarak tercih edilebilir.
“ SELinux ” daha karmaşık ve esnek bir yapıya sahiptir. Özellikle askeriye, devlet kurumları ve güvenlik odaklı ortamlarda yaygın olarak kullanılmaktadır. Red Hat Enterprise Linux gibi güvenlik gereksinimleri yüksek olan dağıtımlarda tercih edilmektedir.
Yetkilendirme Sistemi:
“ AppArmor ” dosya yolu bazlı yetkilendirme sistemine sahiptir. Uygulama belirli dosyalara veya belirli dosya türlerine erişebilir.
“ SELinux ” etiket bazlı yetkilendirme sistemine sahiptir. Etiketler dosyalar, klasörler ve diğer nesneler için ayarlanır ve bu etiketler erişim kontrolünde kullanılır.
Linux tabanlı sistemlerde güvenlik açıklarını azaltmak ve olası tehditleri en aza indirmek için genel olarak AppArmor ve SELinux gibi güvenlik mekanizmaları kullanılmaktadır. Seçim, kullanılacak dağıtımın politikasına, gereksinimlerine ve yönetim yeteneklerine bağlı olarak değişebilir.
Sonuç/Özet
SELinux (Güvenliği Geliştirilmiş Linux) ve AppArmor, Linux işletim sistemi için zorunlu erişim kontrolü sağlayan güvenlik modülleridir. Bu modüller, belirli politika ve profillere uygun olarak uygulama ve hizmetlerin neleri yapıp neleri yapamayacağını belirterek sistem kaynaklarına ve süreçlerine erişimi sınırlandırır. SELinux daha ayrıntılı kontrol sağlarken, karmaşıklığı nedeniyle öğrenilmesi ve yapılandırılması genellikle daha zordur. AppArmor ise kullanıcı dostu bir yaklaşım sunuyor ve uygulama izinlerini dosya yollarına göre sınırlandırıyor. Her iki modül de potansiyel güvenlik tehditlerine karşı ek bir koruma katmanı sunarak sistemin güvenliğini sağlamayı amaçlamaktadır.
Linux Güvenlik Duvarı
Güvenlik duvarları, bir bilgisayar ağındaki trafiği izleyen ve analiz eden basit güvenlik sistemleridir. Bu sistemler, belirlenen güvenlik politikalarına göre hangi trafiğin ağa girip çıkabileceğini kontrol eder. Güvenlik duvarları donanım aygıtları, yazılım uygulamaları veya her ikisinin birleşimi olarak mevcut olabilir.
Amaç
Veri koruması
Güvenlik duvarları, hassas ve özel verilere yetkisiz erişimi önleyerek ağı korur.
Saldırıları Önleme
Potansiyel tehditleri tanımlayıp engelleyerek ağı korur. Örneğin, kötü amaçlı yazılımların ağa sızmasını engelleyebilir.
Trafik Yönetimi
İzin verilen trafik ve uygulamaları belirleyerek ağ kaynaklarının etkin kullanımını sağlar.
Loglama ve Raporlama
Ağ trafiğinde meydana gelen tüm etkinliklerin kaydını tutar. Bu, şüpheli etkinliklerin belirlenmesi, olası güvenlik ihlallerinin araştırılması ve gelecekteki tehditlerin engellenmesi açısından önemlidir.
Giriş kontrolu
Kullanıcıların, cihazların veya uygulamaların belirli ağ hizmetlerine veya kaynaklarına erişimini sınırlandırır.
Bağlantı Durumu İzleme
Güvenlik duvarı, bağlantıların durumunu izleyerek yalnızca yasal ve iyi bilinen bağlantıların ağ üzerinden dolaşmasına izin verir.
Linux Güvenlik Duvarları
Linux’ta birçok farklı güvenlik duvarı çözümü vardır. Bu çözümler temel olarak çekirdeğin netfilter altyapısını kullanır. Linux’ta kullanılan yaygın güvenlik duvarı modelleri şunlardır:
Iptable’lar
Linux’ta uzun yıllardır kullanılan standart güvenlik duvarıdır. IPv4 trafiğini yönetmek için kullanılır. Netfilter altyapısına dayalı olarak çalışır ve paket filtreleme, Ağ Adresi Çevirisi (NAT) ve paket dönüştürme gibi fonksiyonları destekler.
IP6table’lar
IPv6 trafiğini yönetmek için iptables sürümü.
Nftable’lar
Linux çekirdeği 3.13’ten itibaren iptables’ın yerini almaya başlayan yeni nesil bir güvenlik duvarıdır. Hem IPv4 hem de IPv6 trafiği için tek bir araçtır ve daha zengin bir sözdizimi sunar.
Karmaşık Olmayan Güvenlik Duvarı (UFW)
iptables’ın karmaşıklığını ortadan kaldırmak için oluşturulmuş, kullanıcı dostu arayüze sahip bir güvenlik duvarı aracıdır.
Güvenlik duvarı / Firewalld
Red Hat, CentOS ve Fedora gibi RPM tabanlı dağıtımlarda kullanılan ve güvenlik duvarı kurallarını dinamik olarak yönetmeyi kolaylaştıran bir araç.
Kıyı Duvarı (Kıyı Şeridi Güvenlik Duvarı) / Shorewall (Shoreline Firewall)
İptables için kabuk görevi gören bu güvenlik duvarı, karmaşık ağ yapılandırmalarının basit bir şekilde yönetilmesine yardımcı olur.
Arptable’lar
Adres Çözümleme Protokolü (ARP) paketlerini filtrelemek için bir araç.
Bu güvenlik duvarı çözümleri arasında seçim yaparken ihtiyaçlarınıza ve tecrübenize göre en uygun olanı seçmelisiniz. Örneğin, basit bir ev ağı için ufw yeterli olabilirken, büyük ölçekli bir iş ağı için iptables veya nftables’ın ayrıntılı kontrolü daha uygun olabilir.
Linux’ta yaygın olarak kullanılan güvenlik duvarlarına ilişkin ayrıntılar aşağıdaki gibidir:
iptables
“iptables” Linux’ta paket filtreleme ve yönlendirme için kullanılan çok güçlü bir araçtır. iptables, gelen ve giden trafiği kontrol edebilir, trafiği özel kurallarla yönlendirebilir, paketleri engelleyebilir veya izin verebilir.
Temel iptables bileşenleri aşağıdaki gibidir:
Tablolar/Tables: iptables’ın birkaç farklı tablosu vardır. Bu tablolardan en sık kullanılanları filter, nat ve mangle’dır.
Zincirler/Chains: Her tabloda paketlerin nasıl işleneceğini belirleyen önceden tanımlanmış birkaç zincir bulunur. Örneğin, filtre tablosunda INPUT, FORWARD ve OUTPUT zincirleri bulunur.
İptables yönetimine ilişkin detaylı tablo aşağıdaki gibidir:
İptables’ın bazı örnek kuralları aşağıdaki resimdeki gibidir:
Güvenlik duvarı / firewalld
“firewalld” modern Linux dağıtımlarında kullanılan bir güvenlik duvarı yöneticisidir. Özellikle Red Hat tabanlı dağıtımlar (CentOS, Fedora) için varsayılan güvenlik duvarı aracıdır. Firewalld kullanarak paket filtreleme, NAT ve port yönlendirme gibi işlemleri gerçekleştirebilirsiniz.
Ana Özellikler
Bölgeler/Zones: Ağ arayüzlerini ve IP adreslerini farklı güvenlik seviyelerine ve özelliklerine göre sınıflandırmak için kullanılır. Örnek bölgeler: genel, ev, dahili, iş, harici vb.
Hizmetler/Services: Hizmet, belirli bir protokolü ve bağlantı noktası numarasını ifade eder. Örneğin SSH veya HTTP gibi standart hizmetler için önceden tanımlanmış ayarlar vardır.
Firewalld’un kullanım örnekleri aşağıdaki gibidir:
Bu tablo, Firewalld’un sunduğu temel işlevleri özetlemektedir. Daha karmaşık konfigürasyonlar için Firewalld’un ana sayfasını veya resmi dokümantasyon sayfasını inceleyebilirsiniz. Özellikle kalıcı değişiklikler yaparken dikkatli olmalısınız. Konfigürasyon değişikliklerini kalıcı hale getirdikten sonra bu değişikliklerin geçerli olması için güvenlik duvarı servisini yeniden başlatmayı unutmayın.
Karmaşık Olmayan Güvenlik Duvarı (UFW) / Uncomplicated Firewall (UFW)
Karmaşık Güvenlik Duvarı (UFW), Linux’ta IP tabanlı güvenlik duvarı yönetimi için tasarlanmış kullanıcı dostu bir araçtır. Temel olarak iptables’ın karmaşık konfigürasyonunu basitleştiren bir arayüz olarak görülebilir. Özellikle Ubuntu ve benzeri dağıtımlarda popülerdir. Basit sözdizimi sayesinde kullanıcılar ağ trafiğini kolayca kontrol edebilir, belirli bağlantı noktalarını açabilir veya kapatabilir ve belirli IP adresleri veya IP aralıkları için izinleri ayarlayabilir. Güçlü ve esnek olmasına rağmen UFW’nin amacı, güvenlik duvarı yapılandırmasını daha anlaşılır ve erişilebilir hale getirmektir.
UFW’nin grafik arayüzü varsayılan olarak kurulmayabilir. Kurulum için aşağıdaki komut kullanılabilir:
Komut : “sudo apt install gufw -y”
Daha sonra “gufw” uygulamasını açıp kullanabilirsiniz.
“gufw” uygulamasının varsayılan arayüzü aşağıdaki gibidir:
“gufw” uygulama arayüzünden kural eklemek için “Kurallar” sekmesini açın, “+” butonuna tıklayın ve ilgili kural detaylarını girdikten sonra son olarak “Ekle” butonuna tıklayın.
Ufw’nin kullanım örnekleri aşağıdaki gibidir:
Bu tablo UFW kullanılarak yapılabilecek temel işlemleri özetlemektedir. Daha karmaşık konfigürasyonlar ve özellikler için UFW ana sayfasını veya belgelerini inceleyebilirsiniz.