Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | Linux Dosya ve Dizin Güvenliği

Linux Dosya ve Dizin Güvenliği

Linux Sistem Sıkılaştırması ve Linux Sistem Güvenliği’nde öncelik vermemiz konularda birisi de Linux Dosya ve Dizin Güvenliği’dir.

Windows işletim sistemi, hepimizin bildiği üzere Linux’a göre daha çok son kullanıcıya yöneliktir. Sıradan bir kullanıcı bile bir çok dosyaya erişim sağlayabilmekte, bilgileri okuyabilmektedir. Dosya izin ve güvenliği Windows işletim sisteminde oldukça geri plandadır. Windows işletim sistemi üzerindeki bu rahatlık güvenlik konusunda Linux’un yaygınlaşmasına katkıda bulunmuştur denebilir. Linux çok daha kararlı ve güvenilir bir işletim sistemidir.

Dosya ve Dizinlerdeki Erişim Hakları

Erişim haklarına linux dosya güvenliğinin en kritik noktası diyebiliriz. Her dosyaya ayrı ayrı verilen bu erişim hakları sayesinde çok daha rahat ve güvenli bir şekilde linux sistem yönetimi sağlanmaktadır. Her dosyanın başlangıçta Linux tarafından belirlenen ön tanımlı izin hakları vardır. Hem bu ön tanımlı izinleri hemde daha sonraki süreçte tüm bu erişim/yetki hakları değiştirilebilir.

Her dosyanın bir sahibi, bir grubu ve çeşitli izin hakları bulunmaktadır. Dosyanın üzerinde hangi işlemlerin yapılabileceğine ancak o dosyaya sahip olan kullanıcı karar vermektedir. Tüm erişim hakları “dosya sahibi – dosyanın hangi gruba dahil olduğu – diğerleri” olarak belirlenir.

Tüm bu izinler ve erişim hakları dosyalarda olduğunu gibi, dizinlerde de geçerlidir.

Erişim hakları üç farklı şekilde karşımıza çıkmaktadır.

Okuma izni:

  • Eğer bir dosyanın okuma izni var ise dosyanın içeriği okunabilir.
  • Eğer bir dizinin okuma izni var ise dizin içeriği görüntülenebilir.
  • İki durum için izin yok ise de iki durum da olumsuz sonuçlanmış olur.

 

Yazma izni:

  • Eğer bir dosyanın yazma izni var ise dosyanın içeriğini değiştirebilir, silebilirsiniz.
  • Bir dizinin yazma izni var ise, dizin içerisinde dosya oluşturma, değiştirme veya silme işlemleri yapılabilir.
  • İzinler yoksa yine tüm durumlar olumsuz sonuçlanmış olur.

 

Çalıştırma(Derleme) izni:

  • Dosyalardaki çalıştırma izni, o dosyanın çalıştırılabilir olduğu anlamına gelmektedir.
  • Dizinlerdeki çalıştırma izni ise o dizin içerisindeki dosyaların görüntülenebilir ve dosya içerisine erişilebilir olduğu anlamına gelmektedir.
  • İzinler yoksa yine tüm durumlar olumsuz sonuçlanmış olur.

 

Dikkat edilmesi gereken en kritik konu sistem yöneticisinin konuya hakim olması ve tüm erişim haklarını oldukça özenle düzenlemelidir.

Temel olarak konu hakkında bilgi edindikten sonra yavaş yavaş uygulama yapmaya başlayalım.

ls -al  komutunu kullanırsak, bulunduğumuz dizindeki tüm (gizli dosyalar dahil) dosyaları liste halinde görüntülemiş oluruz.

linux-dosya-ve-dizi-güvenliği-1

Yukarıda bulunduğumuz dizindeki her bir dosya liste halinde görüntülenmektedir. Her bir dosya ile ilgili ayrıntılı bilgiler de bulunmaktadır.

Screen Shot 2016-08-10 at 13.14.24

