Merhabalar,
Bu kısa makalemde, linux sunucularda güvenlik iyileştirmesi kapsamında sınıflandırılabilecek ve oldukça yararlı olacağını düşündüğüm bir konuyu aktarmaya çalışacağım.
Linux konusunda birçok makalem var. Bu makalelerin bir kısmı, sistemler üzerindeki root kullanıcı password resetlemeyle de ilgili. Çeşitli versiyonlarda bu işlemin nasıl yapılabileceğini aktarmıştım. Bu işlemler yapılırken, özellikle RedHat tabanlı sistemlerde (RedHat-CentOS-Rocky-Alma Linux) kernel parametrelerini düzenleyerek gerçekleştirilebiliyordu…
Böylece, sunucuya fiziksel erişimi olan herkes, single-user mode’da (tek kullanıcı modunda) oturum açabilir ve gerektiğinde sistem ayarlarını değiştirebilir. Bu anlamda baktığınızda, bu parametrelerin düzenlenebiliyor olması da bir güvenlik açığı değil midir? Unutulan root password’ler için yararlı olabiliyorken, bu açıdan baktığımızda ise güvenlik açığı oluşturmakta. Elbette ki bu konu, sizin kendi ortamınız için değerlendireceğiniz bir konudur.
İşte bu makalede, GRUB menüye yetkisiz erişimleri de engellemek için nasıl parola verilebileceğini inceleyeceğiz. Özellikle, GRand Unified Bootloader (GRUB) nedir tanımını yapmıyorum, zira Unix benzeri tüm işletim sistemlerinde varsayılan bir ön yükleyici olduğunu az çok biliyorsunuzdur.
Şimdi bahsettiğim bu konuyu, örneklerle açıklayayım.
Sistemi reboot ettiğinizde, sunucuya fiziksel erişiminiz varsa, boot aşamasında herhangi bir tuşa bastığınızda aşağıdaki menü karşınıza gelmektedir.
İşte bu menü, GRUB menüdür. İlgili kernel seçiliyken “e“ tuşuna basarsanız, aşağıdaki gibi kernel parametrelerine ulaşabiliyor, sistem ayarlarında düzenlemeler yapabiliyor ve her kullanıcının şifresini değiştirebiliyorsunuz. Bu nedenle, bu tür yetkisiz kişilerin sisteme erişmesini önlemek için parola korumalı GRUB’a sahip olmak yararlı olabilir.
İşte bu duruma engel olmak için çok basit bir ayar yapacağız ve “e” tuşuna basıldığında password sorulmasını sağlayacağız.
Şifreleme işlemine başlayalım.
Kullandığım sistem CentOS muadili olan Rocky Linux. Redhat tabanlı tüm sistemlerde bu makaleyi uygulayabilirsiniz.
GRUB Önyükleyici Parolası Oluşturma
Aşağıdaki komutla, GRUB için password belirliyoruz.
grub2-setpassword
Bu komut, /boot/grub2/user.cfg dosyasında hash’lenmiş bir GRUB önyükleyici password oluşturur. Aşağıdaki komutla bu dosya içeriğini görebiliriz.
cat /boot/grub2/user.cfg
GRUB Yapılandırma Dosyasını Yeniden Düzenleme
GRUB parolasını oluşturduktan sonra aşağıdaki komutla, yeni GRUB yapılandırma dosyasını yeniden oluşturmamız gerekiyor.
grub2-mkconfig -o /boot/grub2/grub.cfg
İşlemimiz tamamlandı. Bu komut, konfigürasyon dosyasında GRUB parolasını ayarlamış oldu. Şimdi sistemi yeniden başlatın ve yeni GRUB şifresinin doğru ayarlanıp ayarlanmadığını kontrol edin.
reboot
GRUB Parola Korumasını Test Etme
Reboot sonrası sistem açılırken hemen test işlemini de yapalım. GRUB menü karşımıza geldiğinde, e tuşuna basalım ve kernel parametrelerine giriş yapmayı deneyelim.
Username ve password bilgileri soruldu. Az önce belirlediğimiz parolayı giriyoruz.
Password doğruysa aşağıdaki gibi düzenleme satırlarına giriş yapabiliyorsunuz.
Tüm kernel versiyonları için bu koruma geçerli olacaktır. Başka bir kernel için aynı işlemi deniyorum ve sizlerin de görebilmesi için test ediyorum.
Bakınız burada da parola soruldu.
GRUB Önyükleyici Parola Korumasını Kaldırma
Eğer bu parola korumasını kaldırmak isterseniz, az önce gördüğünüz ve hash’lenerek oluşturulan /boot/grub2/user.cfg dosyasını silmeniz yeterlidir.
rm -rf /boot/grub2/user.cfg
Şimdi yine test edelim.
reboot
Parola korumasının iptal olduğunu görüyoruz.
Peki aklınıza şu da geliyordur : Eğer GRUB menu password de unutulursa ne yaparız? 🙂
Cevap basit…
Sunucu diskini çıkarıp, başka bir sisteme takarak bu diski mount edip, /boot/grub2/user.cfg dosyasını silmeniz, sonra tekrar sunucuya diski takmanız gerekiyor. İşler biraz uzuyor tabi ama sonuçta o durumun da çaresini bulabileceğinizi düşünüyorum. Başka bir makalede bunun da simülasyonunu yapabilirim talep olması halinde…
Yararlı olması dileğiyle.
Yusuf İşleyen