Skip to main content

Ubuntu ile İlk Sunucu Kurulumu

Giriş

Yeni bir Ubuntu sunucusu kurduğunda, işe başlamadan önce yapman gereken bazı temel ayarlar vardır. Bu adımlar hem güvenliği hem de kullanım kolaylığını artırır. Kısacası, sağlam bir başlangıç yaparak sonraki işlemler için sorunsuz bir zemin hazırlamış olursun.

İçindekiler

Adım 1 — Root Kullanıcısı ile Giriş

Sunucuna giriş yapmak için öncelikle sunucunun genel IP adresini bilmen gerekir. Ayrıca root hesabının parolasına ya da SSH anahtarını kurduysan o özel anahtara ihtiyacın olacak.

Eğer şu anda sunucuna bağlı değilsen, root kullanıcısı ile giriş yapmak için aşağıdaki komutu kullanabilirsin. Buradaki your_server_ip kısmını kendi sunucunun genel IP adresiyle değiştirmen yeterli:

ssh root@your_server_ip

Bağlanırken sunucu kimliğiyle ilgili bir uyarı görürsen onayla ve devam et.
Eğer şifre ile giriş yapıyorsan root parolasını girmen gerekir. SSH anahtarı kullanıyorsan ve anahtar şifre korumalıysa, oturumun ilk kullanımında bu parolayı girmen istenir.

İlk kez şifreyle giriş yapıyorsan, sistem senden root parolasını değiştirmeni de isteyebilir. Böyle bir uyarı alırsan ekrandaki adımları takip ederek yeni şifreni belirle.

Root Hakkında

Root, Linux sistemlerinde en yetkili kullanıcıdır. Yani her şeyi yapabilir, bu yüzden yanlış bir komut bile sistemi bozabilir. Bu nedenle root hesabını günlük kullanımda tercih etmek önerilmez.

Bir sonraki adımda, daha güvenli çalışmak için kısıtlı yetkilere sahip yeni bir kullanıcı oluşturacağız. İhtiyaç duyduğunda ise geçici olarak yönetici yetkileri alabileceksin.

Adım 2 — Yeni Bir Kullanıcı Oluşturma

Root ile giriş yaptıktan sonra yeni bir kullanıcı ekleyebilirsin. Bundan sonra root yerine bu hesabı kullanacağız.

Aşağıdaki örnekte sammy isminde bir kullanıcı oluşturuluyor. Sen burayı kendi istediğin kullanıcı adıyla değiştirebilirsin:

adduser sammy

Kullanıcı oluştururken senden önce bir parola isteyecek. Güçlü bir şifre belirlemen önemli.

Sonrasında bazı ek bilgiler (isim, telefon vb.) sorabilir ama bunları doldurmak zorunda değilsin. İstersen ENTER tuşuna basarak geçebilirsin.

Adım 3 — Yönetici Yetkileri Verme

Yeni oluşturduğun kullanıcı şu an normal bir hesaptır. Ancak bazen root yetkisi gerektiren yönetimsel işlemler yapman gerekecek.

Sürekli root hesabına giriş-çıkış yapmakla uğraşmamak için, normal kullanıcıya yönetici (sudo) yetkisi verebilirsin. Böylece komutların başına sudo yazarak gerekli işlemleri root gibi çalıştırabilirsin.

Yeni kullanıcıya bu yetkileri vermek için onu sudo grubuna eklemen gerekir. Ubuntu’da sudo grubunda olan kullanıcılar sudo komutunu kullanabilir.

Root olarak şu komutu çalıştır ve sammy yerine kendi kullanıcı adını yaz:

usermod -aG sudo sammy

Artık normal kullanıcıyla giriş yaptığında, komutların başına sudo yazarak onları yönetici yetkisiyle, yani daha yüksek izinlerle çalıştırabilirsin.

Adım 4 — Güvenlik Duvarı Ayarlama

Ubuntu sunucularında UFW (Uncomplicated Firewall) yani Türkçesiyle Karmaşık Olmayan Güvenlik Duvarı kullanarak hangi servislerin dışarıya karşı açık olacağını kontrol edebilirsin. Bu araçla basit bir güvenlik duvarı kurmak mümkün.

Not:

Aynı anda birden fazla güvenlik duvarı kullanma. Çakışan kurallar yüzünden sorunları çözmek zorlaşabilir.

Bazı uygulamalar kurulurken kendi UFW profillerini ekler. Böylece bu servisleri isimleriyle yönetebilirsin. Mesela sunucuya bağlanmamızı sağlayan OpenSSH için zaten bir profil vardır.

Yüklü profilleri görmek için şu komutu yazabilirsin:

ufw app list
Output
Available applications:
OpenSSH

Güvenlik duvarının SSH bağlantılarına izin verdiğinden emin olman lazım, yoksa bir dahaki girişte sunucuya ulaşamazsın. İzin vermek için şu komutu yaz:

