Merhabalar,
Bildiğiniz gibi linux sunuculara, genelde SSH bağlantısı kullanarak uzaktan bağlanıyoruz. Bunun için de komut satırını ya da SSH için yazılmış çeşitli uygulamaları kullanıyoruz. Çoğu sistemde de default olarak, biz bağlantımızı koparmadığımız ya da network kesilmediği sürece de bağlı kalıyor olabiliriz.
Bu bağlantının sürekli şekilde korunuyor olması, zafiyet sömürücüler tarafından da kullanılabilir hale geliyor elbette. SSH sıkılaştırma yönergelerinden biri de bu SSH bağlantılarınız için TimeOut değeri belirlemektir. İşte bu makalede, çok basit bir uygulamayla, SSH bağlantılarımızın uzun süre açık kalmaması ve belli bir süre sonra kapatılması için timeout değerinin nasıl belirleneceğine dair pratik bilgiler aktarmak istiyorum.
Diğer bir kullanımı ise, eğer daha önceden bir değer belirlenmişse ve belli süre sonra bağlantı kopuyorsa, fakat bu süre bizim için yeterli değilse, bu değerin nasıl değiştirileceğine dair de bu makaleyi kullanabilirsiniz. Bu süre boyunca hareketsiz kalınsa bile SSH bağlantılarınız canlı tutulacak, süre bittiğinde ise otomatik olarak bağlantınız kapatılacaktır.
Şimdi hızlıca başlayalım… Bu işlemleri, tüm linux versiyonlarında benzer şekilde yapabilirsiniz.
SSH Bağlantısı TimeOut ayarları
Linux sunucularda, SSH ile ilgili konfigürasyonlar, /etc/ssh/sshd_config yapılandırma dosyasında bulunur. Bu dosyanın içeriğine baktığımızda, Timeout değerini belirlemek için gerekli değerler, aşağıdaki iki değer olacaktır.
#ClientAliveInterval
#ClientAliveCountMax
Şimdi bu parametrelerin ne anlama geldiğine bakalım.
ClientAliveInterval : Sunucunun, bağlantıyı canlı tutmak için, client sisteme boş bir paket göndermeden önce bekleyeceği süreyi, saniye cinsinden belirtir.
ClientAliveCountMax : Client’dan herhangi bir mesaj alınmadan, gönderilen client canlı mesajlarının sayısını tanımlar. Mesajlar gönderilirken bu sınıra ulaşılırsa, sshd arka plan programı (deamon) oturumu düşürecek ve SSH oturumunu etkin bir şekilde sonlandıracaktır.
TimeOut değeri, yukarıdaki parametrelerin çarpımı ile belirlenir.
Timeout value = ClientAliveInterval x ClientAliveCountMax
Örneğin, parametrelerinizi aşağıda gösterildiği gibi tanımladığınızı varsayalım:
ClientAliveInterval 1200
ClientAliveCountMax 3
Bu durumda TimeOut değeri, 1200 saniye x 3 = 3600 saniye olacaktır. Bu değer, 1 saate eşdeğerdir. SSH oturumunuzun, 1 saatlik boşta kalma süresi boyunca düşmeden canlı kalacağı anlamına gelir.
Şimdi kendi sistemimizde bu ayarları yapalım. Konfig dosyamızı, bir metin editörü ile açalım.
nano /etc/ssh/sshd_config
Aşağıdaki parametreleri bulun:
#ClientAliveInterval
#ClientAliveCountMax
Bu iki satırın, # işaretini kaldırıyoruz ve örneğin yukarıdaki gibi 1 saat sonra bağlantının otomatik kesilmesini istiyorsak, aşağıdaki gibi değiştiriyoruz. Siz de kendi sürenizi belirleyip buna göre değiştiriniz.
Kaydedip çıkıyoruz.
Alternatif olarak, tek başına ClientAliveInterval parametresini belirterek de aynı sonucu elde edebilirdiniz. Yani sadece bu değeri aşağıdaki gibi değiştirmeniz de yeterli olurdu.
ClientAliveInterval 3600
İşlem tamamlandığında, değişikliklerin devreye girmesi için sshd deamon yeniden yüklüyoruz ya da restart ediyoruz.
systemctl reload sshd
ya da
systemctl restart sshd
Tüm işlemlerimiz bunlardan ibarettir.
NOT: Bazı durumlarda, ssh penceresinden uyguladığınız komut, uzun süre işlem yapıyor olabilir. Dolayısıyla SSH pencereniz de kapandığı için devam edemiyor olabilirsiniz. Bu durumda, süreyi daha uzun ayarlayabilir ya da TimeOut değerini geçici olarak devre dışı bırakabilirsiniz.
Yararlı olması dileğiyle.
Yusuf İşleyen