Ubuntu Kullanıcı Yönetimi¶
Kullanıcı yönetimi, güvenli bir sistem sağlamanın kritik bir parçasıdır. Etkisiz kullanıcı ve ayrıcalık yönetimi çoğu zaman birçok sistemin tehlikeye atılmasına neden olur. Bu nedenle, basit ve etkili kullanıcı hesabı yönetimi teknikleriyle sunucunuzu nasıl koruyabileceğinizi anlamanız önemlidir.
Root Nerede?¶
Ubuntu geliştiricileri, tüm Ubuntu kurulumlarında varsayılan olarak yönetici kök hesabını devre dışı bırakmak için bilinçli bir karar aldı. Bu, kök hesabın silindiği veya ona erişilemeyeceği anlamına gelmez. Yalnızca hiçbir olası değere uymayan bir parola özeti verilmiştir, bu nedenle kendi başına doğrudan oturum açamayabilir.
Bunun yerine, kullanıcıların sistem yönetim görevlerini yerine getirmek için 'sudo' adlı bir aracı kullanmaları önerilir. Sudo, yetkili bir kullanıcının, kök hesaba ait parolayı bilmek zorunda kalmadan kendi parolasını kullanarak ayrıcalıklarını geçici olarak yükseltmesine izin verir. Bu basit ancak etkili metodoloji, tüm kullanıcı eylemleri için hesap verebilirlik sağlar ve yöneticiye, bir kullanıcının söz konusu ayrıcalıklarla gerçekleştirebileceği eylemler üzerinde ayrıntılı kontrol sağlar.
Herhangi bir nedenle root hesabını etkinleştirmek isterseniz, ona bir şifre vermeniz yeterlidir:
sudo passwd
Sudo sizden şifrenizi isteyecek ve ardından aşağıda gösterildiği gibi root için yeni bir şifre girmenizi isteyecektir:
[sudo] password for username: (enter your own password)
Enter new UNIX password: (enter a new password for root)
Retype new UNIX password: (repeat new password for root)
passwd: password updated successfully
Root hesap parolasını devre dışı bırakmak için aşağıdaki passwd sözdizimini kullanın:
sudo passwd -l root
Man komutu ile sudo komutu hakkında daha fazla detaya sahip olabilirsiniz
man sudo
Varsayılan olarak Ubuntu'yu kurarken oluşturduğunuz kullanıcı /etc/sudoers
dosyasında yetkili bir sudo kullanıcısı olarak eklidir. Başka bir kullanıcıya bu yetkiyi vermek istiyorsanız bu dosyaya ilgili kullanıcıyı eklemelisiniz.
Kullanıcı Ekleme ve Silme¶
Yerel kullanıcıları ve grupları yönetme süreci basittir ve diğer çoğu GNU/Linux işletim sisteminden çok az farklılık gösterir. Ubuntu ve diğer Debian tabanlı dağıtımlar, hesap yönetimi için adduser
paketinin kullanılmasını teşvik eder.
Bir kullanıcı hesabı eklemek için, aşağıdaki sözdizimini kullanın ve hesaba bir parola ve tam ad, telefon numarası gibi tanımlanabilir özellikler vermek için istemleri izleyin.
sudo adduser username
Bir kullanıcı hesabını ve birincil grubunu silmek için aşağıdaki sözdizimini kullanın:
sudo deluser username
Info
Bir hesabın silinmesi, ilgili ana klasörün kaldırılmasına neden olmaz. Klasörü manuel olarak silmek veya istediğiniz saklama politikalarına göre saklamak isteyip istemediğiniz size bağlıdır.
Warning
Unutmayın, daha sonra önceki sahiple aynı UID/GID'ye sahip herhangi bir kullanıcı, gerekli önlemleri almadıysanız artık bu klasöre erişebilir.
Bu UID/GID değerlerini, kök hesap gibi daha uygun bir şeye değiştirmek ve hatta gelecekteki çakışmalardan kaçınmak için klasörü yeniden konumlandırmak isteyebilirsiniz:
sudo chown -R root:root /home/username/
sudo mkdir /home/archived_users/
sudo mv /home/username /home/archived_users/
Bir kullanıcı parolasını geçici olarak kilitlemek veya kilidini açmak için sırasıyla aşağıdaki sözdizimini kullanın:
sudo passwd -l username
sudo passwd -u username
Kişiselleştirilmiş bir grup eklemek veya silmek için sırasıyla aşağıdaki sözdizimini kullanın:
sudo addgroup groupname
sudo delgroup groupname
Bir gruba kullanıcı eklemek için aşağıdaki sözdizimini kullanın:
sudo adduser username groupname
Kullanıcı Profili Güvenliği¶
Yeni bir kullanıcı oluşturulduğunda, adduser yardımcı programı /home/username
şeklinde yeni bir dizin oluşturur.
Varsayılan profil, /etc/skel
tüm profil temellerini içeren dizininde bulunan içeriklere göre modellenir.
Sunucunuz birden fazla kullanıcıya ev sahipliği yapacaksa, gizliliği sağlamak için kullanıcı ana dizini izinlerine çok dikkat etmelisiniz. Varsayılan olarak, Ubuntu'daki kullanıcı ana dizinleri okuma/yürütme izinleriyle oluşturulur. Bu, tüm kullanıcıların diğer kullanıcıların ana dizinlerinin içeriğine göz atabileceği ve bunlara erişebileceği anlamına gelir. Bu, ortamınız için uygun olmayabilir.
Mevcut kullanıcı ana dizini izinlerinizi görmek için aşağıdaki sözdizimini kullanın:
ls -ld /home/username
Aşağıdaki çıktı, dizinin (/home/username
) herkes tarafından okunabilir izinlere sahip olduğunu gösterir:
drwxr-xr-x 2 username username 4096 2007-10-02 20:03 username
Aşağıdaki sözdizimini kullanarak herkes tarafından okunabilir izinleri kaldırabilirsiniz:
sudo chmod 0750 /home/username
Warning
Bazı insanlar, tüm alt klasörleri ve dosyaları değiştiren gelişi güzel (-R) seçeneğini kullanma eğilimindedir, ancak bu gerekli değildir ve başka istenmeyen sonuçlar doğurabilir. Üst dizin, üst dizin altındaki herhangi bir şeye yetkisiz erişimi önlemek için tek başına yeterlidir.
Konuya çok daha verimli bir yaklaşım, kullanıcı ana klasörleri oluştururken adduser genel varsayılan izinlerini değiştirmek olacaktır. /etc/adduser.conf
dosyasını düzenleyin ve DIR_MODE
değişkeni uygun bir şeye değiştirin, böylece tüm yeni ev dizinleri doğru izinleri alacaktır.
DIR_MODE=0750
Önceden bahsedilen tekniklerden herhangi birini kullanarak dizin izinlerini düzelttikten sonra, aşağıdaki sözdizimini kullanarak izinleri doğrulayın:
ls -ld /home/username
Aşağıdaki sonuçlar herkes tarafından okunabilir izinlerin kaldırıldığını göstermektedir:
drwxr-x--- 2 username username 4096 2007-10-02 20:03 username
Şifre politikası¶
Güçlü bir parola politikası, güvenlik duruşunuzun en önemli yönlerinden biridir. Birçok başarılı güvenlik ihlali, zayıf parolalara karşı basit kaba kuvvet ve sözlük saldırılarını içerir. Yerel parola sisteminizi içeren herhangi bir uzaktan erişim biçimi sunmayı düşünüyorsanız, minimum parola karmaşıklığı gereksinimlerini, maksimum parola yaşam sürelerini ve kimlik doğrulama sistemlerinizin sık denetimlerini yeterince karşıladığınızdan emin olun.
Minimum Şifre Uzunluğu¶
Varsayılan olarak, Ubuntu minimum 6 karakter uzunluğunda bir şifre ve bazı temel entropi kontrolleri gerektirir. Bu değerler, /etc/pam.d/common-password
adlı dosyada kontrol edilir.
password [success=1 default=ignore] pam_unix.so obscure sha512
Minimum uzunluğu 8 karakter olarak ayarlamak isterseniz, uygun değişkeni min = 8 olarak değiştirin. Değişiklik aşağıda gösterilmiştir.
password [success=1 default=ignore] pam_unix.so obscure sha512 minlen=8
Info
Temel parola entropi kontrolleri ve minimum uzunluk kuralları, yeni bir kullanıcı kurmak için sudo seviye komutları kullanan yönetici için geçerli değildir.
Şifre Sona Erme¶
Kullanıcı hesapları oluştururken, kullanıcıları süresi dolduğunda şifrelerini değiştirmeye zorlayan minimum ve maksimum şifre yaşına sahip olmayı bir politika haline getirmelisiniz.
Bir kullanıcı hesabının mevcut durumunu kolayca görüntülemek için aşağıdaki sözdizimini kullanın:
sudo chage -l username
Aşağıdaki çıktı, kullanıcı hesabıyla ilgili ilginç gerçekleri, yani uygulanan hiçbir politikanın olmadığını gösterir:
Last password change : Jan 20, 2015
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
Bu değerlerden herhangi birini ayarlamak için, aşağıdaki sözdizimini kullanmanız ve etkileşimli komut istemlerini izlemeniz yeterlidir:
sudo chage username
Aşağıda ayrıca açık son kullanma tarihini (-E) 01/31/2015, minimum şifre yaşı (-m) 5 günlük, maksimum şifre yaşı (-M) 90 günlük, hareketsizlik olarak nasıl değiştirebileceğinize dair bir örnek verilmiştir. Parola süresinin dolmasından sonraki 30 günlük süre (-I) ve parolanın sona ermesinden önceki 14 günlük bir uyarı süresi (-W)
sudo chage -E 01/31/2015 -m 5 -M 90 -I 30 -W 14 username
Değişiklikleri doğrulamak için daha önce belirtildiği gibi aynı sözdizimini kullanın:
sudo chage -l username
Aşağıdaki çıktı, hesap için oluşturulan yeni politikaları göstermektedir:
Last password change : Jan 20, 2015
Password expires : Apr 19, 2015
Password inactive : May 19, 2015
Account expires : Jan 31, 2015
Minimum number of days between password change : 5
Maximum number of days between password change : 90
Number of days of warning before password expires : 14
Diğer Güvenlik Hususları¶
Birçok uygulama, deneyimli sistem yöneticileri tarafından bile kolayca gözden kaçabilen alternatif kimlik doğrulama mekanizmaları kullanır. Bu nedenle, kullanıcıların kimliğini nasıl doğruladığını ve sunucunuzdaki hizmetlere ve uygulamalara nasıl eriştiğini anlamak ve kontrol etmek önemlidir.
Engelli Kullanıcılar Tarafından SSH Erişimi¶
Bir kullanıcı şifresinin basitçe devre dışı bırakılması / kilitlenmesi, daha önce SSH genel anahtar kimlik doğrulamasını kuran bir kullanıcının sunucunuzda uzaktan oturum açmasını engellemez. Herhangi bir şifreye ihtiyaç duymadan sunucuya kabuk erişimi sağlamaya devam edecekler. Bu türden kimliği doğrulanmış SSH erişimine izin verecek dosyalar için kullanıcıların ana dizinini kontrol etmeyi unutmayın:
/home/username/.ssh/authorized_keys
Daha fazla SSH kimlik doğrulama özelliğini önlemek için kullanıcının ana klasöründeki .ssh/ dizinini kaldırın veya yeniden adlandırın.
Mevcut gelen veya giden bağlantılara sahip olabileceğinden, devre dışı bırakılan kullanıcı tarafından kurulmuş SSH bağlantılarını kontrol ettiğinizden emin olun. Bulunan her şeyi öldürün.
who | grep username (to get the pts/# terminal)
sudo pkill -f pts/#
SSH erişimini yalnızca ona sahip olması gereken kullanıcı hesaplarıyla kısıtlayın. Örneğin, "sshlogin" adlı bir grup oluşturabilir ve grup adını /etc/ssh/sshd_config
dosyasında AllowGroups değişkenine ilişkilendirebilirsiniz. Aşağıdaki komut sshlogin gurubuna SSH erişimi izni verecektir.
AllowGroups sshlogin
Ardından kullanıcılarınızı "sshlogin" grubuna ekleyin ve SSH hizmetini yeniden başlatın.
sudo adduser username sshlogin
sudo systemctl restart sshd.service