Celil Uyanikoglu

Linux Sunucu Yönetimi: Sistem Yöneticisi Rehberi

Celil Uyanikoglu Celil Uyanikoglu · 15 Nis 2026 · 6 dk okuma

Web sunucularının büyük çoğunluğu Linux üzerinde çalışıyor. Ücretsiz olması, esnekliği ve güvenilirliği Linux'u sunucu ortamlarında vazgeçilmez kıldı. Bu rehberde Linux sunucu yönetiminin temellerini ele alacağız.

SSH ile Uzak Bağlantı

SSH (Secure Shell), sunuculara güvenli uzak erişim sağlayan protokoldür. Tüm iletişimi şifreler, dışarıdan dinlemelere karşı korur.

Temel Bağlantı

ssh kullanici@sunucu_ip

Farklı port kullanıyorsanız:

ssh -p 2222 kullanici@sunucu_ip

Anahtar Tabanlı Kimlik Doğrulama

Şifreler kaba kuvvet saldırılarına karşı savunmasız. SSH anahtarları çok daha güvenli.

Anahtar çifti oluşturma:

ssh-keygen -t ed25519 -C "[email protected]"

Ed25519 modern ve güvenli algoritma. RSA da hâlâ yaygın kullanılıyor.

Açık anahtarı sunucuya kopyalama:

ssh-copy-id kullanici@sunucu_ip

Artık şifre girmeden bağlanabilirsiniz.

SSH Güvenlik Ayarları

/etc/ssh/sshd_config dosyasını düzenleyin:

Port değiştirme: Varsayılan 22 yerine farklı port kullanın. Otomatik saldırıları azaltır.

Port 2222

Root girişini kapatma: Root kullanıcıyla doğrudan SSH bağlantısını engelleyin.

PermitRootLogin no

Şifre girişini kapatma: Sadece anahtar tabanlı kimlik doğrulamaya izin verin.

PasswordAuthentication no

Boş şifreleri engelleme:

PermitEmptyPasswords no

Değişikliklerden sonra SSH servisini yeniden başlatın:

sudo systemctl restart sshd

Kullanıcı ve Yetki Yönetimi

Kullanıcı İşlemleri

Yeni kullanıcı oluşturma:

sudo adduser yeni_kullanici

Kullanıcıyı sudo grubuna ekleme:

sudo usermod -aG sudo yeni_kullanici

Kullanıcı silme:

sudo deluser kullanici_adi

Şifre değiştirme:

sudo passwd kullanici_adi

Dosya İzinleri

Linux'ta üç izin türü var: okuma (r=4), yazma (w=2), çalıştırma (x=1).

Üç kullanıcı kategorisi: sahip (owner), grup (group), diğerleri (others).

chmod 755 dosya: rwxr-xr-x (sahip tam yetki, diğerleri oku-çalıştır) chmod 644 dosya: rw-r--r-- (sahip oku-yaz, diğerleri sadece oku) chmod 600 dosya: rw------- (sadece sahip erişebilir)

Sahiplik değiştirme:

sudo chown kullanici:grup dosya

Servis Yönetimi (systemd)

Modern Linux dağıtımları systemd kullanır. Servisleri kontrol etmek için systemctl komutu.

Temel Komutlar

Servis başlatma: sudo systemctl start nginx Servis durdurma: sudo systemctl stop nginx Servis yeniden başlatma: sudo systemctl restart nginx Servis durumu: sudo systemctl status nginx Açılışta otomatik başlatma: sudo systemctl enable nginx Otomatik başlatmayı kaldırma: sudo systemctl disable nginx

Tüm servisleri listeleme:

systemctl list-units --type=service

Başarısız servisleri görme:

systemctl --failed

Servis Logları

journalctl -u nginx: Nginx logları journalctl -u nginx -f: Canlı log takibi journalctl --since "1 hour ago": Son 1 saatin logları

Güvenlik Duvarı (Firewall)

UFW (Uncomplicated Firewall)

Ubuntu'nun varsayılan güvenlik duvarı aracı. Kullanımı basit.

UFW'yi etkinleştirme:

sudo ufw enable

Durum kontrolü:

sudo ufw status verbose

Port açma:

sudo ufw allow 80 sudo ufw allow 443 sudo ufw allow 22

Belirli IP'ye izin verme:

sudo ufw allow from 192.168.1.100

Port kapatma:

sudo ufw deny 3306

Kural silme:

sudo ufw delete allow 80

Varsayılan politikalar:

sudo ufw default deny incoming sudo ufw default allow outgoing

Firewalld

CentOS, Fedora ve RHEL'de yaygın.

