”Linux’da Güvenlik Nasıl İşler? (Konu: 5.0, 5.1, 5.2, 5.3)''

(Murat TİMUR) #1

02.09.2019

''İçerikdeki Konular:

5.0 Dosyalar ve Dosya Sistemi Güvenliği

5.1 Umask Ayarları

5.2 Dosya İzinleri

5.3 Bütünlük Denetimi

Dosyalar ve Dosya Sistemi Güvenliği:

Dosyalar ve Dosya Sistemi Güvenliği Sistemlerinizi ağa bağlamadan önce yapılacak bir kaç dakikalık hazırlık ve planlama, sistemlerinizin ve üzerlerinde saklanan verinin korunmasında yardımcı olabilir. Kullanıcıların, SUID/SGID programları ev dizinlerinden çalıştırmalarına izin vermek için herhangi bir sebep olmamalıdır. /etc/fstab dosyasında, root’tan başkalarının da yazma izninin olduğu disk bölümleri için nosuid seçeneğini kullanın. Ayrıca, kullanıcıların ev dizinlerinin bulunduğu bölümlerde, ve /var dizininde, program çalıştırılmasını ve karakter veya blok cihazların oluşturulmasını engellemek için (ne de olsa hiçbir zaman böyle bir şey gerekmeyecektir.) nodev ve noexec seçeneklerini kullanabilirsiniz. NFS kullanarak dosya sistemlerini dışarı açıyorsanız, /etc/exports dosyasında en fazla sınırlandırma sağlayan seçenekleri kullandığınızdan emin olun. Bu, gene karakter kullanılmaması, root kullanıcısına yazma izninin verilmemesi, ve mümkün olduğu yerlerde salt-okunur şekilde dışa açılması anlamına geliyor. Kullanıclarınızın dosya yaratma umask’ini mümkün olduğu kadar sınırlı tutun. Bkz. Umask Ayarları. Eğer, NFS gibi bir ağ dosya sistemini kullanarak dosya sistemlerini bağlıyorsanız,/etc/exports dosyasında uygun sınırlama ayarlarını yaptığınızdan emin olun. Tipik olarak, nodev, nosuid, ve belki de noexec gerekli olanlardır. Dosya sistemlerinin sınırları belirleyin, varsayılan unlimited ayarına izin vermeyin. Kullanıcı bazındaki sınırları, kaynak-limitleri PAM modülünü kullanarak, ve/etc/pam. /limits.conf dosyasındaki ayarlar aracılığı ile yapabilirsiniz. Örneğin, users grubu için sınırlar şu şekilde olabilir:

Umask Ayarları:

root# find / -type f ( -perm -04000 -o -perm -02000 )Debian dağıtımı, hangi SUID programlarının bulunduğunu belirlemek için her gece bir iş çalıştırır. Daha sonra bunu bir önceki gece ile karşılaştırır. Bu günlük için/var/log/setuid* dosyalarına bakabilirsiniz. Şüpheli bir programdaki SUID ve SGID erişim izinlerini chmod ile kaldırabilir, daha sonra mutlak şekilde gerektiğini hissederseniz tekrar yerine koyabilirsiniz. Herkes tarafından yazılabilir dosyalar, özellikle sistem dosyaları, bir korsan sisteminize erişir ve üzerlerinde değişiklik yaparsa bir güvenlik açığı haline gelebilir. Ayrıca herkes tarafından yazılabilir dizinler de tehlikelidir, çünkü bir korsanın istediği gibi dosya ekleme ve silmesine izin verir. Sisteminizdeki herkes tarafından yazılabilen dosyaları bulmak için, aşağıdaki komutu kullanın: root# find / -perm -2 ! -type l -lsve bu dosyaların neden yazılabilir olduklarını bildiğinizden emin olun. Normal işlevler sırasında, herkes tarafından yazılabilir bir takım dosyalar bulunur, bunlar arasında /dev dizinindekiler ve simgesel bağlar da vardır. Bu nedenle yukarıdaki find komutunda simgesel bağları dışarıda bırakan ! -type l seçeneğini kullandık. Sahipsiz dosyalar da bir saldırganın sisteminize eriştiğinin bir göstergesi olabilir. Sahibi olmayan veya hiçbir gruba ait olmayan dosyaları aşağıdaki komut ile bulabilirsiniz:

