Ubuntu Server’da SSH Idle Timeout

Ubuntu Server ortamlarında SSH (Secure Shell) bağlantıları, sistem yöneticileri için vazgeçilmez bir uzaktan erişim aracıdır.

Reklam Alanı

Ubuntu Server ortamlarında SSH (Secure Shell) bağlantıları, sistem yöneticileri için vazgeçilmez bir uzaktan erişim aracıdır. Ancak, bağlantıların uzun süre boşta kalması durumunda otomatik olarak sonlandırılması, yani SSH idle timeout mekanizması, güvenlik ve kaynak yönetimi açısından kritik öneme sahiptir. Bu mekanizma, gereksiz bağlantıların sunucuyu meşgul etmesini önler, potansiyel güvenlik açıklarını azaltır ve ağ trafiğini optimize eder. Bu makalede, Ubuntu Server’da SSH idle timeout ayarlarını kurumsal bir yaklaşımla ele alacak, adım adım yapılandırma rehberi sunacak ve pratik ipuçları vereceğiz. Bu sayede, sunucularınızı daha verimli ve güvenli hale getirebilirsiniz.

SSH Idle Timeout’un Temel Kavramları ve Önemi

SSH idle timeout, bir bağlantının belirli bir süre boyunca veri trafiği üretmediği takdirde otomatik olarak kapatılmasını sağlayan bir özelliktir. Ubuntu Server’da varsayılan ayarlar genellikle 2 dakika ClientAliveInterval ve 3 deneme hakkı ile sınırlıdır, bu da toplamda yaklaşık 6 dakikalık bir boşta kalma süresine denk gelir. Kurumsal ortamlarda bu süre, kullanıcı deneyimini bozmadan güvenlik dengesini sağlamak için özelleştirilmelidir. Örneğin, uzun süreli bakım işlemlerinde timeout’un kısalığı bağlantıyı keserek iş akışını aksatabilirken, uzatılması unutulmuş bağlantıların kaynak israfına yol açabilir.

Bu ayarların önemi, özellikle çok kullanıcılı sunucularda belirgindir. Idle timeout’u doğru yapılandırmak, DDoS benzeri saldırılarda sunucunun korunmasına yardımcı olur ve lisanslı yazılımların bağlantı limitlerini aşmasını engeller. Pratik bir yaklaşım olarak, timeout süresini kullanıcı rollerine göre farklılaştırmak önerilir: geliştiriciler için 30 dakika, izleyiciler için 10 dakika gibi. Bu sayede, sistem kaynakları verimli kullanılır ve güvenlik politikaları güçlendirilir.

Ubuntu Server Tarafında SSH Timeout Yapılandırması

Sunucu tarafında SSH timeout ayarları, OpenSSH sunucusunun yapılandırma dosyası olan /etc/ssh/sshd_config üzerinden yapılır. Bu dosya root yetkileriyle düzenlenmelidir. Öncelikle, mevcut ayarları incelemek için sudo nano /etc/ssh/sshd_config komutunu kullanın ve değişiklikleri kaydedin. Değişikliklerin etkinleşmesi için sudo systemctl restart sshd komutu zorunludur. Bu işlem, sunucunun yeniden başlatılmasına gerek kalmadan ayarları uygular.

ClientAliveInterval ve ClientAliveCountMax Parametreleri

ClientAliveInterval, sunucunun istemciye periyodik olarak gönderdiği sinyal aralığını saniye cinsinden belirler. Varsayılan 0’dır, yani devre dışıdır; bunu 300 (5 dakika) olarak ayarlayın. ClientAliveCountMax ise başarısız sinyal deneme sayısını tanımlar, örneğin 3 olarak bırakın. Bu kombinasyon, 15 dakikalık idle süreden sonra bağlantıyı kapatır. Örnek yapılandırma:

  • ClientAliveInterval 300
  • ClientAliveCountMax 3

Bu ayarlar, sunucunun istemciyi proaktif olarak kontrol etmesini sağlar ve ağ gecikmelerini telafi eder. Kurumsal deployment’larda, bu değerleri /etc/ssh/sshd_config.d/ dizini altında ayrı bir dosyaya taşıyarak ana dosyayı temiz tutun.

TCPKeepAlive ve İlgili Güvenlik Ayarları

TCPKeepAlive yes olarak etkinleştirildiğinde, işletim sistemi seviyesinde keepalive paketleri gönderilir. Bunu ClientAlive ayarlarıyla birlikte kullanmak, firewall kurallarının bağlantıyı erken kesmesini önler. Ayrıca, MaxStartups 10:30:100 gibi değerlerle eşzamanlı bağlantı girişimlerini sınırlayın. Bu, brute-force saldırılarını yavaşlatır. Uygulama sonrası logları /var/log/auth.log ile izleyin ve ayarları test edin.

Bu yapılandırma ile sunucunuz, idle bağlantıları güvenli bir şekilde yönetir ve kaynak kullanımını optimize eder. Her değişiklikten sonra bağlantıyı yeniden test ederek kesinti riskini minimize edin.

İstemci Tarafında ve Test Yöntemleri

İstemci tarafında timeout ayarları, ~/.ssh/config dosyasında yapılır. Sunucu ayarlarını tamamlayıcı olarak, ServerAliveInterval 300 ve ServerAliveCountMax 3 ekleyin. Bu, istemcinin sunucuya sinyal göndermesini sağlar. Global ayar için /etc/ssh/ssh_config kullanın, ancak kullanıcı bazlı özelleştirme daha esnektir. Örnek:

Host *
    ServerAliveInterval 300
    ServerAliveCountMax 3

Bu ayar, mobil kullanıcılar için idealdir ve VPN bağlantılarında stabilite sağlar. Kurumsal politikalarla uyumlu hale getirmek için, standart bir config şablonu dağıtın.

Bağlantı Testi ve İzleme Araçları

Test için, SSH bağlantısını kurun ve sleep 1000 komutuyla idle bırakın. Timeout’un tetiklenip tetiklenmediğini gözlemleyin. İzleme amacıyla, sudo journalctl -u ssh -f ile gerçek zamanlı logları takip edin. Ayrıca, netstat -an | grep :22 ile aktif bağlantıları listeleyin. Uzun vadeli izleme için Prometheus ve Grafana entegrasyonu önerilir, ancak temel olarak ssh-audit aracıyla yapılandırmayı doğrulayın.

Potansiyel sorunlar arasında firewall (ufw status ile kontrol) ve MTU uyumsuzlukları yer alır. Bunları gidermek için ufw allow ssh ve ifconfig ile MTU’yu 1400’e düşürün.

Sonuç olarak, Ubuntu Server’da SSH idle timeout’u doğru yapılandırmak, sistem güvenliğini ve performansını önemli ölçüde artırır. Bu rehberdeki adımları uygulayarak, kurumsal standartlarınıza uygun bir ortam oluşturun. Düzenli denetimler ve kullanıcı eğitimiyle, bu ayarları sürekli optimize edin; böylece kesintisiz ve güvenli erişim sağlayın.

Yazar: Editör
İçerik: 615 kelime
Okuma Süresi: 5 dakika
Zaman: Bugün
Yayım: 12-03-2026
Güncelleme: 12-03-2026
Benzer İçerikler
Dijital Dönüşüm kategorisinden ilginize çekebilecek benzer içerikler