Zone tabanlı yapılandırma, kalıcı ve geçici kurallar desteği.

Fail2ban

Log dosyalarını izleyerek şüpheli aktiviteleri tespit eder ve saldırgan IP'leri otomatik engeller.

Kurulum:

sudo apt install fail2ban

SSH koruması için /etc/fail2ban/jail.local oluşturun:

[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5 bantime = 3600 findtime = 600

5 başarısız deneme sonrası IP 1 saat engellenir.

Fail2ban durumu:

sudo fail2ban-client status sudo fail2ban-client status sshd

Engeli kaldırma:

sudo fail2ban-client set sshd unbanip 192.168.1.100

Sistem İzleme

Kaynak Kullanımı

top: Gerçek zamanlı işlem izleme. htop: Gelişmiş, renkli arayüz (kurulum gerekebilir). free -h: Bellek kullanımı. df -h: Disk kullanımı. du -sh /var/*: Dizin boyutları.

Disk ve Bellek Kontrolü

Disk doluluk oranı kritik. Yüzde 80'in üzerine çıkmadan önlem alın.

df -h | grep -E '^/dev'

En çok yer kaplayan dizinler:

du -h --max-depth=1 / | sort -hr | head -20

İşlem Yönetimi

ps aux: Tüm işlemler. ps aux | grep nginx: Belirli işlem ara. kill PID: İşlem sonlandır. kill -9 PID: Zorla sonlandır.

Ağ İzleme

Açık portları görme:

ss -tuln netstat -tuln

Aktif bağlantılar:

ss -tun

Log Yönetimi

/var/log dizininde sistem logları bulunur.

Önemli log dosyaları:

/var/log/syslog veya /var/log/messages: Genel sistem logları /var/log/auth.log: Kimlik doğrulama logları /var/log/nginx/access.log: Web sunucu erişim logları

Log izleme:

tail -f /var/log/syslog journalctl -f

Yedekleme

Düzenli yedekleme kritik. Farklı lokasyona yedek alın.

rsync ile Yedekleme

rsync -avz /kaynak/ /hedef/

Uzak sunucuya:

rsync -avz -e ssh /kaynak/ kullanici@sunucu:/hedef/

Otomatik Yedekleme (cron)

crontab -e ile zamanlanmış görev ekleyin:

0 2 * rsync -avz /var/www/ /backup/www/

Her gece 02:00'de yedekleme yapar.

Veritabanı Yedekleme

MySQL/MariaDB:

mysqldump -u root -p veritabani > yedek.sql

PostgreSQL:

pg_dump veritabani > yedek.sql

Sistem Güncellemeleri

Güncel tutmak güvenlik için kritik.

Debian/Ubuntu:

sudo apt update sudo apt upgrade

CentOS/RHEL:

sudo yum update

veya

sudo dnf update

Otomatik güvenlik güncellemeleri için unattended-upgrades (Debian/Ubuntu) yapılandırılabilir.

Performans Optimizasyonu

Swap Ayarları

Yetersiz RAM durumunda swap kullanılır.

Swap kullanımını kontrol:

free -h swapon --show

Swappiness değeri (ne kadar agresif swap kullanılacağı):

cat /proc/sys/vm/swappiness

Sunucularda düşük değer (10-20) önerilir:

sudo sysctl vm.swappiness=10

Kalıcı yapmak için /etc/sysctl.conf dosyasına ekleyin.

Gereksiz Servisleri Kapatma

Kullanılmayan servisleri devre dışı bırakın:

sudo systemctl disable bluetooth sudo systemctl stop bluetooth

Güvenlik Kontrol Listesi

Düzenli güncellemeler yapın. Güçlü şifreler ve SSH anahtarları kullanın. Root SSH girişini kapatın. Güvenlik duvarı yapılandırın. Fail2ban ile brute-force koruması sağlayın. Gereksiz servisleri kapatın. Log dosyalarını izleyin. Düzenli yedekleme yapın ve test edin. Minimum yetki prensibi uygulayın. SSL/TLS sertifikalarını güncel tutun.

Sonuç

Linux sunucu yönetimi geniş bir alan. Bu rehber temel konuları kapsıyor. SSH güvenliği, güvenlik duvarı, servis yönetimi ve izleme en kritik konular.

Her sunucu ortamı farklı gereksinimler barındırır. Web sunucusu, veritabanı sunucusu, mail sunucusu için ek yapılandırmalar gerekir.

Öğrenmeye devam edin, logları düzenli inceleyin ve güvenliği asla ihmal etmeyin. Güncel kalmak bu işin ayrılmaz parçası.

0 Yorum

Yorum Yaz