root# find / ( -nouser -o -nogroup ) -print rhosts dosyalarına sisteminiz üzerinde izin vermemelisiniz, dolayısıyla sistem üzerindeki bu dosyaların bulunması düzenli yönetim görevlerinizin bir parçası olmalı. Unutmayın, bir korsan bütün ağınıza erişebilmek için sadece bir güvensiz hesaba gereksinim duyar. Aşağıdaki komutla sistem üzerindeki tüm .rhosts dosyalarını bulabilirsiniz: root# find /home -name .rhosts -print Son olarak, herhangi bir sistem dosyası üzerindeki erişim izinlerini değiştirmeden önce, ne yaptığınızı anladığınızdan emin olun. Sadece bazı işlerin daha kolay olduğunu düşündüğünüz için bir dosyanın erişim izinlerini değiştirmeyin. Daima değiştirmeden önce neden o dosyanın o izinlere sahip olduğunu belirleyin. Umask Ayarları The umask komutu, sistem üzerinde varsayılan dosya yaratma kipini belirlemek amacıyla kullanılabilir. İstenen dosya kipinin sekizli sayı düzeninde tümleyicisidir.

Eğer dosyalar, erişim ayarlarına bakmaksızın oluşturulursa, kullanıcı dikkatsizce, okuma veya yazma izni olmaması gereken birine bu izinleri verebilir. Tipik umask ayarları, 022, 027, ve 077 (en fazla sınırlama budur.) ayarlarıdır. Normal olarak, umask /etc/profile dosyasında belirlenir, dolayısıyla bütün kullanıcılar için geçerlidir. Ortaya çıkan izin şu şekilde hesaplanabilir: kullanıcı/grup/diğerleri için olan varsayılan izin (dizinler için 7, dosyalar için 6), umask’in mantıksal değimi ile bit bazında VE mantıksal işlemine sokulur. Örnek 1:dosya, varsayılan 6, ikili : 110 umask, (örn. 2): 010, DEĞİL: 101 ortaya çıkan izin, VE: 100 (eşittir 4, r__)

Özet

Dosya İzinleri:

Sistem dosyalarınızın, kullanıcılar tarafından, ve sistem dosyalarının bakımından sorumlu olmayan kişiler tarafından açılmadığını garanti altına almak önemlidir. Unix, dosya ve dizinlerdeki erişim denetiminde üç ayrı özelliğe göre sağlar: sahip, grup, ve diğer. Bir dosyanın her zaman bir sahibi ve grubu vardır, geriye kalan herkes “diğer” özelliğine sahiptir. Unix izinlerini kısaca açıklayacak olursak: Sahiplik hangi kullanıcı(lar) ve grup(lar), dosyanın (veya dizin/üst dizinin) izin haklarını denetim altında tutuyor? İzinler kimi erişim tiplerine müsade etmek için 1 veya 0 olabilen bitler. Dosyaların izinleri, dizinlerinkinden farklı anlamlar taşır. Okuma: Dosyanın içeriğini görebilme Dizini okuyabilme. Yazma Bir dosya üzerinde değişiklik veya ekleme yapabilme.

Bütünlük Denetimi:

Yerel (ve ağ) saldırılarını ortaya çıkarmanın çok iyi bir yolu da bir bütünlük denetleyici, örneğin Tripwire, Aide veya Osiris. gibi bir program çalıştırmaktır. Bu bütünlük denetleyiciler, bütün önemli ikili dosyalarınızın üzerinde bir sağlama toplamı hesaplar, ve dosyalar iyi durumda olduklarında ki toplamlarla karşılaştırır. Sonuç olarak, dosyalardaki değişiklikler farkedilebilir. Bu tür programları bir diskete kurmak, ve disketin yazma korumasını kapatmak iyi bir fikirdir. Bu yolla saldırganlar bütünlük denetleyicisinin kendisini veya veritabanını kurcalayamazlar. Bir kere bunun gibi bir düzeneğiniz olduktan sonra, bu düzeneği normal yönetim görevleriniz arasında kullanmak, ve değişen bir şeyler olup olmadığını görmek de iyi bir fikirdir. Hatta, crontab 'a denetleyicinizin her gece disketten çalışması için bir girdi ekleyebilir, ve sabaha sonuçlarını gözden geçirebilirsiniz. Aşağıdaki gibi bir şey size her sabah 5:15’te bir raporu mektup olarak yollar:

# set mailto MAILTO=kevin # run Tripwire 15 05 root /usr/local/adm/tcheck/tripwire

Bütünlük denetleyicileri, aksi takdirde farkedilmesi zor olan saldırganları ortaya çıkarmak konusunda bir nimettir. Ortalama bir sistemde çok fazla dosya değiştiği için, hangisinin bir korsan tarafından, hanginizin kendiniz tarafından değiştirildiği konusunda dikkatli olmak zorundasınız.’’

Okuduğunuz İçin Teşekkür ederim.
Konuya gelecek ilgiye göre devamı gelecektir.

4 Likes

(system) kapatıldı #2

Bu konu son cevaptan 10 gün sonra otomatik olarak kapatıldı. Yeni cevap girilmesine izin verilmiyor.

0 Likes