VPS Sunucuda Kullanıcı Yetkilendirme ve Erişim Kontrolü Nasıl Yapılır

Bir VPS satın aldığınızda genellikle size yalnızca root (yönetici) erişimi olan tek bir hesap tanımlanır. Ancak sunucuyu gerçek bir üretim ortamı gibi…

Yazı boyutu
VPS Sunucuda Kullanıcı Yetkilendirme ve Erişim Kontrolü Nasıl Yapılır

Bir VPS satın aldığınızda genellikle size yalnızca root (yönetici) erişimi olan tek bir hesap tanımlanır. Ancak sunucuyu gerçek bir üretim ortamı gibi kullanmaya başladığınızda — bir web sitesi, bir uygulama veya birden fazla kişinin erişmesi gereken bir proje için — tek bir hesapla her şeyi yönetmek hem güvensiz hem de pratik olmayan bir yaklaşımdır. Bu yazıda, VPS'inizde kullanıcı hesapları oluşturmaktan dosya izinlerine, SSH anahtarlarından kontrol panellerine kadar erişim kontrolünün temel yapı taşlarını ele alıyoruz.

Bir bakışta

  • Root hesabı sınırsız yetkiye sahip olduğundan, güvenlik risklerini azaltmak için ayrı kullanıcı hesapları oluşturulmalıdır.
  • SSH anahtar çiftleri şifre tabanlı girişten daha güvenlidir ve brute-force saldırılarına karşı etkili bir koruma sağlar.
  • Dosya izinleri chmod ve chown komutlarıyla yönetilerek, her kullanıcının yalnızca gerekli alanlara erişmesi sağlanabilir.

VPS Sunucuda Kullanıcı Yetkilendirmesi Neden Önemlidir?

Root hesabı, sunucu üzerinde sınırsız yetkiye sahiptir; sistem dosyalarını silebilir, servisleri durdurabilir, başka kullanıcıların verilerine erişebilir. Bu hesabı birden fazla kişi paylaştığında veya günlük işler için kullanmaya devam ettiğinizde birkaç risk ortaya çıkar:

  • Güvenlik riskleri: Root bilgileri ele geçirilirse saldırgan sunucunun tamamına hakim olur. Ayrıca root hesabı internet üzerinden en çok hedef alınan kullanıcı adıdır; otomatik saldırı botları genellikle önce "root" kullanıcı adıyla giriş denemesi yapar.
  • Veri koruma: Farklı projeler veya müşteriler için ayrı kullanıcılar tanımlamazsanız, bir dosyadaki hata veya kötü niyetli bir işlem diğer tüm verileri etkileyebilir.
  • Sorumluluk takibi: Birden fazla kişi aynı root hesabını kullanıyorsa, sunucuda bir sorun çıktığında kimin hangi işlemi yaptığını anlamak neredeyse imkânsız hale gelir.
  • Sistem kararlılığı: Yanlışlıkla çalıştırılan bir komut (örneğin yanlış bir silme işlemi) root yetkisiyle çok daha büyük hasara yol açabilir; sınırlı yetkili kullanıcılarla bu risk azalır.

Bu nedenlerle, VPS'i aldıktan sonra yapılması gereken ilk işlerden biri uygun kullanıcı ve yetki yapısını kurmaktır.

Linux/Unix Tabanlı VPS'lerde Kullanıcı Oluşturma

Çoğu VPS, Ubuntu, Debian, CentOS veya AlmaLinux gibi Linux dağıtımlarıyla gelir. Yeni bir kullanıcı eklemek için terminalde adduser veya useradd komutları kullanılır. adduser komutu etkileşimli olduğu için yeni başlayanlar için daha kolay bir seçenektir; kullanıcı adı girildikten sonra şifre, ev dizini ve kabuk otomatik olarak yapılandırılır.

