Hoşgeldin Misafir

Debian'da sudoers dosyası güvenliği

DevilMcRayn

20 Kas 2017
665 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:

Merhabalar bu yazımızda Lojistik grup adına Debian'da sudoers dosyası güvenliği Hakkında bilgileri siz değerli Turkhacks üyelerimize Anlatmaya çalışacaz.

Sudoers dosyası öncelikle sistem yöneticilerinin yönetmesi içindir ve yeni başlayanlar için biraz göz korkutucu olabilir. Bunun sizi yıldırmasına izin vermeyin! Sabır ve ayrıntılara dikkat ile herkes sudoers dosyasını etkili bir şekilde yönetmeyi öğrenebilir.

Bu kılavuz size sudoer'ları nasıl düzenleyeceğinizi ve kullanıcılara güvenli bir şekilde yükseltilmiş ayrıcalıklar nasıl vereceğinizi öğretecektir. Ayrıca sudoer'larla çalışırken aklınızda bulundurmanız gereken bazı en iyi uygulamaları da öğreneceksiniz. Hiçbir yere gitmeyin; Linux kullanıcı ayrıcalıkları yönetiminizi bir üst seviyeye taşımaya hazır olun!

Ön koşullar

Bu eğitim uygulamalı bir gösteri olacak. Takip etmek isterseniz, kullanabileceğiniz normal bir kullanıcı hesabına sahip bir Linux sisteminiz olduğundan emin olun. Bu kılavuz bir Ubuntu 20.04 sistemi kullanır, ancak diğer herhangi bir Linux dağıtımı da işe yarayabilir.

Linux Sudoers Dosyası Genel Bakışı

Sudoers dosyası, bir kullanıcının sudo komutunu çalıştırdığında hangi ayrıcalıkları elde edeceğine dair politikaları içeren düz metin dosyası olan /etc/sudoers'da bulunur. Daha fazla ilerlemeden önce, sudoers dosyasının varsayılan içerikleri ve bölümleriyle tanışmanız önemlidir.


Aşağıdaki ekran görüntüsü Ubuntu 20.04'teki varsayılan sudoers dosyası içeriğini göstermektedir. Sudoers dosyasının varsayılan içeriği Linux dağıtımları arasında farklılık gösterebilir.

Varsayılan sudoers dosyası
Varsayılan sudoers dosyası
Aşağıda sudoers dosyasındaki bölümlerin kısa bir özeti yer almaktadır.

Varsayılanlar Bölümü

image-825.png


Sudoers dosya Varsayılanları girişleri
  • Defaults env_reset - Executing commands with sudo creates a new environment with minimal or default environment variables. In most Linux distros, sudo will load the environment variable in the /etc/environment file.
  • Varsayılan mail_badpass – Bu satır, bir kullanıcı sudo ile yanlış bir parola girdiğinde kök dizine bir e-posta gönderilmesini tetikler.
  • Defaults secure_path - This line defines the PATH environment variable that sudo uses instead of the user’s PATH environment.

Kullanıcı ve Grup Sudo Ayrıcalıkları

Bu satır belirli kullanıcılar veya grup üyeleri için sudo ayrıcalıklarını tanımlar.

Sudoers dosya ayrıcalık politikaları


Sudoers dosya ayrıcalık politikaları
Not: Baştaki %, politikanın grup üyelerine uygulandığını belirtir.
  • İlk alan, politikasının kullanıcıya rootve adminve sudogruplarındaki üyelere uygulanacağını tanımlar.
  • Birincisi, ALLkuralın tüm sunucular için geçerli olduğu anlamına gelir.
  • İkincisi, hesabın herhangi bir kullanıcı gibi komut çalıştırmasına ALLizin verir .root
  • Üçüncüsü, hesabın herhangi bir grup olarak komut çalıştırmasına ALLizin verir .root
  • Sonuncusu, ALLbu politikanın emir komuta zincirine uygulandığı anlamına gelir.

Yönergeleri Dahil Et

Dosyanın sonunda yorum gibi görünen ama yorum olmayan bir satır göreceksiniz. #include ve #includedir ile başlayan satırlara include yönergeleri denir .

Sudoers dosyaları #include yönergeleri


Sudoers dosyaları #include yönergeleri
#includedir /etc/sudoers.d – Bu satır, sudo'ya ek yapılandırma dosyaları için /etc/sudoers.d dizinine bakmasını söyler .

Sudoers Dosyasını Doğru Araçla Düzenleme

Sudoers dosyası, tercih ettiğiniz metin düzenleyicisiyle açabileceğiniz düz metin dosyasıdır; ancak bunu yapmanız önerilmez. Neden? Çünkü sudoers dosyasının içerikleri belirli bir sözdizimini takip eder, normal bir metin düzenleyicinin sudoers dosyasını bozmanızı engelleyecek hiçbir koruması yoktur.