ufw allow OpenSSH

Artık güvenlik duvarını aktif edebilirsin. Bunun için aşağıda belirttiğimiz şu komutu yazmalısın:

ufw enable

Komut sonrası sistem senden onay isteyecek. Y yazıp ENTER’a basarak devam etmelisin.

Ardından SSH bağlantılarının hâlâ açık olduğunu görmek için şunu yazabilirsin:

ufw status
Output
Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)

Şu anda güvenlik duvarı, SSH dışında tüm bağlantıları engelliyor. İleride yeni servisler kurduğun vakit, bu trafiğe izin vermek için UFW ayarlarını güncellemen gerekir.

Yeni bir servis eklediğinde kural tanımlamayı unutma, yoksa dışarıdan erişilemez.

Adım 5 — Normal Kullanıcıya Dışarıdan Erişim Açma

Artık günlük kullanım için bir normal kullanıcı hesabın var. Şimdi bu hesaba SSH ile doğrudan bağlanabildiğinden emin olmalısın.

Not:

Yeni kullanıcıyla giriş yapıp sudo komutunun çalıştığını görmeden root oturumunu kapatmamalısın. Bağlantıda sorun yaşarsan root üzerinden gerekli düzeltmeleri yapabilirsin.

Yeni kullanıcı için SSH erişimini ayarlama şekli, root hesabına giriş yaparken şifre mi yoksa SSH anahtarı mı kullandığına bağlıdır.

Root Hesabına Şifre ile Giriş Yapıyorsa

Root’a şifreyle giriş yaptıysan, demek ki SSH için parola doğrulaması açık durumda.
Yeni kullanıcı hesabına bağlanmak için yeni bir terminal aç ve kullanıcı adını yazarak SSH ile giriş yap:

ssh yeni_kullanici@sunucu-ip

Parolanı girdikten sonra normal kullanıcı hesabınla oturum açmış olacaksın.
Unutma, yönetici yetkisi gereken bir komut çalıştırman gerekirse başına sudo eklemen yeterlidir:

sudo komut

sudo'yu ilk kullandığında veya ara sıra senden normal kullanıcı parolan istenir.

Sunucunun güvenliğini artırmak için ise şifre yerine SSH anahtarlarıyla giriş yapmanı şiddetle tavsiye etmekteyiz. Bu yöntem hem daha güvenlidir hem de uzun vadede işini kolaylaştırır.

Root Hesabına SSH Anahtarı ile Giriş Yapıyorsa

Root’a SSH anahtarıyla giriş yaptıysan, demek ki parola doğrulaması kapalıdır.
Bu durumda yeni kullanıcıyla giriş yapabilmek için, kendi bilgisayarındaki public key dosyanın bir kopyasını yeni kullanıcının ~/.ssh/authorized_keys dosyasına eklemen gerekir.

Zaten public key’in sunucuda root kullanıcısının ~/.ssh/authorized_keys dosyasında kayıtlı olmaktadır.
Şimdi mevcut oturumundayken bu dosya ve klasör yapısını yeni kullanıcıya kopyalayabilirsin.

Bu dosyaları doğru izinlerle kopyalamanın en kolay yolu rsync komutunu kullanmaktır.
rysnc komutu, root kullanıcısının .ssh dizinini yeni kullanıcıya kopyalar, izinleri korur ve sahipliği otomatik olarak düzenler.

Not:

rsync kullanırken dikkat et — kaynak dizinin sonunda / olmamalı.
Yani ~/.ssh kullanımı doğru,
~/.ssh/ kullanımı yanlıştır.

Eğer yanlışlıkla / koyarsan, sadece içindeki dosyalar kopyalanır, dizin yapısı bozulur ve SSH anahtarlarını bulamaz.

rsync --archive --chown=kullaniciadi:kullaniciadi /root/.ssh /home/kullaniciadi

Şimdi bilgisayarında yeni bir terminal aç ve yeni kullanıcı adınla SSH üzerinden bağlan:

ssh kullaniciadi@sunucu-ip

Artık yeni kullanıcı hesabınla şifresiz şekilde sunucuya bağlanabilirsin.
Sakın unutma, yönetici yetkisi gereken bir komut çalıştıracaksan başına sudo eklemelisin:

sudo komut

sudo'yu ilk kullandığında ve ara sıra senden normal kullanıcı parolanı girmen istenecektir.

Buradan Sonra Ne Yapabilirsin?

Beraber sunucun için sağlam bir temel attık. Bundan sonra ihtiyacın olan yazılımları kurmaya başlayabilirsin.

Eğer Linux komutlarını daha iyi öğrenmek istersen, temel komutlara göz atarak pratik yapabilirsin. Böylece sunucunu çok daha rahat yönetirsin.