Kullanıcı oluştururken dikkat edilmesi gereken birkaç nokta vardır:

  • Şifre politikası: Basit veya tahmin edilebilir şifreler yerine uzun ve karmaşık parolalar tercih edilmelidir. Mümkünse şifre yerine SSH anahtarı kullanımı teşvik edilmelidir (bir sonraki bölümde detaylandırılıyor).
  • Ev dizini: Her kullanıcının kendi /home/kullaniciadi dizini olur; bu, kullanıcının kişisel dosyalarının tutulduğu varsayılan alandır.
  • Varsayılan kabuk: Kullanıcının terminal komutlarını hangi kabuk (örneğin bash) ile çalıştıracağı belirlenir. Sadece dosya transferi yapacak kullanıcılar için kabuk erişimi tamamen kapatılabilir (/usr/sbin/nologin gibi).

SSH Anahtar Çiftleriyle Güvenli Erişim Sağlama

Şifre tabanlı girişler, brute-force (deneme-yanılma) saldırılarına karşı nispeten savunmasızdır. Bunun yerine SSH anahtar çifti kullanmak, VPS güvenliğinde en etkili adımlardan biridir.

SSH anahtar sistemi iki parçadan oluşur:

  • Private key (özel anahtar): Yalnızca sizin bilgisayarınızda saklanan, asla paylaşılmaması gereken anahtar.
  • Public key (genel anahtar): Sunucuya yüklenen ve özel anahtarla eşleşen anahtar.

Anahtar çifti oluşturulduktan sonra, genel anahtar sunucudaki ilgili kullanıcının ~/.ssh/authorized_keys dosyasına eklenir. Bu sayede sunucuya bağlanırken şifre yerine özel anahtarınız kullanılır; şifre asla ağ üzerinden iletilmediği için saldırı yüzeyi ciddi şekilde azalır.

Anahtar tabanlı giriş aktif edildikten sonra, sunucunun SSH yapılandırmasından şifre ile girişi tamamen kapatmak (PasswordAuthentication no) ek bir güvenlik katmanı sağlar. Özel anahtarınızı yedeklemeyi ve asla e-posta gibi güvensiz kanallarla paylaşmamayı unutmayın.

Chmod ve Chown ile Dosya İzinlerini Yönetme

Linux'ta her dosya ve dizinin üç tür izin grubu vardır: sahip (owner), grup (group) ve diğerleri (others). Her grup için üç temel izin tanımlanabilir:

  • Okuma (read, r): Dosya içeriğini görüntüleme yetkisi
  • Yazma (write, w): Dosyayı değiştirme yetkisi
  • Çalıştırma (execute, x): Dosyayı program olarak çalıştırma veya dizine girme yetkisi

chmod komutu bu izinleri ayarlamak için kullanılır. İzinler genellikle sayısal (örneğin 755, 644) veya harf tabanlı (u+x, g-w gibi) şekilde belirtilir. Örneğin 755 izni, sahibe tam yetki (okuma-yazma-çalıştırma) verirken grup ve diğerlerine sadece okuma ve çalıştırma izni tanır.

chown komutu ise bir dosya veya dizinin sahibini ve/veya grubunu değiştirmek için kullanılır. Bir kullanıcıya yeni bir proje dizini tahsis ettiğinizde, o dizinin sahipliğini ilgili kullanıcıya devretmek güvenlik açısından önemlidir.

Çok sayıda dosya ve alt dizin içeren bir yapıda izinleri tek tek değiştirmek yerine -R (recursive/özyinelemeli) parametresi kullanılarak tüm alt öğelere toplu izin uygulanabilir. Ancak bu parametre dikkatli kullanılmalıdır; yanlışlıkla sistem dosyalarına uygulanan özyinelemeli bir izin değişikliği ciddi sorunlara yol açabilir.

Sudo Privilejelerini Yapılandırma

Kullanıcıların root yetkisine tamamen ihtiyaç duymadan, yalnızca belirli yönetimsel komutları çalıştırabilmesi için sudo mekanizması kullanılır. Sudo, kullanıcının kendi şifresiyle kimlik doğrulaması yaparak geçici olarak yükseltilmiş yetkiyle komut çalıştırmasına imkân tanır.