Açıklamada da görüldüğü gibi kullanıcı yetkileri için 2. alan üzerine yoğunlaşmamız gerekmektedir. İkinci alanda bulunan harfler: rwxrw-r–

İkinci kısım yukarıda görüldüğü gibi 9 karakter uzunluğundadır. Bu 9 karakterin ilk üç tanesi dosya sahibinin yetkilerini gösterir, ikinci üç tanesi dosyanın dahil olduğunu grubun yetkilerini gösterir, en sonraki üç karakter ise diğer tüm kullanıcıların yetkilerini gösterir.

rwx: dosya sahibinin yetkileri. Anlamı; Dosya sahibi dosyayı okuyabilir, dosyada değişiklik yapabilir ve dosyayı çalıştırabilir.

rw-: dosyanın dahil olduğu grubun yetkileri. Anlamı, dosya okunabilir, dosyada değişiklik yapılabilir ama dosya çalıştırılamaz.

r–: diğer tüm kullanıcıların yetkileri. Anlamı, dosya okunabilir ama dosyada değişiklik yapılamaz ve çalıştırılamaz.

 

Dosya Yetkilerinin Değiştirilmesi

Dosya yetkilerini değiştirmek için chmod  komutunu kullanmamız gerekmektedir. Bu komutu kullanırken aynı zamanda bilmemiz gereken değişkenler:

+: Yetki eklemek için kullanılır.

-: Yetki çıkarmak için kullanılır.

=: Yetkiyi direk verilen değerler gibi yapar. (örnek kullanım ve açıklama aşağıda vardır)

u: Dosya sahibini belirtir.

g: Dosyanın dahil olduğu grubu belirtir.

o: Diğer kullanıcıları belirtir.

Birkaç örnek yapalım:

Screen Shot 2016-08-10 at 13.51.09

Resimde deneme.txt dosyasının yetkilerini görüyoruz. İlk önce tüm kullanıcılarda (dosya sahibi, dahil olduğu grup ve diğer kullanıcılar) “çalıştırılabilir”(r) yetkisinin bulunduğunu görüyoruz. Ardından chmod -r deneme.txt  komutu ile tüm kullanıcılardan “okuma” yetkisini “-” işareti ile çıkarmış olduk. Herhangi bir kullanıcıyı özel olarak belirtmediğimiz için yetki tüm kullanıcı ve gruplardan çıkarıldı.

Bir örnek daha yapalım ve bu sefer sadece dosya sahibineokuma” yetkisini “ekleyelim”.

Screen Shot 2016-08-10 at 14.00.06

 

 

 

Son örnek olarak dosyanın dahil olduğu grubun yetkilerini sadece çalıştırılabilir yapmak istersek, bazı yetkileri eklemek çıkarmak yerine direk “=  işaretini kullanarak doğrudan istediğimiz yetkileri atamış oluruz.

Screen Shot 2016-08-10 at 14.29.39

 

 

 

Örneklerde de görüldüğü herhangi dosya yada dizine; gerek istediğimiz kullanıcı yada gruplara gerek de tüm hepsine birden “+”,“-“ veya “=” kısayolları ile “okunabilir”, “yazılabilir” ve “çalıştırılabilir” yetkilerini gerekli kısayollar ile ekleyebilir çıkarabilir yada eşitleyebiliriz.

 

Kullanıcı yetkilerini sadece sembolik gösterim(rwx) ile yapmak zorunda değiliz. Dilersek ikili(binary) yada sekizlik(octal) gösterimleri de kullanabiliriz. Küçük bir tablo ile özetlemek gerekirse:

Screen Shot 2016-08-10 at 14.13.10

 

 

 

 

Pratik bir kullanım olduğu için sekizlik gösterim ile ilgili bir kaç örnek yapalım.

Screen Shot 2016-08-10 at 14.23.45

 

 

 

 

 

