Yazılar & Rehberler

Blog

Linux Sunucu Yönetimi: Temel Rehber

İpuçları & Rehberler BUZ Yazılım 05 Ekim 2026

Linux, web sunucularının büyük çoğunluğunda tercih edilen işletim sistemidir. Güvenilirliği, esnekliği ve maliyetsiz olması, onu hem küçük işletmeler hem de büyük kuruluşlar için ideal kılar. Bu rehberde, Linux sunucu yönetiminin temellerini ve en iyi uygulamalarını ele alıyoruz.

Temel Linux Komutları

Sunucu yönetiminde sıklıkla kullanılan komutlar:

Dosya ve Dizin İşlemleri

ls -la /var/www/            # Detaylı dosya listesi
cd /etc/nginx/              # Dizin değiştirme
cp -r kaynak/ hedef/        # Dizin kopyalama
mv dosya.conf dosya.bak     # Taşıma/yeniden adlandırma
rm -rf /tmp/gecici/         # Dizin silme (dikkatli kullanın!)
find / -name "*.log" -mtime +30  # 30 günden eski log dosyaları

Dosya İçerik İşlemleri

cat /var/log/syslog         # Dosya içeriğini görüntüleme
tail -f /var/log/nginx/error.log  # Canlı log takibi
grep "error" /var/log/syslog      # Metin arama
nano /etc/nginx/nginx.conf        # Dosya düzenleme

Sistem Bilgisi

uname -a                    # Sistem bilgisi
df -h                       # Disk kullanımı
free -m                     # Bellek kullanımı
top                         # Anlık sistem durumu
uptime                      # Çalışma süresi

Kullanıcı ve Yetki Yönetimi

Güvenli bir sunucu için kullanıcı yönetimi kritik öneme sahiptir:

Kullanıcı İşlemleri

adduser yenikullanici           # Yeni kullanıcı oluşturma
usermod -aG sudo yenikullanici  # Sudo grubuna ekleme
passwd yenikullanici            # Şifre değiştirme
deluser eskikullanici           # Kullanıcı silme

Dosya İzinleri

  • chmod: Dosya izinlerini değiştirme (örn: chmod 755 script.sh)
  • chown: Dosya sahibini değiştirme (örn: chown www-data:www-data dosya)
  • Octal gösterim: 4=okuma, 2=yazma, 1=çalıştırma

Root kullanıcısı ile doğrudan çalışmaktan kaçının. Her zaman normal bir kullanıcı hesabı oluşturup sudo ile yetki yükseltme yapın.

Güvenlik Ayarları

Sunucu güvenliğinin temel taşları:

SSH Güvenliği

  1. Varsayılan portu değiştirin: 22 yerine farklı bir port kullanın
  2. Parola ile girişi devre dışı bırakın: SSH anahtar tabanlı kimlik doğrulama kullanın
  3. Root girişini engelleyin: PermitRootLogin no ayarını yapın
  4. Fail2Ban kurun: Brute-force saldırılarına karşı koruma

SSH Anahtar Oluşturma

ssh-keygen -t ed25519 -C "email@ornek.com"
ssh-copy-id -i ~/.ssh/id_ed25519.pub kullanici@sunucu

Firewall (UFW)

ufw default deny incoming       # Gelen trafiği engelle
ufw default allow outgoing      # Giden trafiğe izin ver
ufw allow 22/tcp                # SSH portu
ufw allow 80/tcp                # HTTP
ufw allow 443/tcp               # HTTPS
ufw enable                      # Firewall'u etkinleştir
ufw status verbose              # Kuralları görüntüle

Güncelleme Yönetimi

apt update && apt upgrade -y    # Debian/Ubuntu
dnf update -y                   # RHEL/CentOS/Fedora

Otomatik güvenlik güncellemelerini etkinleştirin:

apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades

Yedekleme Stratejileri

Veri kaybını önlemek için düzenli yedekleme şarttır:

Yedekleme Türleri

  • Tam yedekleme: Tüm verilerin kopyası
  • Artımlı yedekleme: Son yedeklemeden bu yana değişen veriler
  • Diferansiyel yedekleme: Son tam yedeklemeden bu yana değişen veriler

Yedekleme Araçları

  • rsync: Dosya senkronizasyonu ve artımlı yedekleme
  • tar: Arşiv oluşturma ve sıkıştırma
  • cron: Zamanlama ile otomatik yedekleme
  • rclone: Bulut depolamaya yedekleme

Örnek Yedekleme Betiği

#!/bin/bash
TARIH=$(date +%Y%m%d)
tar -czf /yedek/site-$TARIH.tar.gz /var/www/html/
mysqldump -u root veritabani > /yedek/db-$TARIH.sql
# 30 günden eski yedekleri temizle
find /yedek/ -mtime +30 -delete

İzleme ve Performans

Sunucu sağlığını sürekli izlemek için:

Sistem İzleme Araçları

  • htop: Gelişmiş süreç izleme
  • iotop: Disk I/O izleme
  • nethogs: Ağ trafiği izleme (süreç bazında)
  • journalctl: Systemd log inceleme

Log Yönetimi

  • /var/log/syslog: Genel sistem logları
  • /var/log/auth.log: Kimlik doğrulama logları
  • /var/log/nginx/: Web sunucu logları
  • logrotate: Otomatik log döndürme ve sıkıştırma

Disk İzleme

df -h                       # Disk doluluk oranı
du -sh /var/log/             # Dizin boyutu
ncdu /                       # İnteraktif disk analizi

Servis Yönetimi (systemd)

Modern Linux dağıtımlarında servis yönetimi:

systemctl start nginx           # Servisi başlat
systemctl stop nginx            # Servisi durdur
systemctl restart nginx         # Servisi yeniden başlat
systemctl status nginx          # Servis durumunu kontrol et
systemctl enable nginx          # Başlangıçta otomatik başlat
systemctl disable nginx         # Otomatik başlatmayı kapat

En İyi Uygulamalar

  1. Her zaman yedekleme yapın: Herhangi bir değişiklikten önce yedek alın
  2. Değişiklikleri belgeleyin: Ne zaman, ne değiştiğini kaydedin
  3. Test ortamı kullanın: Değişiklikleri önce test ortamında deneyin
  4. Minimum yetki prensibi: Kullanıcılara sadece ihtiyaç duydukları yetkileri verin
  5. Güncellemeleri ihmal etmeyin: Güvenlik yamalarını zamanında uygulayın

Sonuç

Linux sunucu yönetimi, başlangıçta karmaşık görünse de temel prensipleri öğrendikten sonra güçlü ve güvenilir bir altyapı oluşturabilirsiniz. BUZ Yazılım olarak, müşterilerimize sunucu kurulumu, yapılandırma ve bakım hizmetleri sunuyoruz. Sunucu altyapınız için destek almak isterseniz bizimle iletişime geçin.

Projeniz için profesyonel destek mi arıyorsunuz?

Ücretsiz Teklif Alın