Sudo yetkilerini yapılandırmak için /etc/sudoers dosyası doğrudan bir metin editörüyle değil, visudo komutuyla düzenlenmelidir; bu komut, dosyada sözdizimi hatası olup olmadığını kontrol ederek sistemin kilitlenmesini önler.

Sudoers dosyasında bir kullanıcıya tüm komutlar için tam yetki verilebileceği gibi, yalnızca belirli komutları çalıştırma izni de tanımlanabilir. Örneğin bir kullanıcıya yalnızca belirli bir servisi yeniden başlatma yetkisi verilip, diğer tüm sistem komutlarına erişimi kapatılabilir. Ayrıca her sudo komutu varsayılan olarak günlüğe kaydedilir; bu sayede kim, ne zaman, hangi komutu çalıştırdı bilgisine ulaşılabilir.

Kullanıcı Grupları Oluşturarak Toplu Yetki Atama

Birden fazla kullanıcının aynı dosya ve dizinlere erişmesi gerektiğinde, her kullanıcıya tek tek izin tanımlamak yerine gruplar oluşturmak çok daha verimlidir. groupadd komutuyla yeni bir grup oluşturulur, usermod komutuyla da kullanıcılar bu gruba eklenir.

Örneğin bir web projesi üzerinde çalışan birden fazla geliştirici varsa, bu kişiler için ortak bir grup oluşturulup proje dizininin grup sahipliği bu gruba atanabilir. Böylece dizine yeni bir izin kuralı eklemek yerine, sadece kullanıcıyı ilgili gruba dahil ederek erişim sağlanmış olur.

Gruplar ayrıca proje bazlı organizasyon için de kullanışlıdır: farklı ekipler veya müşteriler için ayrı gruplar tanımlanarak, her grubun yalnızca kendi dizinlerine erişmesi sağlanabilir. Bir kullanıcının gruptan çıkarılması veya grubun tamamen silinmesi de yine usermod ve groupdel komutlarıyla yapılır.

Root Erişimini Kısıtlama ve Koruma

Günlük kullanıcı ve grup yapılandırması tamamlandıktan sonra, root hesabının doğrudan SSH üzerinden erişilmesini kapatmak önemli bir güvenlik adımıdır. SSH yapılandırma dosyasında bulunan PermitRootLogin parametresi no olarak ayarlandığında, root hesabıyla doğrudan uzaktan bağlantı engellenir.

Bu durumda sistem yönetimi işlemleri, normal bir kullanıcı hesabıyla giriş yapıp ardından sudo komutuyla gerçekleştirilir. Bu yaklaşımın avantajı, her yönetimsel işlemin hangi kullanıcı tarafından yapıldığının günlüklerde net şekilde görünmesidir — doğrudan root ile yapılan işlemlerde bu takip kaybolur.

Küçük ekiplerde bile tek bir "yönetici" kullanıcı yerine, her kişi için ayrı hesap açıp sudo yetkisi tanımlamak, hem güvenlik hem de hesap verebilirlik açısından önerilir.

cPanel ve Plesk Gibi Kontrol Panelleriyle Grafik Yetkilendirme

Terminal komutlarıyla uğraşmak istemeyen kullanıcılar için cPanel, Plesk gibi kontrol panelleri, kullanıcı yönetimini grafik arayüz üzerinden yapmayı mümkün kılar. Bu panellerde:

  • Yeni kullanıcı hesapları birkaç tıklamayla oluşturulabilir.
  • Her kullanıcı için disk kotası ve bant genişliği sınırları belirlenebilir.
  • E-posta hesapları ve veritabanı kullanıcıları ayrı ayrı yetkilendirilebilir.
  • FTP hesapları, yalnızca belirli bir dizine erişecek şekilde kısıtlanabilir.
  • Panel üzerinde "yönetici" ve "standart kullanıcı" gibi farklı rol seviyeleri tanımlanabilir.

Bu paneller, terminal bilgisi sınırlı olan küçük işletme sahipleri için komut satırı karmaşıklığını ortadan kaldırırken, temel yetkilendirme mantığının (kim neye erişebilir) aynı prensiplerle çalıştığını unutmamak gerekir.

