
# 🛡️ SSH + GOOGLE AUTHENTICATOR (2FA) KURULUM REHBERİ
# 💡 Her dosyanın ne işe yaradığını ve parametreleri anlattım kanka!
# 1. ✅ GEREKLİ PAKETLERİ KUR
sudo dnf install google-authenticator qrencode -y
# 📦 google-authenticator → 2FA kodlarını üreten yazılım
# 📦 qrencode → QR kod oluşturucu (telefona taratmak için)
# 2. 🔐 KULLANICI İÇİN 2FA AYARLA (HER KULLANICI İÇİN AYRI)
su — kullanici_adi # Kullanıcıya geç
google-authenticator # 🎮 Interaktif kurulum başlar
# ❓ Sorulan sorular ve ne anlama geldikleri:
# — “Time-based tokens (y/n)” → y → Zaman bazlı kod (30 saniyede değişir)
# — “Update .google_authenticator file (y/n)” → y → Ayarları kaydet
# — “Disallow multiple uses (y/n)” → y → Aynı kodu 2 kez kullandırma
# — “Increase time window (y/n)” → n → Zaman penceresini genişletme
# — “Enable rate-limiting (y/n)” → y → Bruteforce koruması (30sn’de 3 deneme)
# 3. 🗂️ PAM AYARLARI — /etc/pam.d/sshd
# 📍 Bu dosya: Kimin, nasıl giriş yapacağını belirler (polis kontrol noktası gibi)
sudo nano /etc/pam.d/sshd
# 🔧 Eklenmesi gereken satır:
auth required pam_google_authenticator.so nullok
# 📌 "nullok" → Kullanıcıda 2FA ayarlı değilse şifreyle girişe izin ver
# 📌 "required" → 2FA doğrulaması zorunlu olsun
# 4. ⚙️ SSH SUNUCU AYARLARI — /etc/ssh/sshd_config
# 📍 Bu dosya: SSH’nin nasıl çalışacağını belirler (kapı bekçisi gibi)
sudo nano /etc/ssh/sshd_config
# 🔧 Değiştirilmesi gereken ayarlar:
PasswordAuthentication yes # 📌 Şifreyle girişe izin ver
ChallengeResponseAuthentication yes # 📌 2FA için gerekli
UsePAM yes # 📌 PAM sistemini aktif et
AuthenticationMethods publickey,password keyboard-interactive
# 📌 Önce SSH anahtarı, sonra şifre + 2FA iste
# 5. 🔄 SERVİSİ YENİDEN BAŞLAT
udo systemctl restart sshd
# 6. 📱 TELEFON AYARLARI
# - Google Authenticator uygulamasını indir
# - QR kodu tarat veya manuel anahtar gir
# - 6 haneli kodu al
# 7. 🧪 TEST ET
ssh kullanici_adi@sunucu_ip
# 🔹 Önce şifre isteyecek: "kullanici_adi's password:"
# 🔹 Sonra 2FA kodu isteyecek: "Verification code:"
# 🎯 GÜNLÜK HAYAT ÖRNEĞİ:
# 💳 Bankamatik gibi düşün:
# 1. Kartı sokarsın (SSH bağlantısı)
# 2. Şifre girersin (SSH şifresi)
# 3. SMS kodu girersin (2FA kodu)
# 4. Para çekebilirsin (sunucuya girebilirsin)
# ⚠️ ÖNEMLİ PARAMETRELER ve ANLAMLARI:
# /etc/pam.d/sshd içindeki parametreler:
# - nullok → 2FA ayarlı değilse şifreyle gir (esneklik)
# - no_inactive_hint → Hata mesajlarını gizle (güvenlik)
# - echo_verification_code → Kodu terminalde göster (test için)
# /etc/ssh/sshd_config içindeki parametreler:
# - PasswordAuthentication yes → Şifreyle girişe izin ver
# - ChallengeResponseAuthentication yes → 2FA aktif
# - UsePAM yes → PAM sistemini kullan
# - AuthenticationMethods → Sıralı kimlik doğrulama
# 🔐 GÜVENLİK SEÇENEKLERİ:
# 🔹 Sadece 2FA (şifre yok):
# AuthenticationMethods keyboard-interactive
# 🔹 Önce SSH anahtarı, sonra 2FA:
# AuthenticationMethods publickey keyboard-interactive
# 🔹 Önce şifre, sonra 2FA:
# AuthenticationMethods password keyboard-interactive
# 🆘 ACİL DURUM:
# Eğer kendini dışarda bırakırsan:
sudo nano /etc/pam.d/sshd
# 📍 “pam_google_authenticator.so” satırını başına # koy
sudo systemctl restart sshd
# 📊 LOG KONTROLÜ:
sudo tail -f /var/log/secure
# 🔍 “Failed verification code” → Yanlış 2FA kodu
# 🔍 “Accepted keyboard-interactive” → Başarılı giriş