Ubuntu 14.04 Üzerinde Sudo ve SSH Anahtarlarının Kurulumu ve Güvenli Kullanımı
Ubuntu 14.04 LTS (Trusty Tahr), uzun süreli destek sağlayan ve birçok kurumsal ortamda veya belirli uygulama bağımlılıkları nedeniyle hala kullanılan, zamanında popüler bir Linux dağıtımı sürümüdür. Güncel sürümler kadar modern özelliklere sahip olmasa da, temel sistem yönetimi ve güvenlik prensipleri bu sürümde de büyük önem taşır. Bu makalede, Ubuntu 14.04 sunucularınızda veya masaüstü ortamlarınızda ayrıcalık yönetimi için sudo‘nun nasıl kurulacağını ve yapılandırılacağını, ayrıca uzaktan güvenli erişim için SSH anahtarlarının nasıl oluşturulacağını ve kullanılacağını detaylı bir şekilde inceleyeceğiz. Bu iki bileşen, herhangi bir Linux sisteminin güvenli ve verimli yönetimi için vazgeçilmezdir.
Giriş: Neden Sudo ve SSH Anahtarları?
Linux sistemlerinde root kullanıcısı, sistem üzerindeki tüm yetkilere sahip olan süper kullanıcıdır. root olarak doğrudan çalışmak veya sürekli root olarak oturum açmak, ciddi güvenlik riskleri taşır. Yanlış bir komut, tüm sistemi kullanılamaz hale getirebilir veya önemli verilerin kaybolmasına neden olabilir. İşte bu noktada sudo (superuser do) devreye girer. sudo, yetkilendirilmiş kullanıcıların, kendi parolalarını kullanarak belirli komutları root ayrıcalıklarıyla çalıştırmasına olanak tanır. Bu, minimum ayrıcalık prensibine uygun bir yaklaşımdır ve her eylemin loglanabilir olmasını sağlayarak denetlenebilirliği artırır.
Öte yandan, sunuculara veya diğer uzak sistemlere erişim için genellikle SSH (Secure Shell) protokolü kullanılır. Geleneksel olarak SSH bağlantıları parola tabanlı kimlik doğrulama ile yapılır. Ancak parolalar, kaba kuvvet saldırılarına (brute-force) veya zayıf parola seçimlerine karşı savunmasızdır. SSH anahtarları, bu güvenlik açıklarını kapatmak için çok daha güçlü ve kullanışlı bir alternatif sunar. Anahtar tabanlı kimlik doğrulama, bir genel (public) ve bir özel (private) anahtar çifti kullanarak çalışır. Özel anahtar istemcide güvenli bir şekilde saklanır, genel anahtar ise sunucuya yerleştirilir. Bu yöntem, parola girmeye gerek kalmadan güvenli ve otomatikleştirilmiş bağlantılar kurmayı mümkün kılar.
Bu makale, Ubuntu 14.04’ün güvenliğini ve yönetilebilirliğini artırmak için bu iki temel bileşenin nasıl entegre edileceğini adım adım açıklayacaktır.
Sudo Kurulumu ve Yapılandırması
sudo, Ubuntu’da varsayılan olarak yüklü gelir ve genellikle kurulum sırasında oluşturulan ilk kullanıcıya sudo ayrıcalıkları otomatik olarak atanır. Ancak, yeni kullanıcılar oluşturmanız veya mevcut kullanıcıların ayrıcalıklarını yönetmeniz gerektiğinde bu süreci anlamak önemlidir.
Sudo Nedir ve Neden Önemlidir?
sudo, yetkili kullanıcıların belirli komutları süper kullanıcı veya başka bir kullanıcı olarak çalıştırmasına izin veren bir programdır. Temel amacı, root kullanıcısının doğrudan kullanımını en aza indirmek ve böylece sistem güvenliğini artırmaktır.
* Minimum Ayrıcalık Prensibi: Kullanıcıların sadece ihtiyaç duydukları ayrıcalıklara sahip olmasını sağlar. Bu, olası güvenlik açıklarının veya hataların etkisini sınırlar.
* Denetlenebilirlik: sudo aracılığıyla gerçekleştirilen tüm işlemler, sistem loglarında kaydedilir (/var/log/auth.log). Bu, kimin ne zaman hangi komutu çalıştırdığını izlemeyi kolaylaştırır.
* Kullanım Kolaylığı: Kullanıcıların root parolası yerine kendi parolalarını kullanarak ayrıcalıklı komutları çalıştırmalarına olanak tanır, bu da root parolasının paylaşılması ihtiyacını ortadan kaldırır.
Yeni Bir Kullanıcı Oluşturma
İlk adım, sudo ayrıcalıkları vereceğimiz yeni bir kullanıcı oluşturmaktır. Eğer zaten bir kullanıcınız varsa bu adımı atlayabilirsiniz.
Mevcut bir sudo kullanıcısı olarak oturum açın (genellikle Ubuntu kurulumunda oluşturulan ilk kullanıcı) ve aşağıdaki komutu çalıştırın:
sudo adduser yeni_kullanici
yeni_kullanici yerine istediğiniz kullanıcı adını yazın. Komut sizden yeni kullanıcı için bir parola belirlemenizi isteyecektir. Güçlü bir parola seçtiğinizden emin olun. Ayrıca, ad, telefon numarası gibi ek bilgiler de girmenizi isteyebilir; bu alanları boş bırakmak için Enter tuşuna basabilirsiniz.
Adding user yeni_kullanici' ...
Adding new group yeni_kullanici' (1001) ...
Adding new user yeni_kullanici' (1001) with group yeni_kullanici' ...
Creating home directory /home/yeni_kullanici' ...
Copying files from /etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for yeni_kullanici
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
Kullanıcıya Sudo Ayrıcalıkları Tanıma
Yeni oluşturduğunuz veya mevcut bir kullanıcıya sudo ayrıcalıkları vermek için en yaygın yöntem, kullanıcıyı sudo grubuna eklemektir. Ubuntu’da sudo grubu, varsayılan olarak sudo komutunu kullanma yetkisine sahiptir.
sudo usermod -aG sudo yeni_kullanici
* usermod: Kullanıcı özelliklerini değiştirmek için kullanılır.
* -aG: Kullanıcıyı belirtilen gruba ekler (append to group). -a (append) seçeneği önemlidir, çünkü G ile tek başına kullanıldığında kullanıcıyı diğer gruplarından çıkarıp sadece belirtilen gruba dahil edebilir.
* sudo: Kullanıcının ekleneceği grup.
* yeni_kullanici: Ayrıcalık verilecek kullanıcının adı.
Bu komutu çalıştırdıktan sonra, yeni_kullanici artık sudo ayrıcalıklarına sahip olacaktır. Bu değişikliğin etkili olması için kullanıcının oturumu kapatıp tekrar açması gerekebilir.
Alternatif Yöntem: /etc/sudoers Dosyasını Düzenleme (visudo ile)
Daha gelişmiş sudo yapılandırmaları için /etc/sudoers dosyasını doğrudan düzenlemek gerekebilir. Bu dosya, sudo komutunun nasıl davranacağını belirleyen kuralları içerir. Bu dosyayı asla doğrudan bir metin düzenleyiciyle açmayın. Bunun yerine, visudo komutunu kullanmalısınız. visudo, dosyayı düzenlemek için varsayılan düzenleyiciyi (genellikle vi veya nano) açar ve kaydetmeden önce sözdizimi hatalarını kontrol eder. Bu, yanlış bir yapılandırmanın sistemi kilitlemesini önler.
sudo visudo
Açılan dosyada, sudo grubuna ayrıcalık veren satırı göreceksiniz:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
Bu satır, sudo grubundaki tüm kullanıcıların ( %sudo ), herhangi bir terminalden ( ALL ), herhangi bir kullanıcı olarak ( ALL ), herhangi bir grup olarak ( :ALL ) ve herhangi bir komutu ( ALL ) çalıştırmasına izin verildiği anlamına gelir.
Belirli bir kullanıcıya sudo ayrıcalığı vermek isterseniz, bu satırın altına aşağıdaki gibi bir satır ekleyebilirsiniz:
yeni_kullanici ALL=(ALL:ALL) ALL
Dikkat: Bazı durumlarda, bir kullanıcının sudo komutunu kullanırken parola girmesini istemeyebilirsiniz (örneğin, otomatikleştirilmiş betikler için). Bu durumda NOPASSWD seçeneğini kullanabilirsiniz:
yeni_kullanici ALL=(ALL) NOPASSWD: ALL
Bu, yeni_kullanici‘nın sudo ile herhangi bir komutu parola girmeden çalıştırabileceği anlamına gelir. Ancak bu, ciddi bir güvenlik riski oluşturur ve yalnızca kesinlikle gerekli olduğunda ve riskleri tam olarak anladığınızda kullanılmalıdır.
Düzenlemeleri yaptıktan sonra, dosyayı kaydedin ve visudo‘dan çıkın. (Vi düzenleyicisinde kaydetmek için Esc tuşuna basın, ardından :wq yazıp Enter tuşuna basın.)
Sudo Kurulumunu Test Etme
Yeni kullanıcıyla oturum açın veya su - yeni_kullanici komutuyla kullanıcıya geçiş yapın. Ardından, sudo ile bir komut çalıştırmayı deneyin:
sudo apt update
Eğer her şey doğru yapılandırıldıysa, sizden yeni_kullanici‘nın parolasını girmeniz istenecektir. Parolayı girdikten sonra apt update komutu root ayrıcalıklarıyla çalışmalıdır.
Ayrıca, sudo -l komutuyla kullanıcının hangi sudo yetkilerine sahip olduğunu listeleyebilirsiniz:
sudo -l
Bu komut, kullanıcının sudo ile hangi komutları çalıştırabileceğini ve parola isteyip istemediğini gösterir.
Sudo Güvenlik İpuçları
* Güçlü Parolalar: sudo kullanan tüm kullanıcılar için güçlü ve benzersiz parolalar kullanın.
* Minimum Ayrıcalık: Yalnızca gerçekten ihtiyaç duyan kullanıcılara sudo ayrıcalıkları verin. Gereksiz yere herkese sudo yetkisi vermekten kaçının.
* NOPASSWD Kullanımından Kaçının: Mümkün olduğunca NOPASSWD seçeneğini kullanmayın. Eğer kullanmak zorundaysanız, bu kuralı belirli komutlarla sınırlayın, ALL yerine. Örneğin: yeni_kullanici ALL=(ALL) NOPASSWD: /usr/bin/apt update.
* Logları Kontrol Edin: /var/log/auth.log dosyasını düzenli olarak kontrol ederek sudo kullanımını denetleyin ve şüpheli etkinlikleri tespit edin.
* Sudo Zaman Aşımı: Varsayılan olarak, sudo bir süre sonra tekrar parola ister. Bu süreyi visudo içinde Defaults timestamp_timeout=X (X saniye cinsinden) ile ayarlayabilirsiniz. Daha kısa bir zaman aşımı, sistem güvenliğini artırır.
SSH Anahtarlarının Kurulumu ve Kullanımı
SSH anahtarları, sunuculara parola girmeden, şifreli ve güvenli bir şekilde bağlanmanın en iyi yoludur. Bu yöntem, kaba kuvvet saldırılarına karşı çok daha dirençlidir ve otomasyon senaryoları için vazgeçilmezdir.
SSH Nedir ve Neden Anahtarlar Kullanılmalı?
SSH (Secure Shell), şifrelenmiş bir protokol kullanarak ağ üzerinden güvenli bir şekilde komut çalıştırmak, dosya transferi yapmak ve diğer ağ hizmetlerini kullanmak için kullanılır. Geleneksel olarak, SSH bağlantıları kullanıcı adı ve parola ile kimlik doğrulaması yapar.
* Parola Tabanlı Kimlik Doğrulamanın Zayıflıkları:
* Kaba Kuvvet Saldırıları: Saldırganlar, doğru parolayı bulana kadar sürekli farklı parolalar deneyebilir.
* Zayıf Parolalar: Kullanıcıların zayıf veya tahmin edilebilir parolalar seçme eğilimi, sistemleri riske atar.
* Parola Sızıntıları: Parolalar, veri ihlalleri veya keylogger’lar aracılığıyla çalınabilir.
* Anahtar Tabanlı Kimlik Doğrulamanın Avantajları:
* Yüksek Güvenlik: Anahtarlar çok uzun ve karmaşık olduğundan, kaba kuvvet saldırılarıyla kırılmaları pratik olarak imkansızdır.
* Parolasız Erişim: Anahtar çifti bir kez kurulduktan sonra, sunucuya bağlanmak için parola girmenize gerek kalmaz (anahtar parolası hariç).
* Otomasyon: Betiklerin ve otomasyon araçlarının sunuculara güvenli bir şekilde bağlanmasını sağlar.
* Asimetrik Şifreleme: Bir genel anahtar (public key) ve bir özel anahtar (private key) çifti kullanılır. Genel anahtar sunucuda saklanır, özel anahtar ise istemcide. Özel anahtar, genel anahtarın şifresini çözebilir, ancak tersi mümkün değildir.
SSH Anahtar Çifti Oluşturma
SSH anahtar çifti, genellikle istemci makinenizde oluşturulur. İstemci makineniz bir masaüstü bilgisayar, dizüstü bilgisayar veya başka bir sunucu olabilir.
Bir terminal açın ve aşağıdaki komutu çalıştırın:
ssh-keygen -t ed25519 -b 4096 -C "kullanici_adi@host_adi"
* ssh-keygen: SSH anahtar çifti oluşturmak için kullanılan komut.
* -t ed25519: Oluşturulacak anahtarın türünü belirtir. Ed25519, modern ve güvenli bir anahtar türüdür. Eski sistemlerle uyumluluk için RSA da kullanabilirsiniz (-t rsa -b 4096). -b 4096 RSA için bit uzunluğunu belirtir, Ed25519 için bu parametreye gerek yoktur.
* -C "kullanici_adi@host_adi": Anahtara bir yorum ekler. Bu, özellikle birden fazla anahtarınız olduğunda anahtarları tanımlamanıza yardımcı olur.
Komutu çalıştırdıktan sonra, sizden anahtar çiftinin kaydedileceği konumu ve isteğe bağlı bir parola (passphrase) girmenizi isteyecektir:
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/kullanici_adi/.ssh/id_ed25519):
Varsayılan konumu (/home/kullanici_adi/.ssh/id_ed25519) kabul etmek için Enter tuşuna basabilirsiniz.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Burada bir parola (passphrase) belirlemeniz şiddetle tavsiye edilir. Bu parola, özel anahtarınızın çalınması durumunda ek bir güvenlik katmanı sağlar. Her bağlantıda bu parolayı girmeniz gerekecektir, ancak ssh-agent kullanarak bu işlemi kolaylaştırabilirsiniz. Eğer parola girmek istemiyorsanız, Enter tuşuna basarak boş bırakabilirsiniz (ancak bu, güvenlik riskini artırır).
İşlem tamamlandığında, ~/.ssh/ dizininde iki dosya oluşacaktır:
* id_ed25519: Özel anahtarınız. Bu dosyayı asla kimseyle paylaşmayın!
* id_ed25519.pub: Genel anahtarınız. Bu anahtarı sunucularınıza kopyalayacaksınız.
Genel Anahtarı Ubuntu Sunucuya Kopyalama
Oluşturduğunuz genel anahtarı (örneğin id_ed25519.pub), bağlanmak istediğiniz Ubuntu 14.04 sunucusuna kopyalamanız gerekir. Bunun en kolay ve önerilen yolu ssh-copy-id komutunu kullanmaktır.
Yöntem 1: ssh-copy-id Kullanarak (Önerilen)
ssh-copy-id aracı, genel anahtarınızı uzak sunucuya güvenli bir şekilde kopyalar ve doğru dosya izinlerini ayarlar.
ssh-copy-id -i ~/.ssh/id_ed25519.pub yeni_kullanici@sunucu_ip_adresi
* -i ~/.ssh/id_ed25519.pub: Kopyalanacak genel anahtarın yolunu belirtir.
* yeni_kullanici: Sunucudaki kullanıcı adı (burada sudo ayrıcalıkları verdiğimiz kullanıcı).
* sunucu_ip_adresi: Ubuntu 14.04 sunucunuzun IP adresi veya hostname’i.
Bu komut, sizden yeni_kullanici‘nın sunucudaki parolasını isteyecektir. Parolayı girdikten sonra, genel anahtarınız sunucudaki ~/.ssh/authorized_keys dosyasına eklenecektir.
The authenticity of host 'sunucu_ip_adresi (sunucu_ip_adresi)' can't be established.
ECDSA key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'sunucu_ip_adresi' (ECDSA) to the list of known hosts.
yeni_kullanici@sunucu_ip_adresi's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'yeni_kullanici@sunucu_ip_adresi'"
and check to make sure that only the key(s) you wanted were added.
Yöntem 2: Manuel Kopyalama (Eğer ssh-copy-id Yoksa veya Tercih Edilirse)
Eğer ssh-copy-id kullanılamıyorsa veya manuel olarak yapmak istiyorsanız, aşağıdaki adımları izleyin:
1. Genel Anahtarı Kopyalayın: İstemci makinenizde genel anahtarınızın içeriğini kopyalayın:
cat ~/.ssh/id_ed25519.pub
Çıktıyı kopyalayın (örneğin ssh-ed25519 AAAA...).
2. Sunucuya Bağlanın: Parola kullanarak sunucuya SSH ile bağlanın:
ssh yeni_kullanici@sunucu_ip_adresi
yeni_kullanici‘nın parolasını girin.
3. SSH Dizini Oluşturun (Eğer Yoksa): Sunucuda, kullanıcının ana dizininde .ssh dizinini oluşturun ve izinlerini doğru ayarlayın:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
4. authorized_keys Dosyasını Oluşturun/Düzenleyin: Genel anahtarı authorized_keys dosyasına ekleyin. Eğer dosya yoksa oluşturulur, varsa anahtar sonuna eklenir.
echo "GENEL_ANAHTAR_İÇERİĞİ" >> ~/.ssh/authorized_keys
GENEL_ANAHTAR_İÇERİĞİ yerine kopyaladığınız genel anahtarın tamamını yapıştırın. Örneğin:
echo "ssh-ed25519 AAAA... yeni_kullanici@host_adi" >> ~/.ssh/authorized_keys
5. authorized_keys İzinlerini Ayarlayın: Bu dosyanın izinleri çok önemlidir. Yalnızca sahibinin okuma ve yazma izni olmalıdır.
chmod 600 ~/.ssh/authorized_keys
Bu adımları tamamladıktan sonra, genel anahtarınız sunucuda doğru bir şekilde yapılandırılmış olacaktır.
SSH Anahtar Kimlik Doğrulamayı Test Etme
Genel anahtarı sunucuya kopyaladıktan sonra, istemci makinenizden parola kullanmadan bağlanmayı deneyin:
ssh yeni_kullanici@sunucu_ip_adresi
Eğer anahtarınıza bir parola (passphrase) belirlediyseniz, sizden bu parolayı girmeniz istenecektir. Eğer belirlemediyseniz veya ssh-agent kullanıyorsanız, doğrudan sunucuya bağlanmanız gerekir. Başarılı bir şekilde bağlanırsanız, anahtar tabanlı kimlik doğrulama doğru şekilde çalışıyor demektir.
SSH Aracısı (ssh-agent) ve Anahtar Yönetimi
Eğer SSH anahtarınıza bir parola belirlediyseniz, her bağlantı kurduğunuzda bu parolayı girmeniz gerekir. Bu, güvenlik için iyi olsa da, sürekli tekrar eden bir işlem olabilir. ssh-agent, özel anahtarınızın şifresini bir kez çözerek, oturumunuz boyunca bu parolayı tekrar girmenize gerek kalmadan SSH bağlantıları kurmanızı sağlayan bir programdır.
1. ssh-agent‘ı Başlatma: Çoğu masaüstü ortamında ssh-agent otomatik olarak başlatılır. Eğer başlatılmadıysa veya bir sunucuda kullanıyorsanız, şu komutla başlatabilirsiniz:
eval "$(ssh-agent -s)"
Bu komut, ssh-agent‘ı başlatır ve gerekli ortam değişkenlerini ayarlar.
2. Özel Anahtarı ssh-agent‘a Ekleme: Anahtarınızı ssh-agent‘a eklemek için ssh-add komutunu kullanın:
ssh-add ~/.ssh/id_ed25519
Eğer anahtarınızın bir parolası varsa, sizden bu parolayı girmenizi isteyecektir. Parolayı bir kez girdikten sonra, oturumunuz süresince tekrar girmeniz gerekmez.
3. Kalıcı ssh-agent: ssh-agent‘ın her oturum açtığınızda otomatik olarak başlamasını ve anahtarınızı eklemesini sağlamak için, yukarıdaki komutları .bashrc veya .zshrc gibi kabuk yapılandırma dosyanıza ekleyebilirsiniz. Ancak, bu işlem masaüstü ortamlarında genellikle otomatikleşmiştir ve manuel müdahale gerektirmeyebilir.
SSH Sunucu Yapılandırması (Ubuntu 14.04 Sunucuda)
SSH anahtarlarını kullanmaya başladıktan sonra, sunucunuzun güvenliğini daha da artırmak için SSH sunucu yapılandırmasını (sshd_config) düzenlemeniz şiddetle tavsiye edilir.
1. sshd_config Dosyasını Açma: Sunucuda sudo ayrıcalıkları olan bir kullanıcı olarak oturum açın ve aşağıdaki komutla yapılandırma dosyasını açın:
sudo nano /etc/ssh/sshd_config
(Veya tercih ettiğiniz düzenleyiciyi kullanın, örneğin vi).
2. Önemli Yapılandırma Değişiklikleri:
* PermitRootLogin no: root kullanıcısının doğrudan SSH ile bağlanmasını engelleyin. Bu, en önemli güvenlik önlemlerinden biridir. root olarak çalışmanız gerektiğinde, normal bir kullanıcı olarak bağlanıp sudo kullanın.
PermitRootLogin no
* PasswordAuthentication no: Anahtar tabanlı kimlik doğrulamanızın düzgün çalıştığından emin olduktan sonra, parola tabanlı kimlik doğrulamayı tamamen devre dışı bırakın. Bu, kaba kuvvet saldırılarına karşı çok güçlü bir savunmadır. Bu değişikliği yapmadan önce anahtarınızla sorunsuz bağlanabildiğinizden emin olun, aksi takdirde sunucuya erişiminizi kaybedebilirsiniz!
PasswordAuthentication no
* PubkeyAuthentication yes: Genel anahtar kimlik doğrulamasının etkin olduğundan emin olun (varsayılan olarak genellikle yes‘tir).
PubkeyAuthentication yes
* Port Değişikliği (İsteğe Bağlı ama Önerilir): SSH’nin varsayılan portu olan 22’yi değiştirmek, otomatik botların ve tarayıcıların sunucunuzu bulmasını zorlaştırır. Örneğin, 2222 gibi yüksek numaralı bir port kullanabilirsiniz.
Port 2222
Eğer portu değiştirirseniz, güvenlik duvarınızda (ufw) yeni porta izin vermeyi unutmayın: sudo ufw allow 2222/tcp. Bağlanırken de ssh -p 2222 yeni_kullanici@sunucu_ip_adresi komutunu kullanmanız gerekir.
* AllowUsers veya AllowGroups (İsteğe Bağlı): Yalnızca belirli kullanıcıların veya grupların SSH ile bağlanmasına izin vererek erişimi daha da kısıtlayabilirsiniz.
AllowUsers yeni_kullanici baska_kullanici
# Veya
# AllowGroups sshusers
3. Değişiklikleri Kaydet ve SSH Servisini Yeniden Başlat: Yapılandırma dosyasını kaydedin ve SSH servisini yeniden başlatarak değişikliklerin etkili olmasını sağlayın:
sudo service ssh restart
# Veya eski init sistemi için
# sudo /etc/init.d/ssh restart
Servisi yeniden başlattıktan sonra, yeni kurallarınız geçerli olacaktır.
SSH Güvenlik İpuçları
* Özel Anahtarınızı Koruyun: Özel anahtarınız, evinizin anahtarı gibidir. Onu kimseyle paylaşmayın ve güvenli bir yerde saklayın. Bir parola (passphrase) ile koruyun.
* Parola Kimlik Doğrulamayı Kapatın: Anahtar tabanlı kimlik doğrulaması çalışır çalışmaz, parola tabanlı kimlik doğrulamayı devre dışı bırakın (PasswordAuthentication no).
* root Erişimi Yok: PermitRootLogin no ayarını mutlaka kullanın.
* SSH Portunu Değiştirin: Varsayılan portu değiştirmek, otomatik saldırıları azaltır.
* fail2ban Kullanın: fail2ban gibi bir araç, başarısız giriş denemelerini izleyerek ve şüpheli IP adreslerini otomatik olarak engelleyerek sunucunuzu kaba kuvvet saldırılarına karşı korur.
* Anahtarlarınızı Yedekleyin: Özel anahtarınızı güvenli bir şekilde yedekleyin. Anahtarınızı kaybederseniz, sunucularınıza erişiminizi kaybedebilirsiniz.
* ~/.ssh/config Dosyası: Birden fazla sunucuya bağlanıyorsanız, ~/.ssh/config dosyasını kullanarak bağlantıları kolaylaştırabilirsiniz. Örneğin:
Host my_server
HostName sunucu_ip_adresi
User yeni_kullanici
Port 2222
IdentityFile ~/.ssh/id_ed25519
Artık ssh my_server yazarak bağlanabilirsiniz.
Sonuç
Ubuntu 14.04 üzerinde sudo ve SSH anahtarlarının kurulumu ve doğru yapılandırılması, sistem güvenliğini ve yönetim verimliliğini önemli ölçüde artıran temel adımlardır. sudo ile ayrıcalık yönetimini merkezileştirerek root kullanıcısının doğrudan kullanımından kaynaklanan riskleri azaltır, her eylemin denetlenebilir olmasını sağlarsınız. SSH anahtarları ise parola tabanlı kimlik doğrulamanın zayıflıklarını ortadan kaldırarak sunucularınıza güvenli, şifreli ve parolasız erişim imkanı sunar.
Bu makalede anlatılan adımları izleyerek, Ubuntu 14.04 sunucularınızı daha güvenli ve yönetilebilir hale getirebilirsiniz. Unutulmamalıdır ki, sistem güvenliği sürekli bir süreçtir. Düzenli güncellemeler, güvenlik duvarı yapılandırması ve diğer güvenlik önlemleriyle birlikte bu temel adımlar, sağlam bir güvenlik duruşu oluşturmanıza yardımcı olacaktır. Her zaman en iyi güvenlik uygulamalarını takip edin ve sistemlerinizi düzenli olarak gözden geçirin.