FTP/SFTP Kullanıcıları İçin Erişim Kontrolü

Dosya transferi için klasik FTP protokolü, verileri şifrelemeden ilettiği için güvenlik açısından önerilmez. Bunun yerine SFTP (SSH üzerinden çalışan güvenli dosya transfer protokolü) tercih edilmelidir.

FTP/SFTP kullanıcıları tanımlanırken şu noktalara dikkat edilmelidir:

  • Chroot (dizin hapsi): Kullanıcının yalnızca kendisine ait dizine erişebilmesi, sunucunun diğer bölümlerini görememesi sağlanır.
  • Dizin kısıtlaması: Özellikle birden fazla müşteri veya proje için sunucu kullanılıyorsa, her kullanıcının yalnızca kendi klasörüyle sınırlı kalması veri sızıntısı riskini azaltır.
  • Salt SFTP erişimi: Bazı kullanıcılara yalnızca dosya transfer yetkisi verilip, tam kabuk (shell) erişimi kapatılabilir; bu, kullanıcının sunucuda komut çalıştırmasını engeller.

Başarısız Giriş Denemelerini İzleme ve Güvenlik Kontrolü

Sunucunuza kimlerin giriş yapmaya çalıştığını izlemek, olası saldırıları erken tespit etmenin anahtarıdır. Linux sistemlerde bu kayıtlar genellikle /var/log/auth.log (Debian/Ubuntu tabanlı sistemlerde) veya /var/log/secure (CentOS/RHEL tabanlı sistemlerde) dosyalarında tutulur.

Bu günlükler incelendiğinde, tekrarlayan başarısız giriş denemeleri, bilinmeyen IP adreslerinden gelen SSH bağlantı girişimleri gibi şüpheli aktiviteler fark edilebilir. Manuel inceleme zaman alıcı olduğundan, Fail2ban gibi araçlar bu günlükleri otomatik tarayarak belirli sayıda başarısız denemeden sonra ilgili IP adresini geçici veya kalıcı olarak engelleyebilir. Bu, brute-force saldırılarına karşı etkili bir savunma katmanıdır.

Daha ileri düzey takip isteyen kullanıcılar için auditd gibi araçlar, kullanıcı bazlı dosya erişimlerini ve komut çalıştırmalarını detaylı şekilde günlüğe kaydedebilir.

Pratik Güvenlik Tavsiyeleri ve En İyi Uygulamalar

Kullanıcı yetkilendirme ve erişim kontrolü tek seferlik bir kurulum değil, sürekli bakım gerektiren bir süreçtir:

  • Artık kullanılmayan veya ayrılan kişilere ait hesapları düzenli olarak kaldırın.
  • Şifreleri periyodik olarak güncelleyin; mümkünse şifre yerine SSH anahtarına geçiş yapın.
  • Kullanıcılara yalnızca işlerini yapmak için gereken minimum yetkiyi tanıyın (en az ayrıcalık ilkesi).
  • Sudo günlüklerini ve SSH giriş kayıtlarını belirli aralıklarla gözden geçirin.
  • Yeni bir kullanıcı veya ekip üyesi eklerken, geniş yetkiler vermek yerine ihtiyaç duydukça kademeli olarak yetki tanımlayın.

Bu uygulamalar, özellikle küçük işletmeler ve bireysel kullanıcılar için karmaşık görünse de, temel düzeyde uygulandığında VPS'inizin güvenliğini önemli ölçüde artırır. Sunucu büyüdükçe ve kullanıcı sayısı arttıkça, baştan kurulan düzenli bir yetkilendirme yapısı, ileride çıkabilecek güvenlik sorunlarının önüne geçmenin en etkili yoludur.

Vps Hattı Editör Ekibi

Sanal sunucuda güç bul

Tüm yazıları

Sen ne düşünüyorsun?

Yorumlar onaylandıktan sonra yayınlanır. E-posta adresin yayınlanmaz.

Okumaya devam et

Tüm yazılar
Bülten

Haftanın fikirleri, gelen kutunda.

Teknoloji ve daha fazlası için hazırladığımız haftalık özeti kaçırma.