Malware ve Rootkit Tarama: rkhunter ve ClamAV Rehberi
Linux sunucunuzu malware ve rootkit'lere karşı koruyun. rkhunter ve ClamAV kurulumu, tarama yapılandırması, sonuç yorumlama ve zamanlanmış tarama rehberi.
SSH erişimi için iki faktörlü kimlik doğrulama (2FA) kurun. Google Authenticator PAM modülü, TOTP kurulumu, yedek kodlar, test ve sorun giderme rehberi.
SSH anahtarı kullanmak güvenliği artırsa da, iki faktörlü kimlik doğrulama (2FA) ekstra bir güvenlik katmanı sağlar. Birisi SSH anahtarınızı ele geçirse bile, 2FA kodu olmadan sisteme giremez. Bu rehberde Google Authenticator PAM modülü ile SSH için TOTP tabanlı 2FA kurulumunu öğreneceksiniz.
2FA kurulumu sırasında mevcut SSH bağlantınızı kapatmayın. Her adımdan sonra yeni bir terminal ile test edin. Yanlış yapılandırma sunucuya erişimi tamamen engelleyebilir.
# Ubuntu/Debian
sudo apt update
sudo apt install libpam-google-authenticator -y
# CentOS/AlmaLinux
sudo dnf install epel-release -y
sudo dnf install google-authenticator -y
# 2FA'yı etkinleştirmek istediğiniz kullanıcı olarak çalıştırın
google-authenticator
Komut çalıştırıldığında şu sorular sorulacak:
Do you want authentication tokens to be time-based (y/n) y
Bu noktada bir QR kodu ve gizli anahtar görüntülenecek. QR kodu Google Authenticator uygulaması ile tarayın.
Do you want me to update your "/home/user/.google_authenticator" file? (y/n) y
Do you want to disallow multiple uses of the same authentication token? (y/n) y
By default, tokens are good for 30 seconds. In order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of +-1min (window size of 3) to about +-4min (window size of 17 acceptable tokens). Do you want to do so? (y/n) n
If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting? (y/n) y
Kurulum sırasında 5 adet yedek kod görüntülenir. Bu kodları güvenli bir yerde saklayın:
Your emergency scratch codes are:
12345678
87654321
11223344
44332211
99887766
Yedek kodları güvenli bir yerde (şifre yöneticisi, kağıt vb.) saklayın. Telefonunuzu kaybettiğinizde bu kodlar tek erişim yolunuz olacak.
# SSH PAM yapılandırmasını düzenle
sudo nano /etc/pam.d/sshd
# /etc/pam.d/sshd dosyasının başına ekle:
auth required pam_google_authenticator.so
nullok seçeneği eklerseniz, 2FA kurulmamış kullanıcılar yalnızca şifre ile giriş yapabilir. Geçiş döneminde kullanışlıdır:
auth required pam_google_authenticator.so nullok
sudo nano /etc/ssh/sshd_config
# Klavye etkileşimli kimlik doğrulamayı etkinleştir
ChallengeResponseAuthentication yes
# Kimlik doğrulama yöntemlerini ayarla
# Seçenek 1: Yalnızca 2FA (şifre + TOTP)
AuthenticationMethods keyboard-interactive
# Seçenek 2: SSH anahtarı VEYA 2FA
# AuthenticationMethods publickey keyboard-interactive
# Seçenek 3: SSH anahtarı VE 2FA (en güvenli)
AuthenticationMethods publickey,keyboard-interactive
# UsePAM etkin olmalı
UsePAM yes
# SSH servisini yeniden başlat
sudo systemctl restart sshd
En güvenli yapılandırma: SSH anahtarı VE 2FA kodu gerektirir.
sudo nano /etc/ssh/sshd_config
# SSH anahtarı + 2FA zorunlu
AuthenticationMethods publickey,keyboard-interactive
PasswordAuthentication no
ChallengeResponseAuthentication yes
UsePAM yes
# PAM yapılandırması
sudo nano /etc/pam.d/sshd
# Şifre kimlik doğrulamasını devre dışı bırak
# @include common-auth satırını yorum satırına al:
# @include common-auth
# 2FA ekle
auth required pam_google_authenticator.so
# Yeni bir terminal açın ve bağlanmayı deneyin
ssh kullanici@sunucu_ip
# Beklenen çıktı:
# Verification code: (Google Authenticator'dan kodu girin)
# Authenticated with partial success.
# (SSH anahtarı + 2FA modunda)
# Sunucu saatini kontrol et
date
timedatectl
# NTP senkronizasyonu
sudo apt install ntp -y
sudo systemctl restart ntp
# Zaman dilimini kontrol et
timedatectl list-timezones | grep Istanbul
sudo timedatectl set-timezone Europe/Istanbul
# Konsol erişimi ile bağlanın
# Google Authenticator dosyasını kontrol edin
cat ~/.google_authenticator
# 2FA'yı geçici olarak devre dışı bırak
# /etc/pam.d/sshd dosyasından pam_google_authenticator satırını yorum satırına al
sudo nano /etc/pam.d/sshd
# auth required pam_google_authenticator.so <- başına # ekle
sudo systemctl restart sshd
sudo nano /etc/pam.d/sshd
# Belirli grupları muaf tut
auth [success=1 default=ignore] pam_succeed_if.so user ingroup notp
auth required pam_google_authenticator.so
# notp grubu oluştur ve kullanıcı ekle
sudo groupadd notp
sudo usermod -aG notp deploy_user
Birden fazla sunucu için 2FA yönetimi:
# Ansible ile toplu kurulum
# playbook.yml
- name: Google Authenticator kurulumu
hosts: all
tasks:
- name: Paketi kur
apt:
name: libpam-google-authenticator
state: present
- name: PAM yapılandırması
lineinfile:
path: /etc/pam.d/sshd
line: 'auth required pam_google_authenticator.so'
insertbefore: BOF
Authy veya 1Password gibi uygulamalar, Google Authenticator'a kıyasla bulut yedekleme ve çoklu cihaz desteği sunar. Kurumsal ortamlarda bu alternatifleri değerlendirin.
SSH için 2FA kurulumu, sunucu güvenliğini önemli ölçüde artırır. Google Authenticator PAM modülü ile birkaç dakikada TOTP tabanlı 2FA aktif edebilirsiniz. SSH anahtarı + 2FA kombinasyonu, en güçlü kimlik doğrulama yöntemlerinden birini oluşturur.
Kurulum sırasında verilen yedek kodları kullanın. Bu kodlar tek kullanımlıktır. Yedek kodlarınızı da kaybettiyseniz, sunucuya konsol erişimi ile bağlanın ve /etc/pam.d/sshd dosyasından 2FA satırını geçici olarak devre dışı bırakın.
En yaygın neden sunucu ve telefon saatlerinin senkronize olmamasıdır. Sunucuda 'sudo timedatectl' ile saati kontrol edin ve NTP senkronizasyonunu etkinleştirin. Google Authenticator uygulamasında da 'Correct time sync' seçeneğini kullanın.
SSH anahtarı güçlü bir koruma sağlar, ancak 2FA ekstra güvenlik katmanı ekler. Özellikle kritik sistemlerde veya uyumluluk gereksinimleri olan ortamlarda SSH anahtarı + 2FA kombinasyonu önerilir.
Evet. Authy, Microsoft Authenticator, 1Password, Bitwarden gibi TOTP destekleyen herhangi bir uygulama çalışır. Authy bulut yedekleme ve çoklu cihaz desteği sunduğu için özellikle önerilir.
Kritik erişime sahip tüm kullanıcılar için zorunlu olmalıdır. Otomatik deploy scriptleri gibi servis hesapları için SSH anahtarı yeterli olabilir. PAM yapılandırmasında belirli grupları 2FA'dan muaf tutabilirsiniz.
Linux sunucunuzu malware ve rootkit'lere karşı koruyun. rkhunter ve ClamAV kurulumu, tarama yapılandırması, sonuç yorumlama ve zamanlanmış tarama rehberi.
Fail2Ban ile SSH brute-force saldırılarına karşı sunucunuzu koruyun. Kurulum, jail.local yapılandırması, Nginx/Apache jail'leri, IP beyaz listesi ve e-posta bildirimleri.
WireGuard VPN sunucusu kurun: anahtar üretimi, sunucu ve istemci yapılandırması, IP yönlendirme, firewall kuralları ve Windows/Linux/Android istemci kurulumu.