Ubuntu Server ortamlarında SSH erişimi, sunucu yönetiminin temel taşlarından biridir.
Ubuntu Server ortamlarında SSH erişimi, sunucu yönetiminin temel taşlarından biridir. Ancak varsayılan parola tabanlı kimlik doğrulama, brute-force saldırılarına karşı yetersiz kalabilir. İki faktörlü kimlik doğrulama (2FA), parola ile birlikte zaman bazlı tek kullanımlık şifre (TOTP) gerektirdiği için güvenlik katmanını önemli ölçüde güçlendirir. Bu makalede, Ubuntu Server’a Google Authenticator tabanlı SSH 2FA kurulumunu adım adım ele alacağız. Bu işlem, kurumsal ortamlarda standart bir güvenlik önlemi olarak uygulanabilir ve sunucunuzu yetkisiz erişimlere karşı korur. Kurulum, standart Ubuntu 22.04 LTS sürümü baz alınarak hazırlanmıştır; eski sürümlerde ufak uyumlamalar gerekebilir.
Sunucunuzu 2FA kurulumuna hazırlamak için öncelikle sistemin güncel olması şarttır. Bu, güvenlik açıklarını kapatır ve paket uyumluluğunu sağlar. Terminal üzerinden şu komutları sırayla çalıştırın:
sudo apt update: Paket listesini yeniler.sudo apt upgrade -y: Mevcut paketleri yükseltir.sudo apt install libpam-google-authenticator: Google Authenticator modülünü yükler. Bu paket, PAM (Pluggable Authentication Modules) entegrasyonu için gereklidir.Bu adımlar tamamlandıktan sonra, sunucunun yeniden başlatılması önerilir (sudo reboot). Hazırlık aşamasında ayrıca mevcut SSH bağlantınızın kesilmemesi için başka bir terminal oturumu açmanızı tavsiye ederiz. Bu paket yüklemesi yaklaşık 5-10 MB yer kaplar ve işlemci yükü minimumdur. Kurumsal sunucularda, bu güncellemeleri otomatikleştirilmiş betiklerle periyodik hale getirmek faydalıdır. Böylece 2FA kurulumu sorunsuz ilerler ve olası bağımlılık sorunları önlenir. Bu aşama, toplam kurulum süresinin %20’sini alır ve temel altyapıyı güçlendirir.
Şimdi kullanıcı bazında 2FA anahtarlarını oluşturacağız. Her kullanıcı için ayrı ayrı işlem yapılmalıdır; root kullanıcısı için de geçerlidir ancak root erişimini kısıtlamak daha güvenlidir.
İlgili kullanıcı olarak oturum açın veya sudo -u kullanıcıadi ile geçin. Ardından google-authenticator komutunu çalıştırın. Bu komut, interaktif bir sihirbaz başlatır:
Bu dosya, gizli anahtar ve doğrulama parametrelerini içerir. Dosya izinlerini chmod 600 ~/.google_authenticator ile koruyun. Kurumsal ortamda, bu anahtarları merkezi bir yönetim sistemiyle dağıtmak için Ansible gibi araçlar kullanılabilir. QR kod tarama işlemi 30 saniye sürer ve uygulama ile anında senkronize olur.
/etc/pam.d/sshd dosyasını düzenleyin: En üste auth required pam_google_authenticator.so nullok satırını ekleyin. “nullok” parametresi, 2FA’sız kullanıcılara izin verir (test için faydalı). Ardından /etc/ssh/sshd_config dosyasını açın ve şu değişiklikleri yapın:
ChallengeResponseAuthentication yesPasswordAuthentication yes (geçici olarak)UsePAM yes (zaten varsayılan)Değişiklikleri kaydedip SSH servisini yeniden başlatın: sudo systemctl restart ssh. Bu entegrasyon, PAM modülünün SSH ile etkileşimini sağlar ve her girişte önce parola, sonra TOTP ister. Kurumsal sunucularda, bu config’i yedekleyin ve versiyon kontrolüne alın.
Kurulum tamamlandıktan sonra yeni bir terminalden test edin. Parola girdikten sonra uygulama şifresini girin (30 saniyede bir yenilenir). Başarılı giriş, yeşil tik ile doğrulanır. Hata durumunda, saat senkronizasyonunu kontrol edin (sudo ntpdate pool.ntp.org).
Yaygın sorunlar arasında saat uyumsuzluğu (TOTP hassastır) ve dosya izinleri yer alır. Logları sudo tail -f /var/log/auth.log ile izleyin. “Invalid verification code” hatası için anahtarı yeniden oluşturun. Root login’i devre dışı bırakmak için sshd_config’e PermitRootLogin no ekleyin. Fail2Ban entegrasyonu ile brute-force koruması ekleyin: sudo apt install fail2ban ve jail.local yapılandırın. Bu iyileştirmeler, 2FA’yı tamamlar ve sunucuyu kurumsal standartlara taşır. Test aşamasında, yedek erişim (konsol veya başka kullanıcı) hazır tutun.
Bu kurulumla Ubuntu Server’ınızza SSH 2FA entegre edilmiş olup, güvenlik seviyeniz önemli ölçüde yükseltilmiştir. Düzenli bakım, anahtar yedeklemeleri ve kullanıcı eğitimi ile bu sistemi uzun vadeli kullanın. Kurumsal ekipler için, bu adımları otomasyon betikleriyle standartlaştırarak birden fazla sunucuya uygulayın. Sonuç olarak, 2FA yatırımı, potansiyel veri ihlallerini önleyerek maliyet tasarrufu sağlar ve uyumluluk gereksinimlerini karşılar.