VDS Sunucuya SSH ile Bağlanma Rehberi (PuTTY & Terminal)
Linux VDS sunucunuza SSH ile bağlanma adımları: PuTTY, Terminal, anahtar tabanlı kimlik doğrulama, Path Panel firewall kuralı ve güvenlik ipuçları.
unattended-upgrades kurulumu ve yapılandırması, yalnızca güvenlik güncellemeleri, e-posta bildirimleri, test etme, riskler ve önlemler rehberi.
Sunucu güvenliğinin en temel gereksinimlerinden biri, güvenlik yamalarının zamanında uygulanmasıdır. Manuel güncelleme yapmayı unutmak, sunucunuzu bilinen güvenlik açıklarına karşı savunmasız bırakabilir. unattended-upgrades paketi, Ubuntu ve Debian sistemlerde güvenlik güncellemelerini otomatik olarak uygular. Bu rehberde kurulum, yapılandırma ve en iyi uygulamaları öğreneceksiniz.
unattended-upgrades, sisteminizin güvenlik güncellemelerini insan müdahalesi olmadan otomatik olarak indirip yükleyen bir APT eklentisidir. Özellikle şunlar için idealdir:
Otomatik güncellemeler bazı durumlarda servis kesintilerine yol açabilir. Özellikle kernel güncellemeleri yeniden başlatma gerektirir. Üretim ortamlarında dikkatli yapılandırın.
# Paketi kur
sudo apt update
sudo apt install unattended-upgrades apt-listchanges -y
# Kurulumu doğrula
dpkg -l unattended-upgrades
# Servisi kontrol et
systemctl status unattended-upgrades
# Temel yapılandırmayı otomatik ayarla
sudo dpkg-reconfigure -plow unattended-upgrades
# "Yes" seçeneğini seçin
Ana yapılandırma dosyası: /etc/apt/apt.conf.d/50unattended-upgrades
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
// Ubuntu güvenlik güncellemeleri
"${distro_id}:${distro_codename}-security";
// ESM güvenlik güncellemeleri (Ubuntu Pro)
"${distro_id}ESMApps:${distro_codename}-apps-security";
"${distro_id}ESM:${distro_codename}-infra-security";
// Tüm güncellemeler (önerilmez — sadece güvenlik güncellemeleri tercih edilir)
// "${distro_id}:${distro_codename}";
// "${distro_id}:${distro_codename}-updates";
};
// Belirli paketleri güncelleme dışında tut
Unattended-Upgrade::Package-Blacklist {
// "nginx";
// "mysql-server";
// "php*";
};
// Güncelleme sonrası otomatik yeniden başlatma
Unattended-Upgrade::Automatic-Reboot "false";
// Yeniden başlatma zamanı (sadece Automatic-Reboot true ise)
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
// Kullanılmayan bağımlılıkları kaldır
Unattended-Upgrade::Remove-Unused-Dependencies "true";
// Kullanılmayan kernel'ları kaldır
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
// E-posta bildirimi
Unattended-Upgrade::Mail "admin@rexe.tr";
// Sadece hata durumunda e-posta gönder
Unattended-Upgrade::MailReport "on-change";
// Seçenekler: "always", "only-on-error", "on-change"
// Güncelleme logunu tut
Unattended-Upgrade::SyslogEnable "true";
Unattended-Upgrade::SyslogFacility "daemon";
Güncelleme sıklığı /etc/apt/apt.conf.d/20auto-upgrades dosyasında ayarlanır:
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
// Paket listesini her gün güncelle
APT::Periodic::Update-Package-Lists "1";
// Güncellenebilir paketleri her gün indir
APT::Periodic::Download-Upgradeable-Packages "1";
// unattended-upgrades'i her gün çalıştır
APT::Periodic::Unattended-Upgrade "1";
// Eski paket önbelleğini her 7 günde bir temizle
APT::Periodic::AutocleanInterval "7";
Değerler gün cinsinden belirtilir. "1" = her gün, "7" = her hafta, "0" = devre dışı.
Üretim sunucularında yalnızca güvenlik güncellemelerini otomatik uygulamak en güvenli yaklaşımdır:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
// SADECE güvenlik güncellemeleri
"${distro_id}:${distro_codename}-security";
};
// Diğer tüm güncelleme kaynaklarını yorum satırına al
// "${distro_id}:${distro_codename}";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-backports";
Güncelleme bildirimleri için mailutils veya postfix gereklidir:
# mailutils kur
sudo apt install mailutils -y
# Basit SMTP yapılandırması için
sudo apt install ssmtp -y
sudo nano /etc/ssmtp/ssmtp.conf
root=admin@rexe.tr
mailhub=smtp.gmail.com:587
AuthUser=your-email@gmail.com
AuthPass=your-app-password
UseTLS=YES
UseSTARTTLS=YES
# E-posta testini yap
echo "Test mesajı" | mail -s "Sunucu Güncelleme Testi" admin@rexe.tr
# Gerçekten güncelleme yapmadan simüle et
sudo unattended-upgrade --dry-run --debug
# Daha ayrıntılı çıktı
sudo unattended-upgrade -d --dry-run
# unattended-upgrades'i hemen çalıştır
sudo unattended-upgrade -d
# Verbose modda çalıştır
sudo unattended-upgrade --verbose
# Ana log dosyası
cat /var/log/unattended-upgrades/unattended-upgrades.log
# Hata logları
cat /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
# Gerçek zamanlı log takibi
tail -f /var/log/unattended-upgrades/unattended-upgrades.log
# Son güncelleme zamanını kontrol et
ls -la /var/log/unattended-upgrades/
Kernel güncellemeleri özel dikkat gerektirir:
# Yeniden başlatma gerektiren güncellemeleri kontrol et
cat /var/run/reboot-required
# Hangi paketlerin yeniden başlatma gerektirdiğini gör
cat /var/run/reboot-required.pkgs
# Yeniden başlatma gerekip gerekmediğini kontrol et
if [ -f /var/run/reboot-required ]; then
echo "Yeniden başlatma gerekiyor!"
fi
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
// Otomatik yeniden başlatmayı etkinleştir
Unattended-Upgrade::Automatic-Reboot "true";
// Yeniden başlatma zamanı (gece 2:00)
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
// Kullanıcı oturumu açıksa bile yeniden başlat
Unattended-Upgrade::Automatic-Reboot-WithUsers "false";
Otomatik yeniden başlatmayı etkinleştirmeden önce uygulamanızın yeniden başlatmayı tolere edip edemeyeceğini değerlendirin. Kritik üretim sistemlerinde manuel yeniden başlatma tercih edilir.
# 1. Kritik paketleri kara listeye al
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Package-Blacklist {
// Kritik veritabanı sunucusu
"mysql-server";
"postgresql";
// Web sunucusu
"nginx";
"apache2";
// Kernel (manuel güncelleme için)
"linux-image*";
"linux-headers*";
};
# 2. Güncelleme öncesi snapshot al (desteklenen sistemlerde)
# 3. Güncelleme loglarını düzenli kontrol et
tail -100 /var/log/unattended-upgrades/unattended-upgrades.log
# 4. Güncelleme sonrası servis durumlarını kontrol et
systemctl --failed
RPM tabanlı sistemlerde dnf-automatic kullanılır:
# Kur
sudo dnf install dnf-automatic -y
# Yapılandır
sudo nano /etc/dnf/automatic.conf
[commands]
# Sadece güvenlik güncellemeleri
upgrade_type = security
# Güncellemeleri otomatik uygula
apply_updates = yes
[emitters]
# E-posta bildirimi
emit_via = email
email_to = admin@rexe.tr
[email]
email_from = server@rexe.tr
email_host = localhost
# Servisi etkinleştir
sudo systemctl enable --now dnf-automatic.timer
# Durumu kontrol et
sudo systemctl status dnf-automatic.timer
# Timer'ları listele
sudo systemctl list-timers dnf-automatic*
Hem Ubuntu hem de CentOS sistemlerinde, otomatik güncellemeleri etkinleştirdikten sonra ilk hafta log dosyalarını yakından takip edin. Bu, beklenmedik sorunları erken tespit etmenizi sağlar.
unattended-upgrades, REXE sunucularınızın güvenliğini korumak için güçlü bir araçtır. Yalnızca güvenlik güncellemelerini otomatik uygulayarak, kritik paketleri kara listeye alarak ve e-posta bildirimlerini etkinleştirerek hem güvenli hem de kararlı bir sunucu ortamı oluşturabilirsiniz. Düzenli log kontrolü ve test ortamında doğrulama, otomatik güncelleme sürecini daha güvenilir hale getirir.
Varsayılan yapılandırmada sadece güvenlik güncellemelerini yükler. /etc/apt/apt.conf.d/50unattended-upgrades dosyasındaki Allowed-Origins bölümünde hangi güncelleme kaynaklarının kullanılacağını kontrol edebilirsiniz. Üretim sunucuları için sadece '-security' kaynağını aktif bırakmanız önerilir.
Varsayılan olarak günde bir kez çalışır. Tam zaman, sistemin APT timer'ına göre değişir (genellikle gece). /etc/apt/apt.conf.d/20auto-upgrades dosyasında sıklığı ayarlayabilirsiniz. Systemd timer'ı ile de özelleştirebilirsiniz.
50unattended-upgrades dosyasındaki Package-Blacklist bölümüne paket adını ekleyin. Örneğin nginx'i hariç tutmak için 'nginx'; satırını ekleyin. Wildcard kullanabilirsiniz: 'php*'; tüm PHP paketlerini hariç tutar.
50unattended-upgrades dosyasında 'Unattended-Upgrade::Automatic-Reboot "false";' ayarını yapın. Bu, kernel güncellemeleri dahil hiçbir güncellemenin otomatik yeniden başlatma yapmamasını sağlar. Yeniden başlatmayı manuel olarak planlayabilirsiniz.
Birkaç yöntem var: 'systemctl status unattended-upgrades' ile servis durumunu, 'cat /var/log/unattended-upgrades/unattended-upgrades.log' ile log dosyasını kontrol edin. 'sudo unattended-upgrade --dry-run' ile simülasyon yapabilirsiniz.
Linux VDS sunucunuza SSH ile bağlanma adımları: PuTTY, Terminal, anahtar tabanlı kimlik doğrulama, Path Panel firewall kuralı ve güvenlik ipuçları.
Windows Server VDS sunucunuza Uzak Masaüstü (RDP) ile bağlanma adımları, NLA güvenlik ayarları, Path Panel firewall kuralı ve sorun giderme rehberi.
REXE panel üzerinden VDS sunucunuzun işletim sistemini değiştirme adımları, yedekleme önerileri, desteklenen Linux ve Windows Server sürümleri.