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 Root Güvenliği

Merhabalar , bu yazımızda konumuz linux sistemlerin yöneticisi olan ROOT kullanıcı güvenliğidir.( Windows’da bu Administrator ) .

Root kullanıcı neden önemlidir ?

Root kullanıcı sistemde herşeye yetkisi olan kullanıcıdır.Diğer bir deyimle superuserdır. Ayrı bir parola ile korunabildiği gibi kurulum sırasında vermiş oldugunuz kullanıcı şifresiyle de korunabilir bu tamamen sizin konfigürasyonunuza bağlıdır.Linux’da default çoğu ayar root kullanıcısının iznine verilmiştir.Yani bizim normal kullanıcılarımız çoğu işlemi yapamazlar aslında.Örnek vermek gerekirse

sudo apt-get install python-setuptools

Yukarıda ki komutumuz python-setuptools kurmak içindir ve sudo ( superuser do ) superuser yap beni bebeğim ve şu programı kur demektir.

Evet çoğu ayar linux sistemlerde default olarak gelsede hardening kısmında bu ayarlar etkisiz kalabiliyor.

Örnek bir senaryo vermek gerekirse :

Sistemimize ulaşan bir hacker sudo ile bir işlem yapmak istediği zaman yetki yükseltme buglarından yararlanarak root olabilir ve

 rm -rf /

yaparak sistemimize ciddi ( !? ) hasar verebilir.Ama eğer gerekli önlemleri almış olabilseydik böyle birşey yapamayacaktı.

 

Yapabileceklerimiz

1-) Root kulllancısının shell kullanımını engellemek

Not:Bu işlem DdoS saldırılarında sunucunun fişini çekmekle aynı muameleyi görebilir.
Bunun için ( debian sistemlerde )

nano /etc/passwd

( ironik olarak bu değişim için root kullanıcısına ihtiyacımız var )
yazıp root kullanıcısının veya istediğiniz kullanıcının

son kısmında ki örnek bin/bash olan kısmı

/bin/false

yaparsanız ulaşamayacaktır.

RedHat de ise

/sbin/nologin

şeklinde olacak bir konfigürasyondur.

Selection_003

 

2-)SSH ile root kullanıcısına erişimi engellemek

Bunun için yine

nano /etc/ssh/sshd_config

şeklinde dosyamızı açıyoruz ve CTRL+W şeklinde arayabilirsiniz isterseniz PermitRootLogin değerini No yapıyoruz.

Selection_002

 

3-) Sudoers dosyası düzenlemek

 

Sudoers kullanıcılara komut bazlı filtreleme yapabileceğimiz bir alandır.Visudo harici düzenleme yapmaya kalkarsanız büyük ihtimal hatalara boğulacaksınızdır.O yüzden düzenleme yaparken visudo ile düzenleme yapınız.
Aslında en önemli kısımdır.

Örnek vermek gerekirse mesela bir kullanıcı grubuna bazı komutları engelleyelim.

%admin ( usergroup ) ALL(veya hostname yazabilirsiniz)=(root)NOPASSWD:/usr/bin/apt-get *

Yukarıda ki komutta admin grubunda ki herkese bu komutu kullanması için izin verdik.Bu sayede bu grup harici bu komutları kullanamayacaktır.
Eğer sadece 1 kullanıcıya izin vereceksek

%admin kısmını örnek olarak : 0x656e şeklinde değiştiriyoruz.

Peki ya bir kullanıcının bir programı kullanmasını engelleyeceğiz nasıl yapacağız ?

Mesela wget i engelleyelim.

 %admin ( grubumuzun adı ) ALL=ALL NOEXEC: /usr/bin/wget

 

4-)Bazı komutlarda root kullanıcısı istemek

Mesela bazı komutlar vardır her zaman çalıştırabiliriz ( istisnai lokasyonlar hariç ) örnek olarak rm komutu.Nedir bu komut ? Argüman olarak verdiğimiz klasörü ( -rf ) veya dosyayı siler.

Örnek bir senaryo üzerinden gidersek : web sitesini yapan yazılımcı arkadaş henüz geliştirirken rahat etmek amacıyla /var/www/html klasörünün chmod’unu 777 yapmıştır.Biz öyle birşey yapmalıyız ki bu klasörü root parolası olmadan silemesin ?

Yapmamız gereken şey terminale:

 whereis rm

yazıp rm executable dosyasının konumunu bulmak.

rm: /bin/rm /usr/share/man/man1/rm.1.gz

Bende böyle bir çıktı verdi.

Bu executable dosyanın chmod’unu 700 yapmamız gerekiyor.

sudo chmod 700 /bin/rm

Nurtopu gibi bir hacker savarımız oldu.

Selection_001

Not:İşletim sistemi değişikliğinden dolayı ss’lerde farklılıklar vardır.