Uygunsuz yapılandırma güvenlik sorunlarına yol açabilir; daha da kötüsü, her kullanıcı ayrıcalıklarını yükseltme yeteneğini kaybedebilir.
Doğru araç hangisidir? — visudo. Bu araç sudoers dosyasını varsayılan metin düzenleyicide açar. Ek olarak, visudoeş zamanlı düzenlemeyi engeller ve çıkmadan önce hata denetimi gerçekleştirir.

Ubuntu 20.04'te varsayılan düzenleyici 'dir , ancak isterseniz vimalternatif bir düzenleyici, örneğin , ayarlayabilirsiniz .nano

1. Linux makinenizde bir terminal oturumu açın veya SSH bağlantısı kurun.
2. Bilgisayarınızda bulunan metin editörlerini listelemek için aşağıdaki komutu çalıştırın.

sudo update-alternatives --config editor
Gördüğünüz gibi, geçerli varsayılan düzenleyici seçim 5'tir, yani vim'dir. Varsayılanı tutmayı tercih ederseniz, Enter'a basın. Başka bir düzenleyiciyi tercih ederseniz, nano için 0 gibi karşılık gelen seçim numarasına basın ve Enter'a basın.

Varsayılan sudoers dosya düzenleyicisini ayarlama


Varsayılan sudoers dosya düzenleyicisini ayarlama
3. Şimdi, sudoers dosyasını varsayılan düzenleyicide açmak için aşağıdaki komutu çalıştırın.

sudo visudo
sudoers dosyası başka bir oturumda açıksa, aşağıdaki hatayı göreceksiniz ve visudo dosyayı açmanızı engelleyecektir. Bu şekilde, iki kullanıcı aynı anda çakışan değişiklikler yapamaz.
visudo: /etc/sudoers meşgul, daha sonra tekrar deneyin
4. sudoers dosyası açıldıktan sonra, ALL ifadesinin son örneğini silerek kasıtlı olarak bir sözdizimi hatası oluşturun , ardından kaydedip düzenleyiciden çıkın.

Sudoers dosyasını düzenleyerek sözdizimi hatasına neden oluyor


Sudoers dosyasını düzenleyerek sözdizimi hatasına neden oluyor
5.visudo will warn you that there’s a syntax error and asks, “What now?”. At this point, you have three options.

  • Dosyayı yeniden düzenlemek için yazın eve Enter'a basın. Bu seçenek, sudoers dosyasını düzenleyicide tekrar düzeltmenize olanak tanır.
  • xDeğişiklikleri iptal edip çıkmak için yazıp Enter'a basın visudo.
  • Q yazın, hatayı yok saymak için Enter'a basın, sudoers dosyasını kaydedin ve visudo'dan çıkın. Sonuçlardan emin değilseniz bu seçeneği seçmeyin.
Bu örnekte, değişiklikleri iptal etmek ve eski sudoers dosya içeriğini korumak için x'e basın.

Visudo sudoers dosya sözdizimi hatasının işlenmesi


Visudo sudoers dosya sözdizimi hatasının işlenmesi
Gördüğünüz gibi sudoers dosyasını visudokalıcı olarak bozmak zor olacaktır.

Belirli Ayrıcalıkların Verilmesi

Doğrudan sudoers dosyasında değişiklik yapmak yapılabilir ancak politikalar ve kurallar büyüdükçe yönetilemez hale gelebilir. Daha iyi alternatif, bunun yerine include yönergelerini kullanmaktır. Bu şekilde, farklı özel politikalar ve kurallar içeren birden fazla yapılandırma dosyası oluşturabilirsiniz.

Belirli ağ komutlarını root olarak çalıştırmak üzere bir kullanıcı grubu vermek istediğinizi varsayalım. Bunu yapmak için, /etc/sudoers.d dizininde o grup için özel kuralları içeren bir dosya oluşturmanız gerekir.

1. İlk olarak, özel kuralın hedefi olacak grubu oluşturun. Bu örnekte, grubun adı netadmin'dir.

sudo addgroup netadmin
netyönetici


netyönetici

2. Daha sonra normal kullanıcı hesabı oluşturup bunu netadmin grubunun üyesi yapın.

sudo adduser ata
sudo usermod -aG netadmin ata
id ata

Yeni bir normal kullanıcı oluşturma ve onu netadmin grubunun bir üyesi olarak ekleme


Yeni bir normal kullanıcı oluşturma ve onu netadmin grubunun bir üyesi olarak ekleme
3. Şimdi /etc/sudoers.d/networking adında yeni bir sudoers dosyası oluşturun ve visudo ile açın.

sudo visudo -f /etc/sudoers.d/networking
4. Aşağıdaki satırları ağ dosyasına kopyalayıp yapıştırın .

