
Bazı sunucularda root girişine izin verilebilir. ama bu güvenlik açısından çokta uygun bir hareket değildir. Neden kısmını şimdi inceleyelim. Sunucuma bağlanıyorum Sunucuya giriş yapan kişiler bunun haricinde şifre denemeleri hatalı kullanıcı adı veya hatalı şifre girişleri /var/log dizinindeki secure dosyasına kaydedilir.
# mc -e /var/log/secure
Bu dosyayı taradığımızda invalid user Failed password gibi kayıtların olduğunu görüyoruz işte bu kayıtlar bize sunucuya şifre ve kullanıcı kombinasyonu şeklinde denemeler yapıldığını gösteriyor. Bu şekilde kombinasyonlar deneyerek sunucuya sızmaya çalışma işlemine brute force diyoruz.
Bu bir saldırı tekniğidir. Ve eğerki biz root girişine izin veriyorsak ve her linux sunucusunda root kullanıcısının olduğunu düşünürsek saldırı yapan kişilerin kullanıcı adı aramadan direk şifre aramaya geçmesine izin vermiş olabiliriz.
İşte saldırı yapan kişiler ilk başta kullanıcı adını tayin etmesi gerektiğini düşünürsek hem kullanıcı adı hemde şifreyi bilmemeleri durumunda çok geniş bir kombinasyonla karşı karşıya kalırlar.
Bizde bu kombinasyon denemesi ile sunucumuza sızamayacaklarını düşünürsek ve şifremizin sadece sayılardan veya sadece harflerden oluşmayan karmaşık bir şifre olduğunu düşünürsek kendimizi daha güvenli hale getirebiliriz.
Hepsinden önce şifremizin sayı büyük küçük harf ve mümkünse noktalama işaretlerini içeriyor olması gerekir.
İşte kullanıcıların root la girişini engellemek için etc içindeki ssh içinde ki sshd_config dosyasını açıyorum
# mc -e sshd_config
Bu dosyada ssh bağlantı ile ilgili ayarlar yer alıyor. Benim için bu ayarlardan permit root login paremetresi ilgilendiriyor ki bu paremetre root girişine izin ver şeklindedir.
PermitRootLogin yes
Şu an yes olduğu için root girişi aktif durumda ben bunu no yaparak pasif hale getiriyor daha sonra bu dosyayı kaydediyorum. Dosyayı herhangi bir text editörle açabilirsiniz.
Root girişini kapattığımıza göre ki birazdan ssh ı tekrar başlatcaz. Root haricinde giriş yapabileceğimiz bir kullanıcıya ihtiyacımız var Bunun için useradd ile herhangi bir kullanıcı oluşturuyoruz.
# useradd art2
kullanıcıyı oluşturduk.
Bu kullanıcıyla giriş yapabilmek için Kulllanıcıya şifre tanımlamamız gerekiyor. Bunun için passwd komutunu kullanıyorum
# passwd art2
Kullanıcı eklemek için ise useradd komutunu kullanıştım passwd boşluk kullanıcı adı diyerek kullanıcıya şifre tanımlıyorum
# passwd art2
Changing password for user art2.
New UNIX password:
BAD PASSWORD: it is based on a directory word.
Retype new UNIX password.
passwd : all authentication tokens updated successfully
Şifreyi tanımladık. root girişinide kapattığımıza göre ssh ı tekrar başlatarak
# /etc/init.d/sshd restart
Stoping sshd: [ OK ]
Starting sshd: [ OK ]
yaptığımız ayarların aktif hale geçmesini sağlayabiliriz.
# exit
şimdi testimizi yapalım
sistemden çıktım. Sunucuya tekrar bağlanmayı deniyorum.
Kullanıcı adına root yazdım ve şifremi girdim. Access deniedr . root girişini kapattığımız için Kullanıcı adı şifreyi doğru yazmama rağmen sunucuya giriş yapamıyorum.
İşte bu durumda ilk başta oluşturduğum ikinci kullanıcıyla sisteme giriş yapmalı daha sonra root yetkisine sahip olmalıyım.
Bunun için yeni oluşturduğum kullanıcı adı ve şifresini yazarak sisteme giriş yapıyorum.
Root yetkisine sahip olmak için ise su boşluk tire
# su -
diyerek ve tekrar root şifremi yazarak root yetkisine sahip olmuş oldum
# whoami
root
Ve artık root um ve direk root girişi kapalı durumda. Evet kullanıcılar yada bizim sunucumuzu ele geçirmeye kalkan insanlar kombinasyon denemek suretiyle çok fazla kombinasyon olacağını düşünebilirsiniz.
Ki ilk başta kullanıcı adını bilmeleri gerekir. Standart kullanıcı isimlerinin olmadığını düşünürsek hem kullanıcı adı hemde şifreyi tahmin etmeleri yada deneyerek bulmalı çok büyük zaman alır.
Ve biz peryodik olarak kullanıcı adı ve şifremizi değiştirerek bu sorunuda kökten çözmüş olabiliriz.