Örnek olarak kullanıcıya tüm yetkileri verelim, dahil olunan gruba sadece okuma ve yazma son olarak diğer kullanıcılara sadece okuma izni verelim. Bunu sembolik gösterim ile yapmak istersek: chmod u=rwx,g=rw,o=r deneme.txt  komutunu kullanmamız gerekmektedir ve görüldüğü gibi pek de pratik değil. Onun yerine örnektede de görüldüğü gibi daha pratik bir yöntem kullanabiliriz.

Screen Shot 2016-08-10 at 14.38.11

 

 

Tam olarak istediğimiz sonucu daha hızlı bir şekilde elde etmiş olduk.

UMASK(Ön tanımlı yetkiler)

Linux sistemlerde her dosya ve dizinin ön tanımlı izinlerinin olduğundan bahsetmiştik. Bir sistemde ön tanımlı olarak değerin ne olduğunu öğrenmek için umask komutunu kullanıyoruz. Genelde o değer 0022 olarak gelir.

Screen Shot 2016-08-10 at 16.22.40

 

 

Bu gelen sayıyı anlamı şudur: dizin taban izninden, umask değeri çıkarılır ve dosya iznini bulmuş oluruz.

666 – 022= 644 bizim bundan sonra oluşturulacak dosyalarımızın yetkisini belirlemiş olur. Bunu örnekle göstermek gerekirse:

Screen Shot 2016-08-10 at 16.38.22

 

 

Eğer default umask değerini değiştirmek istersek debian tabanlı sistemlerde .bashrc, diğer linux dağıtımlarında /etc/profile dosyasını düzenleyebilirsiniz.

Screen Shot 2016-08-10 at 16.30.05  

bu değişiklikten sonra, tekrardan umask değerine bakmak gerekirse:

Screen Shot 2016-08-10 at 16.31.39

Gerekli değişikliğin gerçekleştiğini görürüz ve bundan sonra oluşturacağımız dosyalar bu değişiklikten etkilenecektir. Örn:

Screen Shot 2016-08-10 at 16.37.41

Dosyanın Sahibinin ve Grubunun değiştirilmesi

Daha önce de görmüş olduğumuz gibi Linux işletim sistemlerinde her dosya ve dizinin bir sahibi ve grubu vardır. Şimdiye kadar yaptığımız yetki işlemlerini dosya sahibi, grubu ve diğer kullanıcılar için yapmıştır. Bu başlık altında da dosyanın sahibinin ve grubunun değiştirilmesinden bahsedeceğiz.

Linux işletim sistemlerinde bir dosyanın sahibi değiştirmek için chown komutunu kullanırız. Komutu kullanırken yeni kullanıcıyı ve dosyayı da belirtmemiz gerekmektedir. Örnek olarak deneme.txt dosyasının sahipliğini “root” kullanıcısından “cypm” kullanıcısına taşıyalım.

Screen Shot 2016-08-10 at 15.41.19

 

 

 

Resimde görüldüğü gibi dosyanın sahiplik bilgilerini değiştirmiş olduk. Yine çok benzer bi komut olan chgrp komutu da dosyanın grup bilgilerini değiştirmemize yaramaktadır.

Screen Shot 2016-08-10 at 15.48.00

 

 

Örnekte deneme.txt dosyasının grup bilgisini “cypm” olarak değiştirdik.

Tüm bu güzelliklerin yanında bazı kişilere göre linux işletim sistemlerinde şöyle bir tehlike bulunmaktadır. Yetkili kullanıcıların (genelde root olan kullanıcılar), yetkilerini kötüye kullanarak normal kullanıcıların kişisel dosyalarına erişim sağlayabilmesidir. Herşeye yetkisi olan bir kullanıcı yada hiyerarşik kullanıcı sistemi: sistem kararlılığı için çok gerekli bir durum iken, bu gibi durumlarda da zayıf nokta haline gelebilmektedir.