Cmnd_Alias CAPTURE = /usr/sbin/tcpdump
Cmnd_Alias SERVERS = /usr/sbin/apache2ctl, /usr/bin/htpasswd
Cmnd_Alias NETALL = CAPTURE, SERVERS
%netadmin ALL=NETALL


Cmnd_Alias satırları komutlar için takma adlar oluşturuyor. Bu örnekte, tcpdump komutu için CAPTURE ve apache2ctl ve htpasswd komutları için SERVERS takma adını atarsınız. Bu satırları komutları bir araya toplayan ve onlara toplu bir ad veren satırlar olarak düşünün.

Son satır, netadmin grubunun üyelerinin NETALL takma adındaki herhangi bir komutu root olarak çalıştırabileceğini belirtir. Bu satır Cmnd_Alias satırlarından sonra gelmelidir.

İşiniz bittiğinde ağ dosyasını kaydedip kapatın.


İşiniz bittiğinde dosyasını kaydedip kapatın .
5. Ata hesabının sudo ayrıcalıklarını test etmek için ata kullanıcı hesabına geçin.

su - ata

Kullanıcı hesaplarının değiştirilmesi


Kullanıcı hesaplarının değiştirilmesi
6. Şimdi kullanıcının sudo erişimine sahip olduğu tcpdump gibi komutlardan birini çalıştırın.

sudo tcpdump -c 5
Aşağıda görebileceğiniz gibi, sudo komutu çalışmalıdır çünkü hesabın onu çalıştırma yetkisi vardır.

Sudo erişimini deniyorum


Sudo erişimini deniyorum

7. Daha sonra hesabın lshw gibi özel kuralda olmayan başka komutları çalıştıramadığını test edin ve onaylayın.

sudo lshw
Sonuç olarak, hesabınızın komutu root olarak çalıştırma ayrıcalığına sahip olmaması nedeniyle sudo girişimi başarısız olur.

sudo başarısız oldu


sudo başarısız oldu
8. Son olarak aşağıdaki komutu çalıştırarak hesabınıza geri dönün.

exit

passwd_tries Seçeneğini Kullanarak Güvenliği Güçlendirme​

Kimsenin istediği kadar sudo ile yanlış bir parola girmesine izin veremezsiniz; bu, kaba kuvvet veya parola püskürtme saldırıları için açık bir davet olurdu. Önleyici bir tedbir olarak, sudoers dosyasının içine passwd_tries seçeneğini ekleyerek maksimum yeniden deneme sayısını ayarlamalısınız.

1. İlk olarak visudo ile özel sudoers dosyasını açın.

sudo visudo -f /etc/sudoers.d/networking

2. Aşağıdaki satırı sudoers dosyasının sonuna ekleyin. Bu satır, daha fazla girişimi engellemeden önce en fazla dört hatalı sudo parolası girişimine izin verecektir.

Defaults passwd_tries=4
Özel sudoers dosyaları artık aşağıdaki ekran görüntüsündeki gibi görünmelidir. Dosyayı kaydettiğinizden ve düzenleyiciden çıktığınızdan emin olun.

passwrd_tries seçeneğinin eklenmesi


passwrd_tries seçeneğinin eklenmesi
3. Şimdi, ata kullanıcı hesabına geçin ve tcpdump komutunu root olarak tekrar çalıştırın. Ancak bu sefer, parola istemi sona erene kadar yanlış bir parola girin.

sudo tcpdump
Dördüncü yanlış şifre denemenizden sonra sudo'nun beşinci kez şifre girmenizi engellediğini görüyorsunuz.

Hatalı sudo parola denemelerini sınırlama
Hatalı sudo parola denemelerini sınırlama

Çözüm​

Bu eğitimde, varsayılan sudoers dosyasının temellerini öğrendiniz. Özel ayrıcalıklar vermek için ayrı bir sudoers dosyasında özel kurallar oluşturdunuz. Özel kurallar oluşturmak ve uygulamak, gruba kullanıcı eklemekten daha güvenlidir sudo.

Ayrıca, sudo kimlik doğrulama girişimini sonlandırmadan önce bir kullanıcının kaç tane yanlış parola denemesi yapabileceğini belirtmek için passwd_tries seçeneğini nasıl uygulayacağınızı öğrendiniz. Hangi kullanıcıların hangi komutlara erişebileceğini ayrıntılı olarak kontrol edebilirsiniz.

Burada durmayın! sudoers dosyasıyla çok daha fazlasını yapabilirsiniz, örneğin kullanıcı sudo deneyimini renklendirmek için bir ders dosyası ekleyebilirsiniz . Okuduğunuz için teşekkürler ve Linux sisteminizi güvence altına almanın tadını çıkarın!

LOJİSTİK TİM SUNDU

btn1pyf.png
 
Son düzenleme: